如何在Set Variable活动中捕获顺序活动失败时的错误详情
解决方法
问题根源:当活动执行成功时,activity('活动名').Error属性不存在,直接访问会触发表达式解析错误。必须先判断活动状态,再选择性读取错误内容。
将Set Variable活动的表达式修改为以下内容即可安全捕获错误信息:
@concat( if(activity('ExPl1').Status == 'Failed', concat('ExPl1错误:', activity('ExPl1').Error.Message, '\n'), ''), if(activity('ExPl2').Status == 'Failed', concat('ExPl2错误:', activity('ExPl2').Error.Message, '\n'), '') )
核心逻辑:
- 对每个活动,先通过
activity('活动名').Status == 'Failed'判断是否执行失败 - 若活动失败,拼接活动名称、错误信息和换行符;若成功,返回空字符串
- 最后用
concat()合并结果,仅保留失败活动的错误详情,成功活动不会产生无效内容
修改后,无论单个活动失败还是全部失败,Set Variable都能正常捕获错误,不会因成功活动缺少Error属性而报错。
内容的提问来源于stack exchange,提问作者Serdia
相关产品推荐
相关产品推荐

