オブジェクト・ワークフローの式ビルダー
式ビルダーを使用して、オブジェクト・ワークフローがトリガーされるタイミングを決定するGroovyベースのアプリケーション・ロジックを記述します。
式ビルダーでは、オプションでトリガー条件の定義に使用できるフィールド参照など、論理演算および算術演算の作成がサポートされています。 式ビルダーのフィールドは、ワークフローを定義するオブジェクトに基づいて移入されます。 式に無効な属性名が含まれている場合は、式ビルダーに警告が表示されますが、属性名が実際に無効であるかどうかを確認する必要があります。 実行時に作成された属性が存在する場合は、警告を無視してかまいません。
インポート管理を使用してレコードが作成された場合、オブジェクト・ワークフローはトリガーされません。 インポート管理では、Groovy検証をバイパスし、オブジェクトのロジックをトリガーします。
使用できる昇給条件の例を次に示します:
例1:
Status=='IN_PROGRESS' && BudgetAvailableDate==Today() + 30
例2:
if (isAttributeChanged('PrimaryContactPartyName') &&
PrimaryContactPartyName =='Business World') return true; else return false;
例3:
WinProb>10 || WinProb<50
式ビルダーを使用して条件を作成する場合は、次の点を考慮してください:
-
昇給条件の一部として有効なブールを返すことを確認してください。 非ブール値を返すと、実行時エラーが発生する可能性があります。
-
return true
またはreturn false
を使用して、評価ロジックが複雑な場合にブール値およびコードのインデントを明示的に返し、ランタイム・エラーのリスクを最小限に抑えます。 -
参照値には、表示値のかわりに参照コードを使用します。
-
比較には、
<
、>
、==
を使用します。 -
イベント・ポイント「レコードの更新時」の場合、関数
isAttributeChanged()
を使用してオブジェクト・ワークフローをトリガーするフィールド変更を常に指定することで、アクションの重複コールを回避します。 -
オブジェクト・ワークフローの
isAttributeChanged()
条件を長いテキスト(CLOB)フィールドに基づかないでください。 かわりに、長いテキスト・フィールドにフィールド・レベルのトリガー(またはisAttributeChanged()
条件を使用するオブジェクト・レベルのトリガー)を作成して、ダミー・テキストまたは数値フィールドを更新します。 次に、isAttributeChanged(NewDummyField)
を使用してオブジェクト・ワークフロー条件を定義できます。 -
明示的なブール値を返さない場合は、Groovyタイプの強制に注意してください。
-
ロギング機能を使用して、条件をデバッグし、「共通設定」ペインで「ランタイム・メッセージ」を選択して生成されたログを確認します。
Groovyスクリプトの詳細は、『Groovyスクリプト・リファレンス』ガイドを参照してください。