Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
需求:
设计思路
实现思路分析
1.什么是流程版本管理?
我们创建一个流程模版,并运行的一段时间的时候,根据业务的需要,对节点个数或者顺序需要调整,为了保证调整前后的流程数据正常使用,我们需要在现在运行的流程基础上创建一个新流程来替代当前的流程模版,我们叫做流程的版本管理。
流程的版本是以该流程的创建时间点作为版本号。
一个流程有多个版本,但是可以启动的流程只有一个流程模版,我们称为这个为主版本,其他的版本为旧版本的流程模版。
如果旧版本的流程有正在运行的流程,这些流程就会按照旧版本的流程运行下去,旧版本的流程模版不能删除。
新旧版本的流程数据存储在同一张业务表里。
使用方法:
**在实际的操作应用过程中,我们是否启用版本控制要取决于我们对历史的数据是否影响作为标准,ccbpm不建议使用流程版本控制,我们对如下应用场景进行分析。
1种可能是:表单增加字段,对旧的流程新增加的字段是空,或者是默认值,不怎么会影响流程的历史数据查询。
第2中可能是:增加节点,历史的流程在流程轨迹图中可以看到该节点,但是该节点上无数据,也不怎么会影响流程可读性。
表单字段减少,对于历史的版本就可能看不到该字段的数据了,如果数据特别重要,我们可以启用版本管理。
第4种可能是:节点减少,就是说节点被优化掉了,如果不是特别重要,我们建议不要删除节点,把连接线去掉就好了,或者在连接线上设置恒不等的条件。他仅仅对流程图有影响,对历史流程轨迹,没有影响,也不影响大局,不建议启用版本控制。
为了安全,稳定期间慎重使用版本控制,多研究变更了什么对历史数据影响的程度来决定采用那个方案。
流程讲义:
一个bpm系统前端有4个菜单.
每个菜单连接的页面是处理工作页面、处理抄送的页面、查看工作的页面.
每个连接后面都有一个列表,这个列表可以通过CCBMP的API获取,开发者可以DIV自己的风格,展现给用户。
菜单对应的功能页面
发起待办连接到工作处理器上,要处理工作。
在途(已完成),连接到工作查看器上,查看工作进展情况.
操作连接抄送处理器上.
发起: /WF/Start.htm
一个人能否发起的流程列表,是通过API获取的.
Dev2Interface.DB_GenerCanStartFlowsOfDataTable
通过这个API获得一个DataTable/JSON数据对象,通过它可以产生一个发起里列表。
一个流程能被那些人发起,是由开始节点的访问权限来确定的.
它的下一级界面是工作处理器。
待办 /WF/Todolist.htm
是上一个节点的人或者设备,发送给你,需要你处理的工作,就叫待办。
待办也是通过API获得的一个列表,这个API里面包含如何下几个列(属性).
流程标题、工作ID、流程编号、当前节点ID、FID.
字段分别是Title,WorkID,FK_Flow,FK_Node,FID.
通过这四大参数连接到工作处理器,
在途 /WF/Runing.htm
符合在途工作需要如下三个条件。
我经受的,包括我发起的,我审批的。
该流程没有完成。
当前待办没有停留在我的身上。
在途工作中可以处理, 撤销 与 催办 两个操作。
撤销 就是把自己认为发送错误的工作取回到自己待办理处理,从自己处理过的节点从新发送.
催办 就是给停留在当前节点的人员进行催办,催办之后就形成一个消息。
在途的下一级界面,连接到工作查看器上。
还有 打印 ,查看 轨迹图 等操作.
菜单-对应的API:
发起: BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable()
待办:BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable()
在途: BP.WF.Dev2Interface.DB_GenerRuning();
抄送: BP.WF.Dev2Interface.DB_CCList();
功能页面调用方法.
发起流程:/WF/MyFlow.htm?FK_Flow=001
工作待/WF/MyFlow.htm?FK_Flow=001&WorkID=1023&FK_Node=103
工作查看器: /WF/MyView.htm?FK_Flow=001&WorkID=20032
送处理器: /WF/MyCC.htm?FK_Flow=001&WorkID=20032
四大菜单总结
每个系统中都需要这样的四个菜单嵌入到自己的应用系统中。
用api对外提供服务的,4大菜单的API返回的都是datatable数据类型,开发人员可以自己进行封装转化自己的格式。
Ccbpm已经提供了发起、待办、在途、抄送功能文件,分别位于 /WF/Start.htm, /WF/Todolist.htm, /WF/Runing.htm /WF/CC.htm开发人员可以直接调用他们.
实际上ccbpm的功能实现也是自己调用的API,包括发送、退回、撤销、移交、加签。
几个不常用的功能菜单
我的关注:
一个流程如果设置了关注,那他就在当前人的关注列表里,关注的流程,就是特别要关心的流程.
授权待办: 查看别人授权给我的工作,授权有的地方叫代理。
批处理: 需要批量发送、批量审核的工作,叫批处理.
任务池: 多人处理待办共享任务有效,用户可以从共享任务池里取到任务,放入自己的待办处理,也可以把取出来的任务放入任务池,让这件工作的其他人处理。
取回审批: 一件工作还没有到达当前当前节点,从以前的节点取回到当前节点进行审批。
我的草稿: 当一个流程需要启用草稿的时候,该用户启动一个流程,可以保存到草稿列表里。
挂起工作: 实质就是对待办工作进行分类,把一个工作挂起来后,这件工作就不再待办了。
参考资料和推荐阅读
1.https://gitee.com/opencc/JFlow/wikis/%E6%B5%81%E7%A8%8B%E8%AE%B2%E4%B9%89/%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%9F%BA%E7%A1%80/%E8%8F%9C%E5%8D%95%E4%B8%8E%E5%8A%9F%E8%83%BD%E9%A1%B5%E9%9D%A2
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~