注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

インライン編集

アクションを利用したインライン編集は、標準のアクションとは異なる方法で検証および実行されます。標準のアクションでは、アクションを有効にするために複数のパラメーターを設定する必要があります。一方、アクションを利用したインライン編集では、すべてのパラメーターが任意であり、デフォルトでオブジェクトの既存の値が使用されるため、ユーザーはプロパティを 1 個ずつ個別に変更できます。

このドキュメントでは、インライン編集の使用時に予期しない結果を回避する方法を説明します。インライン編集は Workshop と Object Explorer の両方で利用可能です。インライン編集アクションの設定は、アクションを使用する場所によって異なります。

Object Explorer のインライン編集

インライン編集を使用すると、ユーザーは Object Explorer の結果表示や、プロパティウィジェットやメトリックカードウィジェットなどの標準の Object View ウィジェットで、オブジェクトの値をすばやく編集できます。

設定

インライン編集アクションの設定

インライン編集アクションを設定するには、Ontology Manager でオブジェクトタイプのプロパティタブに移動し、次にインタラクションタブに移動します。プロパティを選択し、サイドバーのインライン編集に移動します。ドロップダウンメニューで、利用可能なアクションタイプを 1 個選択するか、新しいアクションタイプを作成します。新しいアクションタイプを作成すると、アクションタイプの作成ワークフローが開始されます。各プロパティに設定できるインライン編集アクションタイプは 1 個のみです。

複数のプロパティのインライン編集に同じアクションタイプを使用することも、プロパティごとに別々のアクションタイプを使用することもできます。

インライン編集のアクションタイプ要件

すべてのアクションタイプをインライン編集アクションタイプとして使用できるわけではありません。使用するには、アクションタイプが次の要件を満たしている必要があります。

  • 1 個のオブジェクトタイプの 1 個のオブジェクトのみを変更すること。
  • デフォルト値が有効になっていること。
  • デフォルト値が、インラインアクションを定義するオブジェクト参照パラメーターから取得されること。そのため、アクションで変更するプロパティを固定値や「現在のユーザー」「現在の時刻」などの特殊な値にマッピングすることはできません。
  • 表示設定のステータスとオーバーライドは設定できますが、Object Explorer と Object View でインライン編集を使用する場合、これらの設定は無視されます。
  • 副次的効果の Webhook または副次的効果の通知が有効になっていないこと。

Workshop のインライン編集

Workshop でアクションタイプをインライン編集として使用するために追加の設定は必要ありませんが、すべてのアクションがセル単位の編集に適しているわけではありません。インライン編集の設定方法については、Workshop のドキュメントを参照してください。

背景

単一のアクションを実行する場合、編集は 1 件ずつ順番に検証および送信されます。一方、インライン編集は一括で検証および送信されます。そのため、すべてのアクションがインライン編集に適しているわけではありません。インライン編集によって失敗したり、予期しない結果が生じたりする可能性のあるアクションには、次のものがあります。

  • 別のアクションが書き込んだ可能性のあるデータを読み取ろうとするアクション、または
  • 同じオブジェクトに書き込もうとする 2 個のアクション。

インライン編集をシナリオに適用する場合、実行されたアクションは同時に適用されるのではなく(通常のインライン編集の場合)、非決定論的な順序で順番に適用されます。そのため、複数のアクションが同じオブジェクトに書き込もうとすることで通常は失敗するインライン編集アクションでも、シナリオに適用すると成功する場合があります。ただし、この動作の違いに依存するアプリケーションの構築は推奨しません。

有効なインラインアクション

アクションを利用したインライン編集として有効に機能させるには、アクションが競合しない編集を送信する必要があります。具体的には、同じテーブル編集ウィジェットで設定された複数のアクションが、次のことを行わないようにする必要があります。

  • 同じオブジェクトに書き込むこと、
  • 同じリンクを作成すること、または
  • 集計値の整合性を保持しようとすること。

無効なインラインアクション

**インライン編集で同じオブジェクトを 2 回編集しようとすると、アクションはエラーを返します。**また、インライン編集は結合テーブルのリンクの追加や削除に対応しておらず、これらを行うとユーザーにエラーメッセージが表示されます。

ユーザーがインライン編集を適用すると、各編集に実行条件が適用されますが、編集は一括で送信されます。編集された各オブジェクトに対して、パラメーター実行条件とグローバル実行条件の両方が評価されます。ただし、共有オブジェクトやリンクされたオブジェクトを参照する実行条件は、インライン編集に対応していません。これは、インライン編集を適用する際、累積値に関する実行条件では、編集された値と列内の未編集の値を比較するためです。最終的な送信時には、編集がすべて同時に送信され、すべての編集が対応するオブジェクトのパラメーター実行条件とグローバル実行条件を満たしていれば、実行に成功します。

したがって、複数のアクションタイプ間で共有されるオブジェクトやリンクされたオブジェクトの実行条件は、編集が行われる前に、編集ごとに 1 回評価されます。

インライン編集は一括で送信されるため、アクションを 1 個ずつ順番に適用した場合には期待されるとおりに機能する実行条件に違反する可能性があります。

例:無効なインラインアクション

すべてのフライトの遅延の合計が最大 50 分に制限される空港で、1 便のフライトを最大 20 分遅延させることができる Delay Flight アクションを考えてみます。

  • 20 分という要件と合計 50 分という要件の両方の実行条件が、セルを更新するたびに評価されます。
    • まだ編集が送信されていないため、合計 50 分という条件では、新しい遅延時間を、列内の未編集の遅延時間(インライン編集を開始する前の遅延時間)の合計と比較します。
  • 2 番目の実行条件(空港のすべての遅延の合計が 50 分より小さいこと)は集計値に依存しており、列内のすべてのオブジェクトで共有されます。
    • インライン編集は一括で送信されるため、この 2 番目の実行条件は、特定の空港におけるフライトの遅延時間の合計を制限するうえで有効に機能しません。編集後の合計が、2 番目の実行条件で許容される 50 分より大きくなる可能性があります。
  • このアクションは、セルごとに個別にアクションを実行した場合と比べて結果に不整合が生じるため、テーブル編集には適していません。