環境
- Microsoft Azure Logicapp
- MSFT Logicapp ワークフロー定義言語
- 2020-06-25 04:56:31 時点のライブ バージョン
問題
- Logicapp 開発者は、HTTP GET 経由で渡された URL クエリ パラメータの値を取得したいと考えています。
解決
- このユースケースの解決策は、この StackOverflow スレッドの他の場所で既に提供されています
- ただし、このアドオンの回答は、以前のソリューションをリファクタリングします
- MSFT ワークフロー定義言語 ("コード" ビューで logicapp を表示したときに表示される JSON ベースのソース コード) での式の作成に対処します。
詳細
- この URL は、この SO スレッドの元の質問と別の回答を拡張します
- ここで期待
FirstName
LastName
するFaveColor
プロパティ
https://xyz.logic.azure.com:443/workflows/id/triggers/manual/paths/invoke
?api-version=2016-10-01
&sp=%2Ftriggers%2Fmanual%2Frun
&sv=1.0
&sig=コード
&FirstName=ヒューオマー
&LastName=ハンプソン
&FaveColor=
- 標準の初期化:必要な名前と値のペアをキャプチャするには、次で十分です。
triggerOutputs()['queries']['FirstName']
triggerOutputs()['クエリ']['姓']
triggerOutputs()['queries']['FaveColor']
- エラー トラップ初期化:必要な名前と値のペアが見つからない場合にエラーをスローせずに目的の名前と値のペアをキャプチャするには、次のコードで十分です (エラーのないキャプチャ)。
triggerOutputs()['queries']?['FirstName']
triggerOutputs()['queries']?['LastName']
triggerOutputs()['queries']?['FaveColor']
- デフォルトを使用したエラー トラップ初期化:以下は、必要な名前と値のペアをエラー トラップ初期化するだけでなく、欠落している値のデフォルト値を提供するのに十分です。
coalesce(triggerOutputs()['queries']?['FirstName'] , 'Puomer' )
coalesce(triggerOutputs()['queries']?['LastName'] , 'Puimpson' )
coalesce(triggerOutputs()['queries']?['FaveColor'] , 'Purple' )
ソリューションのリファクタリング
- したがって、元のソリューションは次のようにリファクタリングできます。
## 前
@triggerOutputs()['queries']['SelectedData']
## 後
@{coalesce(triggerOutputs()['queries']?['SelectedData'] , '__blank__')}
- このアプローチは、典型的なユースケースが要求することを行います。
- 存在する場合は値を取得し、
- それ以外の場合はデフォルト値を提供し、
- パラメータが完全に省略された場合、ロジックアプリ全体をクラッシュさせないでください
- ワークフロー定義言語を直接編集する場合は
@{}
構文を使用できますが、「式ダイアログ ボックス」に入力する場合は使用できません。
こちらもご覧ください