触发器主体属性的全局参数以及在@triggerbody().folderpath 上使用拆分函数

Global parameters for trigger body properties and using split function on @triggerbody().folderpath

我正在尝试通过事件触发器将 blob 存储容器的文件夹路径传递给参数 @triggerbody().folderpath 。

我创建了一个名为 folderPath 的管道参数,它等于 @triggerbody().folderpath

然后我在管道内创建了一个变量作为 BusinessUnit 并使用了变量@{split(pipeline().parameters.folderPath,'/')[3]}

本returns本'Business Unit' 即 BI\DEV\BusinessUnit

我想要实现的是能够在其他管道中使用这个folderPath(参数)和BusinessUnit(变量)。但是,我正在努力将 @triggerbody().folderpath 捕获到全局参数中。

另外,还有全局变量。 @{split(pipeline().parameters.folderPath,'/')[3]} 给我正确的值作为 BusinessUnit 变量。

另一种方法是将其作为参数而不是变量。但是,我似乎无法在此处使用拆分功能。

在 ADF 中,我们有一个 Global Parameter,您可以使用 ADF Studio 中的“管理”选项卡访问它,但是这些只能存储 常量 跨数据工厂,可由任何表达式中的管道使用。

如下所示,我已将全局参数值设置为存储从触发器接收到的值的管道参数。

反过来,由于这些参数的 (@pipeline().parameters.folderpath) 范围仅限于它们的管道,除非您在其他管道中有一个具有相同名称和值的参数,否则这将引发错误!如果您在另一个管道中有相同的参数和值,则无需使用全局参数!

解决方法......

使用执行管道 activity 调用您要在其中使用此数据的另一个管道。

  1. 在parent管道中添加参数
  2. 在child管道中添加参数
  3. 现在在选择时将参数从 parents 传递到 child child 管道。

创建参数...

从触发器获取值...

Use/set参数中的触发值...

在另一个管道中创建参数以保存来自 parent 管道的输入...

From parent pipeline in Execute Pipeline activity 传递局部参数值..

根据需要使用收到的参数....

您可以类似地使用变量,然后将它们传递给参数。

另一种方法 可以是获取管道参数值并使用 ADF SDK 或 REST API 的网络 activity,您将其传递给下一个执行管道 activity。参见 Parameterizing the Execute Pipeline activity