Условие Azure-Data-Factory — If возвращает false, несмотря на логическое значение true

#azure #azure-data-factory #azure-data-factory-2 #azure-data-factory-pipeline

#azure #azure-data-factory #azure-data-factory-2 #azure-data-factory-конвейер

Вопрос:

Я пытаюсь выполнить логический тест для сравнения двух выходных данных activity. Первое возвращает имя файла (полученное из getMetadata), а другое — отдельные имена файлов, которые уже есть в базе данных (полученные из операции поиска).

Итак, первое действие выдает X.csv (файл в Blob0, а второе — список Y.csv; Z.csv (результат выбора поиска, отличный от таблицы X). Основываясь на этом результате, я бы сказал, что логический тест верен, поэтому ADF должен начать определенное действие. Я использую приведенное ниже выражение, но, несмотря на то, что ошибок нет, результат всегда false. Что я делаю не так? Я думаю, это как-то связано с активностью поиска, потому что запрос выдаст список значений, я думаю.

пожалуйста, помогите, заранее спасибо!

 @equals(activity('GetBlobName').output,activity('LookupBestandsnaam').output)
  

Поиск активности вывода bestandsnaam:

Поиск активности вывода bestandsnaam

Выходное действие GetBlobName:

Выходное действие GetBlobName

Комментарии:

1. Выходные данные двух действий четко показывают разные ключи и значения и, как ожидается, будут возвращать false только в том случае, если оба они одинаково равны с одинаковыми (количество и имя) ключами и значениями.

2. Спасибо, Патрик. Я исправил это с помощью sp в SQL

Ответ №1:

Выходные данные поиска и получения метаданных отличаются:

Мы не можем сравнивать выходные данные напрямую. Вы всегда будете получать false выражение условия if.

Пожалуйста, попробуйте следующее выражение:

 @equals(activity('GetBlobName').output.value.name,activity('LookupBestandsnaam').output.value.bestandsnaam)
  

Обновить:

Поздравляем, что вы используете другой способ решить эту проблему:

«Теперь я заменил условие if хранимой процедурой, которая использует сценарий IF exists, выполняемый на основе активности поиска в ADF».

Комментарии:

1. Привет, Леон, спасибо за твой ответ. К сожалению, ваше предложение не увенчалось успехом. Теперь я заменил условие if хранимой процедурой, которая использует сценарий IF exists, выполняемый на основе активности поиска в ADF. Еще раз спасибо! Лучшие,

2. @DickterSchiphorst Добро пожаловать. Могу ли я добавить это к своему ответу? Тогда другие могут узнать, что ваш вопрос теперь решен.

3. Конечно, Леон! Спасибо за вашу помощь!

4. @DickterSchiphorst Добро пожаловать. Не могли бы вы принять это как ответ? Это может быть полезно для других участников сообщества. Спасибо!