您的位置 首页 > 德语词汇

assignee是什么意思(工作流中的表都是什么意思)

大家好,assignee是什么意思相信很多的网友都不是很明白,包括工作流中的表都是什么意思也是一样,不过没有关系,接下来就来为大家分享关于assignee是什么意思和工作流中的表都是什么意思的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

assignee是什么意思(工作流中的表都是什么意思)

前几天,阿粉给大家说了关于Activiti的使用,后台就有好友私信阿粉说,这些表都不知道是什么意思,不行呀,看不明白呀,于是阿粉就打算在这次给大家讲一下关于Activiti的这些表中的字段都是表示的什么意思。

act_hi_identitylink历史流程人员

act_id_membership组合对应信息关联表

act_ru_execution运行时流程执行数据

act_ru_identitylink运行时节点人员数据信息

阿粉把之前的表给大家都拿出来了,然后我们一一来看这些字段都是些什么意思。在说这个Activiti的表结构的意思的时候,我们肯定首先要知道Activiti的生命周期,生命周期要经过的步骤如下:

1.流程部署--->2.启动流程实例--->3.执行流程对象(一个流程实例包含多个执行对象)--->4.完成整个流程

而我们要想了解这个流程,就得先从表结构开始了,我们来看看里表所有的表结构吧。

大家如果对表面结构没有任何的兴趣,那就往后滑,看后面的关于Activiti的流程的内容。

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

在这里我们就要注意到REV_这个乐观锁了,乐观锁每次在执行数据的修改操作时,都会带上一个版本号,一旦版本号和数据的版本号一致就可以执行修改操作并对版本号执行+1操作,否则就执行失败。因为每次操作的版本号都会随之增加,所以不会出现ABA问题,因为版本号只会增加不会减少。除了version以外,还可以使用时间戳,因为时间戳天然具有顺序递增性。好像又开始偏题了,我们回归正题,继续看表。

这里面的数据一般情况下是这几个内容,标识的实际上相当于是Activiti的版本的一些相关的信息。

这个表实际上就是表示的都是历史活动信息,流程流转过的所有节点的记录都在这个表中,但是他是记录的所有节点信息,而在taskinst只记录usertask内容

业务表单中填写的流程需要用到的变量,以及控制流程流转的变量所有的详细信息都会保存在这个历史详情表中。

这个表其实就比较好了,因为当我们发起各种各样流程的时候,我们需要的永远都是保证数据从哪里来,已经谁发起的,追根溯源好找人呀。

主要存储历史节点参与者的信息,就是把发起流程的,还有参与过这个流程的人员信息,全部都加到表中。

用户信息详情表,这个表好像有点鸡肋,目前说是还没有用到,

总得来说,这个表是真的简单,因为只是表示用户和组之间的对应关系,和很多硬件方面的内容好像很类似,就几个字段。

这个表主要就是在部署流程定义时需要被持久化保存下来的信息。

这个表示业务流程定义数据表,对应关系和act_re_deployment是多对一的关系。

这个表实际上就是很多OA中会出现的比如说,待办信息的展示。

任务参与者数据表。主要存储当前节点参与者的信息。

1.流程部署--->2.启动流程实例--->3.执行流程对象(一个流程实例包含多执行对象)--->4.完成整个流程

上图是个请假流程图,我们按照这个来整点代码来安排一下这个工作请假审批流。

rocessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();\nRepositoryServicerepositoryService=processEngine.getRepositoryService();\nrepositoryService.createDeployment()\n.addClasspathResource("activity.cfg.xml")\n.deploy();\nLog.info("Numberofprocessdefinitions:"+repositoryService.createProcessDefinitionQuery().count());\n启动一个流程实例

Map<String,Object>variables=newHashMap<String,Object>();\nvariables.put("employeeName","Kermit");\nvariables.put("numberOfDays",newInteger(4));\nvariables.put("vacationMotivation","I'mreallytired!");\n\nRuntimeServiceruntimeService=processEngine.getRuntimeService();\nProcessInstanceprocessInstance=runtimeService.startProcessInstanceByKey("vacationRequest",variables);\n\nLog.info("Numberofprocessinstances:"+runtimeService.createProcessInstanceQuery().count());\n执行流程对象

TaskServicetaskService=processEngine.getTaskService();\nList<Task>tasks=taskService.createTaskQuery().taskCandidateGroup("management").list();\nfor(Tasktask:tasks){\nLog.info("Taskavailable:"+task.getName());\n}\n

上面代码中的tasks实际上可以说是一个任务列表,展示了所有必须由整个用户处理的任务

Tasktask=tasks.get(0);\nMap<String,Object>taskVariables=newHashMap<String,Object>();\ntaskVariables.put("vacationApproved","false");\ntaskVariables.put("managerMotivation","Wehaveatightdeadline!");\ntaskService.complete(task.getId(),taskVariables);\n

对Activiti来说,就是需要complete任务,这个时候,实际上一个简单的请假流程就已经完成了,这时候,流程实例就会进入到下一个环节中。

而在这中间,我们可以设置一下把请假流程挂起,挂起的时候,就不能创建新流程了,不然就会出现异常,

repositoryService.suspendProcessDefinitionByKey("vacationRequest");\ntry{\nruntimeService.startProcessInstanceByKey("vacationRequest");\n}catch(ActivitiExceptione){\ne.printStackTrace();\n}\n

我们通过RepositoryService挂起了流程,这个时候,流程不能继续执行,也不会执行异步操作,当我们需要激活这个流程的时候,我们就需要调用:

runtimeService.activateProcessInstanceXXX方法来对流程进行激活了。

Activiti的生命周期,就是这么简单,你学会了么?

如果你还想了解更多这方面的信息,记得收藏关注本站。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023