1、工作流话术
工作流这块儿。嗯,实际在工作中使用的时候,activiti用的居多,当然还有一些其他的工作流引擎,嗯,在网上看了也大概看了一下,其他的像JBPM以及workflow等用的情况来讲不是很多,所以说activity目前来讲用的比较多的,它最新的版本是5.0,那他在用的时候在数据库里边儿需要,嗯,有23张表,然后在23张表里边儿会记录着所有的这些工作都是相关流程相关所有的数据。
在用的时候呢,首先就是要配置它的23张表,在数据库先创建了一下这些表。然后呢,去加载activity的配置文件。这里加载那会有两种方式,嗯,我在写这个demo的时候,而写的是用spring去加载他的一个xml配置文件,这配置文件里边儿,他就跟spring去整合其他的一些框架的时候是一样的,这个xml里边儿配置了一些这个它的的一个核心的引擎的管理器ProcessEngineConfiguration,还有一些它的数据库连接啊等等。然后给他放到了spring的配置文件中。
然后就是需要去定义一个流程。这里呢,我使用的是一个eclipse的插件,通过画流程图的方式去定义了一个简单的理由请假的流程。然后生成了一个zip的压缩包。
接下来呢,需要把这个流程部署到Activity中。通过processEngine获取到Deployment部署的类,定义一个流程名称,然后将这个压缩包,部署到activity中。这时会返回一个流程id
然后需要去启动流程实例。流程部署好了呢,如果说实际有人去发起一个请假流程,这时候需要去启动一个新的流程实例,每个流程实例会有一个独立的id。这个流程上还可以设计一些流程变量。可以是全局的,也可以是局部的。这些变量会在整个流程当中。根据它的性质去向下传递。它后台会有一个taskservice会去数据库检索待处理的任务。然后去处理就就行。处理完成之后,嗯,后边儿这个流程示例会继续向下一个节点去进行。下一个节点收到任务之后,同样通过taskservice去处理。最终直到这个任务被执行完。
总结来看呢,这个activity通过代码的方式简化了实际工作当中一些流程性的问题。当然它这里边儿还会有一些复杂的流程。包括,如何去呃多人同时处理任务呀,以及一些复杂的节点等等,大致这就是我了解的activity工作流。