注(version:5.15.1)

1.部署流程(定义流程)

 InputStream in = new FileInputStream(file);
ZipInputStream zipInputStream = new ZipInputStream(in);
processEngine.this.getRepositoryService()
.createDeployment()
.name(processName)
.addZipInputStream(zipInputStream)
.deploy();

2.启动流程(所定义流程的一个实例)

 processEngine().getRuntimeService()
/**第二个参数是businesskey:业务工单的主键,作为区分,一般流程名+id,当然如果id为uuid则无所谓 */
.startProcessInstanceByKey("leave", "leaveBill", variables);

这样,业务表就与activiti的表关联起来了(一般为了方便,业务表里也会存一个processId)

其内部表之间关联如下

3.查看某人的任务

 /**
* 当前登录人登录系统以后要执行的任务(包含个人任务+组任务)
*/
public List<Task> getTasksByAssignee(String userId){
List<Task> assigneeTasks = this.getTaskService()
.createTaskQuery()
.taskAssignee(userId)//参与者,个人任务查询
.orderByTaskCreateTime()
.desc()
.list();
List<Task> candidateTasks = this.getTaskService()
.createTaskQuery()
.taskCandidateUser(userId)//参与者,组任务查询
.orderByTaskCreateTime()
.desc()
.list();
assigneeTasks.addAll(candidateTasks);
return assigneeTasks;
}

4.根据task -》 processInstance  -》 businessKey -》 业务表

     /**
* 根据taskId查找businessKey
*/
public String getBusinessKeyByTaskId(String taskId){
Task task = this.processEngine
.getTaskService()
.createTaskQuery()
.taskId(taskId)
.singleResult();
ProcessInstance pi = this.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId())
.singleResult();
return pi.getBusinessKey();
}

Activiti(工作流)如何关联业务表的更多相关文章

  1. Winform开发框架中工作流模块的业务表单开发

    在我们开发工作流的时候,往往需要设计到具体业务表单信息的编辑,有些是采用动态编辑的,有些则是在开发过程中处理的,各有各的优点,动态编辑的则方便维护各种各样的表单,但是数据的绑定及处理则比较麻烦,而自定 ...

  2. 二、activiti工作流-创建25张表

    首先我们在eclipse上创建一个maven项目 然后在resources下面创建一个file,并命名问activiti.cfg.xml activiti.cfg.xml的配置内容如下 <?xm ...

  3. Activiti工作流引擎数据库表结构

    Activiti工作流引擎数据库表结构 一.数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_ ...

  4. Activiti工作流框架学习(一)之通用数据表详细介绍

    文/朱季谦 Activiti工作流引擎自带了一套数据库表,这里面有一个需要注意的地方: 低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期.更糟糕的是,某些版本在尝试创建此类列时将引发异常,而其 ...

  5. Activiti工作流数据库表结构

    Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_*: ...

  6. Activiti工作流框架学习(一)——环境的搭建和数据表的了解

    一.什么是工作流 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现 ...

  7. Gemini.Workflow 双子工作流入门教程五:业务表单开发

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:业务表单开发. 业务表单开发 业务表单的开发,和在 ...

  8. Activiti工作流 安装myeclipse activiti设计插件并生成数据库表

    从零开始学习Activiti工作流,记录下学习过程. 关于工作流的简介没什么好介绍了,只能说是个很有用的东西,数据库中23张表分别有什么用网上也有很详细的介绍,这里也不多加说明.activiti开发中 ...

  9. Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析

    原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...

随机推荐

  1. elasticsearch data importing

    ElasticSearch stores each piece of data in a document. That's what I need. Using the bulk API. Trans ...

  2. [解决]Windows Server 2012 不能安装IE版的Flash

    1.问题描述 在server 2012下安装IE版的Flash提示包含最新版本 2.解决方法 2.1.开启“桌面体验”功能 2.2.关闭“IE增强的安全配置”功能 3.重启计算机后安装Flash

  3. 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

    一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法! 对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有 ...

  4. 深入剖析Linux I/O操作与标准I/O操作区别与联系

    文件I/O:open creat close lseek read write dup dup2 sync fsync fcntl ioctl 所有函数都是针对文件描述符. 所有的都是原子操作,这个在 ...

  5. android 豆瓣客户端 视频

    链接如下:http://download.csdn.net/detail/jltxgcy/5667337

  6. [Thinkbayes]贝叶斯思维读书笔记-1-贝叶斯定理

    使用贝叶斯定理,目前来看最重要的一点在于假设.就是未知事件已知化,同时也要注意假设的全程性,不能从中开始新的假设,这种假设往往是不全面的. 我自己找到的假设的方法有两种,一种是命名,一种是时序.全程性 ...

  7. HTML <textarea> 标签的 wrap 属性

    HTML <textarea> 标签的 wrap 属性 wrap 属性 通常情况下,当用户在输入文本区域中键入文本后,浏览器会将它们按照键入时的状态发送给服务器.只有用户按下 Enter ...

  8. table指定位置添加行

    <html> <head> <script type="text/javascript"> //global var //to find the ...

  9. 浅谈linux读写同步机制RCU

    RCU是linux系统的一种读写同步机制,说到底他也是一种内核同步的手段,本问就RCU概率和实现机制,给出笔者的理解. [RCU概率] 我们先看下内核文档中对RCU的定义: RCU is a sync ...

  10. javascript构造函数以及原型对象的理解

    以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的. //定义一个构造函数 function People(name,age){ this.name=name; ...