`

Activiti 5.9 introduces more BPMN 2.0 support

阅读更多

We released Activiti 5.9 today! My colleagues have done an outstanding job to extend the BPMN 2.0 support in the engine, basically driven by our camunda fox customers, hence we got a lot of cool new features in this release. I want to give some examples today in this post, you find more in the Activiti userguide. Feel free to drop by our cebit booth next week then we can show you the stuff in action.

 


Message Start Event

 

Example with multiple message start events

Example with multiple message start events

We now support the message start event, not only the none start event. The difference is basically the API method you have to call and the big advantage is, that this allows multiple start events in one process model, as you can see in the example. The API is pretty straightforward and allows to name the incoming message:


RuntimeService.startProcessInstanceByMessage(String messageName);

To handle the message start events we added infrastructure to Activiti 5.9 to handle messages overall. So we are currently only one step away from supporting intermediate message events, message events on event based gateways and boundary message events. We currently expect this to appear with Activiti 5.10 (scheduled for first of august).

Signal Event

Example for boundary signal event

 

We added the BPMN 2.0 Signal as you can see in the example on the left. A Signal can be either triggered by some throwing event from within the engine itself or you can trigger it from the outside of Activiti with a new API call:


RuntimeService.signalEventReceived(String signalName);

 

Intermediate Throwing None Event used for KPI’s

Example of intermediate none event

Example of intermediate none event

A small change in the code but a huge step for Business-IT-Alignment: We added the intermediate throwing non event, which basically does nothing. The spec says this should be used to mark an intermediate state (or milestone) in a process. This makes is a perfect place to record some KPI’s and it is more natural to read than some service tasks doing this (the workaround before Activiti 5.9). To the intermediate event you can attach some logic which is executed when a process instances passes by, this is done in the normal Activiti way by using a configurable execution listener. Here you can pass information to your BAM or BI solution for monitoring purposes. This is how the XML looks like:

<intermediateThrowEvent id="noneEvent">
  <extensionElements>
    <activiti:executionListener event="start"
        class="com.camunda.SampleKpiListener" />
  </extensionElements>
</intermediateThrowEvent>

Event Subprocesses

Event Sub Process

Event Sub Process

Event sub processes can be triggered by an event (like message events, error events, signal events, timer events, or compensation events) and are either interrupting the normal process flow or they create a new token and work in parallel (non-interrupting). This is quite powerful to handle interruptions in the normal flow or to handle e.g. inquiries for a process instance which should not disturb the normal flow. In Activiti 5.9 we added only the interrupting behavior for error events, the non-interrupting one and all other event types are still open issues and good candidates to be included in 5.10 (especially the message event).

 

Event based gateway

Event Based Gateway example

Event Based Gateway example

The event based gateway allows to wait for the occurrence of one of multiple events, you can already use timers and signal events here, message shall follow in Activiti 5.10.

 

BPMN Compensation and Transactions

Another great thing we started is to support BPMN 2.0 transactions, cancellation and compensations. This is in an early experimental phase (so please go ahead, try it out and tell us your feedback!), but some basics area already included in Activiti 5.9. Daniel has an own blog post ready especially for that topic, so stay tuned, that will be published shortly on this blog.

Limitations

We basically concentrated on the engine and the camunda fox tool chain with the fox-modeler (OEM based on Signavio) and the fox-designer (based on the Eclipse BPMN2 Modeler). Since these tools know the full range of BPMN 2.0 they are already capable to handle the new features. If you work with your own BPMN 2.0 compliant modeler, it should work as well.

In the Activiti Open Source project please note that the Activiti Designer (Eclipse) does not yet support all the new elements and the graphical visualization of processes in the Activiti Explorer (Web-GUI) cannot render some of them new elements, leaving “white holes” or some wrong renderings in parts of the process.

We have a new story about process visualization and the “where am I in the process” pics on the near roadmap, then we should be able to be full BPMN 2.0 compliant here as well and bypass limitations with the current rendering on IBM Server machines. Stay tuned for this!

Please note, that we marked some of the constructs as “experimental” in the Activiti user guide, because they are pretty fresh. We work on stabilizing them for camunda fox and Activiti 5.10.

Other new features worth mentioning

  • Error boundary Event now can handle faults on service tasks: By this you can catch and handle exceptions from Java code executed from a service task. Before 5.9 you could only catch errors from an error end event within a subprocess.
  • Suspending and Resuming Process Definitions and Instances: We now have support in the API to “pause” instances or whole process definitions. Then the process instance cannot move on and no timers or the like fire (until you reactivate the instance). I see a couple of use cases for this, starting from a temporary problem in a single process instance to an emergency stop to whole process definitions. The API looks like this:

    RuntimeService.suspendProcessInstanceById(String processInstanceId);
    RuntimeService.activateProcessInstanceById(String processInstanceId);
    RepositoryService.suspendProcessDefinitionByKey(String processDefinitionKey);
    RepositoryService.activateProcessDefinitionByKey(String processDefinitionKey);

     

     

  • Exclusive jobs and plugability of the job executor infrastructure: We can now exchange the job executor easily, which we needed for our camunda fox platform, especially for support of WebSphere, WebLogic and the like, where we use the application server capabilities instead of starting an own thread pool (as Activiti does it out-of-the-box). Exclusive jobs now add more “safety” by default but allow for more configuration for the advanced. This will be explained in more depth by a later blog post of Daniel.
分享到:
评论

相关推荐

    Activiti BPMN 2.0 designer-Eclipse插件离线安装包

    Activiti BPMN 2.0 designer-Eclipse插件离线安装包 采用link安装 link中路径配置切勿含有空格与中文 支持MyEclipse10 Activiti5.16亲测可用

    eclipse插件-Activiti BPMN 2.0 designer

    eclipse插件之Activiti BPMN 2.0 designer,activiti开发必备的可视化插件,当前版本为5.9.3,适 用于eclipse3.7以上版本,已经在eclipse3.7、3.8版本中亲自测试通过。 使用方法: 将解压后的文件夹“Activiti BPMN...

    eclipse Activiti BPMN 2.0 designer离线安装包

    mars eclipse Activiti BPMN 2.0 designer插件安装包,完美解决Activiti BPMN 2.0 designer插件在eclipse在线安装失败的问题。只需下载压缩包在本地进行安装。重启eclipse即可。

    Activiti_BPMN_2.0_designer.rar

    eclipse 流程插件离线安装包和...Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),可以定义流程、执行流程并以不同方式对其实现运行。

    Eclipse 插件 离线安装 Activity Bpmn 2.0 Designer-5.18.0全部包

    Eclipse 插件 离线安装 Activity Bpmn 2.0 Designer-5.18.0全部包 压缩包中有相关说明,注意查看

    Activiti BPMN 2.0 designer

    Activiti BPMN 2.0 designer安装教程所需文件

    Activiti Designer bpmn2.0

    *Name:*Activiti BPMN 2.0 designer *Location:*http://activiti.org/designer/update/ 出错,有人说是 是这个网址已经不存在了。 用其他的联网安装确实速度有些让人吃惊,毕竟是连的外面的网。 只好使用离线安装。 ...

    bpmn.js 2.0流程编辑器 搭配 Activiti 7.0 进行工作流编辑器集成开发

    1.使用基于Web 的建模组件 轻松创建您自己的 BPMN 2.0 图表。 2.使用该工具包将 BPMN 2.0 图表嵌入到您的应用程序中。 使用对您和您的业务很重要的数据来 丰富他们。 3. 集成浏览器内流程引擎、令牌模拟、自定义元素...

    离线安装Activiti BPMN 2.0 designer

    *Name:*Activiti BPMN 2.0 designer *Location:*http://activiti.org/designer/update/ 总是出现以下的错误 An error occurred while collecting items to be installed 原因是这个网址已经不存在,最可恶是官网的...

    Activiti BPMN 2.0 designer-Eclipse插件

    Activiti BPMN 2.0 designer-Eclipse插件离线安装包 采用link安装 link中路径配置切勿含有空格与中文 支持MyEclipse10 Activiti5.16亲测可用 当前版本可解压到eclipse下 dropins 文件夹中即可

    Activiti BPMN 2.0 designer for eclipse.rar

    安装步骤: 1、将补丁包复制到eclipse安装目录的plugins目录下。...Name:Activiti BPMN 2.0 designer Location: 点击Archive按钮改为选择本地下载下来activiti-designer-5.18.0.zip离线包进行安装即可。

    Activiti BPMN 2.0 designer插件

    Activiti BPMN 2.0 designer eclipse插件包,可以通过install 安装

    Activiti BPMN 2.0 designer eclipse插件安装

    将activiti-designer-5.14.1内的两个文件:features和plugins放到eclipse的dropins文件内; 将文件:eclipse安装activiti需装eclipse插件20170325的四个文件放到eclipse根目录的plugins内:

    2019最详细Activiti6.0之BPMN2.0规范

    是一套业务流程模型与符号建模标准精准的执行语义来描述元素的操作以XML为载体,以符号可视化业务BPMN2.0-流对象活动(Activities)【UserTask、Service、Task…】事件(Event)【StartEvent、EndEvent…】网关...

    Activiti BPMN2.0 designer

    鉴于Activiti BPMN2.0 Designer在线安装方式基本安装不成功,所以提供离线下载文件及安装步骤供大家使用。

    Activiti BPMN2.0设计器eclipse插件

    Activiti BPMN2.0设计器eclipse插件,myeclipse9.1放到MyEclipse 9\dropins目录下即可

    activiti生成bpmn图的代码

    activiti生成bpmn图的代码 整理出来了 省的翻源码了

Global site tag (gtag.js) - Google Analytics