【发布时间】:2017-06-09 09:07:22
【问题描述】:
我有一个带有 http 操作的逻辑应用。 由于回复策略最多允许重试 4 次,我使用 http 状态码作为转义变量(直到 200)将活动放入一个 do-until 循环(具有最大计数和超时)。
在运行时出现此错误
[编辑]无效模板。无法处理动作'HTTPAction'的模板语言表达式[编辑]:无法处理动作'HttpAction'的模板语言表达式[..]模板语言表达式'equals(outputs('HttpAction')['statusCode '], 200)' 无法评估,因为无法选择属性 'statusCode'。
有什么提示吗?
谢谢,亚历山德罗
[编辑]http请求正常工作(用提琴手试过),在工作流程中我想它只是由于模板错误而没有被执行(为什么它在运行时失败而不是在编辑模式下?)[编辑]
【问题讨论】:
-
您的 HttpAction 可能会失败而没有生成输出。你可以试试语法 equals(outputs('HttpAction')?['statusCode'], 200)。
-
您好,感谢您的提示。在我编辑时,错误指的是无效的模板。此外,如果我使用提琴手提出相同的请求,我会得到 200。
-
如果你使用 actions('HttpAction').['statusCode'] 而不是输出会发生什么?
-
谢谢,我试试看。考虑我使用 web gui 使用基本模式创建了“equals(outputs('HttpAction')['statusCode'], 200)”,并且不希望需要编码技能(对于其他用户)。此外,该表达式不会转换为基本模式编辑,从而使工作流条件的可读性降低
-
@equals(actions('HttpAction').['statusCode'], 200) 在保存“预期令牌'标识符'”时出错我使用了@equals(actions('CallClarifaiTags').statusCode , 200) 然后得到“无法处理动作'HttpAction'的模板语言表达式:'模板语言表达式'equals(actions('HttpAction').statusCode, 200)'不能被评估,因为属性'statusCode'没有存在”