次の方法で共有


Web API の関数とアクションのサンプル (PowerShell)

この PowerShell バージョン 7.4.0 のサンプルでは、Microsoft Dataverse Web API を使用して、バインドされた関数とバインドされていない関数とアクション (カスタム アクションを含む) を呼び出す方法を示します。 このサンプルでは、 Web API Functions と Actions のサンプルで詳しく説明されている 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 を使って FunctionsAndActions.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/FunctionsAndActions/FunctionsAndActions.ps1 にあります。

対象

このサンプルには 9 つのリージョンがあります。

セクション 1: Unbound 関数 WhoAmI

操作: WhoAmI 関数 を呼び出して、現在のユーザーに関する情報を取得します。

セクション 2: バインドされていない関数 FormatAddress

オペレーション

  • 米国内のアドレスのパラメーターを指定して FormatAddress 関数 を呼び出します。
  • 日本のアドレスのパラメーターを使用して同じ関数を呼び出して、異なる書式を示します。

セクション 3: Unbound Function InitializeFrom

オペレーション

  • 元のアカウントレコードと同じものを作成します。
  • InitializeFrom 関数を呼び出して、元のレコードに基づいて新しいレコードのデータを取得します。
  • InitializeFromから返されたデータを使用して、新しいアカウント記録を作成します。

セクション 4: Unbound 関数 RetrieveCurrentOrganization

操作: RetrieveCurrentOrganization 関数 を呼び出して、現在の組織に関する情報を取得します。

セクション 5: Unbound 関数 RetrieveTotalRecordCount

操作: RetrieveTotalRecordCount 関数 を呼び出して、指定したテーブルのレコードの合計数を取得します。

セクション 6: バインドされた関数 IsSystemAdmin カスタム API

オペレーション

  • sample_IsSystemAdminカスタム API が組織にインストールされているかどうかを検出します。
  • インストールされていない場合は、カスタム API を含むマネージド ソリューションをインポートします。
  • sample_IsSystemAdmin関数を使用してシステム ユーザー レコードを取得し、それぞれをテストして、システム管理者のセキュリティ ロールがあるかどうかを判断します。

セクション 7: 制約のないアクション GrantAccess

オペレーション

  • 共有する取引先企業レコードを作成します。
  • 現在のユーザー以外の有効なユーザーを取得します。
  • RetrievePrincipalAccess 関数を使用して、ユーザーのアクセス権を確認します。
  • GrantAccess アクションを使用して、ユーザーに追加のアクセス権を付与します。
  • RetrievePrincipalAccessをもう一度使用してアクセス権が付与されたことを確認します。

セクション 8: バインドされたアクション AddPrivilegesRole

オペレーション

  • 現在のユーザーの部署に関連付けられているセキュリティ ロールを作成します。
  • 展開された特権を持つロールを取得して、既定の特権を表示します。
  • ロールに追加する特定の特権に関する情報を取得します。
  • AddPrivilegesRole アクションを使用して、ロールに特権を追加します。
  • ロールをもう一度取得して、特権が追加されたことを確認します。

セクション 9: サンプル レコードを削除

操作: このサンプルで作成された各レコードへの参照は、作成時にリストに追加されました。 このセクションでは、そのリストをループし、各レコードを削除します。

クリーンアップ

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

こちらも参照ください

Dataverse Web API を使用する
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)