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

実行条件

実行条件(旧称:検証)は、アクションを実行できるかどうかを決める条件です。実行条件を使用すると、データの編集権限にビジネスロジックを組み込み、オントロジーのデータ品質と編集ガバナンスを確保できます。

実行条件は、コンテキスト(ユーザーやパラメーターなど)に基づく条件と固定情報を組み合わせて、論理文として作成します。実行条件では、オブジェクト、リレーション、さらにはユーザーの情報も論理文に組み込み、アクションを実行できるかどうかを判断できます。

たとえば、航空会社が特定のフライトに割り当てられている航空機を変更したいとします。設定されたアクションにより、ユーザーは Flight オブジェクトにリンクされた Aircraft オブジェクトを変更できます。ただし、航空会社は、運用中の航空機だけが使用されるように、このアクションを使用できるユーザーを特定のユーザー(フライトコントローラーなど)に限定したいと考えています。実行条件を使用すると、ユーザーのグループ所属情報とアクション実行時の航空機のステータスを組み合わせることで、フライトの航空機を変更するアクションを、条件が満たされた場合にのみ実行できるように設定できます。

例:実行条件の概要

実行条件は、条件と演算子で構成されます。条件は、パラメーターまたはユーザープロパティの値を規定する単一の文です。演算子は、異なる条件を組み合わせたり、入れ子にしたりするために使用します。

さまざまな種類の演算子を使用することで、ビジネスプロセスや要件を反映した、より高度な論理文を作成できます。アクションは、すべての実行条件が満たされた場合にのみ実行できます。これは、ユーザーがアクションタイプ自体を編集できるかどうかを制御する権限とは独立しています。1つのオブジェクトタイプに、オブジェクトを追加、変更、削除する複数のアクションタイプを設定できますが、それぞれのアクションタイプには独立した実行条件があります。

条件

条件は、2つの値の間で行う単一の比較チェックです。各条件は、パラメーターまたはユーザー入力に基づいて、満たされるかどうかが決まります。条件は、「現在のユーザー」、「パラメーター」、「実行コンテキスト」の3つの条件テンプレートのいずれかを使って設定できます。これらのテンプレートは、条件の残りの部分を設定するための枠組みを提供します。どの条件も、2つの値の間に演算子を置く単純な比較です。

例:条件テンプレートを選択

引き続きこの例では、航空管制官であるという要件は、アクションを実行する人のコンテキストが必要なため、現在のユーザーテンプレートを使って設定できます。航空機がまだ運航中かどうかを確認するには、パラメーターテンプレートを通じて Aircraft オブジェクトを使用する必要があります。

現在のユーザー

現在のユーザーテンプレートは、アクションを実行するユーザーに基づいて権限を定義します。現在のユーザーの入力は、ユーザーID、グループIDによるグループの所属、または利用可能なその他の Multipass 属性(ユーザーの組織など)を確認するために使用できます。Foundry はユーザーIDを文字列として評価します。この文字列は、固定のユーザーIDリスト、またはユーザーIDを格納する任意の文字列パラメーターと比較できます。

グループIDの選択肢では、アクションを実行するユーザーが所属するグループ(直接の所属か親から継承した所属かを問わず)を使って条件を作成できます。これらのグループは、固定で選択したグループ、またはほかのパラメーターで指定されたグループIDと比較できます。

Multipass 属性は文字列リストとして扱われ、ほかの文字列または文字列リストとのみ比較できます。ユーザーには、そのユーザーがアクセスできる Multipass 属性の候補リストが表示されます。その他のユーザー属性の項目を使うと、ユーザーがアクセスできない属性に対して条件を設定できます。ユーザーが属性にアクセスできない場合、その条件は満たされません。

グループ、マーキング、または組織の所属に NOT 条件を使用しないでください。このような場合に NOT 条件を使用するのは、誤った設定です。プラットフォームは、ユーザーの権限の一部のみを持つスコープ付きトークンをサポートしています。これらのトークンには、NOT 条件がチェックする属性が含まれていない場合があり、その結果、条件が満たされ、意図した範囲を超えるアクセスが許可される可能性があります。

パラメーター

実行条件では、パラメーターセクションで定義したパラメーターも使用できます。パラメーターは、ほかのアプリまたはユーザー自身からアクションタイプに渡されます。パラメーターに条件を設定すると、作成者はアクションタイプにビジネスロジックを組み込み、ビジネス要件に適合しないデータに対してユーザーがアクションを実行するのを防ぐことができます。

この例では、運航ステータスは Aircraft オブジェクトを通じて渡され、航空機ごとに異なる可能性があります。条件は、Aircraft オブジェクトタイプのパラメーターに基づいて作成する必要があります。

実行コンテキスト

実行条件は、アクションの実行が評価される実行コンテキスト、具体的にはアクションがオントロジーシナリオ内で実行されたかどうかに基づくこともできます。シナリオの実行コンテキストは、アクションがオントロジーシナリオ内で評価されていることを示します。特定のシナリオを識別するものではありません。

引き続きこの例では、Aircraft オブジェクトを変更できるのは航空管制官のみであるべきです。ただし、オントロジーシナリオ内では、航空管制官ではない計画担当者が、別の航空機割り当てをテストする必要がある場合があります。

