在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') )))" } ]
...如果您有任何建议/指导,请告诉我。
谢谢, Ĵ
答案 0 :(得分:0)
尝试将fileFilter参数直接放在管道参数中。
这样的事情会起作用:
[{" dirPath" :" / dirPath" "一个FileFilter" :" this_works_fine _ @ {formatDateTime(utcnow(),' yyyy')} @ {formatDateTime(utcnow(),' MM')} @ {formatDateTime(utcnow(), ' DD')} * TXT" }]