Как использовать функцию Logic App 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"
    }
]

Мой логический поток приложений:

Мое предпочтительное изменение потока приложения логики: течь

Как видите, я попытался использовать условие следующим образом:

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

Однако при запуске приложения логики мне выдается следующее сообщение об ошибке:

InvalidTemplate. Невозможно обработать выражения языка шаблона для действия "Condition" в строке "1" и столбце "2179": "Функция языка шаблона" tolower "ожидает один параметр: строку для преобразования в нижний регистр. Функция была вызвана с параметрами "2". Пожалуйста, смотрите https://aka.ms/logicexpressions для деталей использования. '.

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

Я посмотрел на документацию, но, к сожалению, я не понимаю этого достаточно, чтобы знать, как редактировать этот запрос Любая помощь будет принята с благодарностью

2 ответа

Решение

Итак... ошибка верна. Ваше текущее выражение

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

передает два параметра в tolower ()

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

items ('For_each') ['VM'] --and-- 'myvm1'

Может быть, вы действительно хотите

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

Ответ от @John-305 правильный. У вас есть проблема с круглыми скобками в вашем заявлении. Правильное утверждение:

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

Попробуйте это приложение логики для справки:

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "For_each": {
                "actions": {
                    "Condition": {
                        "actions": {
                            "Append_to_array_variable": {
                                "inputs": {
                                    "name": "result",
                                    "value": "@items('For_each')"
                                },
                                "runAfter": {},
                                "type": "AppendToArrayVariable"
                            }
                        },
                        "expression": "@contains(tolower(items('For_each')['VM']), 'myvm1')",
                        "runAfter": {},
                        "type": "If"
                    }
                },
                "foreach": "@body('Parse_JSON')",
                "runAfter": {
                    "Initialize_variable": [
                        "Succeeded"
                    ]
                },
                "type": "Foreach"
            },
            "Initialize_variable": {
                "inputs": {
                    "variables": [
                        {
                            "name": "result",
                            "type": "Array"
                        }
                    ]
                },
                "runAfter": {
                    "Parse_JSON": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Parse_JSON": {
                "inputs": {
                    "content": [
                        {
                            "PSComputerName": "localhost",
                            "PSShowComputerName": true,
                            "PSSourceJobInstanceId": "5e18cd92-5676-4ed6-a7e4-14b0d9fea3b3",
                            "Success": true,
                            "VM": "MyVM1"
                        },
                        {
                            "PSComputerName": "localhost",
                            "PSShowComputerName": true,
                            "PSSourceJobInstanceId": "5e18cd92-5676-4ed6-a7e4-14b0d9fea3b3",
                            "Success": true,
                            "VM": "MyVM2"
                        }
                    ],
                    "schema": {
                        "items": {
                            "properties": {
                                "PSComputerName": {
                                    "type": "string"
                                },
                                "PSShowComputerName": {
                                    "type": "boolean"
                                },
                                "PSSourceJobInstanceId": {
                                    "type": "string"
                                },
                                "Success": {
                                    "type": "boolean"
                                },
                                "VM": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "VM",
                                "Success",
                                "PSComputerName",
                                "PSShowComputerName",
                                "PSSourceJobInstanceId"
                            ],
                            "type": "object"
                        },
                        "type": "array"
                    }
                },
                "runAfter": {},
                "type": "ParseJson"
            },
            "Response": {
                "inputs": {
                    "body": "@variables('result')",
                    "statusCode": 200
                },
                "runAfter": {
                    "For_each": [
                        "Succeeded"
                    ]
                },
                "type": "Response"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    }
}
Другие вопросы по тегам