Power Automate Desktop フロー名 取得

皆さんこんにちは、マイクロソフトの川端です。
Power Automate for desktop (通称PAD) を使い始める方向けのトレーニングコンテンツを提供しています。
こちらの内容は中級編の応用としての上級編です。まだ中級編を読まれていない方はそちらをまずご参照されることをお勧めいたします。

1.はじめに

1-1.今回作成するフローの全体像について

PCの現在日時を取得し、特定のファイルに日時付きのファイル名を書き込みに行くというシンプルなフローを題材に、Power Automate for desktopで *共通モジュール 化を行っていく方法と考え方についてご紹介していきます。

*共通モジュール:ユーザーの判断で最小構成とし、入出力データの受け渡しをインターフェースしたうえで、共通的に部品利用可能なデスクトップフローのこと

共通モジュール化をせずに重厚長大な1つのデスクトップフローを構成してしまうことももちろん可能で、エラーなく動作しているケースでは問題が無いでしょう。しかし、複数の共通モジュールとしてのデスクトップフローを定義しておけば(理論的には)複数人で多くのRPAを保守する場合で、保守性が向上し、組織内でのフローの利活用が進みます。複数のデスクトップフロー間でのデータの受け渡しはクラウドフローを経由して構成すると便利です。

詳細な説明とハンズオンに入る前に、動画で今回構成するフローの全体の動きをまず把握していただくと分かりやすいと思います。
以下の動画でまず動作イメージをご覧ください(音声なし)

1-2.デスクトップフローを共通モジュール化する際の考え方

上記動画のフローは下図のようなモジュール1~3で構成されています(モジュール毎、モジュール間のインターフェースの内容については後ほど詳細に記載します)。
これらのモジュール1~3の構成は、1つのデスクトップフローの構成で記述することもできるでしょう。

Power Automate Desktop フロー名 取得

しかし、これらのデスクトップフローを他のクラウドフローと共通して利用する場合、もしくは中長期的にデスクトップフローをメンテナンスし複数人で管理保守することを考えると、可能な限り、デスクトップフローを疎結合、かつ共通部品化して内部的に保持したほうが、一般的に保守性は向上します。

その理由について説明していきます。
以下のようにモジュール1,2,3のどこかで問題(/障害)が実際に起きてしまったと想定しましょう(下図の例ではモジュール3への障害)。
1つのデスクトップフローとして構成していたとしてどういった違いがあるでしょうか?細かく機能単位を分けていれば、複数個あるデスクトップフローの中のうち、どこで障害が起きたのか、モジュールレベルで把握することができ、原因の切り分けと問題個所の修正を素早く行うことができます。
また、下図に示す通り、他のクラウドフロー内で共通モジュールとしての呼び出しがあったとしても、1か所の共通モジュールの修正ですみます。その共通モジュールを参照しているフローでは、一括で修正反映されますので、素早く全体のフローを復旧させることができるでしょう。

Power Automate Desktop フロー名 取得

以上、やや理論的な話が続きましたが、以降のハンズオンで、この共通モジュール化の流れを実際に体験してみましょう。

2. 事前準備(環境設定)

  • 最新版のPower Automate for Desktopのダウンロード:https://flow.microsoft.com/ja-jp/desktop/
  • インストール、初期セットアップ手順: ロボ研@K2_kzyさんがまとめて頂いている内容が分かりやすいです。
    • https://qiita.com/K2_kzy/items/b8b22edbf56b65248949#2-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%83%BC%E8%B5%B7%E5%8B%95

3. クラウドフローから呼び出す複数のデスクトップフローを構成しよう

3-1.デスクトップフロー側の構成の準備をまずは進めよう。

今回構成するデスクトップフロー(モジュール1~3)は3種類あります。
・モジュール1:現在日時の取得
・モジュール2:サブテキスト(モジュール1から加工)の取得で短い日時の文字列へ変更
・モジュール3:ファイル名の変更
これらの3つのモジュールをまずデスクトップ側(Power Automate for desktop)で構成し、その後クラウドフローで
構成を束ねて実行していきます。以下に細かな手順を示しますが、随時お好みでカスタマイズしてみてください。

