次の方法で共有


Web API の条件付き操作のサンプル (PowerShell)

この 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 でのみテストされています。

[前提条件]

このサンプルを実行する前に、これらのサンプルで使用される概念とパターンについて説明した次の記事を読む必要があります。

これらの記事には同じ前提条件があります。

以下をインストールするか、インストールされていることを確認する

インストールの確認

  1. Visual Studio Code を開きます。

  2. [ ターミナル ] メニューの [ 新しいターミナル] を選択します。

  3. Visual Studio Code ナビゲーション ウィンドウで、PowerShell 拡張機能の アイコンを選択します。

  4. Visual Studio Code ターミナル ウィンドウで、次のスクリプトをコピーして貼り付けます:

    Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString()
    Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
    
  5. Enter キーを押します。 出力は次のようになります。

    PowerShell Version: 7.4.0
    PowerShell Az version: 11.1.0
    

このような結果が表示されない場合は、前提条件をインストールまたは更新してください。

さらに必要なこと

  • Dataverse 環境に有効なユーザー アカウント
  • 接続する Dataverse 環境への URL。 検索方法については、開発者向けリソースを表示 をご覧ください。 次のようになります: https://yourorg.crm.dynamics.com/、これは yourorg.crm が異なります。
  • PowerShell スクリプト言語の基本的な解釈

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

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

  2. Visual Studio Code を使って ConditionalOperations.ps1 ファイルを開きます

  3. この行を編集して、接続したい環境の URL を使用します。

    Connect 'https://yourorg.crm.dynamics.com/' # change this

  4. (オプション) このサンプルが作成するレコードを削除したくない場合は、$deleteCreatedRecords 変数を $false に設定します。

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

  6. サンプルを初めて実行すると、ブラウザ ウィンドウが開きます。 ブラウザ ウィンドウで、認証に使用する資格情報を入力または選択します。

別のユーザーとして接続するには、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)