0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラマがPower Automate for Desktopを使う(5)フローを安全に保つには

Last updated at Posted at 2022-12-27

※この記事は プログラマがPower Automate for Desktopを使う シリーズの一つです。

「2024年11月19日の朝に「Power Automaate Desktopのフローがすべて消えている」という出来事を経験しましたので、モジュール化について考え直し、この記事を書き換えました。

フローを安全に保つには

モジュール化すべきか

フローを高水準なプログラミング言語と捉える場合、フローやサブフローを適宜分割するのは自然ですが、Power Automate Desktopにはバックアップや版管理の機能がないため、注意が必要です。
分割には、次のトレードオフがあります。

  • フロー数またはサブフロー数が増えるとバックアップが大変
  • 同じ処理が2箇所に書いてあると維持しにくい

前者のデメリットが大きいので、フロー数とサブフロー数は極力減らし、独立性の高い共通処理のみをサブフロー化する方針が妥当だと考えます。

例を挙げます。

業務でユーザAとユーザBが同一サイトにアクセスし、ほぼ同型の処理をして帳票Xと帳票Yをダウンロードする

ものとします。このケースで、フロー数とサブフロー数を減らす場合は、次の様にフローを作ります。

  • フローCを設け、ユーザAもユーザBも、そのフローを使う。
  • 帳票Xの処理と帳票Yの処理は、帳票毎にサブフローを設けるのではなく、Mainの中に直接に書いてしまう。(せめて読みやすさのために、各帳票のステップ群をリージョンで囲んでおく)
  • ユーザAとユーザBで処理が異なる箇所については、If-Else If-Else構造を使う。(プログラム構造としては悪いスイッチングだがPower Automateでは止むを得ない)
  • 帳票間で共通な「ダウンロード処理」ついては、サブフロー「DoDownload」を設ける。 (ダウンロード処理はWindowsかブラウザの更新で変わる可能性があので、さすがにこれは括りだしておく)

フロー保守の方法

Power Automate Desktopが使う場所

Power Automate for Desktop(無償版)の場合、フローは個人用OneDriveの中にあります。
私の観察ではPower Automateは次のフォルダを使っているようです。

  • C:\Users\ユーザ名\OneDrive\アプリ\Power Automate Desktop For Windows(OneDriveはローカル側でのパスで表記)
  • C:\Users\ユーザ名\AppData\Local\Microsoft\Power Automate Desktop(C:ドライブ内のWindowsユーザ毎の場所です)

両者は(Windowsユーザから見ると)勝手に変化しています。従って整合がとれた状態をPower Automate外で作ることはできません。エクスプローラでフォルダーのコピーを作っても、物理的なバックアップにはならないと考えます。

サブフロー単位のバックアップ

サブフローの中身を文字列として取り出し、テキストファイルに保存することが可能です。サブフロー毎にコピー&貼り付けを行うので煩雑ですが、フロー数とサブロー数が少なければ可能な範囲です。
新しくフローを作成し、保存済のテキストをサブフローに貼り付けることによってフローが再現できる点は、体験済みです。

版管理

Power Automateには版管理の機能がないので、代替手段を考えます。代替手段のアイデアは2つあります。

  • フローのコピーを作りフロー名を「フロー名_YYYYMMDD」に変更し、2世代程度古くなったら削除する。
  • 前述したサブフロー単位のテキストファイルを、適当なツールで世代管理する。(例えば、VisualStudioでフロー単位にソリューションを作り、サブフローのテキストをgetで管理する)

シリーズの記事一覧へ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?