文档章节

对近期“工作流”方面的一些总结

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 550
阅读 28
收藏 0

工作流有四个重要组成部分:


1.物件:也称实体或资源,是工作流程中的“被关注或被操作的对象”。在一个公文审批流程中,公文就是物件。在休假申请流程中,假条就是物件。
2.参与者:是流程中各个步骤上的负责人。它可能是具体的人也可能是某个部门或自动化设备。
3.流程定义:对整个流程一个描述,指明流程应该按照怎样的方式一步步推进执行。
4.工作流引擎:根据流程定义驱动参与者从一个流程到下一下流程的一套机制。

关于Activiti中一些概念的解释:


首先:对于Task来说,它指的是当前正等待执行的Activity,也就是一个进行中的流程所处的当前节点。所以Task表中是没有结束时间的,一旦这个Task完成,它就不再是一个Task,它将从Task表中删除。而在activity_instance表中则会出现一条新记录,用于记录刚刚完成的那个task,也就是说对于每个activity,只要执行一次就会生成一个instance,这与process的处理机制是一至的.

activiti支持任何类型的变量以序列化的方式存入数据库,下次可以通过反系列化取出。也就是说你可以将任何对象做为变量存入activiti的数据库,下次使用时能从数据库中直接该对像取出。

对于Activiti查询性能的担忧:


Activiti的实体类只存储关联对象的ID,如果需要得到关联对象时,需要获得ID后重新通过Query查询。如果需要返回一组集合时,就有可能生成N条sql,这与hibernate中存在的N+1次查询非常相似。
例如:想要得到一个ProcessInstance的name,只能从ProcessDefinition中获得:

org.activiti.engine.repository.ProcessDefinition processDefinition =
            repositoryService.createProcessDefinitionQuery().processDefinitionId(activitiProcessInstance.getProcessDefinitionId()).singleResult();
        processInstance.setName(processDefinition.getName());

而想要得到一个ProcessInstance当前Task的名字,只能从Task中获得:
String executionId = activitiProcessInstance.getId();
org.activiti.engine.task.Task currentTask = taskService.createTaskQuery().executionId(executionId).singleResult();
processInstance.setCurrentTaskName(currentTask.getName());

本文转载自:http://blog.csdn.net/bluishglc/article/details/6088856

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
工作流(Workflow)和BPM的不同

1、工作流(Workflow) 在模拟、定义、执行和分析方面并不是非常关心完整周期的流程管理。没有内置的流程管理概念。 有限的可测量性和可靠性,通常只是为部门级的使用进行设计并只有有限的平台...

founder
2011/03/03
1K
4
图书免费赠送活动《jBPM4工作流应用开发指南》

活动内容: 参与活动者请从现在开始,到2010年10月30日这段时间内,对Oschina发布的《jBPM4工作流应用开发指南》一书内容章节进行客观点评,及大家对于工作流开发的经验,或者对工作流的认识...

sharepub
2010/09/26
7.1K
98
工作流系统在OA系统中应用

回忆起10年前工作流引擎的应用,感觉历历在目啊!当初公司接了一个项目关于公文流转的管理系统,一开始客户就跟我画了十多张业务流程图,用Visio制图工具进行描述,其实业界通用的Rational ...

长平狐
2012/10/11
213
1
总结与反思

<0.9.0: 【测试工作要做足之后才可发布,给“最后的5%”留充足的时间】 建议每阶段技术部门认为阶段性任务已完成之后,测试部门(现阶段可由团队全体成员代替)用至少一至两天时间进行内部体...

Argon_Zhou
2015/07/20
3
0
项目协作工具-JIRA使用笔记和相关资料

去年的时候,我写过一篇关于基于WIKI的Streber的文章,Streber是一个对人员素质和自觉性要求较高的工具,在一般的团队中,建议还是使用规范性较高的工具对项目信息和任务进行管理的工具较好,在这...

orpheus
2009/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
今天
2
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
5
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部