FetchXMLをノーコードで編集する方法

今回はコーディングになってしまうFetchXMLをノーコードで編集する方法をご紹介します。


# 1. FetchXMLをダウンロードする
扱いたいテーブルを追加しているモデル駆動型アプリを開きます。

1.1 [フィルターを編集する]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/16eb064b-8784-c0ce-8210-22cca5e2bfe7.png)

1.2 [FetchXMLのダウンロード]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b4b746e7-034b-abe9-6465-114263538572.png)

1.3 注意が出たら[保存]をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/2df38cdb-7977-7ab1-b074-d56af1831c61.png" width=50%>

1.4 XMLファイルで保存されます。
このコードが、このテーブルの規定のビューで使っているクエリです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b26f49dc-3caf-8641-b89d-ea8cae933318.png)



# 2. FetchXML Builderで編集する
## 2.1 XrmToolBoxとFetchXML Builderのインストール
XrmToolBoxというDataverseの開発者ツールがあります。
https://www.xrmtoolbox.com/
こちらからダウンロードしておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ad72fa68-fb0f-f449-6322-41715de853b6.png)

その中にFetchXML Builderというのがあります。こちらを使うと簡単にFetchXMLを書くことができます。
https://fetchxmlbuilder.com/
こちらも個別にインストールする必要がありますので、以下のインストール方法に従ってインストールしてください。
https://fetchxmlbuilder.com/manual-installation/

## 2.2 ツールと環境の接続設定方法

XrmToolBoxのフォルダの中のexeファイルをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/31234a4a-2e43-be10-9133-cf196981f391.png)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/16a3a7a3-beda-b2f2-489e-75fb35ef669a.png" width=30%>

[Tools]タブを開き、正しい手順でインストールしてあると、Filterで「FetchXML Builder」を入力すると出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/74c7bcbc-3965-cae3-ed52-eb13698fede7.png)

[New connection]をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/3b838bae-3e15-51d5-3401-0f54aeed510f.png" width=60%>

[Microsoft Login Control]をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/da98fd96-4a69-dd55-82ca-9ddafb76acbe.png" width=60%>

[Open Microsoft Login Control]をクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1991d9f4-3fda-4f8b-3716-4be37e131561.png" width=60%>

[Office 365]>[Display list of available organizations]>[Login]
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/db0a29d4-9720-3a10-b32f-94cc57906338.png" width=50%>

Microsoftアカウントのメールやパスワードをいれてログインします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/6af8b7d4-b9d8-62be-24e2-289819c3ee6d.png" width=60%>

使いたい環境を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/fd529d40-01ca-5f6d-0206-236065617b0b.png" width=60%>

無事、成功したらコネクションに名前を付けて[Finish]ボタンをクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/bf9d881f-cbff-f7ce-fe8c-fb01726f4bf0.png" width=60%>

[Continue]をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1059b093-7756-9b18-85d9-df873bf314e2.png" width=60%>

## 2.3 FetchXML Builderを使ってFetchXMLを編集する
[Open]>[Open File]をクリックして、ダウンロードしたxmlファイルを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/41616128-6a1e-b8be-d2a9-afc3e3a56a61.png)



[Execute]をクリックすると今のFetchXMLでのクエリ結果が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b855c1d0-3c11-1eb9-2dd1-147333c6ff6a.png)

[View]>[FetchXML]をクリックすると実際のFetchXMLを表示することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/2c5f18e6-dd38-c19b-adf8-18e1d783625d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/8242fe27-0179-e6f4-84b4-3ab61b588d07.png)

[Convert]>[SQL Query]をクリックすると、右側でSQLとして確認することができます。SQLに慣れている方はこちらを試してください。
（C#やJavaScriptも同じように表示できます。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/32f1db8f-67bb-7f54-16d5-425d1f7835e3.png)


画面左で編集したい**列**を右クリックし、メニューで操作を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4a837b44-1612-cc0e-504f-425bb60fbf74.png)

**テーブル**を右クリックすると、フィルタリングや並び替え、関連付けなどもこの場で行うことができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f874a9ba-1dbe-e6ea-a6e4-8712e3894488.png" width=40%>
[Execute]をクリックすると[Result View]タブで変更された実際のデータを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/d573e1b7-4837-5250-4fa0-6e82d0454a09.png)

[FetchXML]タブで変更されたFetchXMLクエリを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/90a9ed3c-01c7-de8c-c85d-b2f6fc33ac27.png)

このように基本的にUIベースで編集していき、Saveしたりこちらをコピーして使うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/c62c72f2-4970-2b90-c9a8-d9b11c7ed8a4.png)


# おまけ
[Convert]でPower Automateをパラメータを取得できたり、Web APIで使えるOdataIDが使えます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f00f6c39-65e2-1963-f678-984e229facbe.png" width=50%>

https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/webapi/query-data-web-api?WT.mc_id=BA-MVP-5002475&utm_source=FetchXMLBuilder&utm_medium=XrmToolBox#basic-query-example

# まとめ
FetchXMLについて、ツールを使った編集方法をまとめました。
この方法を使って、複雑なクエリのコーディングもノーコードで行うことができます。
ぜひ活用してみてください！