2016-08-16 55 views
9

トリガー、 'http'コネクタ、 'If'条件アクティビティを含むロジックアプリケーションを作成しました。 'http'コネクタは「json」の結果、例えばjsonObjを返します。Azure Logic Appの 'if'条件アクションで 'null'チェックを行う方法

@equal(body('HTTP')['jsonObj'].someProperty,'someValue')と状態を確認できますが、nullの値を確認できません。somePropertyの値を確認してください。

以下は私が試したいくつかの方法ですが、動作していません。

@equal(body('HTTP')['jsonObj'].someProperty, null) --Unable to save 
@equal(body('HTTP')['jsonObj']?.someProperty,'null') --Comparing with string value 'null' 

答えて

5

は、私が直接nullまたはundefinedに対してテストする現実的な方法を発見しませんでしたが、例えば​​3210

... 
"propExists": "@equals(coalesce(triggerBody()?.prop, 'Fallback42'), 'Fallback42')" 
... 

のためのフォールバックとして十分な「ランダム」の文字列を選択する場合、以下の回避策は動作するはずですLogic Appを実行すると、プロパティpropがエコーバックされ、実際に指定されたかどうかが確認されます。

{ 
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", 
    "actions": { 
     "Response": { 
      "inputs": { 
       "body": { 
        "propNull": "@equals(coalesce(triggerBody()?.prop, 'undefined'), 'undefined')", 
        "prop": "@triggerBody()?.prop" 
       }, 
       "statusCode": 200 
      }, 
      "runAfter": {}, 
      "type": "Response" 
     } 
    }, 
    "contentVersion": "1.0.0.0", 
    "outputs": {}, 
    "parameters": {}, 
    "triggers": { 
     "request": { 
      "inputs": { 
       "schema": {} 
      }, 
      "kind": "Http", 
      "type": "Request" 
     } 
    } 
} 

よう

{ 
    "prop": null, 
    "propNull": true 
} 
6

{ 
    "propOther": "test" 
} 

結果と要求に対し

{ 
    "prop": "test", 
    "propNull": false 
} 

{ 
    "prop": "test" 
} 

結果との要求があなたは今行うことができます。

@equal(triggerBody()['jsonObj']?['someProperty'], null) 

有効で保存できますが、基本モードに切り替えるとエラーが発生します。まだ保存することができます。

+0

エラーが発生することなく、基本モードに切り替えることができるはずです。ヌル値は、基本モードで表示されたときに値がnullである式トークンに変換されます。 –

関連する問題