Power AutomateからPower Appsへの応答を「配列」で返したい、という質問をもらったのでメモ。
やりたいこと
例えば画像のようにPower Automate側で定義した配列を、Power Apps側に渡して、Power Apps側で使用したいときの話。
こんなときはPower Automate側から文字列として戻してあげて、Power Apps側でParseJSONで解析すると楽。
こんなときはPower Automate側から文字列として戻してあげて、Power Apps側でParseJSONで解析すると楽。
Power Automate側の実装
Power Automate側の構築は簡単で、こんな感じで文字列型の応答に配列をそのまま設定するだけ。
※変数で定義しているときは旧エディタだと候補に出てこないので、「式」から入力する。
Power Automate側の実装は以上。
Power Apps側の実装
Power Apps側は受け取った戻り値を、ParseJSONとForAllを使って、こんな感じで解析する。
With({ret:PowerAppsへの応答サンプル.Run()}, // ParseJSONで配列したUntypedObjectをForAllで配列(テーブル)化する UpdateContext({cats:ForAll(ParseJSON(ret.output), ThisRecord)}); )
するとPower Apps側で配列(実際はValue列を持つテーブル)として受け取れるので、
後は使うだけ。