合并Azure数据工厂活动输出

合并Azure数据工厂活动输出,azure,azure-data-factory,Azure,Azure Data Factory,TL;医生: 我的输出值不为null,但不存在,并且coalesce不起作用 好奇是否有人找到了合并活动输出参数的方法。我知道有一个实际的表达“合并”,但这并不是我想要的 当一个活动运行时,它返回带有诸如PipelineName、RunID、Status和Error等项的常规响应json。当状态为“成功”时,错误为“Null”,当状态为“失败”时,错误为另一个json,如“failureType”、“message”和“statuscode”。对于问题的范围,我希望在值存在时记录Error.me

TL;医生: 我的输出值不为null,但不存在,并且coalesce不起作用

好奇是否有人找到了合并活动输出参数的方法。我知道有一个实际的表达“合并”,但这并不是我想要的

当一个活动运行时,它返回带有诸如PipelineName、RunID、Status和Error等项的常规响应json。当状态为“成功”时,错误为“Null”,当状态为“失败”时,错误为另一个json,如“failureType”、“message”和“statuscode”。对于问题的范围,我希望在值存在时记录Error.message。所以基本上我有一个通用的日志管道,我会将参数传递给日志,比如
@activity('Execute Pipeline1')[0]。状态
@activity('Execute Pipeline1')[0]。错误。消息

但是,当我这样映射时,如果成功,Error.message不存在。我的选项看起来要么创建管道的“成功运行”和“失败运行”,要么只是记录错误

有人知道用什么表达方式来合并这些值吗?

似乎函数可以帮助您。您可以尝试以下表达式:

@if(contains(activity('Execute Pipeline1')[0],'Error'),activity('Execute Pipeline1')[0].Error.message,'no error')

如果您只想在活动失败时记录信息,则可以创建一个If条件活动。然后使用此
包含(活动('Execute Pipeline1')[0],'Error')
检查它是否失败,并记录错误消息(如果为True)。

太好了,今天下午让我试试。这几乎就是答案。当activity.Error为NULL时,实现此函数时包含失败。因为它需要一本字典。但我认为这是正确的路径。更具体地说,上面的语句“无法计算,因为无法选择属性‘message’”。答案是“@if(empty(activity(‘Execute Pipeline1’).Error),“”,activity(‘Execute Pipeline1’).Error.message)”。[0]取决于您所评估的内容。很高兴听到您得到了正确的答案。祝贺你!