У меня есть следующий дочерний конвейер ADF, который выполняется из родительского конвейера через действие переключения.
И в Set Row Count
я устанавливаю pipeline return value
:
@activity('Copy Delta to Blob').output.rowsCopied
В моем родительском конвейере внутри Switch у меня есть:
С выражением:
@activity('Integration Deltas').output.pipelineReturnValue.RowsCopied
И, наконец, переменные, одна из которых — RowsCopied:
Тем не менее, я получаю следующую ошибку:
The expression 'activity('Integration Deltas').output.pipelineReturnValue.RowsCopied' cannot be evaluated because property 'RowsCopied' doesn't exist, available properties are ''.
Есть ли что-то очевидное, чего мне не хватает?
Выражение есть в исходном вопросе @activity('Copy Delta to Blob').output.rowsCopied
if condition false
никогда не выполняется, это определяется Get Table CT ID
, т. е. если у нас нет измененных данных. Я только что понял, здесь нужен set variable
!!
Я опубликовал ответ по этому поводу. Проверьте и дайте мне знать, решена ли проблема или нет.
Я использовал тот же дизайн конвейера, что и ваш, и получил ту же ошибку. Причина вышеуказанной ошибки заключается в том, что если выражение if в дочернем конвейере дает результат False
, то при запуске конвейера не будут выполняться действия внутри True activities of if activity
. Это означает, что нет возвращаемой переменной с именем RowsCopied, и именно об этом говорит ошибка.
Здесь, для примера, я присвоил значение False
выражению активности if, и это вызвало вышеуказанную ошибку, поскольку в ложных действиях if нет никаких действий.
Чтобы решить эту проблему, вам необходимо обработать активность возвращаемой переменной в случае выражения активности if False
.
В этом случае создайте еще одну возвращаемую переменную и передайте 0
, так как строки не будут скопированы.
Теперь это будет работать как для True
, так и для False
случаев активности If
.
а также можете ли вы показать, как вы передаете выражение в возвращаемую заданную переменную дочернего конвейера?