5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Automate for desktop「flowsessionのデータ保存ポリシーを制御してDataverseの容量を節約する」

Posted at

概要

Power Automate for desktopを企業が利用する場合、Per-User plan attended RPA (アテンド型RPAのユーザーごとのプラン)を強く推したい理由は沢山あります。特にプレミアムコネクタを含むDPA RPAフローの作成および共有、そしてログを取得できる機能は無償版との大きな違いです。遠隔地にある実行マシンで問題が起きた場合、キャプチャされたスクリーンショットとログを追うことで対応可能です。しかし、強力な管理機能を持つ一方で、基盤にあるDataverseの容量を圧迫していきます。

CleanShot 2023-05-17 at 00.32.15@2x.png
気がつけば・・・。
CleanShot 2023-05-17 at 01.05.52@2x.png

容量をどんどん買い足せるなら問題ありませんが、予算の都合上簡単ではないと思います。今回はDataverse組み込みの一括削除機能を利用してデータ保持ポリシーを実装し、必要なデータを必要な期間だけ保存管理することについて書きます。

注意事項

  • Learnに沿った内容(にしたつもり)ですが個人的見解が含まれる可能性がありますので自己責任でお願いいたします。
  • 有償環境が前提となります。
  • マシンを管理(監視)するためにはWindows10または11のProが必須です。
  • 検証環境はMicrosoft 365 開発者プログラムとPower Automate Per-User plan attended RPA試用版を利用させていただいています。
  • ログ保存期間等は社内監査要件にも関係すると思いますので十分な検討、検証が必要です。
  • Learnにもありますが削除すると2度と戻せません。
  • ログを取るためにはマシンを登録する作業が必要ですが、今回は触れません。以下のリンクを参照して下さい。
  • 一括削除をするための権限が必要です。

CleanShot 2023-05-17 at 00.24.18@2x.png

実践

Dataverseにはデータを一定期間ごとに自動で一括削除をする機能があります。しかし注意事項にあるように削除すると2度と戻せません。そのためデータ削除および保存ポリシーについては十分検討する必要があります。

Learnにありますようにフローセッション(flowsession)とワークフロー バイナリ(workflowbinary)のデータ量が主に肥大化しやすいようです。フローセッションとワークフロー バイナリはカスケード関係にあるためフローセッションを削除すればワークフロー バイナリも削除されます。そのためフローセッション(flowsession)をターゲットにクエリを組みます。

まず現状の確認をします。
今回操作する環境は244.24MBとそこまで多くありませんが、これで試していきます。

image.png

Learnには次のような設定例があります。
Completed On | Older Than X Months | 6

Learnあるあるだと思うのですがSSが英語版のままであったり、本文のローカライズが中途半端なため何を指しているのかわかり難いです。特にDataverseを日本語環境で使っている場合、Learnあるテーブル名や列名の訳が何を指しているのか探しにくいと思います。なので、まずターゲットのテーブルを確認します。

Power Apps 「テーブル」>「すべて」 から「flowsession」を検索します。
image.png

フローセッションを開いた後、「スキーマ」>「列」をクリックして確認します。
image.png

image.png

flowsessionは「フローセッション」Completed On は「完了日」ということがわかりました。
これをもとに一括削除を設定します。

Power Platform 管理センターに移動して該当環境の設定を開きます。
image.png

データ管理を展開して一括削除をクリック
image.png
新規からクエリーを作っていきます。
image.png

一括削除ウィザードが開いたら次へ
image.png

データ保存のポリシーと確認したデータをもとにクエリを作成します。
まず6か月以上前の成功したログを確認してみます。
一番左の🔽を展開すると検索クエリ行を選択できます。
image.png
選択した状態で「かつ」でグループ化でANDとなるのでレコードをプレビューします。
image.png
1360件あるのがわかります。
image.png

さらに特定のフローのログは残すようにクエリを追加しました。

関連(プロセス)を選択し「プロセス名」を次の値と等しくないとして、特定フローのログを削除から除外できます。
Power Automate for desktopのフロー名は環境内に重複できないためそのままフロー名を指定可能です。

image.png

レコードのプレビューで確認したら「次へ」で進みます。
実行計画を作成します。
ジョブの実行間隔にチェックを入れることで定期的に自動実行されます。
一括削除は誰も使わない時間帯に行うのが良いみたいです。
image.png
計画が出来たら「次へ」で進み「送信」を行います。
image.png

結果確認

実行計画から十分時間を空けてPower Platform 管理センターで確認します。

CleanShot 2023-05-22 at 12.31.45@2x.png

244.24MBが44.9MBになりました。
また一括削除対象から除外したフローのログも残っているのが確認できました。

CleanShot 2023-05-22 at 12.38.45@2x.png

ただ気になるのは「このジョブが完了したら(xxx@xxx)にメールを送信する」にチェックを入れていましたが通知は来ていませんでした。Production環境でもメール来なかったので他に何か設定あるのでしょうか・・。

まとめ

 一括削除の機能はとても便利なので活用した方が良いです!
何をどのように残すのか、そのためにはどのくらい予算が許されるのか、監査要件など企業によって違うため調整が必要になりますが、方法を知っておくことで無駄な出費を減らすことが可能です。なお指定したフローのログを残す部分は試行錯誤しました。なので誰かしら役に立ってくれればと思います。(GUIDで指定できると思い込んでいた)

 私は忖度なしに言えるただの1ユーザーなので敢えて言わせてもらいますが、企業で利用するなら有償利用を強く推します。無料という言葉で間口を広いとは思うのですが・・・。有償範囲を使う企業とはどんどん差が開くと思います。一人分の日当にも満たない月額利用料で、できる範囲に違いがありすぎです。例えばこうしたツールを扱える人材を社内に増やそうと思った場合、共有機能やログ機能があるだけで、コードレビューやコンポーネント配布のような使い方ができるので効率が違いすぎます。批判を覚悟でいうなら無料範囲でやっている限り、野良VBAのようなことを繰り返すのが目に見えています。

ただし控えめに言ってもLearnの内容はわかり難いです。日本語ページは翻訳がが中途半端で、雑さが目立ちます。今回はかなりマシな方ですが、それでも怖い部分を触るので辛いです。そのために開発環境で練習しろよということなんだと思いますが・・・。 了

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?