如何在Azure Logic应用的触发器JSON架构中为字段设置默认值?

时间:2019-05-07 11:26:47

标签: json azure azure-logic-apps

我正在设置带有触发器的Azure Logic Apps工作流,但是目前无法在JSON架构中为此类触发器的字段定义默认值。

我已启用JSON模式验证和必填字段,如此处所述:https://www.danrigby.com/2018/08/27/enable-schema-validation-and-required-fields-in-logicapps/

我的JSON模式当前如下所示:

{
    "anyOf": [
        {
            "required": [
                "delay"
            ]
        },
        {
            "required": [
                "startTime"
            ]
        }
    ],
    "properties": {
        "callbackUrl": {
            "type": "string"
        },
        "delay": {
            "default": 0,
            "minimum": 0,
            "type": "integer"
        },
        "startTime": {
            "type": "string"
        }
    },
    "required": [
        "callbackUrl"
    ],
    "type": "object"
}

我也尝试用default代替defaultValue,但是没有运气。

我希望delay在不存在时填充为0,而是在Azure Logic Apps工作流中解释为null,导致以下布尔条件(例如delay is greater than 0)失败,因为它们不要期望对空值进行评估。

1 个答案:

答案 0 :(得分:0)

我相信JSON模式在这里只是用于验证,就像在许多情况下一样。 official docs中提到的许多实现都忽略了default属性。

相反,您可以在需要null

上的默认值的地方使用此表达式
if (equals(triggerBody()?['delay'], null), triggerBody()?['delay'], 0)