次の方法で共有


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 関数 を送信して、WhoAmIResponse ComplexType を受信します。

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

操作:

  1. FormatAddress 関数 を、米国内の住所のパラメーターとともに送信します。 FormatAddressResponse ComplexType を書式設定された住所とともに受信します。
  2. 日本の住所のパラメーターについても同様にします。

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

操作:

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

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

操作: RetrieveCurrentOrganization Function を送信して、RetrieveCurrentOrganization ComplexType を受信します。

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

操作: RetrieveTotalRecordCount 関数accountcontact テーブルのパラメーターとともに送信し、各テーブル内のレコード数を含む 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 関数 を使用して、他のユーザーが作成した取引先企業レコード AccessRights'DeleteAccess' を持っているかどうかを判断します。
  4. ユーザーが DeleteAccessを持っていない場合は、 GrantAccess アクション を使用して、このアクセス権を他のユーザーと共有します。
  5. RetrievePrincipalAccess を使用してユーザーのアクセスを再度テストし、DeleteAccess を持っていることを確認します。

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

操作:

  1. 呼び出し元の部署に関連付けられた ロール EntityType レコードを作成します。
  2. 拡張された privilege EntityType レコードを持つロールレコードを取得して、既定で含まれる特権を表示します。
  3. prvCreateAccountprvReadAccount の権限に関する情報を取得します。
  4. 取得したこれらの特権に関する情報を使用して、パラメーターとなる RolePrivilege ComplexType インスタンスの一覧を準備します AddPrivilegesRole
  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#)