一括データ取り込みでパフォーマンスを向上させる ExecuteMultiple を使用する方法
特に、インターネットの待ち時間が最大の制限要因になる場合、Dynamics 365 for Customer Engagement でより高い効率の一括メッセージ渡しシナリオをサポートするため ExecuteMultipleRequest メッセージを使用できます。 ExecuteMultipleRequest はメッセージの Requests 入力コレクションを受け入れ、入力コレクションに表示される受注でメッセージ要求のサンプルのそれぞれを実行し、必要に応じて、各メッセージの応答または発生したエラーを含む Responses のコレクションを戻します。 入力コレクションの各メッセージ要求が別のデータベース トランザクションで処理されます。 ExecuteMultipleRequest は IOrganizationService.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 メッセージ
IOrganizationService。Execute
OrganizationRequest
OrganizationResponse
Microsoft.Crm.Sdk メッセージ
データのインポート