0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#でDataverseに接続してテーブル一覧を表示してみた

Last updated at Posted at 2023-01-27

はじめに

PowerAppsのモデル駆動の設定が面倒なのでC#からDataverseを操作してみたくなった。
まずはDataverseにあるテーブルの一覧を表示するコードを作成してみた。

前提

・C#の.Net frameworkのコンソールプログラムを作成
・Microsoft.CrmSdk.XrmTooling.CoreAssembly をnugetで追加

コード

dataverseへの接続文字列を構築してCrmServiceClientのインスタンスを作成(CreateCrmService)。
あとは全てのテーブル情報を取得するRetrieveAllEntitiesRequestを作成して実行。

static void Main(string[] args)
{
    if (args.Length < 3)
    {
        Console.WriteLine("引数:ユーザ名 パスワード URL");
        return;
    }
    string user = args[0];
    string password = args[1];
    string url = args[2];
    var organizationService = CreateCrmService(user, password, url);

    var request = new RetrieveAllEntitiesRequest { EntityFilters = EntityFilters.All };
    var response = (RetrieveAllEntitiesResponse)organizationService.Execute(request);
    foreach (var table in response.EntityMetadata)
    {
        Console.WriteLine(table.EntitySetName);
    }
}

private static OrganizationWebProxyClient CreateCrmService(string user, string password, string url)
{
    string authType = "OAuth";
    string appId = "51f81489-12ee-4a9e-aaae-a2591f45987d";
    string reDirectURI = "app://58145B91-0C36-4500-8554-080854F2AC97";
    string loginPrompt = "Auto";
    string ConnectionString = string.Format("AuthType = {0};Username = {1};Password = {2}; Url = {3}; AppId={4}; RedirectUri={5};LoginPrompt={6}",
                                            authType, user, password, url, appId, reDirectURI, loginPrompt);

    var serviceClient = new CrmServiceClient(ConnectionString);
    var organizationService = serviceClient.OrganizationWebProxyClient;
    return organizationService;
}

*プログラムに渡す引数はユーザ名、パスワードはdataverseにアクセス可能なM365ユーザ、URLはモデル駆動のアドレスの先頭部分「https://xxxxxxx.crmx.dynamics.com」を指定

おわりに

テーブルの一覧はわりと簡単に表示できました。今度はテーブルや列の作成、フォームやビュー、ワークフローの中身を探索していこうと思います。

参照情報

0
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?