0
2

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 5 years have passed since last update.

ExcelのPowerQuery機能を使ってDynamics365のデータを取得する

Last updated at Posted at 2019-01-22

記事の概要

ExcelのPowerQuery機能でDynamics365のデータを取得できます。

  • Dynamics365上で列として表示できないような、GUIDなども取得できます。
  • エンティティとして高度な検索で選択できないようなテーブルのデータも取得できます。(個人ビューなど)
  • PowerAppsのモデル駆動形アプリにも同様の手順が可能です。

PowerQueryについて

ExcelでPowerQueryの機能を使えると最近知りました。
PowerQueryはPowerBIでも使われている、データをSQLなしで取得でき、さらに結合したり計算列を設定したりなどできるものです。
今回は単純に取得する場合の手順です。

プライベートで使っているOfficeは2013では、下の記事のようにはいきませんでした。
ODataのデータを取り込むメニューはあったのですが、Dynamics365にログインできませんでした。。。
このあたりはなにか方法があるかもしれません。
(Excel2016はできるかわからないです)

Office365のライセンスがあれば、Excelが最新化されて下の記事の方法が使えるようになりました。

手順

image.png

WebAPIのURLが下記のようにありますが、v9.0以上にアップデートする前は、末尾を8.2にする必要があります。
また、日本リージョンでOffice365のテナントを展開している場合は、crmでなく、crm7です。
https://<tenant>.crm.dynamics.com/api/data/v9.0

tenantの部分は利用している環境のテナント名に置き換えます
image.png

サインインボタンを押してサインインします。
このときエラーが出るときは、先に入力したURLが間違っているかもしれません。
例えば、crmに7をつけ忘れた場合は、「リモート名が解決できません」と表示されてサインインできませんでした。
image.png

うまくいくと下記のようにテーブルが表示されます。
内部のテーブル名で表示されているため、知っているエンティティに対応がないテーブルがたくさんあると思います。
Google等で検索すると対応するエンティティがわかるものもあります。
私もDynamics365のオンプレ版は触ったことがないので、確実な対応はわからないのですが。。。
下記はsavedqueriesテーブルで、システムビューのデータを保存しているテーブル。。。だったと思います。
個人ビューはuserqueriesだったと思います。。。曖昧ですみません。
image.png

ここでテーブルを選択して編集ボタンを押すと下記の画面になります。
いろいろできるのですが、今回はそのまま閉じて読み込むを押します。
image.png

こんな感じで取れました。
image.png

最後に

SaaSサービスはDBが見えないせいで、たまにむず痒い思いをすることがあったのですが、
この方法なら見れます。

WebAPIで取得できるということは、個人ビューなどをWebAPIによって一括挿入・更新できるのでしょうか。
試す価値はありそうですね。

「データの更新」でデータも更新できると思います(まだ試してない)
テーブルからピポットテーブルやグラフを作ると、Dynamics365にアクセスせずして帳票作成的なことができるかもしれないですね。

0
2
0

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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?