サンプル: トランザクション内での複数の要求の実行

このサンプルでは、単一のWebメソッド呼び出しを使用して、単一のデータベーストランザクションの一部として、コレクション内のすべてのメッセージ要求を実行する方法を説明します。 ビジネス アプリケーションでは、システム内の複数のレコードの変更を調整して、すべてのデータの変更が成功したか失敗したかのいずれかになるようにすることが一般的な要件です。 データベースの用語では、どれか一つの操作が失敗したときにすべてのデータの変更をロール バックする機能を持つ単一のトランザクションで、複数の操作を実行することとして知られています。

ExecuteTransactionRequest メッセージ要求を使用して、1つのデータベース トランザクションで2つ以上の組織のサービス リクエストを実行することができます。

サンプルは ここ からダウンロードできます。

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

  1. サンプル リポジトリをダウンロードまたは複製して、ローカル コピーを用意します。
  2. (オプション) cds/App.config ファイルを編集して、接続先の Microsoft Dataverse インスタンスを指定した接続文字列を定義します。
  3. サンプル ソリューションを Visual Studio で開き、F5 キーを押してサンプルを実行します。 cds/App.config 内に接続文字列を指定した後、サンプルを実行すると、その接続情報が使用されます。

cds/App.config ファイル内に接続文字列を指定しない場合は、サンプルを実行するたびにダイアログが開き、接続先の Dataverse インスタンスについての情報と、使用する資格情報についての情報を入力する必要があります。 このダイアログには以前の接続がキャッシュされているため、以前に使用した接続を選ぶことができます。

このリポジトリにあるサンプルのうち、Dataverse インスタンスに接続する必要があるものには、cds/App.config ファイルを参照するリンクが含まれます。

このサンプルの概要

ExecuteTransactionRequest メッセージは、1つのデータベース トランザクションで1つ以上のメッセージ要求を実行する際に必要となるデータを含んでおり、さらに必要に応じて結果の集合を返すシナリオで使用することを意図しています。

このサンプルがどのように動作するか

このサンプルの概要 で説明されているシナリオをシミュレートするために、サンプルは次のことを行います。

セットアップ

組織の現在のバージョンをチェックします。

実際にやってみます

  1. ExecuteTransactionRequest メソッドが ExecuteTransactionRequest オブジェクトを作成します。
  2. OrganizationRequestCollection メソッドは、空の組織要求コレクションを作成します。
  3. CreateRequest メソッドがテーブルごとにメソッドがリクエストコレクションに追加されます。

クリーンアップ

セットアップ で作成されたレコードを削除するオプションを表示します。 サンプルによって作成されたテーブルとデータを調べる場合、削除はオプションです。 手動でレコードを削除することで同じ結果を得られます。

注意

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

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