Power App の実行アクションは、デスクトップ フローから直接アプリを起動し、2 つの間の通信チャネルを確立します。 この統合を使用することで、デスクトップ フローは Power App エクスペリエンスをネイティブに呼び出し、入力を渡し、出力を受け取ることができます。 このアプローチにより、UI ベースの自動化に依存するのではなく、参加している自動化シナリオに対して豊富なネイティブ統合が可能になります。
この機能を使用すると、次のことができます。
- デスクトップ フローから直接アプリを呼び出す
- デスクトップ フローから直接アプリを呼び出します。
- デスクトップ フローからの入力をアプリに渡します。
- アプリからの出力をフローに取り込みます。
- アプリ イベントからサブフローをトリガーします。
これにより、次のようなシナリオが可能になります。
- 参加型自動化のための複数ステップの動的ガイド付きフォーム
- 従来のカスタム フォームを置き換える最新のアプリベースのエクスペリエンス
- ユーザー アクションによってフローの実行が決定される、イベント ドリブンの参加型オートメーション
- 従来のデスクトップ自動化をブリッジする最新のクラウド アプリケーション
要件と可用性
- デスクトップ バージョンの場合はMinimum Power Automate: 2.68 以降。
- クラウドの可用性:パブリック クラウドでのみ使用できます。
Note
この機能はプレビュー段階であり、一般公開前に変更される可能性があります。
[前提条件]
開始する前に、以下を用意してください。
- デスクトップ用Power Automate (PAD) バージョン 2.68 以降インストール済み
- 同じ環境内のPower Appsへのアクセス
- アプリから呼び出すことができるデスクトップ サブフロー
- Microsoft Edge WebView2 Runtime がインストールされている (実行時に Power App を表示するために必要)
Important
- ローカル サブフローを作成し、必要に応じてサブフロー スコープで入力/出力変数を定義します。
- サブフロー名は、文字で始まり、ラテン文字のみを含み、スペースを含まない必要があります。 これらの名前付け規則に従っていないサブフローは、Power Apps Studio では公開されず、呼び出しには使用できません。
手順 1: デスクトップ フローで呼び出し可能なサブフローを作成する
- PAD デザイナーでデスクトップ フローを開きます。
- 1 つ以上の ローカル サブフローを作成します。
- (省略可能)サブフローごとに、次を定義します。
- 入力変数: アプリがサブフローに渡す値
- 出力変数: サブフローがアプリに返す値
Note
入力や出力を必要としないサブフローを作成することもできます。 アプリは、これらのサブフローを呼び出して、データを渡したり返したりせずにロジックを実行できます。 各サブフローを 1 つの操作 (データの検索、入力の検証、システムへの書き込みなど) に集中します。
手順 2: Power Apps Studio へのオーサリング接続を確立する
Power Apps Studio でサブフローを公開するには (呼び出すことができる関数として表示されるように)、PAD オーサリング ブリッジを介してアプリを開きます。
- Power App の実行 (プレビュー) アクションをデスクトップ フローに追加します。
- アクションのプロパティで、次のいずれかを実行します。
- 既存のアプリを選択するか、
- 新しいアプリを作成する
Note
新しいアプリを作成する場合:
- デスクトップ ブリッジの Power Automate ページが既定のブラウザーで自動的に開きます。
- Power Apps デザイナーでアプリを保存して発行します。
- アクションに戻り、[ 最新の情報に更新] を選択します。
- ドロップダウンからアプリを選択します。
[ アプリを開く] を選択します。
既定のブラウザーでは、Power Apps Studio への接続手順を示す Power Automate デスクトップ ページが開きます。
ブラウザー ページで、[デザイナーを 開く] を選択します。
新しいブラウザー タブが開き、Power Apps Studio が表示され、選択したアプリが既に開いています。
デスクトップ ブラウザー ページのPower Automateを開いてconnected が表示されるまで待ちます。
アプリの読み込みが完了する前にページを閉じると、デスクトップ フローと Power アプリ間の接続が確立できなくなります。
手順 3: Power App からデスクトップ サブフローを呼び出す
デザイナー接続を確立すると、Power Apps Studio に PowerAutomateDesktop という名前のホスト オブジェクトが表示されます。 このオブジェクトは、デスクトップ サブフローを呼び出し可能な関数として公開します。
呼び出しパターン (一般)
Power Appsからデスクトップ サブフローを呼び出すには:
-
PowerAutomateDesktopオブジェクトを使用します。 - サブフローを名前で呼び出します。
- 関数パラメーターとして入力を渡します。
- 返された結果から出力値にアクセスします。
一般的な構文:
PowerAutomateDesktop.SubflowName(input1, input2, ...).OutputVariableName;
Example
この例は次のとおりです。
- サブフローの名前は
GetCustomerDataです。 - 1 つの入力パラメーターを受け取ります。 たとえば、「
varCustomerId」のように入力します。 -
out_customer_dataという名前の出力変数を介して値を返します。これはグローバル変数varResultに格納されます。
サブフローを呼び出すには、varCustomerId の値を渡し、返された出力を varResult グローバル変数に格納します。
Set(customer_data_result, PowerAutomateDesktop.GetCustomerData(varCustomerId));
手順 4: Power Appsに値を返す
- デスクトップのPower Automateは、すべての値を文字列として返します。 Power Appsで、これらの値を適切な型にキャストします。
- デスクトップ フロー サブフローを呼び出すと、 すべての出力変数 が 1 つのレコード値として返されます。
- 個々の出力変数には、そのレコードのプロパティとしてアクセスできます。
例: Power Appsで出力変数を取得して使用する
Set(globalVariable, PowerAutomateDesktop.GetCustomerData(inputVariable))
次の使用例は、サブフローからのすべての出力変数を globalVariableに格納します。
特定の出力変数にアクセスします。
out_var1 の例を次に示します。
globalVariable.out_var1
複合値を返す
複合値 (カスタム オブジェクトまたはリスト) を返す必要がある場合は、それらを出力変数として返し、Power Appsで解析します。
- デスクトップ サブフローで、カスタム オブジェクトをビルドします。
- カスタム オブジェクトを出力変数として返します。
- Power Appsでは、
ParseJSONを使用して戻り値を解析し、そのプロパティにアクセスします。
Set(parsedValue, ParseJSON(globalVariable.out_customer_data))
Note
デスクトップのPower Automateは、すべての値を文字列として返します。 アプリでこれらの値を使用する前に、適切な型にキャストします (たとえば、 Value または Booleanを使用します)。
IntelliSense のサポート
Power Appsでデスクトップ サブフローを呼び出すと、Power Apps Studio には IntelliSense が用意されており、使用可能な機能の検出と使用に役立ちます。
数式バーに入力すると、次のようになります。
-
PowerAutomateDesktopオブジェクトには、使用可能なサブフロー名が表示されます。 - 選択したサブフローの入力パラメーターが正しい順序で表示されます。
- 出力変数名は、関数呼び出しの後に推奨されます。
このサポートは、次の場合に役立ちます。
- 使用可能なサブフローをすばやく見つけます。
- デスクトップ フローを参照せずに、必要な入力を理解します。
- 名前を記憶せずに有効な出力変数を選択します。
サブフローを呼び出すことができる場所
次のようなアクション対応プロパティからサブフローを呼び出します。
- ボタンの OnSelect。
- アプリの設計に応じて、コントロールのイベント プロパティ (OnChange など) を使用します。
ランタイムの動作
デスクトップ フローが実行され、実行が Power App の実行に達したとき:
- アプリが起動します。
- アプリによって通信チャネルが自動的に確立されます。
Run Power App アクションは、ユーザーがPower Apps ウィンドウを閉じたり、フローを手動で停止したりすると完了します。
制限事項と考慮事項
- 順次実行: このプロセスは、サブフロー呼び出しを一度に 1 つずつ処理します。 前の呼び出しが完了する前に、新しい呼び出しをトリガーしないでください。
- 公開の反映: アプリへの変更を公開した後、Power Automate for desktop からアプリを再度起動した際に、更新が反映されるまでに時間がかかる場合があります。
- サインイン プロンプト: 一部のシナリオでは、アプリの起動時にユーザーにサインインを求められる場合があります。
Troubleshooting
Power Apps デザイナーに PowerAutomateDesktop オブジェクトが表示されない
- PAD アクションで [アプリを開く ] を使用していることを確認します。 次に、ブラウザーで [ デザイナーを開く ] を選択し、デザイナーがアプリを読み込むまで待ちます。
- PAD ブラウザー ページは、接続が確立されたことを示すまで開いたままにしておきます。
Power Apps Studio で新しいサブフローまたは更新されたサブフローが表示されない
- Run Power Apps > Open app > Open Designer からアプリを開き直して、スキーマを更新します。
デスクトップ用のPower Automateから実行している場合、Power App の変更は反映されません
- Power Apps で最新の変更を発行してください。
- 公開後、アプリを再度実行する前に少し待ちます。更新が反映され、デスクトップ用のPower Automateから起動されたときに使用可能になるまでに時間がかかる場合があるためです。 待機しない場合は、[ Power App の実行 ] アクションを使用してアプリを再起動し、最新バージョンをすぐに読み込むことができます。
実行時にアプリが表示されない
Power Apps Microsoft Edge WebView2 Runtime を使用してレンダリングされます。
WebView2 Runtimeがコンピューターにインストールされていることを確認します。 これは、次の方法で確認できます。
- Windows設定 ([アプリ] > インストールされているアプリ) でインストールされているアプリケーションの一覧を確認する、または
- デスクトップトラブルシューティングツールのPower Automateの実行
インストールされていない場合は、Microsoft Edge WebView2 からダウンロードしてインストールします。
ダウンロード ページで、 Evergreen Bootstrapper を選択し、インストーラーを実行します。