SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Power Automate Desktop の無償版のフロー操作時のキャッシュ

leave a comment

Power Automate Desktop (PAD) の無償版を使用する場合、フローの実行 / 編集時には情報がキャッシュされているようなので、ざっくりとまとめておきたいと思います。
(有償版も同じだと思いますが未確認)

インターネット接続の必要性

Power Automate Desktop は、無償版の場合は、OneDrive / 有償版の場合は Dataverse にフローの情報が保存されており、マスターとなるデータはローカルではなく、リモートデータストアに保存されています。

無償版の場合、OneDrive にマスターのデータが保存されています。
そのため、インターネット接続がない環境でも PAD を起動することはできますが、フローの実行 / 編集を行おうとすると次のようなエラーが発生します。

実行時

image

編集時

image

このような動作となるため、実行時にはインターネット経由で OneDrive に接続できるような状態にしておく必要があります。
Power Automate Desktop の起動は、インターネットに接続していない状態でも実施できるようですが、フローの一覧の表示で一部の項目が表示されていなかったことがありますので、原則、OneDrive へのアクセスを可能な状態にして使用する必要があるかと。

編集と実行時にインターネット経由のアクセスが発生していることは確認ができました。
これらのタイミングではフローの情報をローカルにキャッシュされており、こちらが今回の本題です。

フローの実行や編集を行う場合に「ダウロード中」と一瞬表示されるかと思いますが、このダウンロードがローカルにキャッシュとして展開している操作になるかと。

編集時のフローの情報のキャッシュ

編集をする場合、OneDrive からフローの情報を取得しているのですが、編集を実行している間はローカルにもフローの情報がキャッシュされています。(実際にはメモリ上にもキャッシュされ、メモリの情報がマスターになっているようで、ローカルキャッシュのファイルを書き換えても、設定に反映はされませんが)

編集をクリックすると、編集しているフローの情報は一時的に「%USERPROFILE%\AppData\Local\Microsoft\Power Automate Desktop\Designer\Temp」にキャッシュされるようです。

image

ディレクトリが作成されていますが、このディレクトリの中に OneDriver に保存されているフロー情報のパッケージが展開され、PAD のフロー定義 (実際には robin の各種ファイル) がダウンロードされた状態になります。

image

フローの編集を開始した状態の定義についてはここから確認ができるかと。
.robin と .appmask のスクリプトの情報も出力されていますので、どのような設定が入っていたのかをスクリプトベースで確認ができます。

ただし、このディレクトリ内のファイルを直接編集しても、その内容はフローには反映されません。
ディレクトリ内のファイルはあくまでも、フローの編集を開始したタイミングの初期のキャッシュでしかないため、ほかの環境からキャッシュのファイルをコピーして、ディレクトリに貼り付けてもフローの移行はできません。

Temp ディレクトリ配下のファイルについても、フローの編集中に一時的に使用しているものという扱いのようで、このファイルを編集しても保存時には、OneDrive に反映はされません。
保存したタイミングでアプリケーション側にキャッシュしている情報で、Temp 配下のファイルも更新をして、アプリケーション側でキャッシュしている最新の情報で OneDrive に反映をさせているようですので、キャッシュディレクトリの内容を使用して、他の環境にフローをコピーするということはできないかと思います。(いろいろと試したのですが私にはできませんでした…。)

フローのデザイナーの画面で設定しているアクションをコピーしてテキストエディタに貼り付けることで、スクリプトの内容を確認することができるので、キャッシュを見ることはほとんどないかと思いますが、こういう情報もあるようですよというご紹介。

実行時のフローの情報のキャッシュ

フローの情報のキャッシュは実行時にも実施されているようです。
実行時には「%USERPROFILE%\AppData\Local\Microsoft\Power Automate Desktop\Console\Workspace」にフローの情報がキャッシュされます。

image

実行したフローであれば、こちらからフローの内容を確認することができるようです。

「%USERPROFILE%\AppData\Local\Microsoft\Power Automate Desktop\Console\Scripts」には、フロー実行時のログもありますので、フローの実行に失敗した場合は、こちらから情報を確認することもできるのではないでしょうか。

 

キャッシュはあくまでも、編集 / 実行をする際に OneDrive 上のデータをローカルに展開して使用するためのものであり、これらのファイルを他の環境に移行して使用するということはできませんので、使用する機会はないかと思います。

フローがどのような設定になっているのかを俯瞰して確認したいときに使用できるといいかなぐらいでしょうか。
.robin をテキストエディタで開いて全行コピーして、空のフローの編集画面に貼り付けることでフローの全体をコピーすることはできるのですが、UI オートメーションを使用し appmask が生成されている場合、appmask の内容は移行することができないので、UI オートメーション系の操作を移行することができないのですよね。

Share

Written by Masayuki.Ozawa

3月 13th, 2021 at 9:46 am

Leave a Reply