一括データ取り込みでパフォーマンスを向上させる ExecuteMultiple を使用する方法

特に、インターネットの待ち時間が最大の制限要因になる場合、Dynamics 365 for Customer Engagement でより高い効率の一括メッセージ渡しシナリオをサポートするため ExecuteMultipleRequest メッセージを使用できます。 ExecuteMultipleRequest はメッセージの Requests 入力コレクションを受け入れ、入力コレクションに表示される受注でメッセージ要求のサンプルのそれぞれを実行し、必要に応じて、各メッセージの応答または発生したエラーを含む Responses のコレクションを戻します。 入力コレクションの各メッセージ要求が別のデータベース トランザクションで処理されます。 ExecuteMultipleRequestIOrganizationService.Execute メソッドを使用して実行されます。

一般に、ExecuteMultipleRequest は、より優れたパフォーマンスの場合を除き、入力要求コレクションの各メッセージ要求を実行する場合とほぼ同じように動作します。 サービス プロキシの CallerId パラメーターの使用は受け入れられ、入力要求コレクションの各メッセージの実行に適用されます。 処理されるメッセージごとに見込まれるため、プラグインとワークフロー活動が実行されます。

プラグインおよびカスタム ワークフロー活動の形式のカスタム コードで ExecuteMultipleRequest を実行できます。 ただし、覚えておく必要のある数個の急所があります。 同期の登録プラグインでスローされた例外は応答コレクション アイテム Fault パラメーターで戻ります。 プラグインがデータベース トランザクション内で実行する場合、プラグインは ExecuteMultipleRequestを実行し、トランザクションのロールバックが開始され、そのロールバックには、ExecuteMultipleRequestによって実行された要求によって発生したすべてのデータ変更が含まれます。

ExecuteMultiple に関する最新情報については、組織サービスを使用して複数の要求を実行する を参照してください。 レコメンデーションとガイダンスについては、プラグインとワークフローの活動でバッチ要求タイプを使用しないでください をご覧ください。

同時リクエストに制限を適用する

ExecuteMultipleRequest の使用に関連するいくつかの制約があります。 オンプレミスの展開にのみ適用される 1 つの制限を以下に説明し、他の 2 つの制限 (再帰なし、および最大バッチ サイズ) は (Dataverse) 実行時の制限で文書化されています。

同時呼び出しの調整 – Dynamics 365 for Customer Engagement の場合、組織ごとの ExecuteMultipleRequest 同時呼び出しの数の実行に制限を設定することができます。 これにより、1 つのアプリがサーバー リソースを独占するのを防ぐことができます。 この制限を超えると、最初の要求が実行される前に「サーバー ビジー」フォールトがスローされます。 これは既定では、有効化されていません。 この上限の展開設定は、ExecuteMultiplePerOrgMaxConnectionsPerServerです。

チップ

任意の Customer Engagement 展開の場合、展開管理者はスロットリングの限界を設定、または変更できます。

関連項目

IOrganizationService Web サービスを使用したデータおよびメタデータの読み取り/書き込み
Microsoft.Xrm.Sdk メッセージ
IOrganizationServiceExecute
OrganizationRequest
OrganizationResponse
Microsoft.Crm.Sdk メッセージ
データのインポート