Loading
メールアドレスがデフォルトのログイン方式となります 続きを読む
Salesforce フローを使用したビジネスプロセスの自動化
トランザクションでのフローの一括処理

トランザクションでのフローの一括処理

フローが複数のレコードに対して同時に実行される場合 (100 件のケースをインポートする場合など)、Salesforce はレコードごとに 1 つのフローインタビューを作成します。一括処理では、これらのインタビュー間で類似する操作がグループ化されるため、ガバナ制限に達することなくトランザクションを効率的に完了できます。

一括処理を使用しない場合、100 のインタビューがそれぞれ独自の Salesforce Object Query Language (SOQL) クエリとデータ操作言語 (DML) ステートメントを実行すると、すぐにガバナ制限を超える可能性があります。Salesforce は、操作を自動的にグループ化することでガバナ制限の失敗を防ぎます。複数のインタビューが同じ要素に到達すると、Salesforce はそれらの操作 (100 ではなく 1 つの SOQL クエリまたは 100 ではなく 1 つの DML ステートメント) を一括処理します。

Salesforce はインタビュー全体の操作を自動的に一括処理します。複数のインタビューが同じ要素に到達すると、Salesforce は個別に操作を実行するのではなく一括処理します。ただし、1 つのフローのロジック内で、DML 操作をループ外にするなど、フローの設計を考慮してください。ループ内の [レコードを作成] 要素では、反復ごとに 1 つの DML 操作が実行され、Salesforce では自動的に統合されません。

  • フローの一括処理のしくみ
    インタビューの操作は、同じ要素を実行する場合にのみ一括処理されます。つまり、インタビューがすべて同じフローに関連付けられます。
  • 一括処理可能なフロー要素
    フローでは、DML ステートメントまたは SOQL クエリを実行する要素や、フロー外の他の操作 (メール送信など) を行う要素を一括処理できます。
  • フローの一括処理の例
    次の例では、データローダーで 100 件のケースが更新されるときに、フローの操作がどのように一括処理されるかを示します。

フローの一括処理のしくみ

インタビューの操作は、同じ要素を実行する場合にのみ一括処理されます。つまり、インタビューがすべて同じフローに関連付けられます。

必要なエディション

サポートされているエディションを表示する。

1 つのトランザクションで同じフローの複数のインタビューが実行される場合、インタビューはそれぞれ一括処理可能な要素に達するまで実行されます。Salesforce は、同じ要素で停止したすべてのインタビューを対象に、これらの操作をインテリジェントにまとめて実行します。他のインタビューが別の要素にあれば、Salesforce はその後、これらの操作をインテリジェントにまとめて実行します。Salesforce は、すべてのインタビューが終了するまでこのプロセスを繰り返します。

一括処理であるにもかかわらず、いずれかのインタビューがガバナ制限に達した場合は、トランザクションのすべてのインタビューが失敗します。インタビューがトランザクション内で実行した操作がすべてロールバックされ、トランザクションの操作が再試行されることはありません。外部データにアクセスする操作はロールバックされません。

次のいずれかの要素の実行中にガバナ制限によるものではないエラーが発生した場合、Salesforce は一括操作で成功したすべてのレコード変更について、保存を 3 回まで試みます。

  • サブフロー ([レコードの作成] 要素と [レコードを更新] 要素のみ)
  • レコードの作成
  • レコードを更新
例
例 100 件のケースをアップロードする場合、MyFlow_2 というフローがケースごとに 1 つのインタビューをトリガーします。
  • 50 のインタビューがレコードの作成要素 Create_Task_1 で停止します。
  • 残りの 50 のインタビューはレコードの作成要素 Create_Task_2 で停止します。

その結果、少なくとも 2 つの一括操作グループが実行されます。

  • 1 つは Create_Task_1 を実行する 50 のインタビュー用
  • 1 つは 50 のインタビューに対して Create_Task_2 を実行する操作です。

一括処理可能なフロー要素

フローでは、DML ステートメントまたは SOQL クエリを実行する要素や、フロー外の他の操作 (メール送信など) を行う要素を一括処理できます。

必要なエディション

サポートされているエディションを表示する。

レコードを作成、更新、削除する要素

