0
点赞
收藏
分享

微信扫一扫

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


如何在modler设计器中为任务节点,添加自定义的属性。

文章目录

  • ​​1、modler设计器中所有元素的定义​​
  • ​​2、flowable如何处理stencilset_bpmn.json文件​​
  • ​​3、为UserTask任务节点添加一个扩展属性​​
  • ​​3.1. 添加属性的名称​​
  • ​​3.2. 为任务节点添加扩展属性​​
  • ​​3.3. 查看效果​​

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设计器为任务节点扩展属性已经讲解完毕了。


举报

相关推荐

0 条评论