Web API 機能およびアクションのサンプル (C#)

この .NET 6.0 サンプルでは、Dataverse Web API を使用して一般的なデータ演算を実行する方法を示します。

このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。

注意

この Dataverse 演算のサンプルの実装とコンソール出力は Web API 機能およびアクションのサンプル で詳しく説明されています。またコモン C# の構成の使用は Web API のサンプル (C#) で説明されています。

前提条件

  • Microsoft Visual Studio 2022。
  • データ演算を実行する権限を使用して Dataverse にアクセスします。

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

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

  2. /dataverse/webapi/C#-NETx/FunctionsAndActions/ フォルダーを見つけます。

  3. Visual Studio 2022 を使用して FunctionsAndActions.sln ファイルを開きます

  4. appsettings.json ファイルを編集して、以下のプロパティ値を設定します:

    Property 方法
    Url ご使用の環境の Url。 プレースホルダー https://yourorg.api.crm.dynamics.com の値を環境の値に置き換えます。 開発者リソースを表示 を見て自分の環境の URL を見つけます。
    UserPrincipalName プレースホルダー you@yourorg.onmicrosoft.com の値を環境へのアクセスに使用する UPN の値に置き換えます。
    Password プレースホルダー yourPassword の値を使用するパスワードに置き換えます。
  5. appsettings.json ファイルを保存します

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

コード

このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/FunctionsAndActions/Program.cs

実際の動作

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

セクション 1: Unbound 関数: WhoAmI

操作: 送信 WhoAmI Function と受信 WhoAmIResponse ComplexType

セクション 2: Unbound 関数: FormatAddress

演算:

  1. FormatAddress Function をパラメーターで米国内の住所に送信します。 フォーマットされたアドレスを含む FormatAddressResponse ComplexType を受信します。
  2. 日本の住所のパラメーターについても同様にします。

セクション 3: Unbound 関数: InitializeFrom

演算:

  1. 元のレコードとなる取引先企業レコードを作成します。
  2. InitializeFrom Function を作成された取引先企業レコードを参照するパラメーターで送信します。 データを含む応答を受信し、元のレコードの値を使用して新しい取引先レコードを作成します。
  3. InitializeFromResponse からのデータを使用して新しい取引先企業レコードを作成し、新しいレコードは元のレコードに関連付けられ、組織の列マッピングの構成方法に応じて、潜在的に元のレコードからコピーされたデータを含むようにします。

セクション 4: Unbound 関数: RetrieveCurrentOrganization

操作: 送信 RetrieveCurrentOrganization Function と受信 RetrieveCurrentOrganization ComplexType

セクション 5: Unbound 関数: RetrieveTotalRecordCount

操作: RetrieveTotalRecordCount Function および account テーブルのパラメータを含む contact を送信し、各テーブルのレコード数を含む RetrieveTotalRecordCountResponse ComplexType を受信します。

セクション 6: Bound 関数: IsSystemAdmin

演算:

  1. 組織に sample_IsSystemAdmin カスタム API がインストールされているかどうかを検出します。
  2. インストールされていない場合、カスタム API を含む IsSystemAdminFunction_1_0_0_0_managed.zip にソリューションをインストールします。
  3. 10 件の systemuser レコードを取得します。
  4. sample_IsSystemAdmin 関数を使用してレコードをループし、システム管理者セキュリティ ロールを持つものを検出します。

セクション7: 非バインド アクション: GrantAccess

演算:

  1. 共有する取引先企業レコードを作成します。
  2. 現在のユーザー以外の有効なユーザーを取得します。
  3. RetrievePrincipalAccess Function を使用して、他のユーザーが作成された取引先企業レコードで AccessRights'DeleteAccess' を持っているかどうかを判断します。
  4. DeleteAccess を持っていない場合は、GrantAccess Action を使用してこのアクセス権を他のユーザーと共有します。
  5. RetrievePrincipalAccess を使用してユーザーのアクセスを再度テストし、DeleteAccess を持っていることを確認します。

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

演算:

  1. 呼び出し元の部署に関連付けられた role EntityType レコード作成します。
  2. 拡張された privilege EntityType レコードでロール レコードを取得して、デフォルトで含まれる権限を表示します。
  3. prvCreateAccountprvReadAccount の権限に関する情報を取得します。
  4. 取得した権限に関する情報を使用して、AddPrivilegesRole のパラメーターとなる RolePrivilege ComplexType インスタンスのリストを準備します。
  5. AddPrivilegesRole ActionRolePrivilege パラメーターで送信します。
  6. 拡張された privilege EntityType レコードで再度ロール レコードを取得して、prvCreateAccountprvReadAccount の権限を含む権限を表示します。

セクション 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 分かかります。 個人データは収集されません (プライバシー ステートメント)。