如何使用Logic App tolower()函数

时间:2018-02-28 17:33:39

标签: azure azure-logic-apps tolower

使用下面的代码作为示例(会有更多结果),我正在构造一个if true / false语句,它将输入作为大写或小写。我不确定如何利用tolower()函数来强制输入始终为语句的小写。

[
    {
        "VM":  "MyVM1",
        "Success":  true,
        "PSComputerName":  "localhost",
        "PSShowComputerName":  true,
        "PSSourceJobInstanceId":  "5e18cd92-5676-4ed6-a7e4-14b0d9fea3b3"
    },
    {
        "VM":  "MyVM2",
        "Success":  true,
        "PSComputerName":  "localhost",
        "PSShowComputerName":  true,
        "PSSourceJobInstanceId":  "5e18cd92-5676-4ed6-a7e4-14b0d9fea3b3"
    }
]

我的逻辑应用流程: enter image description here

我首选的逻辑应用流程更改: flow

如您所见,我尝试使用以下条件:

@contains(tolower(items('For_each')['VM'], 'myvm1'))

但是,当运行逻辑应用程序时,我会看到以下错误输出:

  

InvalidTemplate。无法处理模板语言表达式   行''条件'在第'1行'和第'2179行:''模板   语言函数'tolower'需要一个参数:字符串to   转换为下壳。使用'2'参数调用该函数。   有关用法,请参阅https://aka.ms/logicexpressions#toLower   的信息。'。

https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-definition-language

我查看了文档,但遗憾的是我不太了解如何编辑此查询。任何帮助都会非常感激

2 个答案:

答案 0 :(得分:2)

所以...错误是正确的。你当前的表达

  

@contains(tolower(项目(' For_each')[' VM'],' myvm1'))

将两个参数传递给tolower()

@contains(tolower(项目(' For_each')[' VM'],' myvm1' ))

项目(' For_each')[' VM'] - 和 - ' myvm1'

也许你真的想要

  

@contains(tolower(项目(' For_each')[' VM']),' myvm1')

答案 1 :(得分:1)

@ John-305的回答是正确的。你的陈述有问题。 正确的陈述是:

  

“@ contains(tolower(items('For_each')['VM']),'myvm1')”

尝试使用此逻辑应用程序作为参考:

[ServiceContract]
public interface IProcessingService
{
    [OperationContract]
        JobInformation ProcessJob(JobInformation info, out Exception exception);
}