Как обрабатывать пустое значение в модуле условий логического приложения

Вопрос или проблема

У меня есть логическое приложение, в котором я использую условное выражение для двух переменных, displayName и accountName.

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

InvalidTemplate
Невозможно обработать выражения языка шаблона для действия 'Condition' на строке '0' и столбце '0': 'Функция языка шаблона 'contains' ожидает, что её первый аргумент 'collection' будет словарём (объектом), массивом или строкой. Предоставленное значение имеет тип 'Null'.'.

Как мне обработать эту ошибку? Я хочу, чтобы условие считало нулевое значение как пустую строку.

введите описание изображения здесь

Можно ли записать выражение, которое будет выглядеть как iff(accountName пуст(), ”, accountname)?

Вы можете сделать это, используя функцию coalesce().

Я использую приведенные ниже выражения для достижения этой цели.

coalesce(variables('accountName'),'')
coalesce(variables('displayName'),'')

введите описание изображения здесь

Это сработает, если одна из переменных не существует. Здесь я передаю только значение имени учетной записи, но не отображаемого имени.

введите описание изображения здесь

Другой метод заключается в использовании выражения if:

if(equals(item()?['accountName'], null),'',item()?['accountName'])

введите описание изображения здесь

Ответ или решение

Как обрабатывать значения null в условиях Logic App

При разработке логики обработки данных в Azure Logic Apps одной из распространённых проблем является наличие переменных со значением null. Например, если ваши переменные displayName и accountName не существуют или не инициализированы, вы можете столкнуться с ошибками при выполнении шаблонов, связанными с использованием функции contains. Ошибка может выглядеть следующим образом:

InvalidTemplate
Unable to process template language expressions for action 'Condition' at line '0' and column '0': 'The template language function 'contains' expects its first argument 'collection' to be a dictionary (object), an array or a string. The provided value is of type 'Null'.

Решение проблемы с использованием функции coalesce()

Одним из способов обработки значений null и приведения их к пустой строке является использование функции coalesce(). Эта функция позволяет возвращать первое ненулевое значение из перечисленных аргументов. Пример её использования:

coalesce(variables('accountName'),'')
coalesce(variables('displayName'),'')

Таким образом, если accountName или displayName равны null, то в вашем условии будет использоваться пустая строка вместо null. Это поможет избежать ошибок и обеспечит корректное выполнение логики приложения.

Альтернативный метод — условное выражение if

Другой подход к обработке значений null включает использование конструкции if. Это позволяет вам явно определять, что делать, когда значение равно null:

if(equals(item()?['accountName'], null), '', item()?['accountName'])

В этом случае, если accountName оказывается равным null, функция возвращает пустую строку, а если значение присутствует, возвращается само значение переменной.

Применение в условиях

Важно учесть, как эти функции могут быть применены в ваших условиях Logic App:

  1. Первый вариант с coalesce: Поместите выражения coalesce непосредственно в условиях, которые вы используете. Это необходимо для того, чтобы убедиться, что значения, передаваемые в условия, не равны null.

  2. Второй вариант с if: Используя конструкцию if, вы можете формировать более сложные условия. Это позволяет динамически обрабатывать и заменять значения на пустые строки, что улучшает читабельность кода и поддерживает более чистую логику.

Заключение

Эти методы помогут вам избежать ошибок, связанных с переменными со значением null в наборе условий ваших Logic Apps. Используя функции coalesce и if, вы можете обеспечить стабильность работы вашего приложения и корректный способ обработки данных. Правильное управление значениями, особенно в условной логике, позволяет минимизировать возможные ошибки и повысить эффективность логики обработки.

Всё это подчеркивает важность надежного проектирования и тестирования логики ваших приложений. Надеюсь, данная информация была вам полезной!

Оцените материал
Добавить комментарий

Капча загружается...