文档章节

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

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 550
阅读 28
收藏 0
点赞 0
评论 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());

© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
谈谈工作流

与众多新技术相比,工作流的知名度也许会小一些,但工作流也一直处于不断创新之中。所不同的是,在这个领域新技术的应用是被隐藏在应用理念和架构体系之下的。对于工作流的发展趋势,这里分开...

晨曦之光 ⋅ 2012/03/09 ⋅ 1

2018年的Jira新版本

2018年的Jira新版本 程序师2017-12-300 阅读 Jira业界观察 在过去的六个月里,我们推出了呼声很高的一些功能特性,发布了Jira Software 7.4,7.5,7.6,其中介绍了生产力和产品规划功能,如K...

程序师 ⋅ 2017/12/30 ⋅ 0

图书免费赠送活动《jBPM4工作流应用开发指南》

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

sharepub ⋅ 2010/09/26 ⋅ 98

工作流系统在OA系统中应用

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

长平狐 ⋅ 2012/10/11 ⋅ 1

项目协作工具-JIRA使用笔记和相关资料

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

orpheus ⋅ 2009/08/14 ⋅ 0

揭秘jbpm流程引擎内核设计思想及构架

揭秘jbpm流程引擎内核设计思想及构架 1 前言 2 阅读本篇的基础准备 2.1 概念的基础 2.2 环境的基础 3 什么是流程引擎内核? 4 引擎内核所关注的四个主要问题 4.1 模型与定义对象 4.2 调度机制...

sundy_ly ⋅ 2013/11/01 ⋅ 0

谷歌创始人发公开信:人工智能进入春天

4月28日消息,据国外媒体报道,人工智能是Alphabet高层管理人员近期反复在发言中提及的主题。公司创始人谢尔盖·布林(Sergey Brin)最新发布的这封公开信也不例外,但其在信中提及了人工智能在...

周其 ⋅ 04/30 ⋅ 0

123个微信小程序源码分享(附下载)

扫描文末的二维码关注公众号后 获得下载链接。 相关阅读: 吊炸天!74款APP完整源码! [干货]2017已来,最全面试总结——这些Android面试题你一定需要 Java面试知识点总结 微信小程序近期火...

xhmj12 ⋅ 2017/01/12 ⋅ 0

揭秘jbpm流程引擎内核设计思想及构架

1 前言 流程引擎内核仅是“满足Process基本运行”的最微小结构,而整个引擎则要复杂很多,包括“状态存储”、“事件处理”、“组织适配”、“时间调度”、“消息服务”等等外围的服务性功能。...

leesama ⋅ 2013/04/17 ⋅ 0

Architect Inside 5-浅谈工作流

以架构师的眼睛看世界之五-浅谈工作流 很多人了解计算机程序设计是从学习流程图开始的,那些菱形矩形的简单图表往往能让流程逻辑一目了然。但流程图不是可以运行的软件,充其量只是一种文档,...

张大磊 ⋅ 2008/02/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 30分钟前 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 31分钟前 ⋅ 0

Redux的一些手法记录

Redux Redux的基本概念见另一篇文。 这里记录一下Redux在项目中的实际操作的手法。 actions 首先定义action.js,actions的type,可以另起一个action-type.js文件。 action-type.js用来存...

LinearLaw ⋅ 32分钟前 ⋅ 0

android 手势检测(左右滑动、上下滑动)

GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等。 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture...

王先森oO ⋅ 46分钟前 ⋅ 0

java 方法的执行时间监控 设置超时(Future 接口)

java 方法的执行时间监控 设置超时(Future 接口) import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor......

青峰Jun19er ⋅ 51分钟前 ⋅ 0

一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

微服务框架 ⋅ 53分钟前 ⋅ 0

vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴

1.vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim [root@aminglinux-128 ~]# yum install -y vim-enhanced已加载插件:fastestmirror, langpacksLoading mir...

oschina130111 ⋅ 53分钟前 ⋅ 0

Deepin 操作系统四面楚歌

作为国内做的最好的 Linux 发行版,源自 Debian sid 的 Deepin 目前正面临重重困境,新版本不断延期,开发人员离职,bug 长期得不到修复,和 Debian/Ubuntu 的兼容性问题也面临越来越严重的挑...

六库科技 ⋅ 54分钟前 ⋅ 0

MyBatis之动态sql

我们需要知道的是,使用mybatis重点是对sql的灵活解析和处理。在原先的UserMappser.xml中,我们这样查询表中满足条件的记录 : 123 <select id="findUserList" parameterType="userQuery...

瑟青豆 ⋅ 54分钟前 ⋅ 0

这届俄罗斯世界杯的冷门那么多怎么办?

最纯粹的世界杯,最神奇的大冷门。 德国0比1被墨西哥摩擦了。 日本历史性的赢了哥伦比亚。 C罗也挑平了西班牙。 梅西被冰岛狮吼吼愣神了。 就连11次进世界杯4强的巴西也被瑞士逼平了。 天台已...

开源中国众包平台 ⋅ 55分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部