SE の雑記

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

Power Automate Desktop のフローの保存方法だったりそれ以外だったり

one comment

Ignite 2021 で Automate tasks with Power Automate Desktop for Windows 10?no additional cost が発表されました。
Power Automate Desktop (PAD) については、2020/12 にアナウンスのあった Power Automate Desktop December release update のとおり、既に GA (一般提供開始) していたのですが、有償となっていました。(試用期間で利用することもできたようですが)

今回のアナウンスでは、Windows 10 を使用しているユーザーについては、Power Automate Desktop を追加の費用なしで利用することができるようになり、Windows 10 のユーザーであれば、Microsoft アカウントがあれば Power Automate Desktop を誰でも利用することができるようになりました。

少し触ってみてのメモを残しておきたいと思います。
Power Platform についての、全体的なアナウンスはこちらですかね。

新しくなった Power Automate Dekstop のライセンスについて

Windows 10 のユーザーであれば、追加費用なしで、Power Automate Desktop を利用することができるようになりました。
これに伴い、Set up Power Automate Desktop も更新されています。

この投稿を書いている時点では、日本語のドキュメントについては、まだ更新前だったので、比較がしやすかったのですが次のような記載の変更があります。

追加費用なしで利用できるようになったことにより次の記載が削除。

Power Automate アテンド型 RPA の 有償版 または 試用版 のライセンス。

 

以下のシステム要件に Windows 10 Home が追加。

Windows 10 Pro、Windows 10 Enterprise、Windows Server 2016、または Windows Server 2019 を実行するデバイス。

最新のドキュメントでは、サインインのアカウントに、Sign-in account comparison の情報が追加され、Microsoft アカウントでの利用が記載されている。

他にも細かな変更はあるかと思いますが、このような記載が目立つのではないでしょうか。

本題のライセンスについては Power Platform license guide が公開されています。
このドキュメントの中には、次の記載があります。

Power Automate use rights included with Windows licenses: Limited Power Automate use rights are included with select Windows licenses to create and execute personal desktop automation for attended RPA capabilities in Power Automate Desktop.

Windows ライセンスには Power Automate の使用権が含まれており、Power Automate Desktop (並びに、Power Platform Admin Center : PPAC の Basic Report も利用できるようです) を使用して、RPA による パーソナルデスクトップの自動化が許可されるようになりました。

このライセンスの変更と、このライセンスに対応した Power Automate Desktop の提供が今回の大きなアナウンスになったのかと思います。

 

Power Fx について

Power Automate Desktop とは全く別ですが、Power Fx についても話題になっていたので。

Power Fx については、次の情報から確認することができます。

いろいろと情報は出ていると思いますが、Overview に書かれている次の情報が現状を表すのかと思います。

Note

Microsoft Power Fx is the new name for canvas apps formula language. This overview article and the associated articles are a work in progress as we extract the language from canvas apps, integrate it with other products of the Power Platform, and make it available as open source. To learn more about and experience the language today, start with Get started with formulas in Power Apps and sign up for a free Power Apps trial.

Power Fx は Power Apps のキャンパスアプリで従来から使用していた数式言語の新しい名称であり、Power Platform の他の製品とも統合され、オープンソースとして利用できるように作業をしているものとなっており、現状はそれ以上の情報はなさそうでした。

Power Apps のカスタムの数式を作成したりすることができるようになるのかなと思いますが、詳細については GitHub のリポジトリで情報が公開されるのを待つ形かと。

Power Automate Desktop のフローの保存 (Microsoft アカウント)

ここからが本題です。

Power Automate Desktop ですがサインインの方法としては、次の 2 種類があります。

  • Microsoft アカウント
  • 組織アカウント

Microsoft アカウントの場合は、フローの情報は OneDrive に保存され、組織アカウントの場合は、Dataverse に保存が行われます。

まずは、Microsoft アカウントで Power Automate Desktop のフローを保存した場合について確認をしてみたいと思います。

Power Automate Desktop のサインイン時に Microsoft アカウントを指定した場合、該当のアカウントの OneDrive 上に、Power Automate Desktop のフローが保存されます。

フローですが実際にファイルとして存在しているようで、サインインをすると OneDrive に「アプリ」というディレクトリが作成され、その下に「Power Automate Desktop for Windows」というディレクトリ作成され、フローごとにファイルが保存されます。

image

実際に保存されたファイルがこちらです。
.meta がフローのメタデータとなり、拡張子がついていないファイルが実際のフローのデータとなります。

image

中身は、Base64 エンコードされたテキストとなっていますので、デコードすれば中身を確認することができます。
image

OneDrive でフロー用のディレクトリを同期するようにすればローカルにファイルが保存されますので、次のような PowerShell のスクリプトで適当にデコードしてみます。

$c = Get-Content "ファイル名"
$bytes = [System.Convert]::FromBase64String($c)
[System.Text.Encoding]::UTF8.GetString($bytes)

 

実行すると、次のような情報が取得できるかと思います。

image

フローの本体は package という属性の中に格納されており、これは UTF-16 でエンコードされたファイルを含む Zip ファイルとなっています。

