六、bpmnjs-Modeler建模操作-ElementFactory

部署运行你感兴趣的模型镜像

一、前言

        ElementFactory,元素工厂,是流程建模工具(如 Camunda、Activiti、Flowable 等 BPMN 引擎的建模组件)中负责创建 BPMN 元素的核心模块,是实现 BPMN 图形化建模的基础工具之一。负责生成BPMN元模型的图形元素数据对象,包含对象的基础属性与结构。

        也就是说,我们在创建一个流程时,需要通过elementFactory创建一系列的基础元素来组成一个流程。

二、创建元素

elementFactory,根据BPMN2.0协议,主要可以创建以下几种元素:

  1. 流程节点(Flow Node)

        Flow Node,了解过Acitiviti7源码的都知道,是一个核心抽象类,继承BPMN模型基础类BaseElement,以及实现FlowElement接口,是所有流程节点(Task、Event、GateWay等类)的父类。

        所以,通过elementFactory可以创建任务(Task)、子流程(SubProcess)、用户任务(UserTask)、服务任务(ServiceTask)、开始事件(StartEvent)、结束事件(EndEvent)、定时任务(IntermediateCatchEvent)、排他网关(ExclusiveGateway)、并行网关(ParallelGateway)、包容网关(InclusiceGateway)等。

       2.连接线(Connection)

        用于连接不同节点,定义流程运行路线。

      3.泳道(Swimlane)

        泳池(Pool)与泳道(Lane),用于划分流程的参与者。具体的用法后面讲解Activiti7源码或者介绍具体业务时再进行讲解。

     4.其他元素

        比如文本注释(TextAnnotation)、分组(Group)等。

        创建代码示例

        //创建一个定时器任务

        const modeler = store.getModeler;

        const elementFactory = modeler.get('elementFactory');

        const create = modeler.get('create');


        const shape = elementFactory.createShape({

          type: 'bpmn:IntermediateCatchEvent',  //要创建的元素类型

          eventDefinitions: [{     //默认属性

            $type: 'bpmn:TimerEventDefinition',

            timeDuration: 'PT10M' // 10分钟后触发

          }]

        });


        //创建一个并行网关

        const gateway = elementFactory.createShape({

          type: 'bpmn:InclusiveGateway',

          x: 300,

          y: 100,

        });

三、常用方法

  1. 创建元素基础对象:create(type,attributes)

        type:元素类型,比如:bpmn:UserTask

        attributes:初始化属性,比如:{id:’usertask1’,name:’审批节点’,assignee:’admin’}

     2.创建元素对象的图形元素:createShape(attributes)

//创建一个并行网关
const gateway = elementFactory.createShape({
   type: 'bpmn:InclusiveGateway',
   x: 300,
   y: 100,
});

      3.创建连接线:createConnection(source,target,attributes,parent)

          source:源节点

          target:目标节点

         attributes:连接线属性,包含type、name等属性

         parent:连接线的父元素,通常为Process对象        

     4.创建标签:createLabelcreate(element,attributes)

        element:需要关联的元素,就是给哪个元素创建标签

        attributes:基础属性,包括x、y坐标信息

四、关于create与createShape

        create与createShape都可以创建BPMN元素,这俩方法的应用场景是不同的,下面是这两个方法的使用讲解。

  1. 定义不同

        create:通用元素创建,最基础、最底层、最通用的创建方法,不限制元素类型

        createShape:专用于图形节点元素创建,限制元素类型,不符合bpmn的类型不会被创建

    2. 使用场景不同

        create创建的元素,可能不会显示在画布上,比如创建定时器,默认10分钟启动一次任务,这个“10分钟”的属性是不会显示到画布上的,再比如,给节点增加一个监听任务,同理,这个监听任务也不会显示在画布上。

        createShape创建的元素,是肯定会显示在画布上的,并且根据BPMN规定的图形格式进行展示,比如UserTask的显示图形与Gateway的显示图形是不一样的,但是他们的基础属性,都拥有id,name等属性。

下一章,讲解Modeling-流程模型交互操作-Modeling

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值