组织一直在努力改进工作方式,以提高效率并减少错误。这需要分析和不断改进其工作方法,其中可能包括在可预测情况下的非常结构化的工作流程,以及响应动态情况的协议,在这种情况下无法规定固定的流程。
CMMN是一种图形符号,用于捕获基于处理需要各种活动的案例的工作方法,这些活动可能以不可预测的顺序执行以响应不断变化的情况。使用以事件为中心的方法和案例文件的概念,CMMN扩展了可以用BPMN建模的界限,包括结构化工作量减少和知识工作者推动的工作量。使用BPMN和CMMN的组合允许用户覆盖更广泛的工作方法。
以下是我们在BPMN之外需要CMMN的一些原因:
临时流程是一组业务活动和相应的工件(例如,信息,决策和产品),只能在高级别的聚合中进行标准化。实际的活动种类及其排序因个案而异。
以下是Ad-hoc流程的特征:
近几十年来,人们一直关注建模和自动化结构良好的日常流程。BPMN最适用于知识型员工主要执行任务的结构良好且高度可预测的工作,而CMMN涵盖知识工作者在运行时制定决策和计划的积极参与下可预测性较差的部分
案例管理(CM)是van der Aalst于2005年作为知识工作者的工具引入的。2014年5月,OMG发布了案例管理标准,称为案例管理模型和符号(CMMN)。其重点是支持不可预测,知识密集和结构薄弱的流程。案例管理是一种业务流程技术,不使用控制流来描述流程。
案例管理是通过向知识工作者提供有关案件的所有信息的访问权限并赋予他们对案件如何发展的自由裁量权和控制权来赋予他们权力。案件管理不是关于流程,而是关于工人。与经典流程相比,某个目标和提供可供选择的可能性比实现目标本身的方式更重要。
这里列出了BPMN和CMMN之间的差异:
大多数BPMN符号 | CMMN表示法 |
---|---|
势在必行 | 陈述 |
以流程为中心 | 以数据为中心 |
弧描述序列 | 无预定序列 |
引导工作(低头工人) | 使工人(知识工作者) |
一切都是模仿的 | 并非一切都是建模的 |
声明性表示法不会尝试模拟问题的流程; 他们建立了预期的结果,即指明他们想要发生什么,但不指明它应该如何发生。SQL是声明性编程的一个例子,因为它不会试图控制程序的流程; 它只是陈述了它想要出现的内容,而不是它是如何完成的。
另一方面,命令式表示法试图模拟问题的流程; 例如,命令式编程语言,如Java或C ++,它们建立的命令将告诉编译器他们希望代码如何运行,但不能明确告诉他们想要发生什么。
结构化过程 | 案件 | 特别程序 |
---|---|---|
|
|
|
可以建模 | 可以建模 | 无法建模 |
CMMN中没有序列流模型。任务的执行取决于被称为哨兵的事件和条件。哨兵捕获在案件中发生的特定事件的发生或满足的条件。哨兵用作进入和退出标准。请注意,黑色和白色钻石代表标准。
案例有两个不同的阶段,即设计时和运行时,如下所述:
在设计阶段,业务分析师参与建模,其中包括定义始终属于案例模型中预定义段的一部分的任务(计划项),以及案例工作者可用的“自行决定”任务。任选地根据他/她的判断应用。
在运行时阶段,Case工作人员通过按计划执行任务来执行计划,并可选择在运行时向案例计划实例添加任意任务。
此示例说明了使用CMMN建模的纸张写入过程。假设论文写作是一项密集的知识工作,可以用不同的方式处理。让我们进一步研究这个例子如下:
*摘自OMG案例管理模型和表示法规范
注意
在案例计划模型中捕获案例的完整行为模型。对于特定案例模型,案例计划模型包含表示案例初始计划的所有元素,以及通过案例工作者通过运行时计划支持计划进一步发展的所有元素。计划项目有四种类型:
任务是一个工作单元。有三种类型的任务:
任务(计划项目) | 图形符号 |
---|---|
人工任务 - 由案例工作人员执行的任务,他们可以是:
|
|
流程任务 - 可以在案例中用于调用业务流程 |
|
案例任务 - 可用于调用另一个案例 |
任务始终是Case模型中预定义段的一部分。除了任务之外,Case工作人员还可以使用Discretionary Tasks,可以根据他/她的判断任意应用。自由裁量任务由带有虚线和圆角的矩形形状描绘/请注意,任何任务类型都可以自行决定:
酌情任务 | 图形表示法(右侧的任意任务) |
---|---|
自由裁量的人类任务 |
|
酌情人类任务(非阻塞) |
|
酌情处理任务 |
|
酌情案件任务 |
事件是在案例过程中发生的事情。例如,阶段和任务的启用,激活和终止,或里程碑的实现。
事件监听器 | 符号 |
---|---|
一个定时器事件监听器用于捕获预定义的时间流逝。 |
|
一个用户事件监听器是用来捕捉由用户引发的事件。通过这种方式,用户可以实现与案例进行的直接交互,而不是通过执行任务来影响案例文件中的信息。 |
里程碑表示可实现的目标,其定义为能够评估案例的进展。没有工作与里程碑直接相关,但完成一组任务或关键可交付成果的可用性(案例文件中的信息)通常会导致实现里程碑。里程碑可以具有零个或多个进入标准,其定义达到里程碑时的条件。
例如,我们在兼容流程中有一个服务水平协议(SLA),可以使用计时器事件监听器和里程碑建模,如下所示。
下图显示了一个展开的舞台,其中包含一个子舞台和三个任务。
标准允许我们描述任务,阶段或里程碑何时应该可用于执行(进入标准),或何时案例(案例计划),阶段或任务应该异常终止(退出标准)。Criteria有以下两个可选部分:
我们可以考虑形成句子的标准如下,
([ on < Event 1 >[, on < Event 2 >[, . . .]] ]) AND ([ if < Boolean condition > ])
注意:
条目标准描述了可供执行的阶段,任务或里程碑必须满足的条件。没有条目标准的阶段,任务或里程碑将在创建后立即执行。输入条件可以放在舞台,任务或里程碑边界的任何位置。
例
在下面的示例中,产品投诉和服务投诉这两个阶段都需要一个入门标准,因为它们只能在投诉类型的情况下执行。在大多数情况下,两个阶段中只有一个会执行,但在某些情况下,投诉可能涉及两个阶段。
退出标准类似于条目标准,但它用于在满足时停止处理阶段,任务或案例(案例计划)。在投诉过程中,我们将为案例添加退出标准。在这种情况下,客户致电并取消投诉,因此我们需要停止处理案件。我们通过提供取消案例文件项来模拟这种情况,该项目可以是客户电话的录音或来自客户的信件。
在CMMN中,每个案例实例包含一个案例文件(也称为案例文件夹,或只是案例),案例工作者可以访问该案例文件中的所有数据。只要具有足够的权限,案例工作者就可以添加,删除和修改案例文件中的数据,即使他们没有在案例中执行任何任务。案例文件中的数据称为案例文件项。
所有数据和数据结构都称为案例文件项。所有案例文件项都存储在案例文件中。案例文件项用于表示各种数据,包括数据库中的数据值,数据库中的行,文档,电子表格,图片,视频,录音等。除基本数据外,案例文件项也可以表示容器,包括目录,文件夹,集合,堆栈,列表等。
例
阶段或人工任务可以具有计划表,指示是否可视化( - )或(+)可自由选择的项目。当用户“扩展”计划表时,其包含的可自由支配的项目在阶段内或人工任务外部可见。对于与人工任务关联的自由选项,计划仅在任务的活动状态下可用。