如何在ADFv2中传递带有Expression作为值的参数?

时间:2018-03-07 18:20:08

标签: dataset parameter-passing dynamic-programming sftp azure-data-factory

在Azure Data Factory v2(ADFv2)中,我无法传递一个参数,该参数的值是需要在运行时计算的表达式。

例如,我每天都要从同一个LinkedService / Connection下载一组提取。我想要一个带有Foreach的管道能够输入一个JSON管道参数,其中包含每种报告类型的配置列表(我可以这样做)。 “但是”当我有一个配置值为表达式的KVPairs时,表达式似乎没有被评估。

这是一个适用于SFTP LinkedService的Foreach参数集的示例:

[ { "dirPath" : "/dirPath" ,"fileFilter" : "this_works_fine_20180307*.txt" } ]

这是一个Foreach参数集的示例,它与我需要获取的文件不匹配 (假设utcnow('yyyyMMdd')返回20180307

[{“dirPath”:“/ dirPath”,“fileFilter”:“this_does_NOT_work _ @ {utcnow('yyyyMMdd')} * .txt”}]

这假设在底层的Copy活动中,我将数据集参数fileFilter作为

传递
@item().fileFilter

...在数据集中,fileFilter的值是一个值为

的表达式
@dataset().fileFilter

...我也尝试将论证完全包装为:

[ { "dirPath" : "/dirPath" ,"fileFilter" : "@toLower(concat(string('this_does_NOT_work_'),string(utcnow('yyyyMMdd')),string('*.txt') )))" } ]

...如果您有任何建议/指导,请告诉我。

谢谢, Ĵ

1 个答案:

答案 0 :(得分:0)

尝试将fileFilter参数直接放在管道参数中。

这样的事情会起作用:

[{" dirPath" :" / dirPath" "一个FileFilter" :" this_works_fine _ @ {formatDateTime(utcnow(),' yyyy')} @ {formatDateTime(utcnow(),' MM')} @ {formatDateTime(utcnow(), ' DD')} * TXT" }]