activiti搭建(五)BPMN介绍

    转载请注明源地址:http://www.cnblogs.com/lighten/p/5931207.html 

    对于BPMN我也不是十分清楚,目前也只是因为对于Modeler中不熟悉的组件查询,来对这部分的内容进行学习,不求一次理解,边学边理解吧。所以这一章的介绍会比较简单,但也足够了。

    Modeler中的组件列表划分和BPMN的略微有些不同,而且有些内容好像也没有,最后移植到自己的demo中,还遇到了一些问题,如果可能的话,之后会详细介绍一下Modeler的构成,大致是官方文档的第七节Overview以及第十节Process(重要),网上已有人将其归纳总结过了 http://wenku.baidu.com/view/92b1bc06cc17552707220854.html?from=search,可以直接看这个链接中的内容。我下面的是对其与官方文档校对之后的内容,说明这栏没有翻译(太耗时)。

    BPMN(Business Process Modeling Notation),业务流程建模与标注,可以用其定义的一系列符号(我称为组件)组成业务流程图。接下来分类别来介绍这些组件。官方网站:http://www.bpmn.org/ 里面有BPMN v2.0的介绍和例子,如果有不懂的可以查看一下。http://www.omg.org/spec/BPMN/2.0/ 文档以及XML校验文件XSD下载地址。这里面才是详细介绍,不过都是英文的,我也懒得看了,只是一些基础应用而已,如果有需要的时候再看。http://www.omg.org/cgi-bin/doc?dtc/10-06-02 这里是官方给的一些例子,教导你如何使用这些组件。

1 流对象(Flow Objects)

    流对象是最为基础的概念了,十分重要。

1.1 事件(Events)P271

    事件都是用一个圆圈来代表,影响流程的流动,一般有一个原因(trigger)或者一个影响(result)。标准定义了三种事件:开始,中间和结束。从定义和分类名称上来看也能猜到事件的作用了,控制流程的开始,中间流转和结束,这些控制可能采取触发器(trigger)来完成,或者是导致一个结果(结束或抛出)。

(1)开始事件

中文

英文

Trigger

说明

Marker

开始事件Start EventNone image
条件开始事件Conditional start eventConditional image
消息开始事件Message start eventMessage image[16]
多重启动事件Multiple start eventMultiple image
多重并行开始事件Parallel multiple start eventParallel
Multiple
 image
信号开始事件Signal start eventsignal image
定时开始事件Timer start eventTimer image[12]
(2)中间事件 Intermediate event
    中间事件的使用有两种方式:
      1.出于两种目的在一个正常的工作流中放置中间事件:中间事件可以用于“catch”事件触发器,或者是“throw”事件触发器。
      2.一个中间事件放置于一个活动(Activity)中间,仅能够用于“catch”事件触发器,也就是捕获一个事件,做相应的处理。
中文英文Trigger说明Marker
中间事件None Intermediate EventNone image
消息事件Message Intermediate EventMessage image
定时事件Timer Intermediate EventTimer image
升级事件Escalation Intermediate EventEscalation image
补偿事件Compensation Intermediate EventCompensation image
条件事件Conditional Intermediate EventConditional image
链接事件Link Intermediate EventLink image
信号事件Signal Intermediate EventSignal image
多重事件Multiple Intermediate EventMultiple image
并行多重事件Parallel Multiple Intermediate EventParallel Multiple image
    中间事件远不止这些,剩余的是和activiti boundary相关的,这里就不一一列举了,具体查看官网文档P284页。
(3)结束事件 End Event
    结束事件必须是一个顺序流的目标,不能是源头,可以有多个顺序流指向同一个结束流。一个流程可以有多个结束事件,也可以没有结束事件,但是如果存在开始事件,就必须有至少一个结束事件。如果不使用结束事件,那么所有流对象没有任何流出序列(顺序)流(即不同为一个源序列流)来标志流程过程结束。流程不会结束,直到所有的并行路径完成了。
中文英文Trigger说明Marker
结束事件None End EventNone image
消息结束事件Message
End Event
Message image
错误结束事件Error
End Event
Error image
升级结束事件Escalation
End Event
Escalation image
取消结束事件Cancel
End Event
Cancel image
补偿结束事件Compensation
End Event
Compensation image
信号结束事件Signal
End Event
Signal image
终止结束事件Terminate
End Event
Terminate image
多重结束事件Multiple
End Event
Multiple image

