あんまり知られていない仕様について。
Power Apps ではAPI の引数 (入力) に関してとある決まり事があります。
入力する引数には 必ず 必須・オプション の属性がありますが、
オプションの引数は全体がレコード型になります。
例えば、以下のような引数をもつRegisterUser という APIを利用すると仮定しましょう。
引数 | 必須 |
---|---|
氏名 | Yes |
生年月日 | Yes |
メールアドレス | Yes |
性別 | - |
住所 | - |
この場合、Power Apps上での表現は以下のようになります。
//すべて入力する場合 RegisterUser("山田 太郎", "1990年1月1日", "yamada@example.com", {性別: "男", 住所: "東京都中央区ほげほげ"}) //一部省略する場合 RegisterUser("山田 太郎", "1990年1月1日", "yamada@example.com", {住所: "東京都中央区ほげほげ"}) //これはエラー RegisterUser("山田 太郎", "1990年1月1日")
ポイントは、
- 必須の入力は引数名不要 (順番通りに入れる)
- オプションの入力は 引数名:値 の形式
です。
実際のAPIで分かりやすいものとしては、Outlookのメール送信です。
確かに、(そもそもメール送るのに)必須な 3つの入力は引数名なしで順序通り、オプションはレコード型になっています。
最近だと Power Apps から Power Automate のフローを実行する際のトリガー "Power Apps (V2)" でもこれが反映されています。
必須の入力は順序通り で 引数名なし ですが、オプションの入力は全体がレコード型になっています。
以上です!
引数がそもそもレコード型やテーブル型の時は入れ子になるんで注意してくださいね。