🙄

Power Automate の「作成」と「変数」の違い

に公開

ごきげんよう、百合宮桜(Miyu)です!
今日は匿名質問に答えよう!のコーナー(≧▽≦)
私が所属先ではお客様が匿名で投稿できる質問箱を設けているのですが、そちらに投稿された質問にお答えしようと思います。

もし、まだネタとして挙げていなければ作成アクションと変数の使用方法の違いを説明頂きたいです

良い質問ですね!
一見同じように見える作成アクションと変数アクションですが、実は細かな違いがあります。

作成アクションとは?

データを一時的に保管するための箱のようなものです。ダンボールの箱をイメージすると分かりやすいと思います。後述する変数アクションとは違って、名前やデータ型(タイプ)の設定は不要です。入力に入れた値が出力されます。

最上位階層以外でも初期化できる

変数と違って、初期化と設定でアクションが分かれていません。変数の初期化アクションは最上位階層以外では利用できませんが、作成アクションはどの階層でも利用可能です。

値の更新は不可

変数のように、作成アクションで設定した値を後続のアクションで更新することはできません。

動的なコンテンツで利用可能

作成アクションで設定した値は動的なコンテンツで利用可能です。
ただすべて「出力」という表示なので、複数の作成アクションがあるとどれに何が入っているのかが分かりにくいと思います。

変数アクションとは?

Power Automate における変数とは名前とデータ型(タイプ)を指定して作成する箱のようなものです。プラスチックの箱をイメージすると分かりやすいと思います。

基本的に作成アクションでできることは変数アクションでもできます。どちらを使うか分からない……と迷ったら、変数アクションを利用するのがおすすめです。
ここからは変数アクションの特徴を記載します。

変数の初期化アクションは最上位階層のみ利用可能

変数の初期化アクションは条件やApply to Each の下に置くとエラーが出ます。

名前とデータ型(タイプ)の設定が必須

変数は名前とデータ型(タイプ)の設定が必須です。この2つは変数を初期化するアクションで設定することができます。一度設定したら後続のアクションであとから変更することはできません。

データ型(タイプ)が同じものでなければ変数に入らない

値は変数を初期化するアクションで初期値を設定できます。

変数の設定アクションで違う値に更新することもできます。

ただしデータ型(タイプ)が同じものでなければ入りません。
例えばデータ型(タイプ)を「文字列」として設定した変数は数字やオブジェクトなど文字以外のものを入れることはできません。もしどうしても文字以外のものを入れたいという場合は変数に入れる前に文字に変換する必要があります。

値の再代入(上書き)以外での更新方法

変数の値はデータ型(タイプ)によって再代入(上書き)以外の更新方法があります。
データ型(タイプ)が整数 or 浮動小数点数の場合は「変数の値を増やす」アクションで足し算が、「変数の値を減らす」アクションで引き算ができます。

※変数の値を増やす(減らす)アクションは Value に入っている値の分だけ変数の値を増やしたり減らしたりできます。

データ型(タイプ)が配列の場合は「配列変数に追加」アクションで配列のレコード数を増やすことができます。

動的なコンテンツで指定しやすい

変数は動的なコンテンツに名前が表示されます。

まとめ

まとめると以下のようになります。

やりたいこと 作成 変数
初期化 ✅ 可能 ✅ 可能
命名 ✖ 不可 ✅ 可能
データ型の指定 ✖ 不可 ✅ 可能
値の更新 ✖ 不可 ✅ 可能
ループや条件内での利用 ✅ 可能 ✅ 初期化以外可能
  • 作成はフロー内で更新不要な値の置き場所
  • 変数はフロー内で更新が必要な値の置き場所

と考えると分かりやすいかもしれません。
私個人としては作成アクションを利用するのはフローを作る途中で一時的にここの出力が見たい……という時だけに留めています。フローが完成する時にはフロー内での値の更新が必要かどうかで分けることなく、フロー内に置く値はすべて変数にしています。なぜなら変数の方が名前がついているので可読性が良く、納品時に説明しやすいからです。
という訳で迷ったら 変数 の利用がおすすめです(*'▽')
それではごきげんよう!!

Discussion