1.2 活动(Activities)P181

(1)Tasks 任务 P186

    task在流程流中是一个原子性的活动,当流程中的作业不能被打断时task被用作一个更细级别的细节。通常,一个终端用户或者应用其执行操作表现为task的形式。task对象在子流程中具有相同的形状,都是长方形有着圆角。

    有三种特殊的task图标:循环、多重实例和补偿,一个task可能会有一个或两个这类图标。 image

    其它的task:

中文英文说明图标
服务任务Service Task image
发送任务Send Task image
接收任务Receive Task image
用户任务User Task image
手工任务Manual Task image
业务规则任务Business Rule
Task
 image
脚本任务Script Task image

    这些任务中,需要人参与自身完成的有Manual Task和User Task。Manual Task是一个不受任何商业流程引擎管理的任务,User Task是。不受管理意味着流程引擎无法追踪其任务的开始和完成。举个例子,这个可能就是一张充满指令的纸,为电话技术人员帮顾客安装电话。

(2)Sub-Processes 子流程 P203

    子流程是一个活动的内部细节建模,使用活动、事件和网关以及序列流。子流程是流程内部的一个图形对象,但是它也能够被打开来展现更低一层的流程。子流程定义了一个上下文范围,可用于属性可见性、事务的范围,异常处理,事件或者是补偿。

    BPMN定义了五种子流程,其中Collapsed Sub-Process可以被另外四种组合取代。另外四种是loop、multi-instance、Compensation、Ad-Hoc。

image

image

    下面是一些用法:

imageimage

(3)Call Activity 调用活动 P213

    调用活动确定使用了全局流程或者全局任务的流程中的一点。调用过程用作为包装器来调用全局流程或全局任务执行中。激活调用活动将导致称为全局流程或者全局任务的控制转移。

imageimage

image

    调用活动必须满足数据要求,同时调用CallableElement返回数据。这意味着在活动的InputOutputSpecification中需要包含这些元素,并且必须精确的和CallableElement的元素匹配。这些元素包括:DataInputs、DataOutputs、InputSets、OutputSets。

1.3 网关(Gateways)P317

    网关用于控制序列流如何在一个流程中收敛和发散的交互。如果一个流程不需要控制,那么网关就是非必需的。“网关”一词意味着有一个门机制。允许或不允许通过网关——也就是说,执行到网关的时候,当网关机制被调用,输入可以被合并在一起,或者输出分离成若干部分。

中文英文说明图标
互斥网关Exclusive Gateway image
事件网关Event-Based
Gateway
 image
并行事件网关Parallel
Event-Based
Gateway
 image
相容网关Inclusive Gateway image
复杂网关Complex Gateway image
并行网关Parallel Gateway image

2 数据(Data)P233

    传统的流程建模要求能够模拟物品(物理或信息的)在流程中的创建、操作和执行过程。重要的方面就是能够捕获数据的结构,并且查询或者操作结构。

    BPMN本身并不提供内置的模型来描述数据结构或查询数据的语言表达式。相反,它规范hooks来允许使用外部定义的数据结构和表达式语言。此外,在同一个模型中,BPMN允许不同的数据结构和表达式语言。这些语言的兼容性和验证是在规范的范围之外,变成了工具供应商的职责。

    BPMN使用XML Schema和XPath作为其默认的数据结构和表达式语言,但是供应商可以自由替换他们自己的语言。

中文英文说明图标
数据对象Data Object image
集合型数据对象collection
DataObject
 image
数据存储Data Store image
输入数据Data Input image
输出Data Output image
    还有一些其它的用法,具体看官方文档。

3 连接对象(Connecting Objects)P59

image

4 泳道(Swimlanes)

