TPL データフロー コンポーネントを使用した Web API 並列演算のサンプル (C#)

この .NET 6.0 サンプルでは、タスク並列ライブラリ (TPL) データフロー コンポーネントと共に Dataverse Web API を使用して、並列データ演算を実行する方法について説明します。 詳細: データフロー (タスク並列ライブラリ)

このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。

前提条件

  • Microsoft Visual Studio 2022。
  • データ演算を実行する権限を使用して Dataverse にアクセスします。

このサンプルを実行する方法

  1. PowerApps-サンプル リポジトリをクローンまたはダウンロードします。

  2. /dataverse/webapi/C#-NETx/TPLDataFlowParallelOperations/ フォルダーを見つけます。

  3. Visual Studio 2022 を使用して TPLDataFlowParallelOperations.sln ファイルを開きます

  4. appsettings.json ファイルを編集して、以下のプロパティ値を設定します:

    Property 方法
    Url ご使用の環境の Url。 プレースホルダー https://yourorg.api.crm.dynamics.com の値を環境の値に置き換えます。 開発者リソースを表示 を見て自分の環境の URL を見つけます。
    UserPrincipalName プレースホルダー you@yourorg.onmicrosoft.com の値を環境へのアクセスに使用する UPN の値に置き換えます。
    Password プレースホルダー yourPassword の値を使用するパスワードに置き換えます。
  5. appsettings.json ファイルを保存します

  6. F5 を押してサンプルを実行します。

コード

このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/TPLDataFlowParallelOperations/Program.cs

実際の動作

このサンプルには、接続を最適化するために適用できる設定が含まれています。

このサンプルでは、まず要求を送信して x-ms-dop-hint 応答ヘッダーの値にアクセスし、この環境で推奨される並列処理の程度を決定します。 並列処理の最大限度が x-ms-dop-hint 応答ヘッダーの値と同じに設定されている場合は、スループットが最適化され、最小限の 429 TooManyRequests サービス保護制限エラーが返される安定した状態を実現する必要があります。

このサンプルでサービス保護の制限が発生するためには、numberOfRecords 変数を 10,000 以上、またはサンプルを 5 分以上実行するために必要な値に増やす必要があります。 また、コードを変更して、maxDegreeOfParallelismx-ms-dop-hint 応答ヘッダー値よりも大幅に大きくなるように設定する必要があります。 次に、Fiddler を使用して、このエラーを返す要求を WebAPIService が再試行する方法を確認できます。

このサンプルでは、作成する構成可能な数のアカウントレコードを単に作成し、それを削除します。 このサンプルでは、データフロー コンポーネントを使用してレコードを処理し、作成操作の結果をこれらのレコードを削除する次のフェーズに変換します。 このデータ フローの性質上、以前に作成したレコードの削除操作は、作成するすべてのレコードが完了する前に開始されます。

このサンプルを Web API CDSWebApiService Parallel Operations Sample (C#) と比較するとよいでしょう。

クリーンアップ

デフォルトでは、このサンプルでは作成されたすべてのレコードが削除されます。 サンプルの完了後に作成されたレコードを表示したい場合は、deleteCreatedRecords 変数を false に変更して、レコードを削除するかどうかを決定するプロンプトが表示されます。

参照

Dataverse Web API を使用する
WebAPIService クラス ライブラリ (C#)
Web API を使用してテーブル行を作成する
Web API を使用したテーブル行の更新と削除
サービス保護の API 制限
Web API のサンプル
Web API 基本操作のサンプル (C#)
Web API クエリ データのサンプル (C#)
Web API 条件付き演算サンプル (C#)
Web API 機能およびアクションのサンプル (C#)
Web API テーブル スキーマ操作サンプル (C#)
Web API WebApiService の並列演算のサンプル (C#)

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。