【PowerApps】複数選択した値をJSON関数を使って PowerAutomate で利用する方法


・はじめに

PowerApps から PowerAutomate に値を渡す場合のコンボボックスは、複数選択した内の「最後の選択肢」のみを PowerAutomate に渡します。
残念ながら既定の動作として、複数選択した選択肢全てを PowerAutomate に渡すことができません。

でも、それでは困りますよね。
今回紹介するのは、PowerApps の「コンボボックス」で複数選択した値をすべて PowerAutomate に渡し、利用できるようにする方法です。

・PowerApps 画面構成

今回のサンプルでは下記の操作を想定したアプリを作成します。
 1.コンボボックスで「好きな食べ物」を複数選択する。
 2.送信ボタンをクリックする。
 3.送信ボタンクリックをトリガーにPower Automateが起動する。

サンプルアプリの画面構成は下図の通りです。

・PowerAutomate 構成

PowerAutomate の構成は下図の通りです。
最低限必要なのは、PowerApps トリガーと「JSONの解析」アクションの2つです。

・実装方法

1.【PowerAutomate】アクション「JSONの解析」を追加する

トリガー発動直後にPowerAppsから受け取った JSON を解析し、データを分割して使えるようにします。
今回のアプリは、コンボボックスで複数選択した値をJSONの形でPowerAutomateに渡します。
イメージにするとこんな感じ。

上図右側を見ると「Value」という変数にデータが入っているのが分かります。
このValueを受け取るためには下記スキーマが必要です。
詳細は後ほど説明します。

{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "Value": {
                "type": "string"
            }
        },
        "required": [
            "Value"
        ]
    }
}

2.【PowerApps】PowerApps画面構成の通りにパーツを配置する

サンプルでは下記のパーツを配置しました。

3.【PowerApps】コンボボックスを複数選択可能にする

ComboBox1 のプロパティ「複数選択の許可」を「オン」にします。

4.【PowerApps】ボタンクリックでPowerAutomateのフローを実行する

ComboBox1 で複数選択した値をすべて PowerAutomate に渡すために、JSON 関数 を利用します。
Button1 の OnClick に下記コードを入力して、PowerAutomate のフローを実行します。

Set(jsonValue,JSON(ComboBox1.SelectedItems.Value,IndentFour));
作成したフロー名.Run(jsonValue);

上記、JSON関数の中で「ComboBox1.SelectedItems.Value」を指定しています。
「ComboBox1.SelectedItems.Value」はComboBox1で選択した値全てを含むテーブルです。

実はコンボボックスって、データ型は「テーブル」なんですね、意外な事実!!

JSON関数はテーブルやレコードをJSON形式に変換します。
JSON形式に変換されたデータは「JSONサンプル.Run( )」でPowerAutomateに渡します。

PowerAutomate側の「JSONの解析」では、JSON形式に変換された「ComboBox1.SelectedItems.Value」を受け取ります。
「JSONの解析」に記載の「required」で「Value」を指定することで「ComboBox1.SelectedItems.Value」テーブルのデータを扱うことができるようになるのです。

スキーマの記述例はこちら。

{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "Value": {
                "type": "string"
            }
        },
        "required": [
            "Value"
        ]
    }
}

実行結果がこちら。

うまくコンボボックスで選択した値が取得できていますね。
あとは、PowerAutomate の後続の処理で煮るなり焼くなり好きに調理しましょう!!

少しでも皆様のお役に立てば嬉しいです。