工作流的大致开发流程

工作流的大致开发流程

2023年7月24日发(作者:)

⼯作流的⼤致开发流程前段时间公司在做⼀个oa的项⽬,⽤到了flowable⼯作流,刚开始的时候还在纠结于是⽤activity还是flowable,后来查了相关资料发现flowable的作者之前就是开发activity的作者,只不过后来⾃⼰出去⼜搞了⼀套就叫做flowable,所以不需要纠结⽤哪⼀套,实际在研究了⼀段时间后发现两者差别并不是很⼤,基本都可以满⾜常⽤的⼯作流的开发,我这边由于领导指定了要⽤flowable,所以整个项⽬的⼯作流基于flowable引擎。到⽬前为⽌研究的时间也并没有多长,其中也遇到很多迷茫的地⽅,希望能把⾃⼰的⼼得体会跟⼤家分享⼀下。本篇⽂章主要适⽤于第⼀次接触⼯作流的读者能够对⼯作流的开发过程有个⼤概的了解,本⽂不涉及太详细的介绍。1.流程图设计在进⾏⼯作流的开发时,第⼀个要做的事就是设计流程图,流程图的主要作⽤有两个,⼀个是⽤来启动⼀个流程,另⼀个就是在查看流程⾛向时需要⽤到。流程图的设计⼀般需要⽤到专门的⼯具,以前的做法是在eclipse中安装⼀个Activiti BPMN2.0 designer插件,现在idea⾥⾯好像也⽀持安装这个插件,不过版本都⽐较⽼,现在⼀般的项⽬都集成flowable的web版本的流程设计,提供ui设计界⾯,⽐较⽅便,如下图所⽰:设计完保存后的⽂件是⼀个bpmn⽂件,可以直接⽤来⽣成⼀个xml⽂件,这两个⽂件都可以看作是流程的定义⽂件,也都可以⽤来部署流程。(1)任务执⾏⼈设置流程设计图中⼀个很重要的步骤就是设置流程中每个任务的执⾏⼈,执⾏⼈的设计分为静态设置和动态设置。所谓静态设置即在设计流程图的时候就制定执⾏⼈,在任务激活后的分配(Assgin)⼀栏中直接填写执⾏⼈,执⾏⼈的内容可填写⽤户id也可填写⽤户名字;动态设置则是指在流程的运⾏过程中动态的给任务指定执⾏⼈,不过在指定的时机上要注意,⼀般不能晚于要指定的任务的上⼀个任务结束前,动态指定的⽅法⼀般是给执⾏⼈设定⼀个表达式,例如${executor},然后在代码中通过给execcutor设置值来指定。执⾏⼈设置的⽅式⼜可以分为3种:第⼀种是指定单个⽤户,就是说这个任务只有⼀个可选执⾏⼈;第⼆种是多个候选⼈,就是说可能存在多个候选⼈来执⾏这⼀任务,候选⼈都可以在⾃⼰的待办任务看到这个任务,在执⾏任务时要进⾏签收,⼀旦其中⼀个候选⼈签收了任务,其他候选⼈就看不到该任务;第三种⽅式是候选组,只要属于该组的⽤户都可以看到该任务,不需要签收任务,可直接办理任务。(2)业务表单为什么需要业务表单?想象⼀个请假流程,你在提交请假流程的时候必须得填写请假时间,请假理由吧。。。。业务表单的作⽤就是⽤来存储这些数据的,在设计流程图中任务视图有⼀栏叫做formKey的,就是⽤来对应业务表单的。2.流程的部署流程的部署有多种⽅式,⼀般是通过加载流程的定义⽂件来部署的。在讨论部署之前⼤致看⼀下流程引擎API的⼤致结构如下图所⽰:图⽚参考⾄官⽹,最上层ProcessEngineConfiguration以及⽤来配置流程的基本信息,包括数据库信息、事务管理等。在实际的应⽤中我们⼀般在中配置了如下:其中repositoryService⼀般⽤来获取流程定义的基本信息,查询引擎已知的部署和流程定义,⼀般是⼀些流程的静态信息。runtimeService是我们会经常⽤到的对象,可以从这个服务类中获取很多关于流程执⾏相关的信息。taskService是任务服务类,可以从这个类中获取任务的信息;查询分配给⽤户或组的任务;创建新的独⽴任务。这些是与流程实例⽆关的任务;操作分配任务的⽤户或以某种⽅式参与任务的⽤户。historyService是历史服务类,可以⽤来查询已经完成的流程、任务相关信息。managementService管理服务类,可⽤来进⾏Job任务管理,执⾏数据库相关操作,执⾏引擎命令。还有⼀些服务类对象没有介绍了,⼤致可参考官⽹的详细介绍。说了这么多,也就是我们在⼯作流开发中启动流程、查询流程、设置流程等相关操作都会⽤到上⾯的对象,具体⽅法就不再这⾥详说了。再来看看流程的部署⽅式:部署流程资源有很多种⽅法,包括classpath、InputStream、字符串、zip格式压缩包,可参考/ctwy291314/article/details/81285408流程部署成功后就可以进⾏测试了,看看流程的流转是否按照⾃⼰设计的模型运转。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690213400a315789.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信