rksoftware

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

Power Automate で文字列を数値にする場合のこと

素人なのでベストプラクティスが分からず試行錯誤です。

■ 例えばこんな時

数値データが文字列として渡される場合を考えます。

いや、データを渡している元を正せというのは確かにその通り。しかし人生とはままならないものです。自分ではどうしようもないところでこうなってしまうこともあるものです。

数値が文字列でやってくると、"1" といったきちんと数値といえる文字列だけでなく "" (ゼロ文字の文字列) や null なんかが入ってくることは想定の範囲内でしょう。そして、これも仕様を正せですが、ゼロ文字の文字列や null の場合は 0 として扱うこと。あると思います。

こんな感じに。

■ 正攻法

これをどうやったかというと、こんな感じです。多分これが正攻法。正しいやり方です。

こんな式。

if(equals(string(item()), ''), 0, int(item()))

item() 2 回書きたくない

同じことを 2 回書かないのは、IT の基本です。基本であって絶対ではないのですが、ここは基本に忠実に生きたいところです。正直、式は見通しが悪いのでなるべく基本を大事にしたいところです。

こんな感じはどうでしょう?

int(concat('0', string(item())))

結果は同じになります。

文字列結合が増えているので、速度は落ちるかもしれません。けれども速度が必要だったらそもそも Power Automate が不適切なのでそこは許容されるのではないでしょうか?

■ 難しいですね

難しいですね。