Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用
Posted
技术标签:
【中文标题】Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用【英文标题】:Azure Data Factory - Passing lookup value/id into ForEach copy task not working 【发布时间】:2022-01-14 11:39:10 【问题描述】:我正在尝试将 ID 从一个存储例程传递到另一个复制任务,这需要一个 for each 递归处理每个 ID。我已经设置了查找 ID 任务,该任务正在运行。它将这些对象传递给我的每个对象,其中设置是“顺序”的,项目设置如下:@activity('LookupUID').output.value
foreach
在我的 for each 中,我有 1 个活动将数据从另一个 API 调用复制到 Azure SQL 数据库。我有一个链接服务,正在传递一个参数。我正在尝试使用动态内容运算符将当前项目从 for each 传递到此参数,然后将其发送到 ID 参数的 API 调用。当我在这里手动插入一个值时,它工作正常。但是,尝试将 for each 中的值传递到此复制任务参数中不会在运行任务时生成数据行。
copy task
output
【问题讨论】:
【参考方案1】:您必须在复制活动中提及列名以及当前项目,例如
@item().ID
示例:
-
我有一个
lookup
活动来从来源获取 ID。下面是带有 ID 列表的 Lookup 活动的输出。
查找输出:
-
我在
ForEach
活动中循环这些 ID,并将 当前项目 传递给一个变量。
ForEach 活动设置:Items- @activity('Lookup1').output.value
-
我有一个字符串变量,我在其中使用 Set Variable 活动传递当前项,如下所示。
@string(item().ID)
输出:
【讨论】:
【参考方案2】:使用此代码并替换为您的列名
@activity('lookup1').output.firstrow.columnname
【讨论】:
以上是关于Azure 数据工厂 - 将查找值/ID 传递到 ForEach 复制任务不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将日期时间参数从管道传递到数据流源存储过程 Azure 数据工厂