はじめに
Power Automateの変数で「追加」を利用する際、繰り返し処理のやり方によって、意図しないデータまで追加されてしまう事があります。
どういったケースで発生し、どのように解消できるかをまとめました。
Power Automateの変数に対して実行できる処理
Power Automateで変数を使う時、まずは初期化をするのですが、そのあとの設定方法は大きく3つに分かれます。
- 追加
- 設定
- 増減
本記事では、この中の「追加」を繰り返し処理で使った時の挙動を整理して行きます。
生成したいデータを整理する
次の二つのデータがあったとします。
テーブル:Group
Group |
---|
GroupA |
GroupB |
デーブル:Member
Name | Dept | Title |
---|---|---|
userA | Tech1 | Manager |
userB | Tech2 | Director |
この二つの表を組み合わせて、こんなjsonのデータを作りたい、と考えたとしましょう。*1
GroupAのメンバー定義
[ { "Group": "GroupA", "Member": "UserA", "Dept": "Tech1", "Title": "Manager" }, { "Group": "GroupA", "Member": "UserB", "Dept": "Tech1", "Title": "Director" } ]
GroupBのメンバー定義
[ { "Group": "GroupB", "Member": "UserA", "Dept": "Tech1", "Title": "Manager" }, { "Group": "GroupB", "Member": "UserB", "Dept": "Tech1", "Title": "Director" } ]
イメージ図
やろうとしていることを図で表すとこうなります。
作成したフロー
このように作ってみました。
配列変数に追加
では、実際に実行してみます。
繰り返し処理1個目(GroupA)の実行結果です。ここだけ見ると意図したとおりに動いているように見えます。
では、繰り返し処理2個目(GroupB)の実行結果を見てみましょう。
繰り返し処理1個目で追加した値が残ってしまっている事が分かります。
配列変数をクリアしてから追加
では、こういったケースではどのようにすればいいかというと、繰り返し処理の冒頭でいったん変数をクリアにします。
「変数の設定」を使います。
値は空白にしたいので、配列の場合は[]
と入れておきます。*2
これでもう一度実行してみましょう。
「変数の設定」で一度値がリセットされてから改めて配列に値を追加しているため、今度は前の値が残ることはありませんでした。
参考:文字列の場合
ここまで「配列変数に追加」を使ったケースについて説明しましたが、「文字列変数に追加」でも同様の事が起こります。
1個目
2個目
直し方も同様です。「変数の設定」の部分にはnull式を使いました。
1個目
2個目
おわりに
ということで、Power Automateの変数で「追加」を利用する際、繰り返し処理で意図せず前の値が残ってしまうケースについて整理してみました。
変数の取り回しで困っている方の参考になれば幸いです。
舟越 匠(日本ビジネスシステムズ株式会社)
人材開発部に所属。社内向けの技術研修をしつつ、JBS Tech Blog編集長を兼任。2024年8月からキーマンズネットでPower Automateの連載を開始。好きなサービスはPower AutomateやLogic Apps。好きなアーティストはZABADAKとSound Horizon。
担当記事一覧