ADF - элемент ошибок в выходном файле активности - как он читается и оценивается, если существует

У меня в конвейере два действия копирования. Первый выполняется нормально, а второй - неудачно. Когда я просматриваю выходные файлы для каждого из них для первого (успешного), я вижу элемент ошибок следующим образом

"errors": [], 

что нормально, поскольку ошибок не произошло.

Для второго (который не удалось) я также вижу элемент ошибок, но у этого есть следующие элементы внутри:

 "errors": [
        {
            "Code": 9013,
            "Message": "Some text - erased for the simplicity"
            "EventType": 0,
            "Category": 5,
            "Data": {},
            "MsgId": null,
            "ExceptionType": null,
            "Source": null,
            "StackTrace": null,
            "InnerEventInfos": []
        }
    ], 

Эти 2 действия связываются в цепочку по завершении, и в конце есть действие IF, которое проверяет, есть ли ошибка для любого из действий копирования, и что-то делает, если действительно есть ошибка. Условие If True оценивается следующим образом (для второго действия)

@greaterOrEquals(length(activity('Second Copy Activity').output.errors),1)

Он работает нормально, что означает, что если вторая операция копирования не выполняется, это вызовет активность при истинном условии в активности IF и что-то сделает. Если действие второго копирования выполнено нормально, оно попадет в ложное состояние в действии IF (что нормально) и что-то сделает соответственно.

Мой вопрос связан с выражением @greaterOrEquals(length(activity('Second Copy Activity').output.errors),1), и что я на самом деле здесь проверяю - проверяю длину массива или длину строки? Поскольку у меня это работает нормально, я просто хочу быть уверен, что сообщаю другим правильную логику. Конечно, если кто-то думает, что я должен сделать это по-другому (то есть настроить другое динамическое выражение), это более чем приветствуется.

Заранее спасибо. С Уважением


person Almir    schedule 20.05.2021    source источник


Ответы (1)


Вы можете просто использовать empty ( ) функция, чтобы проверить, является ли элемент ошибок пустым или нет. Выражение:

@empty(activity('Second Copy Activity').output.errors)
person Steve Zhao    schedule 21.05.2021