2016-08-16 13 views
9

Tôi đã tạo một ứng dụng logic chứa một số trình kích hoạt, một trình kết nối 'http' và sau đó hoạt động điều kiện 'Nếu'. Trình kết nối 'http' trả về kết quả 'json' cho biết jsonObj.Cách thực hiện kiểm tra 'null' trong hành động điều kiện 'if' của Azure Logic App

Tôi có thể kiểm tra điều kiện là @equal(body('HTTP')['jsonObj'].someProperty,'someValue') nhưng không thể thực hiện null kiểm tra giá trị someProperty đó.

Dưới đây là một số cách tôi đã thử không hoạt động.

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

Trả lời

5

tôi không tìm thấy một cách thực sự để kiểm tra trực tiếp chống lại null hoặc undefined nhưng workaround sau nên làm việc khi lựa chọn một đủ chuỗi 'ngẫu nhiên' như dự phòng cho coalesce

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

Ví dụ sau ứng dụng Logic sẽ phản hồi lại thuộc tính prop và liệu nó có thực sự được chỉ định hay không

{ 
    "$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" 
     } 
    } 
} 

để yêu cầu với

{ 
    "prop": "test" 
} 

kết quả trong

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

trong khi một yêu cầu với

{ 
    "propOther": "test" 
} 

kết quả trong

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

Bây giờ bạn có thể làm:

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

Hợp lệ và có thể được lưu nhưng nếu bạn cố chuyển sang chế độ Cơ bản, bạn sẽ gặp lỗi. Vẫn có thể lưu mặc dù.

+0

Bạn sẽ có thể chuyển sang chế độ cơ bản mà không gặp lỗi bây giờ. Giá trị null được chuyển thành một mã thông báo biểu hiện có giá trị là null khi được hiển thị ở chế độ cơ bản. –

Các vấn đề liên quan