在ADFv2中,我正在查找日期并将其传递给Azure函数。我可以像这样传递数据:
@activity('GetLastDateProcessed').output.firstRow.LastDateProcessed
但是,如果我将其嵌入到这样的JSON字符串中:
{"lastProcessDate":"@activity('GetLastDateProcessed').output.firstRow.LastDateProcessed"}
我得到这个{“ lastProcessDate”:“ @ activity('GetLastDateProcessed')。output.firstRow.LastDateProcessed”}而不是{“ lastProcessDate”:“ 2019-11-13”}作为函数的输入。
最后,我也尝试使用没有成功的参数。
@concat('{"lastProcessDate":"', string(pipeline().parameters.lastProcessDate), '"}')
这里的问题是未设置参数。我这样设置参数:
@activity('GetLastDateProcessed').output.firstRow.LastDateProcessed
但是,这是默认值,永远不会动态更新。如果我可以更新此字符串,则@concat方法将起作用,但无法弄清楚如何为管道动态更新参数。
另一个选项可能是管道变量,但我不知道如何引用该变量。
如何将字符串与动态内容结合在一起?
答案 0 :(得分:0)
我能够通过创建第二条管道来使其工作。这不是最佳选择,但适用于遇到相同问题的人们。希望有人能找到比这更好的解决方案!
在第一个管道中,我设置了第二个管道参数:
@activity('GetLastDateProcessed').output.firstRow.LastDateProcessed
我在第二个管道lastProcessDate中命名了参数,因此可以正常工作:
@concat('{"lastProcessDate":"', string(pipeline().parameters.lastProcessDate), '"}')
这不是直截了当的,也不是微软期望我们解决这个问题的方式!
答案 1 :(得分:0)
我认为您所缺少的是,当您在json字符串中使用符号'@'时,您应该在括号后加上大括号'{'
在您的示例中,它将类似于以下内容:
{"lastProcessDate":"@{activity('GetLastDateProcessed').output.firstRow.LastDateProcessed}"}
答案 2 :(得分:0)
我能够通过命令来实现。
{
"storedprocedure":"storedProcName",
"params":"@{variables('currentDt')}"
}