ということで先ほどのスクリプトに続けて次のようなスクリプトを実行してみます。

$json = ([System.Text.Encoding]::UTF8.GetString($bytes) | ConvertFrom-Json).clientdata | ConvertFrom-Json
$bytes = [System.Convert]::FromBase64String($json.properties.definition.package)
Set-Content package.zip -Value $bytes -AsByteStream

これで Package に格納されていた zip ファイルが取り出せますので展開してみると次のようなファイルが含まれていることが確認できます。

image

「script.robin」がフローの処理を記述したものとなりますので、このファイルをメモ帳等で UTF-16 のエンコードを指定すると開くことができます。

image

処理が記述されていることが確認できますね。

Microsoft アカウントで Power Automate Desktop を使用する場合、OneDrive 上にこのようなファイルが作成されて、フローの内容が保存されるという形になっているようです。

OneDrive からファイルを削除すると、Power Automate Desktop を起動した際に表示されるフローも削除されているかと思います。

Power Automate Desktop のフローの保存 (組織 アカウント)

Microsoft アカウントを使用した場合は、OneDrive 上に保存されていることが確認できましたので、次は組織アカウントでも同様に見ていきたいと思います。

組織アカウントの場合は、Dataverse に保存されることになります。

Dataverse については、TDS エンドポイントを使用して SSMS でクエリを実行する機能があります。

image

TDS エンドポイントを有効にしている環境では、環境の「環境 URL」に記載されているサーバー名の TCP 5558 ポートで、TDS による接続ができますので SSMS でクエリを実行してデータを確認してみます。

image

SSMS で接続して次のようなクエリを実行すると、Dataverse に保存されているフローの内容が確認できるかと思います。

(フローを保存している状態でクエリを一度実行しても結果が出力されなかった場合は、もう一度クエリを実行すると表示されることがありますので、結果がなかった場合は複数回実行してみてください)

select * from workflow where category = 6

ぱっと見た感じは、OneDrive に保存されていたファイルを Base64 でデコードしたときの JSON と同じ形式の形で保存されているように見えますね。

image

昔作った Windows レコーダー (V1) や Selenium IDE のフローの情報なども引っ張って来れているようでした。懐かしい。

image

このような形で情報がフローの情報が保存されているようですね。

Robin

OneDrive に保存されているファイルが「script.robin」というファイル名だったので、Robinて何ぞやと思って調べてみました。

探してみると、Robin,a programminglanguage for RPA が見つかるかと思います。

Robin は Github でもコンテンツが公開されているみたいです。

(Source code coming soon… になっているようですが、現在の状況を考えるとソースが公開されるのかは微妙かもですね)

https://github.com/robin-language/robin

RPA のプログラミング言語として Robin というものがあるんですね。

Standard Modules を見ると、様々なモジュールが提供されており、これらのモジュールの名称は、Power Automate Desktop のアクションと対応していることが確認できるかと思います。

image

Robin を使用していることは「C:\Program Files (x86)\Power Automate Desktop」からも確認できます。

image

この辺のことをつぶやいていたところ次の情報を教えていただきました。

Power Automate Desktop のアクションてテキストエディタにコピペできたりするんですね。便利。

image

この内容がわかると、【MicrosoftのRPA機能】「WinAutomation」とは?【その1 機能の説明】の内容も分かってきますね。

 

マイクロソフトがRPAプラットフォームのSoftomotiveを買収 でも触れられているように PAD の前身は Softmotive の WinAutomate となっているようです。

以下は現在ダウンロードできる Robin の DLL の情報ですが、Robin 自体も Softmotive のソフトウェアだったんですね。

image

以下は、PAD に含まれてる Robin の DLL の情報ですが、Microsoft に情報が変更されており、ファイルバージョンについてもバージョンアップしていることが確認できます。

Softmotive の買収により、Robin 自体も Microsoft の資産となっているのでしょうかね。

image

PAD の Robin は Microsoft が手を入れている最新版になっており、PAD が Windows 10 のライセンスに含まれるようになることを考えると、現在公開されている Robin 単体は、バージョンアップされないのかもしれませんね。

 

本投稿では、JSON から zip を抜いて内容を確認しました。

フローを実行すると、「%USERPROFILE%\AppData\Local\Microsoft\Power Automate Desktop\Console\Workspace」配下に、フロー単位で必要なファイルがキャッシュされるようで、その中には、script.robin も含まれるようなので、robin のスクリプトの内容については、ローカルドライブを見るという方法もありそうです。

 

 

OneDrive と Dataverse の情報を直接見ても得することはなさそうですが、書いておかないと忘れそうなので、メモとして残しておこうかと。

Share

Written by Masayuki.Ozawa

3月 3rd, 2021 at 10:33 pm

One Response to 'Power Automate Desktop のフローの保存方法だったりそれ以外だったり'

Subscribe to comments with RSS or TrackBack to 'Power Automate Desktop のフローの保存方法だったりそれ以外だったり'.

  1. […] れているようです。ただしファイル名はランダムな数字で、ファイルの中身はBase64でエンコードされて文字列化されてる。ファイルで共有したりバックアップ?というのは難しいみたい。 […]

Leave a Reply