【Activiti】从入门到放弃——项目实战之启动流程

本文详细分析了在Activiti框架下启动流程的实现,包括启动位置、时机,以及具体逻辑实现。讨论了控制器的选择,推荐了业务相关控制器,并提出了通过类名加'Flow'作为流程定义Key的规则。同时,介绍了如何在流程中通过业务键找到对应的业务对象,为后续的查询和流程进展查看提供了解决方案。

启动流程分析
启动位置
启动有两个地方:流程定义管理,业务对象(客户)管理
如果在流程定义实现,没办法知道要报备的是哪个客户?并且报备也算是客户的一个操作,所 以应该在客户管理模块完成。
启动时机
1、业务对象保存时
在客户添加成功时,立即启动报备流程
刚添加数据,就发现错了,需要删除数据,就需要删除流程。
不能委派给别人操作。
2、业务保存后,通过额外的一个操作启动
添加成功后,单独提交一个启动流程按钮,单独操作。
在客户管理列表中,添加一列‘操作’,通过formater,编写’报备’,来完成报备的操作。(先打印,后返回

 formatter(v,r,i)
    V表示当前列的值
    R 当前行的值
    I 索引值

启动实现分析
当点击了“报备”连接后,需要后台来完成报备的操作,并把结果返回给前台。那我们对于报备请求应该交给那个Controller实现?并且里面逻辑怎么实现呢?
要想选择Controller,先得搞清楚,当我们点击“报备”时会完成哪些操作。或者叫做流程启动会有什么变化?
1)业务对象状态发生改变
初始状态----->报备中
2)流程引擎中会根据业务对象找到具体流程定义(processDeifinitionKey)来开启流程。
Customer---->CustomerRecord
LeaveBill----->LeaveBill
一、控制器选择
① 流程相关控制器
开启流程后,需要修改业务对象的状态,需要注入业务对象对应的服务,100中流程就需要注入100个服务,让类变得非常庞大
启动不同流程需要区分业务对象,需要进行传入业务对象类型。
② 业务相关控制器 (采纳)
开启流程后,需要修改业务对象的状态,需要注入业务对象对应的服务,现在 CustomerController实现本来就已经注入CustomerService,无需再注入。
启动不同流程需要区

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值