【kintone】PowerAutomateDesktopでレコード取得してExcelに書きこむ

# はじめに
Power Automate Desktopを使ったレコードの取得の手順を解説します。
今回は複数レコードを取得してからのExcelを起動してその値をシートに書きこんでいきます。

# 手順
1. 変数の設定
1. Webサービスを呼び出します
1. JSONをカスタムオブジェクトに変換
1. Excelの起動
1. 行カウント用の変数の設定
1. 取得したレコード数分ループ
1. ワークシートへ書き込み


## 設定
### 1.変数の設定
変数の設定を6つ、フローに追加してそれぞれ下記の設定をしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/19685521-1131-7466-7481-3d7135c615ae.png)


| 変数 | 値 |
|:-:|:-:|
| APPID  | アプリのID  |
| APITOKEN  |  アプリ設定のapiTokenをコピペ |
| SUBDOMAIN  | `https://sample.cybozu.com`のsampleの部分をコピペ|
| URL  | https://%SUBDOMAIN%.cybozu.com/k/v1/records.json  |
| HEADER  | X-Cybozu-API-Token: %APITOKEN%  |
| QUERY  | レコード番号 > "1" and レコード番号 < "10" order by レコード番号 desc limit 100  |

`クエリは適宜書き換えてください。今回はレコード番号1より大きくて10未満のレコードをレコード番号降順で100件取得します。`

### 2.Webサービスを呼び出します
HTTP項目にあるWebサービスをフロー追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/1fa24386-a5aa-0e05-344e-ae9f21fbbb2a.png)

| 項目 | 値 |
|:-:|:-:|
| URL  | %URL%?app=%APPID%&query=%QUERY%  |
| メソッド  | GET  |
| 受け入れる  | %''%  |
| コンテンツタイプ  | %''%  |
| カスタムヘッダー  | %HEADER%  |

:::note info
コンテンツタイプを指定しない書き方が今回のポイントです。
:::

<details><summary>エラー処理追加しておきたい場合</summary>

ifを追加して、エラー処理を追加しておくのも良いです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/62fff5e7-a2e0-1cf3-4b4f-8556d5e2ce14.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/942a8623-2573-b74c-17d7-5c8dfdba1f2c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/5506368f-ff2d-5543-c0d2-0d5dbcbf0f2a.png)
</details>

### 3.JSONのカスタムオブジェクトに変換
JSONを変換し書き込む準備のため、こちらをフローに追加します。生成された変数はデフォルトのままにしてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/0638d428-c6a8-f5f8-1db9-7a5a7a772ed9.png)

| 項目 | 値 |
|:-:|:-:|
| JSON  | %WebServiceResponse%  |
| 生成された変数 | %JsonAsCustomObject% |

### 4.Excelの起動
Excelの起動をフローに追加します。生成された変数はデフォルトのままにしてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/f575b1ab-71b7-50b1-8f94-62980c8df4a3.png)

| 項目 | 値 |
|:-:|:-:|
| Excelの起動  | 空のドキュメントを使用  |
| 生成された変数  | %ExcelInstance%  |

### 5.行カウント用の変数の設定
フローのExcel起動の下に変数の設定を1つ追加します。
この値を使ってレコードの数行をずらしていきます。
| 項目 | 値 |
|:-:|:-:|
| Count  | 1  |

### 6.取得したレコード数分ループ
For eachをフローに追加します。保存先は`RECORD`と命名しなおします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/b5760a5a-f92e-9b1c-91a6-35ab4533b1be.png)

| 項目 | 値 |
|:-:|:-:|
| 反復処理を行う値  | %JsonAsCustomObject['records']%  |
| 保存先  | RECORD  |

### 7.ワークシートへ書き込み
取得したレコードを書き込んでいきます。フローへワークシートに書き込むを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/feddfcf0-178e-a04b-a5ea-76860bd39082.png)

| 項目 | 値 |
|:-:|:-:|
| Excelインスタンス  | %ExcelInstance%  |
| 書き込む値  | %RECORD['レコード番号']['value']%  |
| 書き込みモード  | 指定したセル上  |
| 列  | 1  |
| 行  | %Count%  |


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719638/7e23988d-07cc-9a77-9b16-4fb5a9bc6cd1.png)

今回はレコード番号のみ順番に書き込むように設定しておりますが、Excelワークシートに書き込むをコピーして`レコード番号`の部分を別フィールド名に変更、列を2に変更して...あげると一覧が作成できます。

:::note alert
サブテーブルや配列を指定した場合、さらに分岐処理を追加して適宜書き込んであげてください。
:::

## おわり
PowerAutomateDesktopを使用してkintoneのレコードを取得していきました。
Excelに書き込んだりWordにもOutlookも、と使い方次第で夢が広がりそうですね。
私もまだ試していなことばかりなので引き続き触っていきたいと思います！

それでは
### 楽しいkintoneライフを:relaxed: