この記事では、SDK for .NET アセンブリのクラスを使用して、Microsoft Dataverse のビジネス データを扱う方法について説明します。 ServiceClient クラスを使用して環境の Organization サービスに接続し、Web サービス操作を実行するための最小限のコンソール アプリケーションを作成します。
アプリケーションは、WhoAmIRequest クラスのインスタンスを渡して IOrganizationService.Execute メソッドを呼び出します。 Web サービスから返される結果は、Dataverse システム ユーザー アカウントの一意の識別子である WhoAmIResponse.UserId の値です。
注意
このクイック スタートの例には、簡潔にするために例外処理は含まれていません。 このクイック スタートは、SDK for .NET に接続して使用するために必要なものの最小コード例です。
完全なコード サンプルは、GitHub の GetStarted から入手できます。 詳細については、プログラムの README を参照してください。
前提条件
- Visual Studio (2022 以降)
- インターネット接続
- ターゲット環境の Dataverse システム ユーザー アカウントのログオン資格情報
- 接続先の Dataverse 環境の URL アドレス
- Visual C# 言語の基本的な理解
アプリケーション コードでの接続文字列またはユーザー名/パスワード認証の使用については、次の重要な情報をお読みください。
重要
Microsoft では、利用可能な最も安全な認証フローを使用することをお勧めします。 この記事で説明する認証フローは、アプリケーションに対する非常に高い信頼を必要とし、他のフローには存在しないリスクを伴います。 このフローは、マネージド ID など、他のより安全なフローが実行できない場合にのみ使用してください。
Visual Studio プロジェクトの作成
新しい .NET コンソール アプリ プロジェクトを作成します。 このプロジェクトでは、Visual Studio 2022を使用し、.NET 6 をターゲットとしています。
Solution Explorer で、作成したプロジェクトを右クリックして、コンテキスト メニューで NuGet パッケージの管理... を選択します。
Microsoft.PowerPlatform.Dataverse.Client
NuGet パッケージの最新バージョンを参照して、インストールします。
注意
プレビューの変更で OK を促されるので、ライセンスの同意 ダイアログで 同意する を選択します。
アプリケーション コードを選択します
ソリューション エクスプローラーで Program.cs をダブルクリックして、そのファイルを編集します。 ファイルの内容を以下に示すコードに置き換えます。
using Microsoft.Crm.Sdk.Messages; using Microsoft.PowerPlatform.Dataverse.Client; using Microsoft.Xrm.Sdk; class Program { // TODO Enter your Dataverse environment's URL and logon info. static string url = "https://yourorg.crm.dynamics.com"; static string userName = "you@yourorg.onmicrosoft.com"; static string password = "yourPassword"; // This service connection string uses the info provided above. // The AppId and RedirectUri are provided for sample code testing. static string connectionString = $@" AuthType = OAuth; Url = {url}; UserName = {userName}; Password = {password}; AppId = 51f81489-12ee-4a9e-aaae-a2591f45987d; RedirectUri = app://58145B91-0C36-4500-8554-080854F2AC97; LoginPrompt=Auto; RequireNewInstance = True"; static void Main() { //ServiceClient implements IOrganizationService interface IOrganizationService service = new ServiceClient(connectionString); var response = (WhoAmIResponse)service.Execute(new WhoAmIRequest()); Console.WriteLine($"User ID is {response.UserId}."); // Pause the console so it does not close. Console.WriteLine("Press the <Enter> key to exit."); Console.ReadLine(); } }
// TODO
コードのコメントに示されているように、url
、userName
、password
の値を変更します。ヒント
環境 URLは、レガシ Web アプリケーションの 設定 > カスタマイズ > 開発者リソースまたは Power Apps の 設定 (歯車のアイコン) >開発者リソース にあります。
このコード サンプルでは、わかりやすくするためにコード内にユーザー名/パスワード情報を配置していますが、他のコード サンプルでは、その情報の入力を求めるか、別の App.config ファイルまたは appsettings.json ファイルに格納するという、より推奨される方法を使用しています。
AuthType でサポートされる値の一覧は、接続文字列のパラメーターにあります。
プログラムを実行する
F5 キーを押してプログラムを実行します。 出力は次のようになります。
User ID is 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Press any key to exit.
IOrganizationService インターフェイス メソッドを使用する
注意: このプログラムが使用する Dataverse.Client.ServiceClient には、Execute メソッド を含む IOrganizationService インターフェイス が実装されています。
より深く IOrganizationService
インターフェイスを理解するためには、次をお試しください。
WhoAmIRequest クラス の参考記事に移動します。
その記事からサンプル メソッドをコピーします。 次のようになります。
/// <summary> /// Outputs the data returned from the WhoAmI message /// </summary> /// <param name="service">Authenticated client implementing the IOrganizationService interface</param> static void WhoAmIExample(IOrganizationService service) { var response = (WhoAmIResponse)service.Execute(new WhoAmIRequest()); Console.WriteLine($"OrganizationId:{response.OrganizationId}"); Console.WriteLine($"BusinessUnitId:{response.BusinessUnitId}"); Console.WriteLine($"UserId:{response.UserId}"); }
注意: これは
IOrganizationService
サービス インスタンスをパラメーターとして受け入れます。この
WhoAmIExample
メソッドを、プログラムのMain
メソッドの下に貼り付けますこのプログラムの
Main
メソッドを、以下と置き換えます。static void Main() { //ServiceClient implements IOrganizationService interface IOrganizationService service = new ServiceClient(connectionString); WhoAmIExample(service: service); // Pause the console so it does not close. Console.WriteLine("Press the <Enter> key to exit."); Console.ReadLine(); }
このサンプルを再実行すると、次のように表示されるはずです。
OrganizationId:00aa00aa-bb11-cc22-dd33-44ee44ee44ee BusinessUnitId:11bb11bb-cc22-dd33-ee44-55ff55ff55ff UserId:22cc22cc-dd33-ee44-ff55-66aa66aa66aa Press the <Enter> key to exit.
次のステップ
これで、Dataverse に接続する単純なコンソール プログラムが完成しました。このプロジェクトを使用して、他のメソッドやメッセージをお試しください。 このクイック スタート コンソール アプリケーション プロジェクトを使用して、アドホック テストを実施できます。
他の IOrganizationService インターフェイス メソッドを試す
チップ
ドキュメントには、この WhoAmIExample
のように IOrganizationService service
のパラメーターを受け付けるメソッドのサンプルが多くあります。
これらの IOrganizationService methods メソッドの例を試してください。
その他のメッセージを試す
Execute method を使用して呼び出せる他のメッセージは、次の名前空間で見つけることができます。
レコード データの操作方法について説明します
Dataverse テーブルが含むビジネス データの操作方法について、次の記事で説明します。
- .NET 用 SDK を使用したエンティティ クラスの操作
- .NET 用 SDK を使用したテーブル行の作成
- SDK for .NET を使用してテーブルの行を取得する
- SDK for .NET を使用したテーブル行の更新と削除
- .NET 用 SDK を使用したテーブル行の関連付けと関連付け解除
サンプル コードを探索する
.NET 用 SDK のサンプル コードは、Microsoft の GitHub リポジトリ PowerApps-Samples/dataverse/orgsvc に用意されています。
ServiceClient 拡張機能を使用する
IOrganizationService インターフェイス の実装に加えて、ServiceClient は、IOrganizationService
によって定義されたコア メソッドを超える拡張メソッドと、ILogger によるログを有効化する機能を提供します。
ServiceClient の使用に関する詳細情報