Установите исходную папку «Копировать данные» с помощью @item (). Name в Azure Data Factory - PullRequest
0 голосов
/ 16 марта 2020

У меня есть следующий конвейер: enter image description here

Get Metadata1 в основном извлекает дочерние элементы (которые являются коллекцией папок, например originalFolder1, originalFolder2, et c. .).

Внутри действия ForEach1 я поместил действие копирования данных.

При определении исходного набора данных я хотел бы использовать полученное имя папки в качестве пути. Таким образом, это было бы так: staticFolder1/staticFolder2/originalFolder1.

Я пытался использовать staticFolder1/staticFolder2/@item().name в пути к папке, но всегда выдает ошибку file not found

Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Комментарии, предоставленные @sowmen, имеют смысл, но нет необходимости конвертировать item (). Name в строковый формат.

Существует еще одна интересная концепция, называемая интерполяцией строк, которая делает нашу жизнь проще. Пожалуйста, смотрите ниже код, который соответствует вашему сценарию. Надеюсь, это поможет:)

staticFolder1/staticFolder2/@{item().name}
0 голосов
/ 16 марта 2020

к сожалению, в ADF вы не можете смешивать строки и выражения, вы можете иметь только одно или другое

, что вы можете сделать так:

@concat(variables('SourceFolderName'), '/', string(item().name) )

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

@concat('staticFolder1/staticFolder2/', string(item().name) )

, после чего вы можете объединить элемент действия ForEach для формирования полного пути

...