一、简介
本篇文章仅是记录个人使用 Flowable Case Model 过程中的情况。
文档详细可查阅 Flowable 官方文档
二、概念
什么是Case Model,个人理解:它是可以解决某个领域问题的模型;例如:用户模块、购物模块、财务管理、年审等业务场景;也可以简单理解为一堆功能的集合体,然后通过准入条件和退出条件来甄别是否执行业务作业(PlanItem Instance)。
三、术语与结构
框架设定上允许使用行业标准XML来定义流程,那么我们可以先看下整个案例模型定义的结构是怎么样的?它由哪些标签组成?
案例模型(CaseModel)也可以称为案例模型定义(CaseModelDefinition)由它创建出来的XML文件后缀名为 .cmmn.xml
├─Case
│ └─CasePlanModel
│ ├─Criteria
│ ├─Event
│ ├─PlanItem
│ ├─Milestone
│ ├─Stage
│ │ ├─PlanItem
│ │ ├─Criteria
│ │ ├─Task
│ │ ├─Milestone
│ │ └─ExtensionElements
│ └─Task
文件内容大致上的结构分层类似酱紫的!
- 一个案例定义是拥有一个或者多个案例计划模块;
- 每个案例计划模块包含有多个计划项(PlanItem)、而每个计划项是可以设置准入条件和退出条件的;
- 而像阶段(stage)、各类任务(Task)、里程牌(Milestone)、事件(Event)它们都可以作为一个计划项;
- 因此假设启动一个案例定义来获得一个案例实例(CaseInstance)之后,你通过查询就会得到好多个计划项实例(PlanItemInstance)
- 如果你查看一份XML文件,在同一层级结构上你会看到这样的结构内容
<planitem id="planItem2" name="Stock Stage" definitionref="stock_stage">
<exitcriterion id="sid-1E54860D-FDEF-464B-B16A-A924DE419A84" sentryref="sentry2"></exitcriterion>
</planitem>
<planitem id="planItem3" name="Stock And Order Milestone" definitionref="stockOrderMilestone"></planitem>
<sentry id