2019独角兽企业重金招聘Python工程师标准>>>

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

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());

转载于:https://my.oschina.net/pangzhuzhu/blog/327131

对近期“工作流”方面的一些总结相关推荐

  1. Meson,用于协调和调度Netflix推荐工作流的架构

    Netflix力图在人们未观看视频之前就预测他们想看的.为此Netflix每日运行多个机器学习(ML)工作流,这些流水线用于构建.训练并验证有助于视频推荐的个性化推荐算法.Meson是一个工作流的协调 ...

  2. Argo 项目入驻 CNCF,一文解析 Kubernetes 原生工作流

    作者 | 遥鹭.郡宝 **导读:**近期,CNCF 技术监督委员会(Technical Oversight Committee,TOC)投票决定接受 Argo 作为孵化级别的托管项目.作为一个新加入的 ...

  3. Gulp构建前端自动化工作流

    ## Gulp构建前端自动化工作流 ### Gulp构建前端自动化工作流之:常用插件介绍及使用 在对Gulp有了一个初步的了解之后,我们开始构建一个较为完整的Gulp开发环境. 本文主要分为6个段落: ...

  4. git项目比对_Argo 项目入驻 CNCF,一文解析 Kubernetes 原生工作流

    作者 | 遥鹭.郡宝 导读:近期,CNCF 技术监督委员会(Technical Oversight Committee,TOC)投票决定接受 Argo 作为孵化级别的托管项目.作为一个新加入的项目,A ...

  5. Activiti 7.1.4 发布,业务流程管理与工作流系统

    Activiti 7.1.4 发布了,Activiti 是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员.其核心是超快速.稳定的 BPMN2 流程引擎.它易于与 Spring 集成 ...

  6. 一个超轻量级工作流引擎:Workflow-Core

    近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完其wiki之后决定放弃之前自己造的轮 ...

  7. 定位排查工作流的计算结果数据量不符合预期的方法

    近期有发现一些用户在咨询,为什么数据从数据源出来后,经过了一些计算,结果不符合预期了.最常见的是说,为什么我的数据在Mysql里有xx条,怎么到MaxCompute里算了下结果变了.因为这是两个不同的 ...

  8. java 调度etl_Easy Scheduler是一个工作流调度系统,主要解决数据研发ETL错综复杂的依赖关系...

    Easy Scheduler Easy Scheduler for Big Data 设计特点: 一个分布式易扩展的可视化DAG工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系 ...

  9. 一个适合于.NET Core的超轻量级工作流引擎:Workflow-Core

    一.关于Workflow-Core 近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完 ...

最新文章

  1. PL/SQL Developer(解压版)连接64位的Oracle11g
  2. 1126 Eulerian Path
  3. 如果函数是可以遗传的
  4. 用clock()统计代码的执行时间(C语言)
  5. 自定义webview,根据网页大小确定webview大小
  6. C++顺序容器之deque初探
  7. [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)
  8. Halcon缺陷检测——Blob分析特征
  9. 服务器没有进行新建或修改数据的操作,14-认识DjangoRESTframework
  10. Linux系统(二)常用命令、进程管理
  11. SQL Server 2012数据库的安装与配置
  12. 一键拼接所有微信好友头像
  13. 正弦交流电有效值系数sqrt(2)的推导
  14. adb命令获取设备IMEI
  15. NER依存关系模型:原理,建模及代码实现
  16. 网络分层(7层)以及每层的设备和协议
  17. JAVA学习笔记(三)
  18. 如何在Outlook中单击邮件后立即将其标记为已读
  19. MAC Iterm 支持命令行翻译中英文
  20. 动态RDLC报表(三)

热门文章

  1. 金蝶导出明细账到计算机桌面,怎么用金蝶将所有科目的明细账导到一张表格上?...
  2. 微信小程序(二)--- 数据绑定,事件绑定,全局配置window,tabBar,网络数据请求,request合法域名,GET,POST
  3. highcharts画线性图示例
  4. linux内核自旋锁的代码分析
  5. Jerry Wang的SAP工作日志 - 2016年1月
  6. win7系统下安装win10教程
  7. Tab切换 排斥 asyncData
  8. 漩涡中的中国首富李彦宏
  9. LaTeX 数学公式编辑
  10. VUE利用transition标签实现摇一摇抽签效果