4.1 池子(Pools)

    池是一个容器,与其他的池相隔离。通常用在交互流程中。池主要作用于两个独立的实体或者参与者之间的物理划分。各个池中的活动通常是有自身的流程的。因此,顺序流通常不会越过多个池,而消息流是可以的(这段话摘自:http://wenku.baidu.com/view/59b540d228ea81c758f5783c.html?from=search

image

image

4.2 泳道(Lanes)

    Pool的子划分,可以垂直或者水平,用来对活动的组织和分类。Lane更加接近我们传统的泳道的概念。Lane常用来将活动按照角色划分,流程可以在一个pool中跨Lane流转,但是在一个pool中一般不会这样(出处与上面相同)。

image

image

5 工件(Artifacts)

5.1 组(Group)

    将一部分元素按逻辑或特定目的进行分组,便于查看和管理,用于解释和描述目的,不会影响流程的流转(出处同上)。

image

5.2 文字注释(Text Annotation)

    提供一些附加性的文本信息给流程图的阅读者。

image

转载于:https://www.cnblogs.com/lighten/p/5931207.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Activiti7是一个开源业务流程管理工具,其中一个重要的功能是可以实现对BPMN(Business Process Model and Notation)规范的支持。而BPMN-JS则是一个专门用于处理BPMN图形的JavaScript库。Activiti7整合BPMN-JS可以帮助开发人员更加方便地实现业务流程管理,下面简单说明一下其基本原理和实现过程。 首先需要了解一下BPMN-JS的核心功能,它可以通过JavaScript代码生成BPMN图形,并提供丰富的图形元素和样式,同时可以进行流程建模、流程执行和流程监控等操作。在Activiti7中,利用BPMN-JS可以轻松地生成各个节点和连线,实现业务流程的可视化管理。为此,需要在Activiti7中安装BPMN-JS库,并在代码中调用相应的方法生成BPMN的XML文件。 在实现过程中,需要注意几点。首先是整合的接口问题,Activiti7与BPMN-JS并不是完全兼容的工具,因此需要进行一些适配性开发。其次是对图形的显示和编辑操作,代码需要能够实现对BPMN-JS图形的捕获和修改,同时需要考虑协同编辑和用户权限等问题。此外,还需要与后台进行接口对接,实现BPMN图形的保存和查询等功能。 总的来说,Activiti7整合BPMN-JS可以带来很大的效益,帮助企业和开发者更加便捷地管理和执行业务流程,提高工作效率。同时需要注意安全和合法性问题,确保业务流程管理的有效性和合规性。 ### 回答2: Activiti7是一个流程引擎,可以帮助企业自动化业务流程。BPMN-JS是一个流程图编辑器,可以让用户创建和编辑BPMN流程图。 Activiti7整合BPMN-JS可以为用户提供更好的流程设计和管理体验。用户可以使用BPMN-JS创建新的流程或编辑已有的流程,然后将它们导入到Activiti中执行。将这两个工具整合在一起,能够实现以下几个方面的优势: 1. 更好的用户体验:BPMN-JS的编辑器可以让用户更加直观地创建、编辑流程图,而且可以通过实时预览功能来快速调整流程细节。 2. 提高效率:将Activiti7和BPMN-JS整合在一起可以减少在不同工具之间移动的时间、减少学习和熟悉新工具的时间,提高工作效率。 3. 更直观的流程设计:用户可以使用BPMN-JS在一个视图中直观地看到整个流程的执行情况,更好地理解流程的执行逻辑,加快流程设计速度。 4. 更好的流程管理:整合BPMN-JS可以允许用户使用Activiti7来跟踪流程的执行情况,从而更好地管理流程。 总之,Activiti7和BPMN-JS的整合可以为企业自动化流程提供更好的用户体验和更高效的工作方式,帮助企业提高业务流程自动化效率和流程管理。 ### 回答3: Activiti7是一个流程引擎,可以帮助企业实现业务流程的自动化管理。而BPMN-js是一个用于绘制BPMN图形的开源工具。通过将BPMN-js与Activiti7进行整合,可以实现业务流程的可视化管理。 具体来说,Activiti7可以通过引用BPMN-js库,将BPMN图形集成到Activiti7的设计器中,让用户可以使用图形化界面来创建和编辑业务流程。在流程图形设计完成后,可以将其导出为BPMN 2.0格式,以便用于其他系统中。 此外,BPMN-js还可以通过Activiti7的REST API来加载和保存流程信息,并实现与Activiti7的集成。这使得BPMN-js和Activiti7可以互相补充,共同支持企业流程管理的各个方面。 总之,通过Activiti7和BPMN-js的整合,可以使企业流程管理更加高效、直观、可视化和嵌入式化。企业可以根据自身需求选择适合自己的流程工具,以便更好地管理业务流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值