CMMN(Case
Management Model and Notation)是案例管理模型和符号的缩写,它是一种相对比较新的符号,于2014年首次发布,最新版本是
OMG在2016年3月发布的1.1版。它定义了用于建模和图形化表达案例的通用元模型和符号以及一种用于在不同工具之间交换案例模型的接口格式。
提到案例管理,首先我们先了解一下什么是案例。案例是CMMN中的主要概念,它类似于一个过程。案例管理是一种业务流程技术,它不使用控制流来描述流程,典型的案例管理场景有贷款申请、保险索赔、客户投诉等。案例管理不同于业务流程管理(BPM)。它更多的关注整个案例中要处理的实际数据,而不是实施步骤的顺序。
为什么需要CMMN
业务流程建模已经有了BPMN,为什么还要使用CMMN呢?因为如下2点:
1、CMMN更接近于实际的业务描述,所以采用案例的方式,从一个真实而完整的视角描述业务。它是没有顺序的流程,它以某种状态对案例建模。根据状态和情况而定,有些事情可能会处理,有些事情可能不会。控制主要由人来执行。
2、CMMN模型说明了要完成的工作,但没有说明如何实现它。相反,BPMN强制性地规定了流程中某些步骤必须进行的工作。
在EA中CMMN有什么
CMMN中一个案例包含一个案例文件(即案例数据容器),它包含有关流程的所有数据和信息。
EA中CMMN模型中的案例模型用公文夹的样式表示。每个案例模型都包含一个用于放置计划元素的「案例计划模型」,每个计划元素都有明确的类型,常见计划元素如人员的工作任务(human
task)、里程碑(milestone)、流程任务(process task)、案例任务(case
task)和阶段(stage)等。如下所示
EA中CMMN 元素
元素图示 |
名称 |
说明 |
|
CasePlanModel |
案例计划模型: 在案例计划模型中捕获案例的完整行为模型。 |
CaseFileItem |
案例文件项:所有数据和数据结构都称为案例文件项。所有案例文件项都存储在案例文件中。案例文件项用于表示各种数据,包括数据库中的数据值、数据库中的行、文档、电子表格、图片、视频、录音等。除基本数据外,案例文件项也可以表示容器,包括目录、文件夹、集合、堆栈、列表等。 |
Stage |
阶段(Stage):阶段用于把一组元素聚合在一起,可以有进入和退出的条件。阶段可以嵌套,一个阶段中的计划元素只有其父阶段激活时才生效。 |
EntryCriterion |
条件(Criteria):分为进入条件和退出条件。
进入条件:描述任务、阶段或里程碑何时应该可用于执行(进入条件) |
ExitCriterion |
退出条件类似于条目标准,但它用于在满足时停止处理阶段、任务或案例(案例计划)。 |
PlanFragment |
计划片段 |
Task |
任务(Task):任务是发生于引擎外部的事件,包含名称、阻塞(决定任务是否阻塞的布尔值)、阻塞表达式(表达式的布尔值决定任务是否阻塞)等属性。 |
HumanTask |
人员的工作任务(Human
task):通常指需要人员通过表单执行的手动任务,包含一系列属性。 |
CaseTask |
案例任务(Case
task):案例可以嵌套,案例中的子案例就是案例任务。可用于调用另一个案例。 |
ProcessTask |
流程任务(Process
task):当流程任务阻塞时,实例化的计划要素会处于激活状态,直至流程任务完成。可以在案例中用于调用业务流程。 |
Milestone |
里程碑(Milestone):里程碑标识某一具体案例到达特定点。 |
TimerEventListener |
定时器事件监听器:用于捕获预定义的时间流逝 |
UserEventListener |
用户事件监听器是用来捕捉由用户引发的事件。 |
PlanningTable |
计划表:阶段或人工任务可以具有计划表,指示是否可视化(
- )或(+)可自由选择的项目。当用户“扩展”计划表时,其包含的可自由支配的项目在阶段内或人工任务外部可见。对于与人工任务关联的自由选项,计划仅在任务的活动状态下可用。 |
Connector |
连接器。 |
好了,我们了解了EA中的CMMN模型,那么问题来了!
在EA中创建CMMN模型
首先创建图,然后选择 Analysis 中CMMN图,点击确定即可。
下面我们用一个简单的客户投诉流程为例进行CMMN建模 。建模投诉流程的目的是使投诉流程标准化,为负责该流程的客户服务人员提供指导和支持。
如下是我们创建好的CMMN模型。
首先我们要分析创建 投诉流程的CMMN 模型,都有哪些里程碑、阶段、任务、事件触发器等,然后在工具箱中选择相应的元素拖到画布。
上图中我们设置了如下内容:
1. 流程有几个必须达到的里程碑:
收到的客户信息
完成投诉
2. 设置多少个任务由我们自己决定。
3. 包含“ 产品投诉”和“ 服务投诉”2个阶段。
4. 确当文件项目,包含输入信息、报告、决议文件、取消文件等
5. 创建文档或达到截止日期后将完成流程。
具体建模步骤如下:
1、首先我们创建 收到客户投诉信息的流程。
输入文件夹可以包含电子邮件,文档,图片,客户电话等信息,我们把客户提交的所有数据放着这个文件夹下。
2、在投诉过程中,发送信函 任务取决于两个事件,一个事件来自收到的客户信息里程碑,另一个事件来自决议案件文件。
我们需要客户的输入信息,并且我们必须接受这个投诉才能将信函发送给客户。这意味着输入条件有两个事件,并且它们形成一个AND条件。必须满足这两个事件,才能满足输入标准。
3、取消投诉可以是客户取消投诉的语音记录,客户的来信,或者只是案例数据中的标记。
4、我们设置一个用户事件监听器,为主管提供一种触发退款任务的方法。
5、产品投诉阶段中,产品专家任务没有输入条件,因此,一旦产品投诉开始执行,产品专家任务也会立即开始执行。最终,案例工作者可以创建报告,根据设定条件满足已完成的里程碑。
6、欺诈调查是一个自由裁量阶段,因此以虚线绘制。它包含两个非自由选择项(欺诈里程碑和调查阶段)。
以上就是我们CMMN 建模的全部内容,在实际项目中我们很少单独用CMMN建模,一般是结合BPMN以及DMN建立模型,我们网站还有很多这方面资源,欢迎大家关注。
如果您希望了解更多信息:
下载 pdf版:
《在EA中创建CMMN模型》
本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们。
如果您对我们的培训、咨询和工具感兴趣:
|