TPL データフロー コンポーネントを使用した Web API 並列演算のサンプル (C#)
この .NET 6.0 サンプルでは、タスク並列ライブラリ (TPL) データフロー コンポーネントと共に Dataverse Web API を使用して、並列データ演算を実行する方法について説明します。 詳細: データフロー (タスク並列ライブラリ)。
このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。
前提条件
- Microsoft Visual Studio 2022。
- データ演算を実行する権限を使用して Dataverse にアクセスします。
このサンプルを実行する方法
PowerApps-サンプル リポジトリをクローンまたはダウンロードします。
/dataverse/webapi/C#-NETx/TPLDataFlowParallelOperations/ フォルダーを見つけます。
Visual Studio 2022 を使用して
TPLDataFlowParallelOperations.sln
ファイルを開きますappsettings.json
ファイルを編集して、以下のプロパティ値を設定します:Property 方法 Url
ご使用の環境の Url。 プレースホルダー https://yourorg.api.crm.dynamics.com
の値を環境の値に置き換えます。 開発者リソースを表示 を見て自分の環境の URL を見つけます。UserPrincipalName
プレースホルダー you@yourorg.onmicrosoft.com
の値を環境へのアクセスに使用する UPN の値に置き換えます。Password
プレースホルダー yourPassword
の値を使用するパスワードに置き換えます。appsettings.json
ファイルを保存しますF5 を押してサンプルを実行します。
コード
このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/TPLDataFlowParallelOperations/Program.cs
実際の動作
このサンプルには、接続を最適化するために適用できる設定が含まれています。
このサンプルでは、まず要求を送信して x-ms-dop-hint
応答ヘッダーの値にアクセスし、この環境で推奨される並列処理の程度を決定します。 並列処理の最大限度が x-ms-dop-hint
応答ヘッダーの値と同じに設定されている場合は、スループットが最適化され、最小限の 429 TooManyRequests
サービス保護制限エラーが返される安定した状態を実現する必要があります。
このサンプルでサービス保護の制限が発生するためには、numberOfRecords
変数を 10,000 以上、またはサンプルを 5 分以上実行するために必要な値に増やす必要があります。 また、コードを変更して、maxDegreeOfParallelism
が x-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 分かかります。 個人データは収集されません (プライバシー ステートメント)。