如何定义BPMN流程的状态?

问题描述 投票:3回答:4

假定描述活动,网关,开始和结束事件的BPMN流程。如下:

Some BPMN process每个步骤都由BPMN引擎管理。一方面,我们如何分辨过程的状态?活动似乎定义了体现为动作的某些状态(例如评估请求)。我对么 ?

[此外,如果我们假设活动代表状态,那么当我们要浏览专用的后续应用程序时,如何获得下一个可能状态的列表?

是否应该以一种更面向[[workflow的方式对流程进行建模,以表达那些状态/动作的可能性?我的直觉是,事件也可以用于管理状态和可能的相关动作。

workflow bpmn camunda-modeler
4个回答
1
投票
由于我不确定您对流程状态的确切了解,因此我将首先尝试定义该状态。我想您已经了解令牌的概念,请参见discussion in the Camunda forum

令牌是BPMN概念,表示流程实例内的状态。它没有任何变量或任何消息。

您现在可以将

过程状态定义为统计信息,在给定时间有多少个令牌,以及给定活动或事件中当前有多少个令牌。

可以从您最喜欢的BPMN引擎中提取此统计信息(例如在Camunda的Cockpit中看到的是五颜六色的小气泡)。有了这些统计信息,您原则上就可以生成有关下一个可能状态的预测,即确定场景下一次实例中可能在每个活动中的令牌数量。

0
投票
State在BPMN中具有不同的含义,可能表示:1-令牌在流中的哪里?2-流程是否正确运行?3-或通过表单中的特定变量(字段)。如果是第三种情况(在流程中很常见),则必须在数据模型中将一个字段定义为枚举(取决于引擎),然后手动或自动更改表单中的值。

0
投票
显然,BPMN相当抽象的Petri-Net风格的令牌流语义不能捕获业务流程的真实语义。由于学术压力团体,它刚刚被人为地强加给BPMN。真正有意义的语义必须引用拥有它的业务系统中流程的信息上下文。

当然,作为流程(类型)拥有者的业务系统在运行流程的任何时候都处于某种复杂的动态信息状态,该状态的一部分构成了流程的上下文,因此可以被认为是其状态。

实际上,过程的(信息)状态实质上由受该过程的(事件/活动)使用或影响的对象的所有属性值槽给出。除了这些“全局变量”之外,进程的状态还包括

    (辅助)过程变量的值,
  1. 该信息,哪些活动已经开始(并且正在进行中)。

0
投票
看看Imixs-Workflow project。它是一个面向事件的工作流引擎,而不是BPM引擎中常见的面向任务的设计。

此类工作流引擎中的每个任务都在流程模型中定义了一个状态。工作流引擎将保持此状态,直到触发事件为止。事件定义了从一种状态到另一种状态的过渡。

您可以找到示例,如何在事件驱动的工作流模型here中对不同的忠诚度进行建模。

© www.soinside.com 2019 - 2024. All rights reserved.