Power Automateのクラウドフローで複数行を取得したいケースのやり方です。
1. 複数行の取得
行の取得では複数行とれない
行の取得
アクションは1行しか取ることができず、表内に存在する行を一覧表示
を使う必要があります。
ODATAクエリ
そのまま検索できそうですが、ODATAクエリを指定してねと言われます。
なんだろうって感じですが、シンプルな使い方だと列名 eq '検索したい文字'
みたいな指定をすれば良さそうです。
こんなテーブルでコード1111
の2行を取得したい場合、コード eq '1111'
で良いみたいです。
こんな感じです。
実行と確認
出力を見るとしっかり2行分のデータが取れてました。
一旦ここまででOKと言えばOK。
2. 文字列を取得したい
こんな感じで配列で取得できている状態です。
[
{
"@odata.etag": "",
"ItemInternalId": "xxxxxxxx-xxxxxxxxxxxxx",
"コード": "1111",
"ファイルパス": "https://hogehoge.com/aaaaa"
},
{
"@odata.etag": "",
"ItemInternalId": "xxxxxxxx-xxxxxxxxxxxxx",
"コード": "1111",
"ファイルパス": "https://hogehoge.com/bbbbb"
}
]
この中からファイルパスにあるhttps://hogehoge.com/aaaaa
とhttps://hogehoge.com/bbbbb
を抜き出して利用したいです。
アクション: 変数を初期化する
配列から文字列を抜き出して格納する箱としてString型の変数を定義します。
変数の初期化をします。
- Name:
出力する文字列
(任意の文字列でなんでも) - Type:
String
アクション(ループ処理): それぞれに適用する
それぞれに適用する
というアクションを追加します。環境によってはApply to each
という表示かもしれません。
Select An Output From previous Steps
の箇所にエクセルから取得したbody/value
を設定します。
これで配列のそれぞれの要素の個数分ループ処理が発生します。
アクション: 文字列変数に追加
ループ内で文字列変数に追加
を設定します。
- Name:
出力する文字列
- Value: (エクセルから抜き出したデータを扱いやすいように設定)
(アクション: どこかに投稿など)
最後に出力する文字列
の変数には色々とテキストが入っているのでTeamsなどに投稿しましょう。
画像ではTeamsに投稿させてみていますが、なんでもOKです。
こんな感じで投稿されました。
まとめ
意外と複数行になると処理が多くなりますが落ち着いてやればいけそうですね。