前回Power系のコマンドについて記事を書きましたが、今回はDateverseについて書いていきます
-
PowerShellでPower系(PowerApps、PowerAutomate)を操作する - ナストンのまとめ
今回はPowershellからPowerApps・PowerAutomateのコマンドについて調べたのでそのメモとなりま ...
続きを読む
バージョン | |
OS | Windows 11 Pro |
PowerShell ※PowerShell 7だと今回のモジュールが動作しなかったため | 5.1.22621.2506 |
Microsoft.Xrm.Tooling.CrmConnector.PowerShell(モジュール) | 3.3.0.1007 |
モジュールをインストールする
XRMツールコマンドが使用できるように以下のコマンドでモジュールをインストールします
Install-Module -Name Microsoft.Xrm.Tooling.CrmConnector.PowerShell
エラーが発生する
いざインストールしようとすると以下の証明書エラーが発生してインストールできないませんでした
Install-Module: Cannot bind parameter because parameter 'Name' is specified more than once. To provide multiple values to parameters that can accept multiple values, use the array syntax. For example, "-parameter value1,value2,value3".
調べたところ『-SkipPublisherCheck』オプションをつければ証明書エラーを回避して対象モジュールをインストールすることができました
Install-Module -Name Microsoft.Xrm.Tooling.CrmConnector.PowerShell -SkipPublisherCheck
接続する
以下のサイトを参考に接続をします
-
XRM ツールの PowerShell コマンドレットを使用して Microsoft Dataverse に接続する (Dataverse) - Power Apps | Microsoft Learn
Get-CrmConnection や Get-CrmOrganizations などの XRMツール の PowerS ...
続きを読む
今回はこのようにして接続をしています
$CRMConn = Get-CrmConnection -InteractiveMode
実際に情報を操作する
以下のサイトを参考にアクセストークンを使用してAPI経由で操作してみます
-
Microsoft DataverseのテーブルをPowerShellからCRUD操作してみた #PowerApps - Qiita
概要DataverseのテーブルをPowerShellを使用してWeb APIでCRUD操作します。Power Apps ...
続きを読む
if($CRMConn -ne $null -and $CRMConn.IsReady) {
# エンドポイントURLを取得
$ConnectedOrgPublishedEndpoints = $CRMConn.ConnectedOrgPublishedEndpoints["WebApplication"]
# 対象テーブルの複数系になる。crcf6_testだとcrcf6_testsになる
$targetTable = "crcf6_tests"
# アクセストークンを取得
$token = $CRMConn.CurrentAccessToken
$headers = @{Authorization = " Bearer $token" }
$endPoint = $ConnectedOrgPublishedEndpoints + 'api/data/v9.2/' + $targetTable
# 対象テーブルの全データを取得
$result = Invoke-RestMethod -Uri $endPoint"?$query" -Method 'GET' -Headers $headers
Write-Output $result.value
# 対象テーブル上に新たにデータを作成する(POST)
$body = '{"crcf6_title":"XYZ","crcf6_response_details":"385"}'
$result = Invoke-RestMethod -Uri $endPoint -Method 'POST' -Headers $headers -Body $body -ContentType "application/json"
# 対象テーブル上に既存データを更新する(PATCH)
$body = '{"crcf6_title":"XYZ","crcf6_response_details":"385Update"}'
$rowId = "対象データのID" # 対象テーブル名idとなっている列の値:【crcf6_testid】
Invoke-RestMethod -Uri $endPoint"($rowId)" -Method 'PATCH' -Headers $headers -Body $body -ContentType "application/json"
# 対象テーブル上の既存データの削除(DELETE)
Invoke-RestMethod -Uri $endPoint"($rowId)" -Method 'DELETE' -Headers $headers
}
最後に
調べてみましたが情報がほとんどなく困ったのですが何とかテーブルの情報操作ができるようになりました。もう少し、実際にさわってみて掘り下げる必要がありそうです
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動
-
お問い合わせ | アドバンスド・ソリューション株式会社
お問い合わせはこちら