Workflow 如何定义BPMN流程的状态?

Workflow 如何定义BPMN流程的状态?,workflow,bpmn,camunda-modeler,Workflow,Bpmn,Camunda Modeler,假设BPMN流程描述活动、网关、开始和结束事件。详情如下: 每个步骤都由BPMN引擎管理。在某一点上,我们如何判断过程的状态?活动似乎定义了一些体现为操作的状态(例如,评估请求)。我说得对吗 另外,如果我们假设活动代表状态,那么如果我们要在一个专用的后续应用程序中导航,我们如何获得下一个可能状态的列表 是否应该以更面向工作流的方式对流程进行建模,以表达这些状态/操作的可能性?我的直觉是,事件也可以用来管理状态和可能的相关操作。因为我不确定您对流程状态的确切理解,我将首先尝试定义它。我想您已经意

假设BPMN流程描述活动、网关、开始和结束事件。详情如下:

每个步骤都由BPMN引擎管理。在某一点上,我们如何判断过程的状态?活动似乎定义了一些体现为操作的状态(例如,评估请求)。我说得对吗

另外,如果我们假设活动代表状态,那么如果我们要在一个专用的后续应用程序中导航,我们如何获得下一个可能状态的列表


是否应该以更面向工作流的方式对流程进行建模,以表达这些状态/操作的可能性?我的直觉是,事件也可以用来管理状态和可能的相关操作。

因为我不确定您对流程状态的确切理解,我将首先尝试定义它。我想您已经意识到代币的概念,请参见:

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

现在,您可以将流程的状态定义为在给定时间存在多少令牌,以及当前在给定活动或事件中存在多少令牌的统计信息


这些统计数据可以从您最喜欢的BPMN引擎中提取(例如,在卡蒙达的驾驶舱中,可以看到彩色的小气泡)。有了这些统计数据,原则上您可以生成对下一个可能状态的预测,即确定场景中下一次实例中可能在每个活动中有多少令牌

状态在BPMN中有不同的含义,它可能意味着: 1-流中的令牌在哪里? 2-工艺流程是否正常运行? 3-或,通过表格中的特定变量(字段)。
如果您指的是流程中常见的第三种情况,那么您必须在数据模型中将字段定义为enum(取决于引擎),并手动或自动更改其在表单中的值。

显然,BPMN相当抽象的Petri网样式的令牌流语义并没有捕获业务流程的真正语义。由于学术团体的压力,它只是被人为地强加给BPMN。真正有意义的语义必须引用拥有它的业务系统中的流程的信息上下文

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

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

  • (辅助)过程变量的值
  • 信息,哪些活动已经开始(并且正在进行) 看一看这本书。它是一个面向事件的工作流引擎,而不是BPM引擎中常见的面向任务的设计

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


    您可以找到如何在事件驱动的工作流模型中对不同的szenarious进行建模的示例

    好的,我理解令牌的概念,它似乎在流程的设计方面造成了一个设计缺陷,因为它有助于线性流程的设计。它似乎证实了所描述的BPM流程对于管理实际流程和状态/转换的后续工作都不是很好。Worfklow肯定不同于状态机;谢谢你的邀请feedback@C如果你在谈论和思考图灵相关的东西,你是对的。BPMN对于与业务相关的东西来说是令人惊讶的,但对于理论方面的东西,或者对于用户体验来说,就不那么令人惊讶了。请看,您很好地理解了我的问题。我有业务流程,我需要将其链接到一些UI用例和用户路径。我需要在操作流和状态管理之间创建一些映射。谢谢你的指导