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,我真的很感谢你的帮助。想想看,你能告诉我更多一些你想做的事吗?一些样本数据和预期结果将非常有用。