rksoftware

Visual Studio とか C# とかが好きです

Power Automate で null の動作を確認する

Power Automate の関数には引数に null を渡すとエラーになる関数があります。null を入れたときの挙動はドキュメントに記載されないようで、関数を使うときには事前に null を入れたときの挙動を確認しておく必要があります。

■ null の入れ方

式で null と書くことで null を入れられます。

こんな感じです。

lengh 関数は null を受け取るとエラーになるので、こんな感じになります。

InvalidTemplate. Unable to process template language expressions in action '作成' inputs at line '0' and column '0': 'The template language function 'length' expects its parameter to be an array or a string. The provided value is of type 'Null'. Please see https://aka.ms/logicexpressions#length for usage details.'.

■ null を回避する

データとして null が入ることは頻繁にある通常の動作です。そのたびに例外処理を行うのは現実的ではありません。そこで null をゼロ文字の文字列や数値の 0 に置き換える処理を書くことで回避する式を頻繁に書くと思います。
今夏感じで書けばいいかなと思います。

文字列の場合

文字列の場合はシンプルです。string 関数が null を入れても動作するので次のように string 関数を通せば null がゼロ文字の文字列になって動作します。

length(string(null))

数値などの場合

数値などの場合は少し厄介です。変換関数は使えないので、equals 関数と if 関数を使います。
ここの例では、この式を書く前に処理として 作成 という名前の処理で値を作っている想定です。

if(equals(outputs('作成'), null), 0, outputs('作成'))

■ null を outputs にしたい場合の注意

式に書かなければなりません。直接書くと保存時にエラーになります。こんな感じに。

The workflow run action '作成' of type 'Compose' has a missing 'inputs' property.

通る書き方はこんな感じです。

この時のコードはこうなっています。

"inputs": "@null",

■ 難しいですね

難しいですね。