Azure数据工厂管道';关于失败';

Azure数据工厂管道';关于失败';,azure,azure-data-factory-2,Azure,Azure Data Factory 2,我正在设置一个ADF管道,将blob复制到Azure SQL数据库中。我在我的管道中有一个迭代活动,在这里我设置了一个计数器,仅当blob存在时才循环和复制 除了一些随机的PK违规之外,这非常有效,我必须手动检查。因此,我编辑了管道以记录错误,然后继续。所以我建立了这样的管道。 如果复制活动由于主键冲突而失败,(暂时)忽略,但使用存储过程记录详细信息,并照常继续,即更新循环计数器以获取下一个文件夹 不幸的是,日志失败的success没有执行“Set Variable”活动。因此,它返回到一个无限

我正在设置一个ADF管道,将blob复制到Azure SQL数据库中。我在我的管道中有一个迭代活动,在这里我设置了一个计数器,仅当blob存在时才循环和复制

除了一些随机的PK违规之外,这非常有效,我必须手动检查。因此,我编辑了管道以记录错误,然后继续。所以我建立了这样的管道。 如果复制活动由于主键冲突而失败,(暂时)忽略,但使用存储过程记录详细信息,并照常继续,即更新循环计数器以获取下一个文件夹

不幸的是,日志失败的success没有执行“Set Variable”活动。因此,它返回到一个无限循环中,并不断返回相同的异常,但存储过程活动本身正确地记录了错误消息

如果我创建一个新的“Set Variable”,并完全按照SetLoopVariable所做的去做,它看起来是可以的。但这意味着我必须复制每个活动之后,有两个单独的路径。我觉得这是多余的


BACKGROUND:我的文件结构是container/YYYY/MM/dd/HH/MM,每小时至少有一个文件,但不是一天中的每分钟都有一个,因此我需要在尝试复制之前检查文件夹是否存在

这是设计的。只有复制数据成功或失败时才会调用SetVariable,因为。

Thomas的答案是正确的。我最近遇到了这个问题。如果它帮助了其他人,我意识到这意味着箭头并不代表一个流,而是一个依赖关系。该框仅在前面的所有任务都完成时运行,这在您的情况下是不可能的,因为它取决于副本的成功与失败

要解决您的问题,只需在错误处理路径中复制“set loop variable”


但是,您可能会遇到与我现在遇到的问题相同的问题

我发布了需要添加单独活动的相同场景。因此,为成功复制数据添加一个set变量,为成功复制日志失败添加一个set变量。希望来自ADF团队的人能解释这种行为。从复制数据到设置变量的箭头不应该是“完成时”而不是“成功时”吗?