フロー内の保存前更新を使用した新規レコードと変更されたレコードの 10 倍速い更新

レコードの作成または更新により自動起動フローをトリガし、追加の更新をレコードに加えてからレコードをデータベースに保存することができるようになりました。フロー内の保存前更新は、他の使用可能なレコードトリガ更新よりもはるかに高速です。たとえば、フロー内の保存前更新は、プロセスビルダーで作成されたレコード変更プロセスでの更新よりも 10 倍高速です。レコード変更プロセスをフローに置き換えて、ユーザがレコードを保存するときにスピナーが表示される頻度を最小限にします。

対象: この変更は、Essentials Edition、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition の Lightning Experience と Salesforce Classic に適用されます。

対象ユーザ: 保存前更新を実行するフローを有効化するには、「すべてのデータの参照」権限が必要です。

理由: おそらく、プロセスビルダーに精通したユーザは、レコード変更プロセスを使用して、プロセスをトリガする各レコードに追加の更新を加えます。このようなプロセスでは、新しいケースレコードごとに [範囲] カスタム項目が自動的に設定される可能性があります。フロー内の保存前更新では、同じ目的をより短時間で達成できます。各レコードがデータベースに再度保存されないためです。この追加の保存手順を回避することで、実行に時間のかかる割り当てルール、自動レスポンスルール、ワークフロールール、および他のカスタマイズの再実行もスキップされます。

おそらく Apex トリガには慣れているでしょう。保存前更新を実行するフローは before トリガに似ています。前述のレコード変更プロセスは after トリガに似ています。保存手順で、フロー内の保存前更新は Apex before トリガの直前に実行されます。

このスピードのため、フロー内で保存前更新を使用して、新規または変更されたレコードの項目を更新することをお勧めします。Apex コードとレコード変更プロセスをフロー内の保存前更新に置き換えることで、Salesforce サーバの最大 CPU 時間の制限を回避することもできます。ただし、次の目的では、レコード変更プロセスまたは Apex after トリガの使用が必要になる場合があります。
  • 最終更新日項目や新規レコードの ID など、レコードの保存後にのみ設定される項目値にアクセスする。
  • 関連レコードを作成または更新する。
  • フローを起動するレコードの更新以外のアクションを実行する。

方法: 自動起動フローを作成して、[開始] 要素を開きます。[フローを起動するもの] で [新規または更新済みのレコード—フローによって項目の更新が高速になります] を選択します。[開始を編集] モーダルで [フローを起動するもの] が [新規または更新済みのレコード—フローによって項目の更新が高速になります] に設定されています。また、[フローを開始するタイミング] が [レコードが作成または更新されたとき] に設定され、[オブジェクト] が [商談] に設定されています。

保存前更新を実行するフローの場合、Flow Builder ツールボックスでは、[割り当て]、[決定]、[レコードの取得]、および [ループ] の 4 つの要素のみが提供されます。4 つの項目を含む [要素] タブを表示している Flow Builder。キャンバスには [When Opportunity is Created or Updated (商談が作成または更新されたとき)] という表示ラベルの [開始] 要素、[Closed Won? (商談成立?)] という表示ラベルの [決定] 要素、[Renew Oppty (商談の更新)] という表示ラベルの [割り当て] 要素が含まれています。[決定] 要素と [割り当て] 要素間のコネクタの表示ラベルは [はい] です。

フロー内の $Record グローバル変数にはレコード値が含まれます。[割り当て] 要素を使用してこの値を更新し、Salesforce で残りを処理します。変数を作成したり、[レコードを更新] 要素をフローに追加したりする必要はありません。