# 异常监控与修复

# 1. 创建测试ESB流程

# 1.1 新建ESB输出流

  • 进入流程库 → ESB输出流 → 点击"添加"
  • 拖入"SqlServer Command"节点
  • 配置数据库连接:选择"DemoData"
  • 输入SQL命令:
UPDATE idemo_vendor 
SET contact = @contact 
WHERE vendor_code = '021-2015-0001'

新建ESB输出流 ▲ 新建ESB输出流

# 1.2 配置调用参数

  • 切换到"调用"页签
  • 在Payload中添加参数:
    • 参数名:contact
    • 类型:字符串
  • 连接左右侧的contact参数

配置调用参数 ▲ 配置调用参数

  • 保存ESB,命名为"修改供应商联系人"

# 2. 集成到业务流程

# 2.1 修改采购申请流程

  • 进入流程建模 → 打开"采购申请"流程
  • 在"提交"后插入新任务
  • 设置任务类型为"调用ESB"
  • 配置属性:
    • 调用对象:选择"修改供应商联系人"
    • 勾选"异步调用"

在流程上调用ESB ▲ 在流程上调用ESB

# 2.2 配置参数传递

  • 切换到"呼叫传入"页签
  • 将表单中的"联系人"字段连接到ESB的contact参数

配置参数传递 ▲ 配置参数传递

  • 确认保存流程

# 3. 触发异常场景

# 3.1 测试提交

  1. 切换到流程门户
  2. 发起"采购申请"流程
  3. 在联系人字段输入超长数据:"张三名字超长123456789"(超过字段定义的10字符限制)
  4. 提交流程

# 4. 异常监控与修复

# 4.1 查看异常实例

  1. 进入流程库 → ESB运行实例 → 异常实例
  2. 找到"修改供应商联系人"的异常实例
  3. 双击打开执行过程追踪

查看异常实例 ▲ 查看异常实例

# 4.2 分析错误

  1. 查看错误节点(第2个节点)
  2. 在右侧属性窗口:
    • "输入"页签:查看原始输入数据
    • "信息"页签:查看具体错误信息

分析错误 ▲ 分析错误

将截断字符串或二进制数据。语句已终止。

# 4.3 修复异常

  1. 返回"输入"页签
  2. 修改数据为合规长度(如:"张三名字超长")
  3. 关键步骤:点击"保存"按钮(未保存的修改不会生效)
  4. 点击左上角"继续执行"按钮

修复异常 ▲ 修复异常

# 5. 验证修复结果

# 5.1 检查执行状态

  1. 确认所有节点变为绿色(执行成功状态)

检查执行状态 ▲ 检查执行状态

# 5.2 数据库验证

  1. 打开SQL Server Management Studio
  2. 查询idemo_vendor表:
SELECT * FROM idemo_vendor 
WHERE vendor_code = '021-2015-0001'
  1. 确认contact字段已更新为修正后的值

# 6. 关键注意事项

  1. 数据保存:修改输入数据后必须点击保存,否则系统仍使用原始数据
  2. 长度限制:修复时应确保数据符合目标字段的约束条件
  3. 审计追踪:所有修复操作会被记录,可在系统日志中查看
  4. 预防措施:建议在调用ESB前添加数据验证逻辑

# 7. 最佳实践建议

  1. 对于关键字段,建议在ESB前添加数据校验节点
  2. 异步调用时,应设置异常通知机制
  3. 定期检查异常实例,及时处理积压问题
  4. 对于频繁出现的同类错误,应考虑优化流程设计而非仅修复实例