この PowerShell バージョン 7.4.0 のサンプルでは、Microsoft Dataverse サーバーに含まれているテーブル行のバージョン、または現在クライアントによって管理されているテーブル行のバージョンに基づいて、条件付きで操作を実行する方法を示します。 このサンプルでは、 Web API の条件付き操作のサンプルで詳しく説明されている Dataverse 操作とコンソール出力を実装します。
このサンプルでは、 Dataverse Web API PowerShell ヘルパー関数 を使用して認証を管理し、一般的な操作を実行するための再利用可能な関数を提供します。 これらのスクリプトは、次の行で ドット ソーシング を使用して参照されます。
. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
注
このサンプルは Windows、Linux、macOS で動作するはずですが、Windows でのみテストされています。
[前提条件]
このサンプルを実行する前に、これらのサンプルで使用される概念とパターンについて説明した次の記事を読む必要があります。
- PowerShell と Visual Studio Code を使ったクイックスタート Web API
- Dataverse Web API で PowerShell と Visual Studio Code を使用する
これらの記事には同じ前提条件があります。
以下をインストールするか、インストールされていることを確認する
Visual Studio Code をインストールします。 Visual Studio Code をダウンロードする を参照してください
Visual Studio Code 用の PowerShell 拡張機能をインストールします。 Visual Studio Code 用 PowerShell を参照してください
PowerShell 7.4 移行をインストールします。 Windows、Linux、macOS に PowerShell をインストールする を参照します
Az PowerShell モジュール バージョン 11.1.0 以降をインストールします。 Azure PowerShell をインストールする方法 を参照します
既存のインストールを最新のバージョンに更新 するには、
Update-Module -Name Az -Forceを使います
インストールの確認
Visual Studio Code を開きます。
[ ターミナル ] メニューの [ 新しいターミナル] を選択します。
Visual Studio Code ナビゲーション ウィンドウで、PowerShell 拡張機能の
アイコンを選択します。Visual Studio Code ターミナル ウィンドウで、次のスクリプトをコピーして貼り付けます:
Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString() Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).VersionEnter キーを押します。 出力は次のようになります。
PowerShell Version: 7.4.0 PowerShell Az version: 11.1.0
このような結果が表示されない場合は、前提条件をインストールまたは更新してください。
さらに必要なこと
- Dataverse 環境に有効なユーザー アカウント
- 接続する Dataverse 環境への URL。 検索方法については、開発者向けリソースを表示 をご覧ください。 次のようになります:
https://yourorg.crm.dynamics.com/、これはyourorg.crmが異なります。 - PowerShell スクリプト言語の基本的な解釈
このサンプルを実行する方法
PowerApps-サンプル リポジトリをクローンまたはダウンロードします。
Visual Studio Code を使って
ConditionalOperations.ps1ファイルを開きますこの行を編集して、接続したい環境の URL を使用します。
Connect 'https://yourorg.crm.dynamics.com/' # change this(オプション) このサンプルが作成するレコードを削除したくない場合は、
$deleteCreatedRecords変数を$falseに設定します。F5 を押してサンプルを実行します。
サンプルを初めて実行すると、ブラウザ ウィンドウが開きます。 ブラウザ ウィンドウで、認証に使用する資格情報を入力または選択します。
別のユーザーとして接続するには、Disconnect-AzAccount コマンド を実行して、再試行してください。
Code
このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/PS/ConditionalOperations/ConditionalOperations.ps1
対象
このサンプルには 4 つのリージョンがあります。
セクション 0: サンプル レコードを作成する
操作: アカウント レコードを作成し、それを取得して初期 ETag 値をキャプチャします。
セクション 1: 条件付き GET
オペレーション
- 最初の ETag 値
If-None-Matchヘッダーを使用してアカウントの取得を試みます。これは、レコードが変更されていない場合に304 NotModified応答が返されることを示しています。 - アカウントの電話番号を更新します。
- 最初の ETag 値を持つ
If-None-Matchヘッダーを使用してアカウントの取得を再試行します。これは、レコードが変更されたために完全なレコードが返されることを示しています。
セクション 2: 削除と更新に関するオプティミスティック コンカレンシー
オペレーション
- 最初の ETag 値
If-Matchヘッダーを使用してアカウントを削除しようとすると、ETag が一致しない場合に412 PreconditionFailedエラーが返されることを示します。 -
If-Matchヘッダーを使用して初期 ETag 値を使用してアカウントを更新しようとすると、ETag が一致しない場合に412 PreconditionFailedエラーが返されることを示します。 -
If-Matchヘッダーを使用して現在の ETag 値でアカウントを更新し、ETag が一致したときに更新が成功することを示します。 - アカウントを取得して更新を確認します。
セクション 3: サンプル レコードを削除する
操作: このサンプルで作成された各レコードへの参照は、作成時にリストに追加されました。 このセクションでは、そのリストをループし、各レコードを削除します。
クリーンアップ
デフォルトでは、このサンプルでは作成されたすべてのレコードが削除されます。 サンプルの完了後に作成されたレコードを表示したい場合は、deleteCreatedRecords 変数を false に変更して、レコードを削除するかどうかを決定するプロンプトが表示されます。
こちらも参照ください
Dataverse Web API を使用する
Web API を使用して条件付き操作を実行する
PowerShell と Visual Studio Code を使ったクイックスタート Web API
Dataverse Web API で PowerShell と Visual Studio Code を使用する
Web API サンプル
Web API の条件付き操作のサンプル
Web API の条件付き操作のサンプル (C#)
Web API の条件付き操作のサンプル (クライアント側 JavaScript)