AWS 流程引擎对WCP的支持评估

WCP17-Interleaved Parallel Routing(并行交叉路由)

一组任务有一个部分排序的定义,以确定它们必须执行的顺序。在小组中的每一个任务都必须执行一次,并且它们完成的任何顺序都符合部分排序。然而,有一个额外的要求,没有两个任务可以同一时间执行(没有两个任务可以同时在同一个流程实例执行)

  • 在同一流程实例中,部分任务按需求顺序执行,剩余任务随时可执行,但任何两个任务不能同时执行。
  • 发送订单前,选择商品,包装货物,准备发票。

解决方案

场景设计

  • 如果“条件1”满足,触发“抛出信号事件signal1”,如果“条件2”满足,触发“抛出信号事件signal2”
  • 如果“捕获信号事件signal1”先触发,执行“节点2”任务,“节点2”任务完成后触发“抛出信号事件signal2”,等待“抛出信号事件signal3”触发,此时触发“捕获信号事件signal2”,执行“节点1”任务,“节点1”任务完成后,依次触发“抛出信号事件signal1”、“抛出信号事件signal3”,分支结束;此时“捕获信号事件signal3”被触发,执行“节点3”任务,“节点3”任务完成后,流程结束
  • 如果“捕获信号事件signal2”先触发,执行“节点1”任务,“节点1”任务完成后,触发“抛出信号事件signal1”、“抛出信号事件signal3”,;此时“捕获信号事件signal1”被触发,执行“节点2”任务,“节点2”任务完成后“捕获信息事件signal3”触发,捕获到信号“signal3”,执行“节点3”任务,“节点3”任务完成后,流程结束

流程建模

可以在工作流控制模式概念验证应用的流程模型>6.State-based Patterns(状态模式)>WCP17-Interleaved Parallel Routing(并行交叉路由)中访问该流程模型

引擎执行

  • 确认已安装工作流控制模式概念验证应用,访问前端WCP概念验证菜单入口
  • 在左侧树中点击WCP17-Interleaved Parallel Routing(并行交叉路由)
  • 在列表中点击新建按钮,流程实例被创建
  • 此时“捕获信号事件signal1”和“捕获信号事件signal2”等待信号的抛出,执行“排他网关1”的条件判断,如果“条件1”满足,触发“抛出信号事件signal1”,抛出信号“signal1”;如果“条件2”满足,触发“抛出信号事件signal2”抛出信号“signal2”
  • 如果“捕获信号事件signal1”先触发,捕获到“signal1”信号,则“节点2”已创建一个任务实例,在任务列表中打开“节点2”任务实例,点击办理按钮,完成任务。“节点2”任务完成后,触发“抛出信号事件signal2”,抛出信号“signal2”,“捕获信号事件signal3”等待“signal3”信号的抛出。当“捕获信号事件signal2”捕获到信号“signal2”,此时“节点1”创建一个任务实例,在任务列表中打开“节点1”任务实例,点击办理按钮,完成任务。“节点1”任务完成后,触发“抛出信号事件signal1”抛出信号“signal1”,然后触发“抛出信号事件3”抛出信号“signal3”。当“捕获信号事件signal3”捕获到信号“signal3”,分支到达“节点3”。此时“节点3”创建一个任务实例,在任务列表中打开“节点3”任务实例,点击办理按钮,完成任务,流程结束
  • 如果“捕获信号事件signal2”先触发,捕获到信号“signal2”,分支到达“节点1”。此时“节点1”创建一个任务实例,在任务列表中打开“节点1”任务实例,点击办理按钮,完成任务。“节点1”任务完成后,触发“抛出信号事件signal1”抛出信号“signal1”,然后触发“抛出信号signal3”,抛出信号“signal3”。当信号“signal1”抛出时,“捕获信号事件signal1”被触发,捕获到该信号,分支到达“节点2”。此时,“节点2”创建一个任务实例,在任务列表中打开“节点1”任务实例,点击办理按钮,完成任务。分支继续向下执行,触发“抛出信号事件signal2”事件,当“捕获信号事件signal3”事件捕获到信号“signal3”时,到达“节点3”,此时“节点3”创建一个任务实例,在任务列表中打开“节点3”任务实例,点击办理按钮,完成任务,流程结束

如果列表中未出现新建按钮,请首先为此用户设置可启动该流程的权限



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区