3-2.モジュール1の構成(現在日時の取得)

以下の通り、アクションを構成しましょう。
「モジュール1」などとデスクトップフローの名前を付け、適時内容の保存を行いましょう。

1.[メッセージを表示]のアクション

  • メッセージボックスのタイトル:PADからのメッセージ
  • 表示するメッセージ:モジュール1を開始します
  • メッセージボックスを常に手前に表示する:トグルオン
    Power Automate Desktop フロー名 取得

2.[現在の日時を取得します]のアクション

  • 取得:現在の日時
  • タイムゾーン:システムタイムゾーン
  • 生成された変数:module1outputと名前を付けておきましょう。

Power Automate Desktop フロー名 取得

3.[メッセージを表示]のアクション
- メッセージボックスのタイトル:PADからのメッセージ
- 表示するメッセージ:%module1output%
- メッセージボックスを常に手前に表示する:トグルオン

Power Automate Desktop フロー名 取得

以上で、アクションの構成は完了です。

得られた日時データを入出力変数として定義しましょう。

  • 変数の種類:出力
  • 変数名:module1output
  • 外部名:module1output
  • 説明:お好みで
    Power Automate Desktop フロー名 取得

3-3.モジュール2の構成

モジュール2ではモジュール1で得られた値「2021/10/21 10:43:59」といった文字列のスラッシュ(/)と時間に関係するところを省き、
「20211021」といった形で文字列を整形する処理を構成していきます。

「モジュール2」などとデスクトップフローの名前を付け、適時内容の保存を行いましょう。

1.[メッセージを表示]のアクション

  • メッセージボックスのタイトル:PADからのメッセージ
  • 表示するメッセージ:%modfule2input%
  • メッセージボックスを常に手前に表示する:トグルオン

Power Automate Desktop フロー名 取得

2.[サブテキストの取得]のアクション

  • 元のテキスト:%module2input%
  • 開始インデックス:文字の位置
  • 文字の位置: 0
  • 長さ:文字数
  • 文字数:4
  • 生成された変数:subtext1
    Power Automate Desktop フロー名 取得

3.[サブテキストの取得]のアクション

  • 元のテキスト:%module2input%
  • 開始インデックス:文字の位置
  • 文字の位置: 5
  • 長さ:文字数
  • 文字数:2
  • 生成された変数:subtext2

Power Automate Desktop フロー名 取得

4.[サブテキストの取得]のアクション

  • 元のテキスト:%module2input%
  • 開始インデックス:文字の位置
  • 文字の位置: 8
  • 長さ:文字数
  • 文字数:2
  • 生成された変数:subtext3

Power Automate Desktop フロー名 取得

5.[テキストの結合]のアクション

  • 結合するリストを指定:%subtext1%%subtext2%%subtext3%
  • リスト項目を区切る区切り記号:なし
  • 生成された変数:module2output

Power Automate Desktop フロー名 取得

6.[メッセージを表示]のアクション

  • メッセージボックスのタイトル:PADからのメッセージ
  • 表示するメッセージ:%modfule2output%
  • メッセージボックスを常に手前に表示する:トグルオン

Power Automate Desktop フロー名 取得

以上でモジュール2のアクション構成は完了です。

モジュール1から得られる入力変数を定義していきましょう。
- 変数の種類:入力
- 変数名:module2input
- データの種類:テキスト
- 外部名:module2input
- 説明:お好みで

Power Automate Desktop フロー名 取得

モジュール2で得られたサブテキストを出力する出力変数を定義していきましょう。
- 変数の種類:出力
- 変数名:module2output
- 外部名:module2output
- 説明:お好みで

Power Automate Desktop フロー名 取得

以上で、モジュール2の入出力変数の設定は完了です。

