PADでXML/JSON形式で取得したデータを利用する
Power Automate for DesktopでXML形式、もしくはJSON形式で取得したデータをループ処理で使用する場合に必要なアクションについて記載します。
WebAPIでデータを取得するとXML形式もしくはJSON形式でレコードが返ってくるので、PADでWebAPIと連携したフローを作成したい際に参考になるかと思います。
ただし、本記事ではPADでのWeb APIからデータを取得するためのTip'sは記載いたしません。そちらの情報をまず得たい方は以下の記事が分かりやすかったので参考にしてみてください。
1⃣XMLデータ形式の読み取り
概要
- レコードを複数回取得するには「XPath式を実行します」アクションでリスト化する
- リストのレコード数分ループするFor Eachアクション内でCurrentItemに対して「XML要素の値を取得します」を実行
サンプル
- 以下のようなXML形式データがあったとすると
<?xml version="1.0" encoding="UTF-8"?>
<BankList>
<Bank>
<code>000000000901</code>
<name>XXX銀行XXX営業部親口座</name>
</Bank>
<Bank>
<code>00000000999</code>
<name>XXX銀行XXX支店</name>
</Bank>
</BankList>
- アクション「ファイルからXMLを読み取ります」の戻り値(変数XmlDocumentに保存される値)は上記のXML形式のデー全てなので、値を取り出す必要があります。
- アクション「Xpath式を実行します」でレコードをリスト化。今回のXMLデータでは
<Bank>
~</Bank>
で囲まれた値が1レコードとなります。
<?xml version="1.0" encoding="UTF-8"?>
<BankList>
<Bank>
<code>000000000901</code>
<name>XXX銀行XXX営業部親口座</name>
</Bank>
<Bank>
<code>00000000999</code>
<name>XXX銀行XXX支店</name>
</Bank>
</BankList>
<Bank>
~</Bank>
で囲まれた値が1レコードとなります。- For eachアクションで反復処理を1の手順で生成されたリストに設定。
- For eachアクション内では1つのレコードから更に使用する項目の値を取り出すためアクション「XML要素の値を取得します」を実行。
最終的なフロー
参考
2⃣JSON形式のデータ読み取り
概要
- アクション「JSONをカスタムオブジェクトに変換」
-
レコードをリスト形式で保存するため、 1の結果をアクション「変数の設定」に入れ込む
- For Eachアクションで2.で設定した変数分ループするように設定
- ループ内で、アクション「変数の設定」を使用し1つのレコードに対して項目と値のリストを生成
- 4で生成したリストから目的の項目を取り出す
上記手順はJSONの構造にもよるためJSONの取得結果を確認して少しずつフローを組むとよいです。
サンプル
- 下記のようなJSON形式のデータがあったとします。
{
"projects": [
{
"id": 101,
"name": "name01",
"identifier": "001",
"description": "",
"status": 1,
"is_public": false,
"inherit_members": false,
"created_on": "2022-03-29T06:52:04Z",
"updated_on": "2022-03-29T01:59:59Z"
},
{
"id": 102,
"name": "name02",
"identifier": "rm0004289",
"description": null,
"parent": {
"id": 2,
"name": "parentname02"
},
"status": 1,
"is_public": false,
"inherit_members": true,
"created_on": "2021-02-29T05:55:41Z",
"updated_on": "2021-02-29T05:55:41Z"
},
...
],
"total_count": 45,
"offset": 0,
"limit": 25
}
-
-
使用したいレコードのリストはJsonAsCustomObjectのprojectsプロパティの中にあるのでアクション「変数の設定」でリストを生成。
-
For Eachアクションで2.で設定した変数分ループするように設定
-
-
4で生成したリスト型変数から使用したい項目を指定して取り出す
最終的なフロー
上記手順はJSONの構造にもよるためJSONの取得結果を確認して少しずつフローを組むとよいです。
{
"projects": [
{
"id": 101,
"name": "name01",
"identifier": "001",
"description": "",
"status": 1,
"is_public": false,
"inherit_members": false,
"created_on": "2022-03-29T06:52:04Z",
"updated_on": "2022-03-29T01:59:59Z"
},
{
"id": 102,
"name": "name02",
"identifier": "rm0004289",
"description": null,
"parent": {
"id": 2,
"name": "parentname02"
},
"status": 1,
"is_public": false,
"inherit_members": true,
"created_on": "2021-02-29T05:55:41Z",
"updated_on": "2021-02-29T05:55:41Z"
},
...
],
"total_count": 45,
"offset": 0,
"limit": 25
}
使用したいレコードのリストはJsonAsCustomObjectのprojectsプロパティの中にあるのでアクション「変数の設定」でリストを生成。
For Eachアクションで2.で設定した変数分ループするように設定
4で生成したリスト型変数から使用したい項目を指定して取り出す
参考
以上です。
Author And Source
この問題について(PADでXML/JSON形式で取得したデータを利用する), 我々は、より多くの情報をここで見つけました https://qiita.com/fsgwmhr/items/d7047744ff554f258125著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .