PowerAutomateのPowerAppsトリガーの何が問題か
PowerAppsから呼び出されるPowerAutomateのフローを作成するにあたり、パラメータをPowerAutomateへ受け渡して処理することがあります。
サンプルとして、PowerAppsからメールの件名を入力し、PowerAutomateにパラメータで渡してメール送信するフローをつくります。
とりあえずつくってみたところこうなりました。
パラメータの名称がダサい
画像では英語で「Initializevariable_Value」とかまだぎりぎり許容できる名前ですが、日本語で同じように作成すると「変数を初期化する_値」などという目も当てられない名前が出てきます。
PowerAutomateからパラメータをつくる際は「PowerAppsで確認」のメニューを使用します。
ここでは利便性(※)のため、一度変数に入れてからメールアクション内で使用しています。
※条件分岐やループなどで直接PowerAppsパラメータを使用できないことがあるので、一度変数化した方が何かと便利です。
解決方法
下記のルールでパラメータを作成します。
・変数の初期化 → 変数名と型を入力
・変数の初期化のタイトルを変数名で設定する(ここがPowerApps上で表示される変数名になる)
・ここで初めて「PowerAppsで確認」を押す!
PowerAppsでは設定した名前で表示される。(「_値」とかつくけど)
一応これでまだ見やすい名前が設定できました。
最初に設定していた「Initializevariable_Value」なんてのはいらないので消しましょう。
...ん?
いらなくなったパラメータが消えない
パラメータの使用先や依存している処理が何もなくなって不要となったパラメータも、残留し続けることがあります。
依存関係をもう一度見直す+更新後しばらく待ってみる、を繰り返してみてもどうしても消えない場合は若干無理矢理ですが、これを消してみます。
注:以下の手順は自己責任でお願いします。
解決
Jsonを直接編集します。
・エクスポートします
エクスポートしたzipを解凍し、「(解凍フォルダ)\Microsoft.Flow\flows\(フローアセットパス)」の中の「definition.json」を開きます。
・お好きなJsonエディターでよいですが、ここでは JSON Editor Online を使って編集します。
単に開いただけでは見にくいのでTreeボタンでツリー表示します。
・要らないパラメータは削除。
Ctrl+Fで検索をかけて要らないパラメータを探します。
PowerAppsからの入力パラメータは「properties.definition.triggers.manual.inputs」にあります。
ここの「properties」と「required」にそれぞれパラメータが入っていますので、この2か所を消します。
編集する際はCodeボタンで元の表示に戻します。
変数名や複数パラメータがある場合はもついでに変えてしまいましょう。
・manifest.jsonの階層でzip化
definision.jsonを編集後のファイルとして保存後はインポートのためにフォルダを再zip化します。
「(解凍フォルダ)\Microsoft.Flow」がある階層でzip化します。
・インポート
※エラーが出る場合はJsonのスキーマやzipする階層が間違っていないか再確認しましょう。
その他
バリバリJsonコーディングできる人はもうLogicApps使いましょう。
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs#compare-microsoft-power-automate-and-azure-logic-apps