盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

flowable modler为任务节点增加自定义属性

分享牛 10603℃
    之前的系列课程中,我们使用了springboot框架集成了Flowable modler设计器。Flowable中的modler设计器虽然样式不是特别好看,但也凑合能够使用。本文我们重点讲解一下如何在modler设计器中为任务节点
添加自定义的属性。

1、modler设计器中所有元素的定义

    我们在使用modler设计器的时候,这个设计器需要依赖一个叫做stencilset_bpmn.json的文件,相信只要大家做过activiti工作流,肯定知道这个文件了,这个文件非常的重要。该文件中定义了所有modler设计器需要用到的页面元素定义,比如我们常用的任务节点(UserTask)、开始节点(startevent)、结束节点(endevent)。这些活动节点中所使用到的属性也定义在stencilset_bpmn.json文件。当然了,只要大家想汉化Flowable中的modler设计器,也是将该文件中对应的英文修改为对应的中文即可。

 2、flowable如何处理stencilset_bpmn.json文件

    在Flowable的源码包中有这样的一个接口,用来访问项目中的stencilset_bpmn.json文件并返回到前端页面。该接口的名称是StencilSetResource.java 核心代码如下:

@RestController

public class StencilSetResource {


    private static final Logger LOGGER = LoggerFactory.getLogger(StencilSetResource.class);


    @Autowired

    protected ObjectMapper objectMapper;


    @RequestMapping(value = "/rest/stencil-sets/editor", method = RequestMethod.GET, produces = "application/json")

    public JsonNode getStencilSetForEditor() {

        try {

            JsonNode stencilNode = objectMapper.readTree(this.getClass().getClassLoader().getResourceAsStream("stencilset_bpmn.json"));

            return stencilNode;

        } catch (Exception e) {

            LOGGER.error("Error reading bpmn stencil set json", e);

            throw new InternalServerErrorException("Error reading bpmn stencil set json");

        }

    }

    

}

上面展示的代码处理逻辑非常简单,直接使用类加载器获取项目根目录中的stencilset_bpmn.json文件并解析返回

 3、为UserTask任务节点添加一个扩展属性


接下来,我们在stencilset_bpmn.json中为任务节点扩展一个属性,打开stencilset_bpmn.json开始如下的操作:

3、1 添加属性的名称

 {

    "name" : "shareniu",

    "properties" : [ {

      "id" : "shareniu",

      "type" : "String",

      "title" : "分享牛自定义属性",

      "value" : "shareniu",

      "description" : "Unique identifier of the element.",

      "popular" : true

    } ]

  },

注意:这是一个数组,位于propertyPackages属性中。

3、2 为任务节点添加扩展属性

接下来,我们继续操作stencilset_bpmn.json文件,查找到userTask任务节点如下所示:

{

    "type" : "node",

    "id" : "UserTask",

    "title" : "任务节点",

    "description" : "任务节点",

    "icon" : "activity/list/type.user.png",

    "groups" : [ "Activities" ],

    "propertyPackages" : ["shareniu", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "formreferencepackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage", "skipexpressionpackage" ],

    "hiddenPropertyPackages" : [ ],

    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]

  }

propertyPackages数组中我们增加了自定义的属性shareniu。

3、3 查看效果

上述的操作执行完毕之后,我们开始启动项目,并进行测试,拖拽一个任务节点,属性面板的展现如下图所示:



至此,关于Flowable modler设计器为任务节点扩展属性已经讲解完毕了。

转载请注明:分享牛 » flowable modler为任务节点增加自定义属性