flowable modler为任务节点增加自定义属性
生活随笔
收集整理的這篇文章主要介紹了
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);@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設計器為任務節點擴展屬性已經講解完畢了。
總結
以上是生活随笔為你收集整理的flowable modler为任务节点增加自定义属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flowable实战(四)flowabl
- 下一篇: RabbitMQ的5种队列_Work模式