この 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 でのみテストされています。
[前提条件]
このサンプルを実行する前に、これらのサンプルで使用される概念とパターンについて説明した次の記事を読む必要があります。
- 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 を使って
FunctionsAndActions.ps1ファイルを開きますこの行を編集して、接続したい環境の URL を使用します。
Connect 'https://yourorg.crm.dynamics.com/' # change this(オプション) このサンプルが作成するレコードを削除したくない場合は、
$deleteCreatedRecords変数を$falseに設定します。F5 を押してサンプルを実行します。
サンプルを初めて実行すると、ブラウザ ウィンドウが開きます。 ブラウザ ウィンドウで、認証に使用する資格情報を入力または選択します。
別のユーザーとして接続するには、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)