# 库存低自动触发流程

# 一、概述

本方案实现了一个完整的库存监控和自动补货流程,包含以下三个核心部分:

  1. 补货流程:当库存低于阈值时自动触发
  2. ESB服务:查询数据库库存并更新流程变量
  3. 定时流程:调用ESB服务,定期执行库存检查

# 二、补货流程配置

# 1. 创建基础流程

  1. 在流程库中新建流程
  2. 添加节点:
    • 开始节点
    • 任务节点(重命名为"仓库管理员")
    • 结束节点
  3. 连接各节点
  4. 设置任务处理人为特定人员:"史蒂夫"
  5. 为流程指定表单

创建基础流程 ▲ 创建基础流程

# 2. 配置触发条件

  1. 修改开始节点类型为"条件开始事件"
  2. 打开开始节点属性 → 触发条件 → 点击fx按钮
  3. 在条件编辑器中设置表达式:
  //表示当全局变量"库存"的值≤5时触发流程
  Convert.ToInt32(GlobalVariables.库存) <= 5
  1. 确认并保存条件设置
  2. 保存流程,命名为"补货流程"

配置触发条件 ▲ 配置触发条件

# 3. 测试流程触发

  1. 在BPM命令行中测试:
    • set 库存 100 → 不触发流程
    • set 库存 3 → 成功触发补货流程
  2. 在流程门户中确认待办事项

# 三、库存检测ESB配置

# 1. 新建ESB输出流

  1. 在集团流程库 → ESB输出流中新建ESB
  2. 添加两个节点:
    • SqlServer Select节点
    • 流程变量节点

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

# 2. 配置数据库查询

  1. 选择数据库连接"DemoData"
  2. 输入SQL语句:
    select qty from idemo_prod where prod_code='021-2015-0001'
    

配置数据库查询 ▲ 配置数据库查询

  1. 在返回页签配置:
    • 在右侧Variables上,点击鼠标右键,添加变量"qty"(数字类型)
    • 将查询结果的qty字段映射到变量qty

在返回页签配置 ▲ 在返回页签配置

# 3. 配置流程变量更新

  1. 将ESB变量qty连接到全局变量"库存"
  2. 如变量不存在,手动创建:
    • 名称:库存
    • 类型:数字
  3. 保存ESB,命名为"检测库存并更新流程变量"

配置流程变量更新 ▲ 配置流程变量更新

# 四、定时执行流程配置

# 1. 新建定时流程

  1. 在流程建模中新建流程
  2. 添加节点:
    • 开始节点(类型改为"定时开始事件")
    • 任务节点(类型改为"调用ESB")

# 2. 配置ESB调用

  1. 调用对象:"检测库存并更新流程变量"
  2. 重命名任务为"更新库存"

配置ESB调用 ▲ 配置ESB调用

# 3. 设置执行频率

  1. 在开始节点的频率页签设置定时执行时间
  2. 保存流程,命名为"定时更新库存"

# 五、系统运行逻辑

  1. "定时更新库存"流程按设定频率执行
  2. 每次执行会调用ESB查询最新库存并更新流程变量
  3. 当库存值≤5时,自动触发"补货流程"
  4. 仓库管理员史蒂夫会收到待办任务

# 六、关键点说明

  1. 所有配置均可通过界面完成,无需编写代码
  2. 流程变量需预先存在(可通过命令行创建或手动添加)
  3. 库存阈值(5)可根据实际需求调整
  4. 定时频率应根据业务需求合理设置

# 七、总结

通过本方案,实现了完整的库存监控和自动补货流程:

  1. 自动化检测:定时检测库存水平
  2. 智能触发:低库存时自动启动补货流程
  3. 无需编码:全程通过配置实现
  4. 灵活可扩展:支持多种业务场景扩展

这种方案特别适用于需要实时监控和自动响应的业务场景,大大提高了业务流程的自动化水平和响应效率。