🤖

【PAD】フローの作成で意識しているところ

に公開

はじめに

現在、業務でPower Automate Desktop(以下PAD)の無償版を使用していますが、あまりノウハウめいた記事がない印象…ということで、私がPADでフローを作成するときに意識していることを備忘録的に書いていきたいと思います。
異論があれば大いに歓迎します。一緒にPADのベストプラクティスを考えましょう。

個人的にPADについて思っていること

PADは他のRPAツールと比べるとアクション数も多く、スクリプトの埋め込みもできるので自由度は高いように思います。作りこんでいると、ローコードツールということを忘れるほどです。
それ故に、通常のプログラミング感覚でフローを作成していると他のプログラム言語とのギャップを強く感じる場面が多くあります。
そういった視点以外にも、使っていると安定するアクションとそうでないアクションが色々見えてきます。
やり方は色々あると思いますが、以下では私が作成するときに意識していることを書いていきます。

1. 定数を宣言する

最初は「定数を宣言にする」です。
ただ、PADに定数なんてものは存在しないのでそんなことはできません。
なので私は無理やり変数の宣言アクションで定数っぽい変数名を設定してあたかも定数として扱ってます。
そんな扱い方をしても当然こいつは変数なのであとから値の入れ替えが可能です。
ただ、今後の保守のために「こいつは定数なんだぞ」っていう印付けを行っています。

2. UI要素は出来るだけ使用しないこと

ウィンドウのインスタンスを取得する方法は以下の4つに分類されます。

  1. UI要素
  2. ウインドウのインスタンス/ハンドル
  3. タイトルやクラス
  4. フォアグラウンドウィンドウ

このうち私はUI要素は出来るだけ使用しないようにしています。
なぜなら安定性が非常に悪いからです。
例えば、今画面上に表示しているsakraエディタをUI要素として登録します。

UIセレクターとしては以下のように設定されています。

 > pane[Class="SplitterWndClass"][Name="SplitterWndClass"] > pane[Class="SakuraView177"][Name="SakuraView177"]

テキストベースでUIの指定ができるので、便利な機能に思えますが、ここで指定したウィンドウはWindowsを再起動すると全く同じ属性や値を持っていても認識してくれないことがあります。(少なくとも私の環境では)
なので、やむなく「3. タイトルやクラス」でタイトルを使用してフローを作成することが多いです。

3. テキストの入力処理はペースト処理を使用する

結構な頻度でエクスプローラーのアドレスバーにフォルダのフルパスを入力させることがあります。
RPAは結構不安定なツールなので、階層が深くなって入力させる文字数が多くなると途中の文字が一文字抜けるなんてことがちょいちょい発生します。
そうなると、フォルダパスが正しく指定できないのでエラー落ちします。


↑こんな感じの指定だと文字が抜ける

なので私がよくやる方法としては

  1. 「クリップボード テキストを設定」
  2. 「キーの送信」でctrl + V

この方法だと安定してテキストの入力ができています。(無敗)

まとめ

備忘録的に記載をしたので、他にもあれば随時更新していきます。
PADに関する質問や指摘あればどしどしコメントへの記載をお願いします。
また、Zennへの投稿もはじめてなので便利な記法などあれば是非教えて頂けると助かります。

Discussion