CMMN: Case Management Model and Notation.案例管理模型和符号
BPMN:Business Process Modeling Notation。业务流程建模符号标准
CMMN与bpmn的区别:
bpmn为业务流程为有序的流程,完成一个任务后才能进入下一个任务;CMMN为无序的,根据任务条件状态进入下一项任务。
cmmn典型的使用场景:多个任务可以随意选择做哪一部分,当全部或者部分任务某些条件满足后,整体任务完成或者关闭。例如每天时间安排计划:完成阅读100页,完成作业,完成运动量等,它们之间没有关联性无法建立流程,但可以根据每一项完成的状态决定今天的安排是否完成。
api
CmmnEngine cmmnEngine = CmmnEngineConfiguration.createStandaloneCmmnEngineConfiguration();
//It deals with starting new case instances of case definitions.
CmmnRuntimeService runtimeService = cmmnEngine.getCmmnRuntimeService();
//This service offers operations for managing and manipulating deployments and case definitions.
CmmnRepositoryService repositoryService = cmmnEngine.getCmmnRepositoryService();
/**Querying tasks assigned to users or groups
Creating new standalone tasks. These are tasks that are not related to a process instance.
Manipulating to which user a task is assigned or which users are in some way involved with the task.
Claiming and completing a task. Claiming means that someone decided to be the assignee for the task, meaning that this user will complete the task. Completing means 'doing the work of the tasks'. Typically this is filling in a form of sorts.
**/
CmmnTaskService taskService = cmmnEngine.getCmmnTaskService();
//gives access to low-level information about the database tables, allows to query for the different types of jobs and to execute them.
CmmnManagementService managementService = cmmnEngine.getCmmnManagementService();
//exposes all historical data gathered by the Flowable CMMN engine
CmmnHistoryService historyService = cmmnEngine.getCmmnHistoryService();
Basic concepts and terminology
folder
case model
plan item
sentry
entry criteria: a plan item is said to have entry criteria when a sentry "guards" its activation.
CMMN 1.1 Constructs
Stage: A stage is used to group plan items together.A stage is a plan item itself.
Human task: A human task is used to model work that needs to be done by a human, typically through a form.
Java Service task: A service task is used to execute custom logic.PlanItemJavaDelegate.class
External Worker Task: An External Worker can acquire jobs over the Java API or REST API.
Decision task:
Http Task:
Script Task:groovy, javascript
Milestone: A milestone is used to mark arriving at a certain point in the case instance.
Case task: A case task is used to start a child case within the context of another case.
Process task: A process task is used to start a process instance within the context of a case.
Criteria:
Event Listener:Timer Event Listener, User Event Listener, Generic Event Listener, Automatic removal of event listeners.
Item control: Repetition Rule: an expression that can be used to indicate a certain plan item needs to be repeated.
Item control: Manual Activation Rule: an expression that can be used to indicate a certain plan item needs to be manually activated by an end-user.
Item control: Required Rule: an expression that can be used to indicate a certain plan item is required by the enclosing stage (or plan model).
Item control: Completion Neutral Rule:an expression that can be used to indicate a certain plan item is neutral with regards to the completion of its parent stage (or plan model).
Item control: Parent Completion Rule:In addition to the completion neutral rule (which is going to be deprecated), the parent completion rule offers way more flexibility whenever it comes down to evaluating a stage or the case plan model to be completable.