Power Automateの変数で「追加」を行った際に、意図しない文字まで入ってしまう問題を解決する

はじめに

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の変数で「追加」を利用する際、繰り返し処理で意図せず前の値が残ってしまうケースについて整理してみました。

変数の取り回しで困っている方の参考になれば幸いです。

*1:jsonとしてのもっといい書き方があると思いますが、あくまで説明用という事で…

*2:式を使ってnullを入れても同様です

執筆担当者プロフィール
舟越 匠

舟越 匠(日本ビジネスシステムズ株式会社)

人材開発部に所属。社内向けの技術研修をメインにしつつ、JBS Tech BlogやMS認定資格取得の推進役もやっています。資格としてはAzure Solutions Architect Expertを所持。好きなサービスはPower Automate / Logic Apps。好きなアーティストはZABADAK。

担当記事一覧