くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【PowerApps】コンボボックスで複数選択した値を PowerAutomate で利用する

はじめに

※この記事は、情報を最新化しつつ Qiita から移行してきたものになります。

PowerApps のコンボボックスは、既定の動作として複数選択した内の「最後の選択肢」のみを PowerAutomate に渡します。
複数選択した値全てを PowerAutomate で使いたい場合これでは困りますよね。

今回紹介するのは、PowerApps の「コンボボックス」で複数選択した値をすべて PowerAutomate に渡して利用するための方法です。

目次

PowerApps 画面構成

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

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

PowerAutomate 構成

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

実装方法

1.PowerAutomate:「JSONの解析」を追加する

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

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

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

2.PowerApps:コンボボックスを複数選択可能にする

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

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

3.PowerApps:ボタンクリックでPowerAutomateのフローを実行する

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

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

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

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

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

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

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

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


実行結果がこちら。

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

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