`
eric_weitm
  • 浏览: 242635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

camunda 源代码解析(一)

 
阅读更多

壹 基本概念

一、任务类型

1、user task 强制必须用户(人)处理

2、java service task  调用一个java delegate的代码

3、web service 调用rest接口

4、manual 代表线下业务,比如打包货物,引擎不做任何处理

5、receive task:等待runtimeService.signal 来触发的任务

6、multiInstanceLoopCharacteristics 不确定数目的多个实例,一定会给相关的人同时发送任务(都是平级的),而不是一般意义上的上下级审批。使用场景:不确定人数的会签、投票

 

二、assignee VS owner(委派时很有用)

assignee:办理人 使用claim:签收,改变办理人

owner:拥有人,只有拥有人才能complete一个任务,拥有者确定办理者 

CandidateUser:候选人,潜在的可以成为asignee的人,可以自己进行任务签收

参与人:仅仅能查看和评论

三、委派和改派:

  委派:领导把任务分给小弟,小弟处理完之后,由领导完成任务(claim VS complete delegate VS resolve)

  改派:直接扔给别人,别人可以完成这个任务,(先claim null,再claim新人)

委派(delegate)的逻辑:设置owner为自己,更新状态为PENDING,设置新的办理人assignee

resolveTask:办理人自己办理完了,更改状态为RESOLVED,owner可以complete了

  会签(多实例任务):在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务。

  会签的种类

a) 按数量通过:达到一定数量的通过表决后,会签通过。

b) 按比例通过:达到一定比例的通过表决后,会签通过。

c) 一票否决:只要有一个表决时否定的,会签通过。

d) 一票通过:只要有一个表决通过的,会签通过。

  加签:动态增加节点

四、task execution instance job

task:当前任务

execution:一个执行的分支

instance:多个分支构成的整体

job:一般指长时间在后台运行的作业,比如定时作业。一个job可能会触发多个流程实例。

 

贰 流程驱动机制(pvm)

一、工作流基本步骤

1、创建bpmn格式的xml文件

2、把bpmn部署到engine上,部署的内部逻辑是把 BpmnModelInstance转变成ProcessDefinition

3、启动流程实例

4、engine调度每个activity(task)依次执行,需要实现bpmn中userTask、网关、事件等语义

 

二、pvm :process virtual machine

pvm:解释ProcessDefinition,实现bpmn的语义

1、入口:PvmExecutionImpl.start

2、ActivityBehavior 为每个activity提供语义,类似于jvm对每个虚拟机指令的解释

分享到:
评论

相关推荐

    camunda7.17视频课程源码分享

    本篇文章将围绕“camunda7.17视频课程源码分享”这一主题,深入探讨Camunda 7.17版本的相关知识点,以及提供的各种示例代码,帮助读者更好地理解和应用Camunda。 首先,让我们了解Camunda工作流引擎的核心概念。...

    camunda官方源码下载

    "camunda官方源码下载"意味着你可以访问并研究Camunda的源代码,了解其内部实现。通常,这需要基本的Java和Maven知识。下载源码后,使用Maven进行构建,通过执行`mvn clean install`命令,生成可运行的工件。 4. *...

    camunda-xml-model-7.1.0-alpha4.zip

    6. **开源项目**:这两个压缩包都是开源项目的一部分,这意味着源代码可供公众查看、使用和改进。开源软件通常遵循特定的许可协议,如Apache 2.0或MIT,规定了用户可以如何使用和分发代码。 结合这两个压缩包,我们...

    camunda-modeler-4.6.0-win-x64.zip

    《 camunda-modeler-4.6.0-win-x64.zip 深度解析》 “camunda-modeler-4.6.0-win-x64.zip”是一个针对Windows x64平台的Camunda Modeler软件的压缩包。Camunda Modeler是一款强大的流程建模工具,专为Camunda BPM...

    camunda-bpm

    在这个名为 "camunda-bpm-master" 的压缩包中,很可能是包含了camunda-bpm项目的源代码和相关资源。 ### 1. Camunda BPM系统架构 Camunda BPM系统由以下几个核心组件组成: - **Process Engine**:这是流程引擎,...

    camunda-dmn-cloud-examples:Camunda DMN Cloud的代码示例

    8. **版本控制**:在"camunda-dmn-cloud-examples-master"目录下,可能包含了项目的源代码版本,说明了如何随着业务规则的变化进行模型的更新和版本控制。 通过学习这些示例,开发者可以更好地理解如何利用Camunda ...

    camunda-template:具有Spring Boot Camunda BPM集成的模板项目

    1. **src/main/java**:包含主要的Java源代码,如主应用类、配置类、控制器等。 2. **src/main/resources**:存储配置文件(如application.properties)、流程定义文件(BPMN 2.0 XML)和其他资源。 3. **pom.xml**...

    中国式传统流程引擎开源标杆

    4. **扩展与定制**:通过项目的源代码,开发者可以深入了解流程引擎的内部机制,进行二次开发和功能扩展。 总的来说,"中国式传统流程引擎开源标杆"项目是一个集大成之作,它不仅提供了丰富的功能,也是一份宝贵的...

    办公自动化系统源代码+详细教程100%好用.rar

    这个压缩包“办公自动化系统源代码+详细教程100%好用.rar”提供了一个完整的OAS实现,包括源代码和配套教程,为学习者提供了深入理解与实践的机会。 源代码部分,oa_system-master,很可能是一个开源的办公自动化...

    spring mvc demo 简单框架搭建

    在描述中提到的简单工程文件,可能是包含了必要的配置文件、源代码和依赖库,以便快速启动一个Spring MVC应用。 1. **项目结构**: - **src/main/java**: 存放Java源代码,通常包括Controller、Service和DAO层。 ...

    JBPM4.4实现一种无需指定上一节点(previous activity)的流程驳回(回退)

    标签中的“源码”表明了这个知识点可能涉及到阅读和理解JBPM的源代码,以了解其内部实现。“工具”则暗示了JBPM作为一个开发工具,开发者可能需要借助它来构建和调试流程。 总结来说,这个知识点主要涵盖了如何在...

    facgs-crawler-master.zip

    【标题】"facgs-crawler-master.zip" 是一个用于抓取SF菠萝包网站小说信息的爬虫项目源代码包。这个项目旨在收集并统计SF轻小说平台上的各种小说数据,便于用户分析和理解该平台上的小说趋势。 【描述】"SF菠萝包的...

    Java工作流源码

    3. Camunda:Camunda 是一个轻量级的BPM平台,提供工作流引擎、模型er和监控工具,支持微服务架构。 三、工作流引擎原理 工作流引擎主要由以下几个核心组件构成: 1. 流程定义:通过 BPMN 2.0 图形化语言定义业务...

    _流动的工作流设计基于vue和bpmn.io@7.0.zip

    在这个项目中,`workflow-bpmn-modeler_master.zip`可能包含的是一个Vue.js应用程序的源代码,该应用集成了bpmn.io库,用于创建和编辑BPMN流程图。开发者可能已经实现了以下功能: 1. **图形界面**:使用Vue.js创建...

    shenqingdan7.rar

    在这个案例中,"shenqingdan7.rar" 压缩包文件可能包含一个系统或应用程序的源代码,用于实现客服部员工申请新IP地址的过程自动化。这个过程包括员工提交申请、主管审批以及支持部的分配和执行。以下是基于描述和...

    activity5的集成记录

    在"源码"的范畴内,"flow1.xml"虽不是传统意义上的源代码,但它可以被视为一种配置文件,是实现特定业务逻辑的组成部分。开发人员可能需要编写或者修改XML文件来定制和扩展流程,这涉及到对XML解析库的使用,如DOM ...

    LooperMaster:BPMjs的一个小演示

    此外,"LooperMaster-master"可能包含了项目的源代码、HTML文件、CSS样式和JavaScript脚本,以及必要的资源文件,如BPMN模型文件。为了进一步学习和理解这个演示,你可以打开源代码查看具体的实现细节,比如流程实例...

    BPMN详细介绍

    BPMN的实现通常需要借助专门的建模工具,例如Bizagi、Camunda、Activiti等,这些工具支持创建、编辑和导出BPMN模型,并且可以与源代码结合,实现流程的自动化执行。通过源码,开发者可以将BPMN模型解析为可执行代码...

    bachelor-thesis-source-code

    标题 "bachelor-thesis-source-code" 暗示这是一个与学术研究相关的项目,具体来说是塞巴斯蒂安·内马克的学士论文的源代码。论文主题是关于使用BPMN(业务流程模型和符号)建模工具生成业务流程模拟模型的可行性...

    bpmn-test-cases-generator:BPMN描述的业务流程的自动化测试用例生成

    在`bpmn-test-cases-generator-master`这个压缩包中,包含了项目的源代码、文档、示例和可能的配置文件。开发者可以通过阅读源代码理解工具的工作原理,查阅文档了解如何使用,而示例则可以帮助快速上手。通过解压并...

Global site tag (gtag.js) - Google Analytics