実行条件では、次のいずれかの場合にアクションを許可できます。

  • アクションがシナリオ内で実行され、現在のユーザーが計画グループのメンバーである場合、または
  • 標準の条件である、航空管制官であるという要件が満たされている場合。

これとは別に、シナリオをマージするアクションの実行条件を通じて、航空管制官にシナリオのマージを許可できます。

実行条件は、添付ファイルおよびオブジェクトセットのパラメーターをサポートしていません。これらのパラメーターのデータ型は、選択パネルから除外されます。

値を選択する

条件テンプレートを選択した後、比較する値を選択します。一部のパラメーター(リストやオブジェクトパラメーターなど)では、比較に使用する値をより細かく選択する必要があります。また、リストの内容ではなく、リストの長さを比較することもできます。

例:値を選択

航空機の例では、航空機の運航ステータスは Aircraft オブジェクトのプロパティに格納されています。

演算子

演算子は、2つの値の比較方法を定義します。設定ワークフローを簡略化するため、演算子は事前に絞り込まれ、パラメーターに対して有効な演算子のみが表示されます。パラメーターを変更すると、そのパラメーターを使用するすべての条件を再設定する必要があります。

例:演算子を選択

選択したパラメーターに応じて、複数の演算子を利用できます。単一の値を持つパラメーターでは、次の演算子を利用できます。

演算子例データの例説明
等しい名前 等しい John Doe"John Doe" は "John Doe" と等しい = TRUE左の値が右の値と完全に一致します。
等しくない現在のユーザー 等しくない John Doe"John Doe" は "Maria Smith" と等しくない = TRUE左の値と右の値が一致しません。
一致する名前 一致する ^[AEI
より小さい航空機 > エンジン件数 次の値より小さい 24は2より小さい = TRUE左の値が右の値より小さいです。
以上航空機 > エンジン件数 次の値以上 24は2以上 = TRUE左の値が右の値より大きいです。

複数の値を持つパラメーターでは、次の演算子を利用できます。オブジェクト参照リストは、値のリスト(オブジェクトの値、または定義したプロパティの値)に変換されます。

演算子例データの例説明
含む航空機 > パイロット名 含む "John Doe"[ "John Doe", "Maria Smith" ] は "John Doe" を含む = TRUE左の値のうち1つ以上が右の値と完全に一致します。
いずれかを含む名前のリスト いずれかを含む 航空機 > パイロット名["King Louis", "John Doe"] は [ "John Doe", "Maria Smith" ] に含まれる = TRUE左の値のうち1つ以上が、右の値のうち1つ以上と完全に一致します。
含まれる名前 含まれる [ "John Doe", "Maria Smith" ]"John Doe" は [ "John Doe", "Maria Smith" ] に含まれる = TRUE左の値が、右の値のうち1つ以上と完全に一致します。
それぞれ等しい航空機 > パイロット名 それぞれ等しい "John Doe"[ "John Doe", "Maria Smith" ] はそれぞれ "John Doe" と等しい = FALSE左のすべての値が右の値と完全に一致します。
それぞれ等しくない航空機 > パイロット名 それぞれ等しくない "John Doe"[ "John Doe", "Maria Smith" ] はそれぞれ "King Louis" と等しくない = TRUE左のどの値も右の値と完全には一致しません。

この例のユーザーは多くのグループに所属していますが、比較対象は単一のグループであるため、重複を確認するには含む演算子を選択する必要があります。一方、運航ステータスは期待されるステータスと完全に一致する必要があるため、等しい演算子を設定する必要があります。

値

値は、比較のもう一方の側を表します。既存のパラメーター、固定値、または値なしを指定できます。値なしでは、最初の値が空(または null)かどうかを確認します。演算子と同様に、利用可能な選択肢は最初の値の種類によって異なります。

例:値を選択

これで、航空機の例に必要な2つの条件を完成させられます。航空管制官については、正しいグループを固定パラメーターとして選択する必要があります。これは、コンテキストにかかわらず、アクションが実行されるたびにグループが変わらず、同じである必要があるためです。そのため、固定値を使用し、ドロップダウンから目的のグループを選択します。航空機は、稼働ステータスプロパティが「はい」の場合に稼働可能とみなされます。この値も、固定値の選択肢を使用して設定できます。

論理演算子

論理演算子を使用すると、異なる条件を組み合わせられます。論理演算子をネストして、さらに複雑なロジックを作成することもできます。また、判定を通過するために、その配下の条件をすべて満たす、いずれかを満たす、またはどれも満たさないことを要求できます。

失敗メッセージ

失敗メッセージでは、アクションを実行できないときに表示するエラーを定義できます。ルートレベルの各条件と論理演算子には、それぞれ独自の失敗メッセージがあります。下位レベルの条件が満たされない場合、対応するルートレベル(親)の失敗メッセージが表示されます。条件が満たされないときは、Foundry 全体(Object Explorer、Workshop、Quiver)でエンドユーザーに失敗メッセージが表示されます。失敗メッセージは、アクションを実行できない理由をユーザーに伝えます。

Ontology Manager でテスト実行を行うと、指定したパラメーター値に対して実行条件がどのように評価されるかを確認できます。