PowerAutomateの困った現象

PowerAutomateで作業をしていて、非常に困った現象のあれこれ

PowerAutomateでフローを作成している際に、実際に遭遇して困った現象を解説しておきます(1つ1つは小さいことで、1つの記事にするほどの内容ではないようなこと)
同じく困ってしまうことがあると思いますので注意のため、なるべく早い段階で読んでおいてほしいです
また、現象に遭遇するたびに追記していこうと思います

変数の自己参照が出来ない

変数の利用が出来ますが、その変数は自己参照が出来ません

VBAでよくあるのが、「i = i + 1」というような加算を行うような変数の更新です
これは変数「i」に代入する際に「i」を参照しています
これが自己参照です

PowerAutomateではこれが使用できません
変数の設定アクションでは、別の変数を使用する必要があります

実際上記の加算に関しては、専用のアクションがありますが
やはりVBAになれているものからすると、この自己参照が出来ないのは結構不便に感じます

もっとも単純な解決法は、2つの変数を作成することです
VBA的に記載しますと、「i = i + 1」が利用できないので
「i = i_2 + 1」と記載して加算を行う
「i_2 = i」と記載して計算結果を2つ目にも共有する
このように2つの変数を介することで、疑似的に自己参照の動きを作成できます

考えるだけで面倒ですね、なんとか自己参照できるようになってほしいものです

エラー発生時の挙動

エラー発生時は非常に面倒です

特に保存を許してくれないのが、1番のストレスです
エラーをとりあえず解決するまで保存を実行しようとしてもフローチェッカーが保存を阻んできます
これが案外面倒で、終了アクションを代入してそこでフローが終わるようにしてテストを行いたくても保存が出来ないからテスト出来ない

とりあえず全てのエラー個所にダミー値を入力していく
これが数が多いと面倒だし、何より修正前のデータを残しておきたいこともある

さらに最悪なのが、それなりに作業を進めてから誤って変数などを削除してしまってエラーになった場合です
PowerAutomateには操作を戻す機能が無いため、元に戻せません
なので新たに変数やアクションを作り直して再度設定を全て行う必要があります

これが保存後最初の操作ならまだしも、前述したようにそれなりの作業後にこの状況に陥ると前回保存時からの作業が全て吹き飛ぶため絶望的です
これで何度「やってもた・・・」と言ったか記憶に無いです、保存できてないので・・・

もう1つ面倒なのが、アクションの名前を付けづらくなることです

エラーが発生した状態では一定時間ごとにチェックが行われているためか、アクションの名前の変更を行っている際に1秒程度で強制完了させられます
瞬時に編集して確定させれば編集は可能なのですが、考えながら入力するのが当然なので漢字変換してるあいだに強制確定されて、入力内容が無くなってしまう

エラーチェッカーさんは、保存を阻むのだけはやめてくれないでしょうかねぇ

アクションが削除出来ないことがある

たまにアクションが削除できなくなることがあります
アプリのネットワーク状況によるものなのかもしれませんが、アクションの詳細メニューから削除を選択しても、うんともすんとも言わず、削除が行われない事があります

この場合はブラウザを再更新すれば、また削除を行えるようになります

これがまた上記のエラー発生時に出た時は非常にやっかいです
なんせ保存できないので、再更新かけられんですから

アクション名の後変更の要注意

アクション名は見出しにもなっているので、わかりやすい文字列にする方がフローを読みやすくなります

ただこれで注意してほしいのが、アクションを作成して後続処理を作成した後に名前を変更する場合です

と、いうのもPowerAutomateの場合に関数の引数にアクションを指定した場合、そのアクション名が文字列として指定されています
ここが後で変更した場合に自動的に変わってくれないのです

そのため、アクション名を変更することで後続の関数が動作しなくなることがあります
動的なコンテンツの追加では構わんのですが、PowerAppsへの引数名にも同じ現象が発生するので、アクション名は後で変更することは基本避けた方が良いです

というか、そもそもアクション名は変更しなくても良いと思っています
正直ここに詳細な内容を書くことが出来ないので、ここにその目的は持たせず、コメントを入力することが出来るのでフローの動作の説明はそちらで記載するようにして、アクション名は初期のまま変更しなくていいんちゃう、と今は感じております

当然動的なコンテンツの追加から選択する場合はアクション名をしっかり付けている方が分かりやすいです
でもアクション名に意味を持たせると、どうしても後で仕様変更だったり修正だったりで微妙につけた名称と違ってくることがあり、その場合には変更するのが非常に面倒ですよね、そもそも動いていたフローを必要以上にいじる必要もあるし
かといって全然ちゃう意味の名前になってたら、なんでこんな名前なんや?と無駄な思考の時間が発生します

なら最初っからアクション名には意味を持たせない、これでええんです
もちろんコメントはどこにも影響与えないので、後で変更はいくらでも可能です

動的なコンテンツの追加が変なとこに入る

動的なコンテンツの追加を行った際に、入力カーソルのある位置に入らないことがあります
というか、連続代入の時はほぼ入りません

いちいち入力カーソルをマウスクリックで指定してから代入を行う必要があります

ついでに言うと、shiftキーを押しながら矢印キーを押していって、入力カーソルを移動させてコピペ範囲を取得しようとしても範囲が広がらないことが多々あります
この場合は、矢印キーを使用せず、shiftキーを押しながらマウスクリックで指定することが出来ます

@が自動的に増え続ける

これはもはや怪奇現象ですが、条件分岐の条件設定に「@」を入力して、別の個所を選択したりしなかったりと発現する理由はよくわかりませんが、どんどん増えていきます

1文字だけ増えたり一気に数文字増えたり、最初見た時はおののきましたね

@自体がPowerAutomateの内部処理では特別な意味を持つ文字であるため、なんらかの補完処理なのかが暴走しているようです

対処としてはこれを文字列として指定すればいいので「”@”」というように文字列指定をして下さい
ってか関数では文字列指定は「’」シングルなんですが条件分岐での入力時はダブルでしないとダメみたいです、もう何がなんやらですね
ちなみに関数のString関数を使用しても良いです、もちろんその場合は「’@’」という引数設定になります