【问题标题】:Azure Logic App - simple condition to check for empty string variable failsAzure Logic App - 检查空字符串变量的简单条件失败
【发布时间】:2018-05-04 00:22:47
【问题描述】:

已解决

问题是由于 Thomas 指出的子操作错误,而不是我检查变量值的方式。


我有一个变量,该变量已在 LA 早些时候初始化。稍后我尝试使用条件检查变量是否为空。

这是运行历史记录的输出:

此时变量看起来是一个空字符串,但是条件失败,没有任何有用的信息。

我也尝试过 null 或将变量包装在空命令中并与 true/false 进行比较。都失败了。

【问题讨论】:

  • 你能试试这样的吗:@length(if(equals(triggerOutputs()?['headers']?['SAS-Uri'], null), '', triggerOutputs()?['headers']?['SAS-Uri']))
  • @Thomas - 尝试过但没有运气。 ?'s 像 c# 中的空条件运算符吗?
  • 是的?是空传播运算符
  • 错误信息表示另一个操作失败。你检查过你的工作流程吗?听起来子动作失败了
  • 啊,这就是问题所在。我认为这是导致问题的条件动作,但它是子动作。我需要更好地关注消息。谢谢!

标签: azure azure-logic-apps


【解决方案1】:

您可以在表达式中使用length 函数。我发现在检查长度之前将 coallesce 的值设置为空字符串也很有帮助。

【讨论】:

  • 好的,这就是我现在得到的,但仍然得到同样的错误。这是一个 http 触发器 LA,我从标头中获取值,顺便说一句。我已经像这样初始化了变量:coalesce(triggerOutputs()['headers']['SAS-Uri'], '')。然后在我的情况下,我得到了大于 0 的 length(variables('SasUri'))
  • 这里的问题是,如果你在字符串中得到 null,它就会出错。所以要小心。
【解决方案2】:

对我来说,在条件操作中在双引号之间放置一个空字符串以识别空字符串效果很好。 但是请注意,在条件操作中输入空字符串并保存逻辑应用后,如果您随后返回设计器并重新打开条件操作,则不再显示用双引号 ("") 括起来的空字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多