レコードの作成、更新、削除時に、トランザクションが DML ステートメントを実行します。

  • レコードの作成要素
  • レコードを更新要素
  • レコードの削除要素
  • クイックアクション、Chatter への投稿、または承認申請コアアクション
  • Apex アクション要素:特定の Apex アクションに応じて異なります。

レコードを検索する要素

レコードの項目が検索されると、トランザクションが SOQL クエリを実行します。

  • レコードを取得要素
  • レコードを更新要素
  • レコードの削除要素
  • Apex アクション要素:特定の Apex アクションに応じて異なります。

メールを送信する要素

  • メールの送信コアアクション
  • メールアラート要素
  • Apex アクション要素:特定の Apex アクションに応じて異なります。

フローの一括処理の例

次の例では、データローダーで 100 件のケースが更新されるときに、フローの操作がどのように一括処理されるかを示します。

必要なエディション

サポートされているエディションを表示する。

関連付けられたフロー

理解しやすくするために、関連付けられたフローの設計を次に示します。

サンプルフローのスクリーンショット

フロー:

  • ケースの親取引先と、その取引先が有するオープンケースの件数を検索します。
  • 取引先のオープンケースが 6 件以上かどうかを確認します。
  • 取引先のオープンケースが 6 件以上の場合:
    • 取引先のディビジョンマネージャーを検索します。
    • 取引先の Chatter フィードに投稿して、ディビジョンマネージャーと取引先所有者に通知します。
  • 取引先のオープンケースが 5 件以下の場合は、取引先の Chatter フィードに投稿して、取引先所有者のみに通知します。

一括処理されるインタビュー

レコードの更新時に、各ケースのフローインタビューが同時に作成されます。インタビューがすべて同じフローに関連付けられます。インタビューはそれぞれ一括処理可能な要素に達するまで実行されます。

最初のインタビューがレコードを取得要素 (1) を処理します。[レコードを取得] は一括処理が可能なため、インタビューは他のすべてのインタビューが同じ処理を終了するまでこの時点で待機します。その後、Salesforce はすべての [レコードを取得] 操作をまとめて実行します (すべて同じフローの同じ要素に対する操作であるため)。トランザクションで、100 件の SOQL クエリではなく、1 件の SOQL クエリが実行されます。

決定要素 (2) で最初のインタビューが評価されます。取引先にケースが 6 件あるため、インタビューが「6 件以上」のパスに転送されます。インタビューが 2 つ目のレコードを取得要素 (3a) に進みます。この要素も一括処理が可能なため、インタビューがこの時点で待機します。

決定要素 (2) で 2 番目のインタビューが評価されます。この取引先はケースが 1 件のため、インタビューが「5 件以下」のパスに転送されます。インタビューは [Chatter に投稿] コアアクション (4) に進みます。この要素も一括処理が可能なため、インタビューがこの時点で待機します。

すべてのインタビューが処理された後、30 は 2 つ目のレコードを取得要素 (3a) の実行を待機し、残りの 70 は [Chatter に投稿] コアアクション (4) の実行を待機します。

Salesforce は、最初の 30 のインタビューに対してすべての [レコードを取得] (3a) 操作を実行します。トランザクションで、30 件の個々の SOQL クエリではなく、1 件のクエリが実行されます。

次に、トランザクションが [Chatter に投稿] コア アクション (4) に戻ります。このコア アクションでは、70 のインタビューが Chatter に投稿操作を実行する準備が整っています。これらのインタビューの取引先は、ケースが 5 件以下しかありません。Salesforce が、Chatter への投稿操作をまとめて実行します。トランザクションで、各 Chatter 投稿を作成する 100 件の個別の DML ステートメントではなく、100 の投稿をすべて一度に作成する 1 件の DML ステートメントが実行されます。[Chatter に投稿] コアアクションは後続の要素に結び付けられていないため、この 70 のインタビューは終了します。

関連するディビジョンマネージャーを検索した 30 のインタビューは、最後の [Chatter に投稿] コアアクション (3b) に進みます。30 のすべてのインタビューの準備が整ったら、Salesforce が 30 の [Chatter に投稿] 操作をまとめて実行します。Chatter 投稿ごとの 30 件の個々の DML ステートメントではなく、1 件の DML ステートメントが実行されます。[Chatter に投稿] コアアクションは別の要素に結び付けられていないため、この 30 のインタビューは終了します。

 
読み込み中
Salesforce Help | Article