スタッフブログ

意図しないFor Each(Apply to Each)の回避方法について(回避方法)②


はじめに

みなさんこんにちは。

今回は前回記事「意図しないFor Each(Apply To Each)の回避方法について(概要)①」の続きです。

前回記事ではPower Automateのフローで発生するFor Eachの概要、For Each内の値を動的なコンテンツとして指定できない問題について説明しました。

今回記事では、不必要なFor Eachの回避方法について説明します。

式でFor each内のアクションの値をFor each外で使用する方法についても説明予定でしたが、再度調査・検証するとそちらは不可能であることが分かりました。

頭の中で式で動的なコンテンツを指定する方法とごちゃまぜになってしまっていたようです。よって今回記事では変数によるFor Eachの回避方法のみの内容となります。申し訳ございません。

回避方法

まずは不必要なFor Eachを回避する方法について説明します。

取得する行数をフィルターで絞っているフローを考えます。一行のみ取得しているのでそれぞれに実行する際に必要な [For each] は本来不要なはずです。

そこで使用するのが [変数] のアクションです。

フローの最初で[変数を初期化する] のアクションを使用し、変数を定義します。

次に [行を一覧にする] のアクションの後に、 [変数を設定する] のアクションを挿入し、[Value] に今回使用したい [名] を設定します。こうすると [変数の設定] アクションが [For each] 内に格納されます。

そして、[メールの送信] のアクションで、 [変数を初期化する] のアクションから [名] を動的なコンテンツとして指定します。

このように [変数] のアクションを経由することで、任意のアクションを [For each] に格納する必要がなくなり、そのアクションの値は後続のアクションでも動的なコンテンツとして指定できるようになります。

直接値を指定するのではなく、変数を定義→変数に値を格納→変数を動的なコンテンツとして指定するという流れになります。

さいごに

最後まで閲覧いただきありがとうございました。

今回紹介した方法は、変数アクションが増えすぎてフローが見にくくなってしまうことが多々あるので、実際に使用する際にはアクションに名前を付けることを忘れないようにしましょう。