Power Automateの業務自動化設計の知識マップ(知識グラフ)
Power Automateはコネクタでクラウドサービスをつなぐクラウドフローと、Windows画面を操作する有人・無人のデスクトップフローから成り、後者はクラウドフローから呼び出せる。無人実行にはPower Automate ProcessライセンスとPremiumユーザーによるマシン登録、フローをソリューションへ含めることが前提になり、Officeアプリの操作にはさらにMicrosoft 365 Apps for enterprise(unattended)ライセンスが要る。デスクトップフローはセレクターで画面要素を特定し、On Block Errorでエラー処理をまとめ、Get credentialアクションでAzure Key Vault等から認証情報を安全に取得する。DLPポリシーはクラウドフロー・デスクトップフロー双方のコネクタ利用を制限でき、オンプレミスの資源はオンプレミスデータゲートウェイで橋渡しする。PowerShellは.NET基盤で大量データ処理に向き、VBAが担ってきたExcel操作はOffice Scriptsへ置き換わりつつある。
Power Automate クラウドフロー
スケジュールやメール受信などをトリガーに、クラウド上でコネクタやアクションを組み合わせて自動化するPower Automateのフロー形態。
クラウドフロー
Power Automate デスクトップフロー
Windows上のアプリを操作するPower AutomateのRPA機能で、Excelアクション群の中にVBAマクロを実行するアクションを持つ。
セレクター(UI要素の特定方法)
ウィンドウ階層と属性の組み合わせで画面上のUI要素を特定する、デスクトップフローの仕組み。
On Block Errorアクション
ブロックに含まれる全アクションへ共通のエラー処理を適用できる、デスクトップフローのエラー処理アクション。
有人実行(attended)
人が画面の前にいる状態で実行するデスクトップフローの実行形態。
無人実行(unattended)
専用のPCやサーバー上で人の介在なしに実行するデスクトップフローの実行形態。
Power Automate Processライセンス
デスクトップフローを無人実行するマシンに必要なライセンス。旧Unattended RPAアドオンに相当する。
Unattended RPAアドオン
Power Automate Premiumユーザーライセンス
クラウドフローから有人実行のデスクトップフローを起動する接続所有者や、デスクトップフロー実行用マシンを登録する環境メーカー/Desktop Flows Machine Ownerロールのユーザーに必要な、Power Automateの上位ユーザーライセンス。
ソリューション(Power Platform)
フロー・アプリ・接続参照などの構成要素をひとまとめにして管理し、環境間を移送するためのPower Platformの入れ物。
Microsoft 365 Apps for enterprise(unattended)ライセンス
無人実行のデスクトップフローでOfficeアプリを操作する際に必要なライセンスで、これがないとOfficeが機能制限モードで動作する。
unattended RPA向けOfficeライセンス
Get credentialアクション
Azure Key VaultやCyberArkなどを裏側とした「Power Automateの資格情報」から、認証情報を機密情報として取得するデスクトップフローのアクション。
Azure Key Vault
秘密情報を安全に保管できるAzureのシークレット管理サービスで、Power Automateの資格情報の保管先として設定できる。
データ損失防止(DLP)ポリシー
コネクタを業務データ専用・業務データ利用不可・ブロックに分類し、異なる分類のコネクタを同じフロー内で組み合わせられないようにするPower Platformのガバナンス機構。
DLPポリシー
オンプレミスデータゲートウェイ
社内に常駐アプリをインストールし、送信方向の接続だけでクラウドフローと社内のファイルサーバーやDBを橋渡しする仕組み。
クラウドフローの失敗通知
既知の直し方がある原因と判定された場合に限り実行単位のアラートが所有者・共同所有者へ送られる、Power Automate標準の失敗通知の仕組み。
失敗アラート
VBA(Visual Basic for Applications)
Officeアプリケーションに組み込まれたBASIC系のマクロ言語で、ExcelやAccessなどからCOMコンポーネントを呼び出せる。
Excel
ワークシートの読み書きや自動操作の対象になる、Microsoftの表計算ソフトウェア。CSVファイルを開くと値を数値・日付として解釈する。
PowerShell
オブジェクトパイプラインとエラー処理機構を持つ、Microsoftが最も堅牢で最新のWindows自動化に推奨するコマンドラインシェル兼スクリプト言語。
.NET(Core以降)
.NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。
モダンな.NET
Officeスクリプト(Office Scripts)
TypeScriptでExcelを操作するスクリプト機能で、Excel専用でブックにのみアクセスでき、Power Automateのクラウドフローから呼び出せる。
画面操作を伴わない定型のPC作業
画面のクリックや入力が必須ではない、ファイル操作やバッチ処理のようなPC上の定型作業。
非GUI定型作業
クラウドフローはデスクトップフローを呼び出して起動できる。デスクトップフローを呼び出す構成を組み、マシン登録とデスクトップフロー接続を用意した場合に限る
デスクトップフローのUI自動化は、ウィンドウ階層と属性の組み合わせで画面要素を特定するセレクターに基づいて動作する
複数アクションへ共通のエラー処理をまとめたい場合、デスクトップフローはブロックに含まれる全アクションへ共通のエラー処理を適用できるOn Block Errorアクションでエラー処理を組める(個別アクション単位のエラー処理という代替もある)
デスクトップフローは人が画面の前で実行する有人実行の形態を取れる
デスクトップフローは専用のPCやサーバー上で人の介在なしに実行する無人実行の形態も取れる。無人実行を選ぶ場合、クラウドフローから呼び出す構成とマシン登録、追加ライセンスが必要になる
無人実行には有人実行とは別のライセンスが必要で、フローやマシンに紐づくPower Automate Processライセンスを使う。以前の無人実行アドオンはレガシー扱いでこれに置き換えられている
Processライセンスはユーザーライセンスの代わりにならず、マシンの登録にはPower Automate Premiumライセンスを持つユーザーが必要
クラウドフローにProcessライセンスを割り当てる場合は、フローをソリューションという単位に含めておく必要がある(マシンに割り当てる場合はこの前提を伴わない)
無人実行でOfficeアプリ(Excel等)を操作する場合、Microsoft 365 Apps for enterprise(unattended)ライセンスがないとOfficeが機能制限モードで動作し、対話実行時と挙動が変わることがある
認証情報を入力変数へ直書きせず安全に取得したい場合、デスクトップフローはGet credentialアクションで機密情報として取得すると実行ログにも残らない
Get credentialアクションはAzure Key VaultやCyberArkを裏側のシークレットボキャブラリとした「Power Automateの資格情報」から認証情報を取得できる
コネクタを業務データ専用・業務データ利用不可・ブロックに分類するDLPポリシーで、クラウドフローが使えるコネクタの組み合わせを制御できる
デスクトップフローのアクションも同じDLPポリシーの枠組みで分類・ブロックできるが、既定では無効であり、テナント設定から有効化した場合に限って効く(有効化は後戻りできない)
クラウドから直接アクセスできないオンプレミスのデータベースやファイル共有は、送信方向の接続だけで橋渡しするオンプレミスデータゲートウェイ経由で扱う
フロー設定で実行単位の失敗アラートを有効にしている場合、クラウドフローの失敗時は、既知の直し方があると判定された場合に限りこのアラートが所有者・共同所有者へ送られ、同一フローには28日間のクールダウンが入る
VBAはExcelなどのOfficeアプリ内で実行されるプログラミング言語で、アプリ内の操作や帳票作成に使われる
PowerShellは.NET基盤のコマンドラインシェル・スクリプト言語で、ファイル操作・バッチ処理・API呼び出しに向く
Office ScriptsはExcelの操作をTypeScriptで自動化する仕組みで、VBAに代わってPower Automateと組み合わせる選択肢として案内されている
Excelアクション単体の制約を超えるOffice文書操作が必要な場合、Microsoft 365上の業務フローはOffice ScriptsとPower Automateを組み合わせて構築できる
画面のクリックや入力が必須でない定型のPC作業にデスクトップフローを使うのは、保守やバージョン管理の面でPowerShellに劣ることが多く推奨されない
画面操作が必須でない定型のPC作業には、保守しやすくGitでのバージョン管理にも乗せやすいPowerShellが候補になる