Web API 機能およびアクションのサンプル (C#)
この .NET 6.0 サンプルでは、Dataverse Web API を使用して一般的なデータ演算を実行する方法を示します。
このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。
注意
この Dataverse 演算のサンプルの実装とコンソール出力は Web API 機能およびアクションのサンプル で詳しく説明されています。またコモン C# の構成の使用は Web API のサンプル (C#) で説明されています。
前提条件
- Microsoft Visual Studio 2022。
- データ演算を実行する権限を使用して Dataverse にアクセスします。
このサンプルを実行する方法
PowerApps-サンプル リポジトリをクローンまたはダウンロードします。
/dataverse/webapi/C#-NETx/FunctionsAndActions/ フォルダーを見つけます。
Visual Studio 2022 を使用して
FunctionsAndActions.sln
ファイルを開きますappsettings.json
ファイルを編集して、以下のプロパティ値を設定します:Property 方法 Url
ご使用の環境の Url。 プレースホルダー https://yourorg.api.crm.dynamics.com
の値を環境の値に置き換えます。 開発者リソースを表示 を見て自分の環境の URL を見つけます。UserPrincipalName
プレースホルダー you@yourorg.onmicrosoft.com
の値を環境へのアクセスに使用する UPN の値に置き換えます。Password
プレースホルダー yourPassword
の値を使用するパスワードに置き換えます。appsettings.json
ファイルを保存しますF5 を押してサンプルを実行します。
コード
このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/FunctionsAndActions/Program.cs
実際の動作
このサンプルには 9 つのリージョンがあります。
セクション 1: Unbound 関数: WhoAmI
操作: 送信 WhoAmI Function と受信 WhoAmIResponse ComplexType。
セクション 2: Unbound 関数: FormatAddress
演算:
- FormatAddress Function をパラメーターで米国内の住所に送信します。 フォーマットされたアドレスを含む FormatAddressResponse ComplexType を受信します。
- 日本の住所のパラメーターについても同様にします。
セクション 3: Unbound 関数: InitializeFrom
演算:
- 元のレコードとなる取引先企業レコードを作成します。
- InitializeFrom Function を作成された取引先企業レコードを参照するパラメーターで送信します。 データを含む応答を受信し、元のレコードの値を使用して新しい取引先レコードを作成します。
InitializeFromResponse
からのデータを使用して新しい取引先企業レコードを作成し、新しいレコードは元のレコードに関連付けられ、組織の列マッピングの構成方法に応じて、潜在的に元のレコードからコピーされたデータを含むようにします。
セクション 4: Unbound 関数: RetrieveCurrentOrganization
操作: 送信 RetrieveCurrentOrganization Function と受信 RetrieveCurrentOrganization ComplexType。
セクション 5: Unbound 関数: RetrieveTotalRecordCount
操作: RetrieveTotalRecordCount Function および account
テーブルのパラメータを含む contact
を送信し、各テーブルのレコード数を含む RetrieveTotalRecordCountResponse ComplexType を受信します。
セクション 6: Bound 関数: IsSystemAdmin
演算:
- 組織に
sample_IsSystemAdmin
カスタム API がインストールされているかどうかを検出します。 - インストールされていない場合、カスタム API を含む
IsSystemAdminFunction_1_0_0_0_managed.zip
にソリューションをインストールします。 - 10 件の systemuser レコードを取得します。
sample_IsSystemAdmin
関数を使用してレコードをループし、システム管理者セキュリティ ロールを持つものを検出します。
セクション7: 非バインド アクション: GrantAccess
演算:
- 共有する取引先企業レコードを作成します。
- 現在のユーザー以外の有効なユーザーを取得します。
- RetrievePrincipalAccess Function を使用して、他のユーザーが作成された取引先企業レコードで AccessRights
'DeleteAccess'
を持っているかどうかを判断します。 DeleteAccess
を持っていない場合は、GrantAccess Action を使用してこのアクセス権を他のユーザーと共有します。RetrievePrincipalAccess
を使用してユーザーのアクセスを再度テストし、DeleteAccess
を持っていることを確認します。
セクション8: バインド アクション: AddPrivilegesRole
演算:
- 呼び出し元の部署に関連付けられた role EntityType レコード作成します。
- 拡張された privilege EntityType レコードでロール レコードを取得して、デフォルトで含まれる権限を表示します。
prvCreateAccount
とprvReadAccount
の権限に関する情報を取得します。- 取得した権限に関する情報を使用して、
AddPrivilegesRole
のパラメーターとなる RolePrivilege ComplexType インスタンスのリストを準備します。 - AddPrivilegesRole Action を
RolePrivilege
パラメーターで送信します。 - 拡張された privilege EntityType レコードで再度ロール レコードを取得して、
prvCreateAccount
とprvReadAccount
の権限を含む権限を表示します。
セクション 9: サンプル レコードを削除
操作: このサンプルで作成された各レコードへの参照は、作成時にリストに追加されました。 このセクションでは、$batch
要求を送信してレコードを削除します。
クリーンアップ
デフォルトでは、このサンプルでは作成されたすべてのレコードが削除されます。 サンプルの完了後に作成されたレコードを表示したい場合は、deleteCreatedRecords
変数を false
に変更して、レコードを削除するかどうかを決定するプロンプトが表示されます。
参照
Web API を使用する条件付き演算を実行する
Dataverse Web API を使用する
WebAPIService クラス ライブラリ (C#)
Web API のサンプル
Web API 基本操作のサンプル (C#)
Web API クエリ データのサンプル (C#)
Web API 条件付き演算サンプル (C#)
Web API テーブル スキーマ操作サンプル (C#)
Web API WebApiService の並列演算のサンプル (C#)
TPL データフロー コンポーネントを使用した Web API 並列演算のサンプル (C#)
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。