Azure data factory 如何通过参数传入表达式
假设管道内部有一个Azure data factory 如何通过参数传入表达式,azure-data-factory,azure-data-factory-2,Azure Data Factory,Azure Data Factory 2,假设管道内部有一个foreach: 我想重复以下内容: @split(split(item().name,“”[4],“-”)[1] 但是,我想通过一个参数传递这个公式 我已经在管道中用所需的值定义了一个参数myExpression,并尝试这样引用它: 请注意,完整表达式是:{@pipeline().parameters.myExpression} 但是,data factory不执行该表达式,而是将其作为逐字字符串接受: {@pipeline().parameters.myExpressi
foreach
:
我想重复以下内容:
@split(split(item().name,“”[4],“-”)[1]
但是,我想通过一个参数传递这个公式
我已经在管道中用所需的值定义了一个参数myExpression
,并尝试这样引用它:
请注意,完整表达式是:{@pipeline().parameters.myExpression}
但是,data factory不执行该表达式,而是将其作为逐字字符串接受:
{@pipeline().parameters.myExpression}
我们如何从管道内的参数传递表达式?您的描述缺少很多关于您要做什么的上下文。我只能假设您在一个管道中生成数组,并希望在另一个管道中迭代它。在您的打印屏幕上,看起来您输入了值,因此输出是纯文本。您应该点击动态上下文 所以看起来是这样的:
当您定义这样的参数并传递值时,您要做的是发送字符串输入,因为文本框不接受表达式。将表达式传递给参数的唯一方法是从另一个管道传递它。另一个问题是ADF的一个限制——不能有嵌套的迭代。调用第二个管道可以解决这两个问题 将流量分成两条管道 第一(父)管道-保持所有步骤,直到生成必须在其上进行迭代的数组
@split(split(item().name,'_')[4],'-')[1]
然后,在for-each循环中,调用“执行管道”活动。在那里,以类似的方式传递你想要的表达-
在子管道中,定义一个字符串参数以吸收传递的值。然后,使用@pipeline().parameters.ParamName在其中使用它
HTH尝试将@符号向左移动一个位置?运气不好,我试过了。事实上,这个建议只是返回了这个字符串
@split(split(item().name,'''u'[4],'-')[1]
抱歉,AFK目前无法测试。太谢谢了,@wBob,我真的很感谢你的帮助。想想看,你能告诉我更多一些你想做的事吗?一些样本数据和预期结果将非常有用。