今回の記事は「RPACommunity Advent Calendar 2023」の15日目の記事となります。
Power Automate for desktop(PAD)のフローは、個人用のMicrosoft アカウントで使用する場合はOneDriveに、組織用のアカウントで使用する場合はDataverseに保存されます。
数多くフローを作成していると、知らぬ間に大きな容量になっていることがありますが、今回はフローの容量を軽くする方法を紹介します。
フローの容量を軽くするといってもどうすれば良いのかというと、先に答えを言ってしまうと、容量が大きくなってしまう大きな原因の一つは、UI要素を追加した際に自動的に記録されるスクリーンショットです。
このスクリーンショットを削除することで、フロー全体の容量を軽くすることができます。
使用していないUI要素を削除する方法
フローの容量を比較するために、電卓アプリを操作するだけの簡単なフローを用意しました(Microsoft アカウント使用)。
OneDrive上でフローのファイルサイズを確認すると、1.79MBになっています。
まずは使用していないUI要素ごと削除してフローの容量がどのように変わるかを確認してみます。
UI要素タブの並べ替えオプションの横にあるドットアイコンから「使用していない UI 要素を削除する」をクリックすることで、フロー上で使用していないUI要素をまとめて削除できます。
再びフローのファイルサイズを確認すると、1.04MBになっていました。
JSONを直接編集してスクリーンショットを削除する方法
PADのフローは、デザイナー画面の 編集メニュー → すべて選択 → コピー することでフロー全体をテキストエディタに貼り付けることができますが、UI要素の操作を含むフローをコピーした場合、UI要素のスクリーンショットも含めて貼り付けられます。
貼り付けた値を見てみると、一部がJSON形式のデータになっており、文字通りスクリーンショットを示す「ScreenShot」プロパティがあることが分かります。
実はこの値はPNG形式の画像をBase64エンコードしたもので、この値(\”iVB…\”)をnullに置き換える(値の削除)ことで、スクリーンショットを削除することができます。
デザイナー画面で一度すべてのアクションを削除し、「使用していない UI 要素を削除する」でUI要素を全て削除した上で、Base64エンコードされたすべてのScreenShotプロパティの値を削除したフローを再びペーストすると、一見するとアクション削除前と変わりのないフローが貼り付けられますが、UI要素のスクリーンショットは削除されています。
この状態でフローのファイルサイズを確認してみると、8.51KBにまでサイズが減っていました。
このようにJSONを直接編集することでフローの容量を大きく軽減できるわけですが、編集を失敗するとフローが貼り付けられなくなったり正常に動作しなくなったりする可能性がありますので、作業する前に必ずフローを別名で保存してバックアップを取るようにしてください。
UI要素のスクリーンショットはフローの容量を大きくするだけでなく、思いがけずに個人情報などの機密性の高い情報が含まれる場合があり、個人的には簡単に削除する機能が欲しいと思っています。
下記のように私以外のユーザーの方からもフィードバックが出されているようなのですが、実装されていないのが現状です。
この記事へのコメントはありません。