当我们在收集flowable改造原型时,所有的代码都会涉及到bpmn模型定义。这是流程规划设计与流程引擎的结合点。业务规划人员参照bpmn规范设计执行图,工作流引擎解析bpmn模型,并对解析的结果进行关系处理,最终形成flowable引擎可以处理的BPMNModel对象。
BPMNModel对象是flowable引擎可以处理的内存对象,对象解析工序为:解析xml/json报文---->基于bpmn模型对象,为流程节点间建立映射关系---->返回完整BPMNModel对象。
BPMN有标准的定义规范,并且基于事件------>网关----->顺序流--->流程节点 四个维度进行细化定义,在产品扩展中,需要根据bpmn原有规范的基础上,完善自身的扩展需求,一般是添加标准的扩展属性,以便在bpmn体系内都得到支持,方便流程定义模型跨平台使用。
flowable为每类元素提供了标准析构器,方便BPMNModel<------>xml报文间无损转换。
BPMN模型定义规范采用了标准的xsd文件进行约束定义。
使每个元素有标准的定义说明,流程在解析完成之后,flowable提供了配套的对象验证包对相应的元素进行验证。
BPMNModel中的元素对象,在flowable中采用层级关系进行定义。
学习bpmn,对了解flowable的运行有非常重要的帮助,flowable的本质是在支持bpmn2.0基础上,构建的集bpm,dmn,cmmn等的一套引擎平台。