微网站不能分享朋友圈,做网站工资年新多少在广东,手机app定制开发,软件项目管理论文如何在modler设计器中为任务节点#xff0c;添加自定义的属性。 文章目录1、modler设计器中所有元素的定义2、flowable如何处理stencilset_bpmn.json文件3、为UserTask任务节点添加一个扩展属性3.1. 添加属性的名称3.2. 为任务节点添加扩展属性3.3. 查看效果1、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);Autowiredprotected 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设计器为任务节点扩展属性已经讲解完毕了。