注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
提出基準(旧称:検証)は、アクションが提出できるかどうかを決定する条件です。提出基準は、オントロジーデータの品質と編集ガバナンスを保証するために、ビジネスロジックをデータ編集権限にエンコードするのに役立ちます。
提出基準は、コンテキスト(ユーザーやパラメーターなど)と静的情報に基づく条件を組み合わせて、論理的な文を作成します。提出基準は、オブジェクト、関係、ユーザー情報を論理的な文に組み込むことで、アクションが提出できるかどうかを判断できます。
例えば、航空会社は特定のフライトの航空機リストを変更したい場合があります。設定されたアクションでは、Flight
オブジェクトにリンクされたAircraft
オブジェクトを変更できます。しかし、航空会社は、選択されたユーザー(フライトコントローラーなど)だけがこのアクションを使用できるようにしたいと考えています。これは、運行中の航空機だけが使用されるようにするためです。提出基準を使用することで、ビルダーはユーザーのグループへの所属と航空機のステータスを組み合わせて、アクションが提出できる条件が満たされた場合にのみ、フライトの航空機を変更するアクションが提出できるようにすることができます。
提出基準は、条件と演算子から構成されています。条件は、パラメーターやユーザー属性の値に対して行われる単一の文です。演算子は、異なる条件を組み合わせたり、ネストしたりするために使用されます。
さまざまな種類の演算子を使用して、ビジネスプロセスや要件を反映したより洗練された文を作成できます。提出基準がすべて満たされた場合にのみ、アクションが提出できます。これは、アクションタイプ自体を編集できるかどうかを制御する権限とは別のものです。オブジェクトタイプは、オブジェクトの追加、変更、削除を行ういくつかのアクションタイプを持つことができますが、それぞれのアクションタイプは独立した提出基準を持っています。
条件とは、2つの値の間の単一の比較チェックです。条件は、パラメーターまたはユーザー入力に基づいてパスまたは失敗します。条件は、2つの条件テンプレートのいずれかを使用して設定できます。「現在のユーザーに基づく」または「パラメーターに基づく」です。これらのテンプレートは、条件の残りの部分のフレームワークを提供します。すべての条件は、中間に演算子を使用して2つの値の間の単純な比較です。
例として、フライトコントローラーの要件は、「現在のユーザー」テンプレートを使用して設定する必要があります。これは、アクションを提出する人のコンテキストが必要だからです。航空機が運行中かどうかを知るためには、「パラメーター」テンプレートを介してAircraft
オブジェクトを使用する必要があります。
現在のユーザー
テンプレートは、アクションを提出するユーザーに基づいて権限を定義します。現在のユーザー
入力は、ユーザーID、グループIDを介したグループメンバーシップ、または利用可能な他のマルチパス属性(ユーザーの組織など)をチェックするために使用できます。Foundryは、ユーザーIDを文字列として評価し、静的に定義されたユーザーIDリストやユーザーIDを格納する文字列パラメーターと比較できます。
グループIDオプションを使用すると、アクションのユーザーがメンバーであるグループ(直接または継承されたメンバーシップ)を使用して条件を作成できます。グループは、静的なグループの選択または他のパラメーターによって提供されるグループIDと比較できます。
マルチパス属性は、文字列リストとして扱われ、他の文字列や文字列リストとのみ比較できます。ユーザーは、アクセス可能な提案されたマルチパス属性のリストを持っています。Other user attribute
フィールドを使用して、ユーザーがアクセスできない属性に対する条件を設定できます。ユーザーが属性にアクセスできない場合、条件が失敗します。
例のユーザーがフライトコントローラーであるかどうかを知るためには、ユーザーがフライトコントローラーグループのメンバーであるかどうかを確認する必要があります。
提出基準は、パラメーターセクションで定義されたパラメーターを使用することもできます。パラメーターは、他のアプリケーションやユーザー自身からアクションタイプに渡されます。パラメーターに対する条件を使用することで、ビルダーはビジネスロジックをアクションタイプに埋め込むことができ、ビジネス要件に合わないデータに対してアクションを提出できないようにユーザーを制限できます。
例では、運行状況はAircraft
オブジェクトから与えられ、各航空機で変更されます。条件はAircraft
オブジェクトタイプパラメーターに基づいて構築する必要があります。
提出基準は、添付ファイルとオブジェクトセットのパラメーターをサポートしていません。これらのパラメータータイプは、選択パネルから削除されます。
条件テンプレートを選択した後、どの値を比較するかを選択します。一部のパラメーター(リストやオブジェクトパラメーターなど)は、比較で使用する値の選択がより詳細である必要があります。リストの長さを比較する代わりに、その内容を比較することもできます。
航空機の例では、航空機の運行状況はAircraft
オブジェクトのプロパティに格納されています。
演算子は、2つの値の間の比較を定義します。構成ワークフローを簡素化するために、演算子はパラメーターに対して有効な演算子の選択肢だけが表示されるように事前フィルタリングされます。パラメーターが変更された場合、このパラメーターを使用するすべての条件を再構成する必要があります。
選択したパラメーターに応じて、いくつかの演算子が利用可能です。単一値パラメーターの場合、以下の演算子が利用可能です。
演算子 | 例 | データ例 | 説明 |
---|---|---|---|
is | name is John Doe | "John Doe" is "John Doe" = TRUE | 左の値が右の値と完全に一致します。 |
is not | 現在のユーザー is not John Doe | “John Doe" is not "Maria Smith" = TRUE | 左の値と右の値が一致しません。 |
matches | name matches ^[A|E|I|O|U]* | "John Doe" matches | 左の値が正規表現に一致します。 |
is less than | Aircraft > Engine Count is less than 2 | 4 is less than 2 = TRUE | 左の値が右の値より小さいです。 |
is greater than or equals | Aircraft > Engine Count is greater than or equals 2 | 4 is greater than or equals 2 = TRUE | 左の値が右の値より大きいです。 |
複数の値を持つパラメーターの場合、以下の演算子が利用可能です。オブジェクト参照リストは、値のリスト(オブジェクトの値または定義されたプロパティの値)に変換されます。
演算子 | 例 | データ例 | 説明 |
---|---|---|---|
includes | Aircrafts > Pilot Name includes "John Doe" | [ "John Doe", "Maria Smith" ] includes "John Doe" = TRUE | 左の値のうち少なくとも1つが右の値と完全に一致します。 |
includes any | List of names includes any Aircrafts > Pilot Name | ["King Louis", "John Doe"] is included in [ "John Doe", "Maria Smith" ] = TRUE | 左の値のうち少なくとも1つが右の値のうち少なくとも1つと完全に一致します。 |
is included in | name is included in [ "John Doe", "Maria Smith" ] | "John Doe" is included in [ "John Doe", "Maria Smith" ] = TRUE | 左の値が右の値のうち少なくとも1つと完全に一致します。 |
each is | Aircrafts > Pilot Name each is "John Doe" | [ "John Doe", "Maria Smith" ] each is "John Doe" = FALSE | すべての左の値が右の値と完全に一致します。 |
each is not | Aircrafts > Pilot Name each is not "John Doe" | [ "John Doe", "Maria Smith" ] each is not "King Louis" = TRUE | すべての左の値が右の値と完全に一致しません。 |
例のユーザーが多くのグループに所属しているが、比較対象のグループが1つだけであるため、重複をチェックするためにincludes
演算子を選択する必要があります。ただし、運行状況は期待される状況と正確に一致する必要があるため、is
演算子を設定する必要があります。
値は、比較のもう一方の側を表します。値は、既存のパラメーター、静的な値、または値なしのいずれかに基づいていることができます。値なしは、最初の値が空(またはnull)であるかどうかをチェックします。演算子と同様に、利用可能なオプションは、最初の値のタイプに依存します。
航空機の例で必要な2つの条件を最終化できるようになりました。フライトコントローラーの場合、正しいグループを静的パラメーターとして選択する必要があります。これは、グループが変更されず、アクションが提出されるたびに常に同じであるべきだからです。したがって、特定の値
を使用し、ドロップダウンで所望のグループを選択します。航空機が運行中と見なされるのは、運行状況プロパティがYes
の場合です。これは、再び特定の値オプションを使用して設定できます。
論理演算子は、異なる条件を組み合わせるために使用できます。論理演算子は、さらに複雑なロジックを作成するためにネストすることもできます。論理演算子は、それが下にあるすべての条件、いずれかの条件、または条件がない場合にパスする必要があります。
失敗メッセージは、アクションが提出できない場合に表示されるエラーを定義するのに役立ちます。ルートレベルの条件と論理演算子はそれぞれ独自の失敗メッセージを持っています。下位レベルの条件が満たされない場合、対応するルートレベル(親)の失敗メッセージが表示されます。失敗メッセージは、条件が満たされない場合に、Foundry全体(Object Explorer、Workshop、Quiver)でエンドユーザーに表示されます。失敗メッセージは、ユーザーがアクションを提出できない理由を通知します。