オブジェクト・ワークフローを使用したフィールドの更新
フィールド更新は、オブジェクト・ワークフローの作成時に構成するイベント・アクションです。 フィールド更新の構成とは別に複数のイベント・アクションを構成すると、フィールド更新は常に最初に実行され、その他のイベント・アクションは特定の順序で実行されません。
オブジェクト・ワークフローから呼び出されるフィールド更新は、webサービスによるバックグラウンド更新です。 レコードが開いているときにこの更新が実行され、他の更新を実行している場合は、レコードがすでに変更されていることを示すエラーが表示されます。 これは、1つのオブジェクトの同じフィールドを更新しようとしている複数のオブジェクト・ワークフローがある場合にも発生する可能性があります。
これが発生した場合は、レコードを終了し、再度開き、更新を再入力します。 ただし、この状況を回避するには、同じオブジェクトを更新する複数のオブジェクト・ワークフローを作成しないでください。 かわりに、パフォーマンスを犠牲にすることなく、同期オブジェクト・レベルまたはフィールド・トリガー(検証ルール)が同じ結果を達成できるかどうかを検討してください。
オブジェクト・ワークフローの一部としてフィールド更新を構成する方法の概要を次に示します:
-
アプリケーション・コンポーザの概要ページで、「オブジェクト・ワークフロー」を選択します。
-
を選択します。
-
「オブジェクト」を選択し、ワークフローに意味のある「名前」を指定します。
-
ワークフローのトリガー条件を定義します。
ノート:条件を定義するときに、このワークフローの繰返し実行がGroovyスクリプトによって削除されていることを確認します。
-
「フィールド更新」イベント・アクションを選択します。
-
作成処理: 「フィールド更新」ページで、フィールド更新アクションの「名前」を指定します。
-
更新するフィールドと、ワークフローがトリガーされた後の新しいフィールド値を指定します。 更新する追加フィールドを選択するには、「その他のフィールドの更新」オプションを使用します。 フィールド更新の構成方法の例は、オブジェクト・ワークフローの構成を参照してください。
レコードを開いており、そのレコードのフィールドでワークフローがトリガーされた場合は、レコードを終了して再オープンし、更新を確認する必要があります。
固定選択リストの表示順序の指定
固定選択リストでは、フィールド値のリストをアルファベット順に並べるか、高、中、低などの表示順序を使用できます。 表示順序の固定選択リスト・フィールドを更新する場合は、リストに次の値を移入するか、前の値を入力するかを指定します。
たとえば、表示順序が高、中および低の場合は、フィールドの更新中に高から中(次の値で移入)、低から中(前の値で移入)に変更できます。 ただし、現在の値が低で、リストの次の値を移入して構成した場合、低はすでに順序の最後の値であるため、フィールドは更新されません。
プライマリ・オブジェクトと子オブジェクトのサポート
親オブジェクトまたは子オブジェクトを使用して、フィールドの更新を構成できます。 オブジェクト・ワークフローの定義時に子オブジェクトを選択すると、その子オブジェクトのレコードでのみフィールドを更新できます。その子オブジェクトの親のレコードのフィールドは更新できません。
たとえば、Opportunityの子オブジェクトであるOpportunity Teamに対してワークフローを定義する場合、新しいチーム・メンバー(子レコード)がOpportunity Teamに追加されたときにフィールドの更新を構成できますが、親Opportunityオブジェクトのレコードに対してフィールドの更新は構成できません。
また、フィールド更新の構成中にフィールド・トークンを挿入する場合、選択した子オブジェクトに属するトークンのみを選択できます。 フィールドの更新を構成するときにトークンを挿入する方法の例は、オブジェクト・ワークフローの構成のトピックを参照してください。
オブジェクト・ワークフローとトリガー
オブジェクト・ワークフローは非同期です。 遅延時間など、フィールドを非同期に更新する必要がある場合にのみ、オブジェクト・ワークフローおよびフィールド更新アクションを使用します。
ただし、実行時に変更をすぐにユーザー・インタフェースに反映する場合は、更新前トリガーなどのスクリプトとトリガーを使用します。