はじめに
IT未経験者に PAD (Power Automate for Desktop)を教えるにあたって、システム開発と同じノリでやったら引っかかった点をまとめてみました。
ノーコード開発とRPAは違う
ほぼここに集約されます。Power AutomateはあくまでもRPAです。システム開発ではなく、システムの自動化です。条件分岐でやら繰り返し処理やらが最小限出てきて、ちょいちょいプログラミング言語の気配を出してきますので勘違いしないようにしましょう。
できる限りPowerAutomateでは、"順番にシステムを起動させる" & "最小限操作でのデータ移動"だけにしましょう。
変数の宣言がない
設定はあっても宣言はないです。変数の設定はただの代入です。
宣言しなくてもいきなり使えます。宣言の為に1アクション使うのは無駄です。
変数の型が変幻自在
数値型にテキスト型を入れたらそれ以降テキスト型になります。テキストを数値に変換してもとの変数に戻せます。気持ち悪いですけど、型の維持より意味の維持に注力して、変数の絶対数を減らした方がフローはわかりやすいと思います。
グローバル変数しかない
スコープ範囲という概念がないので、フロー内なら、メインサブ含めてどこからでも変数にアクセスできます。COBOL等で地獄を見た経験者も多いのではないのでしょうか。
一つのフローで色んなことをさせると読み取るのが地獄です。
複雑なことをやる場合、スクリプトの実行も組み込めるのでPythonやJavaScriptでやりましょう。
フロー間のインスタンスの受け渡しができない
グローバル変数しかないので、フローをまたぐと完全に別のシステムです。クラスではありません。オブジェクト指向のノリで、フローを簡潔にしたいがためにブラウザでのログイン処理を別のフローでやらせると、取り扱うブラウザのインスタンスを渡せません。メインフローに入れたくなければサブフローでやりましょう。
複雑なデータはJSONで渡しましょう。
一見型を自動変換してくれているような挙動をする
条件式で、数字(ただしテキスト型)同士でも大小比較してくれます。
同じ文字数なら。
文字数が違うと文字数での比較になります。
ここ罠です。実際には、数値型に自動変換⇒大小比較ではなく、ただの文字数順⇒文字コード順です。
変換してるわけではありません。
CASEが等値判定だけではない
Switchはただの左辺固定if else ifです。大小判定もできます。
和訳をあきらめてるところがちょいちょいある
エンジニアにとっては常識は一般の人にとっては非常識です。オペランドって多分ぱっと聞いてわからんよね。
JavaScriptがちょっと古い
2024年9/20時点だとletが使えません。ちなみにPAD側の変数への出力はWScript.Echo()を使います。Pythonはprint()でいけます。
結論
APIが超簡単に使えるのは便利です。画像から文字をOCRでとってきてAIで校正してExcel等へ放り込むフローくらいなら5分あれば非エンジニアであってもゼロから作れます。便利!