You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IICS中捕获子Taskflow挂起状态并将其置为失败

子Taskflow挂起状态捕获与置为失败的实现方案

一、解读VIM_RAW_fail字段参数

启用Fault Handling后,VIM_RAW_fail字段通常以数组形式返回3个核心参数(不同系统细节略有差异,建议手动触发一次子Taskflow挂起,查看实际值确认):

  • 第1个参数:触发故障的对象类型(比如TASKFLOW表示故障来自子Taskflow)
  • 第2个参数:对象的状态码/状态标识(比如数值3或字符串'SUSPENDED'对应挂起状态)
  • 第3个参数:故障的详细描述信息

二、决策环节实现状态判断与置失败操作

  1. 提取状态参数:在决策环节的公式中,通过索引提取VIM_RAW_fail的第二个参数,示例公式(以支持数组索引的系统为例):
    GET_ELEMENT(VIM_RAW_fail, 2)
    
    若系统仅支持字符串分割,可使用分割函数(比如SPLIT(VIM_RAW_fail, ',')[2],注意处理引号或空格)
  2. 判断挂起状态:将提取的参数与挂起状态的标识匹配,比如:
    GET_ELEMENT(VIM_RAW_fail, 2) == 'SUSPENDED'
    
  3. 执行置失败动作:若判断结果为真,调用系统内置的状态修改函数或控制任务,将目标子Taskflow的状态置为失败,比如:
    SET_TASKFLOW_STATUS('子Taskflow名称', 'FAILED')
    

三、替代方案

1. 子Taskflow层面修改错误处理规则

直接给每个子Taskflow的警告事件配置错误处理,将警告触发的动作从「挂起父Taskflow」改为「置当前子Taskflow为失败」:

  • 进入子Taskflow的Fault Handling设置界面
  • 找到警告触发的条件项,修改处理动作为Fail the Taskflow
  • 保存后,子Taskflow触发警告时会直接标记为失败,无需父Taskflow额外处理

2. 父Taskflow全局故障处理配置

在父Taskflow的Fault Handling中添加全局规则,针对子Taskflow挂起状态直接处理:

  • 触发条件设置为:子Taskflow状态 = 挂起
  • 处理动作设置为:Set Taskflow Status to Failed(选择对应的子Taskflow对象)

3. 脚本任务主动查询与修改状态

在父Taskflow中添加脚本任务,在每个子Taskflow执行完成后执行:

  • 脚本中调用系统状态查询函数,获取子Taskflow的当前状态,比如:
    sub_tf_status = get_taskflow_status('sub_taskflow_01')
    
  • 若状态为挂起,调用状态修改函数置为失败:
    if sub_tf_status == 'SUSPENDED':
        set_taskflow_status('sub_taskflow_01', 'FAILED')
    

内容的提问来源于stack exchange,提问作者Alex Dragut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:10:07