12

ロジック アプリ ワークフローで以下のデータを処理できるように、追加のクエリ パラメーターを Azure ロジック アプリに渡そうとしています。

https://logicURL?SelectedData= "%7BsiteURL%3AXYZ.sharepoint.com%2Fsites%2FXYZDev%7D" (エンコードされた文字列)

HTTPアクションでは、JSONスキーマの下で渡された上記のデータを処理しようとしています

{
    "kind": "Http",
    "inputs": {
        "schema": {
            "properties": {
                "selectedData": {
                    "type": "string"
                }
            },
            "type": "object"
        }
    } }

selectedData 値を取得していません。decodecomponentURI を使用してから、JSON 値を使用する必要があります。

Azure ロジック アプリのスキーマ

ここでエラーを見つけます

Azure ロジック アプリの実行時エラー

4

3 に答える 3

4

環境

  • 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__')}
  • このアプローチは、典型的なユースケースが要求することを行います。
    • 存在する場合は値を取得し、
    • それ以外の場合はデフォルト値を提供し、
    • パラメータが完全に省略された場合、ロジックアプリ全体をクラッシュさせないでください
    • ワークフロー定義言語を直接編集する場合は@{}構文を使用できますが、「式ダイアログ ボックス」に入力する場合は使用できません。

こちらもご覧ください

于 2020-06-25T12:29:19.023 に答える