3-4.モジュール3の構成

モジュール3ではモジュール2で得られた値「20211021」といった年日付を用いて、ターゲットのファイル名を変更する処理を構成していきます。
「モジュール3」などとデスクトップフローの名前を付け、適時内容の保存を行いましょう。

1.[メッセージを表示]のアクション

  • メッセージボックスのタイトル:PADからのメッセージ
  • 表示するメッセージ:モジュール3を開始します
  • メッセージボックスを常に手前に表示する:トグルオン

Power Automate Desktop フロー名 取得

2.[メッセージを表示]のアクション

  • メッセージボックスのタイトル:PADからのメッセージ
  • 表示するメッセージ:%module3input%
  • メッセージボックスを常に手前に表示する:トグルオン

Power Automate Desktop フロー名 取得

3.[ファイルの名前を変更する]のアクション

  • 名前を変更するファイル:お好みで
  • 名前の変更の方法:テキストを追加する
  • 追加するテキスト:%module3input%
  • ファイルが存在する場合:上書き (お好みで)
    Power Automate Desktop フロー名 取得

以上でモジュール3のアクション構成は完了です。

モジュール2から得られる入力変数を定義しましょう。
- 変数の種類:入力
- 変数名:module3input
- データの種類:テキスト
- 外部名:module3input
- 説明:お好みで

Power Automate Desktop フロー名 取得

以上でモジュール3の入出力変数の設定は完了です。

4. クラウドフローから作成したデスクトップフローを呼び出そう。

下図のようにクラウドフローを構成していきます。クラウドフローの作成時の詳細な操作については、Power Automateを使ってみよう ー (中級編)クラウドフローの承認フローの内容を受けてPADで請求処理自動実行も合わせて参照してみてください。

「共通モジュールのデスクトップフローを呼び出すクラウドフロー」などとクラウドフローに名前を付けるとよいでしょう。

トリガーとしては下図のように「手動でフローをトリガーします」を設定しておきます。今回は動画にある通り手動実行で共通モジュール化の流れを検証していきます。

下の構成のように、モジュール間の関係性を間違えないように作成しましょう。

Power Automate Desktop フロー名 取得

構成は以上です。実際に動作させてみてください。正しく動作しましたでしょうか?
もし動かない場合には、1-1.今回作成するフローの全体像についての動画や設定内容を再度確認してみましょう。

5.まとめ

上級編として、デスクトップフローを最小構成単位でモジュール化し、クラウドフローからのデータの受け渡しのインターフェースを疎結合に構成することで、保守性の高い共通モジュールとしてのデスクトップフローが作成可能になる点について、具体的なクラウドフロー/デスクトップフローのハンズオンを通じて学んでいただきました。共通部品化を効率的に進め、ターゲットアプリケーション、プロセスの変化に頑強なシステムを構成していきましょう。

Power Automate Desktopの名称は?

2021年10月4日、Windows11が正式にリリースされました。 これに伴い、Power Automate DesktopPower Automate for desktop名称を変更、Windows標準搭載のアプリケーションとなりました。

Powerautomate Desktopの共有フローは?

デスクトップ フローの共有.
Power Automate にサインインする。.
画面の左側から マイ フロー を選択します。.
デスクトップ フロー を選択します。.
所有しているフローを選択します。.
共有 を選択します。.
人を追加する フィールドを選択し、フローを共有する組織内の人物の名前を入力します。.

Power Automate desktop どこに保存される?

Microsoft アカウントを使用して Power Automate で構築されたデスクトップ フローは、自分の OneDrive に自動的に保存されます。

Power Automate Desktopの停止ショートカットは?

実行 を選択、または F5 を押下してフローを実行します。 フローを実行すると、実行 が 一時停止 になります。 フローの実行中に 一時停止 を選択、または Ctrl +一時停止 を押下して一時停止し、その時点までの変更を検査します。 フローが一時停止している間に 実行 を選択して再開します。