flowable自定义节点属性

灰太狼 2023-07-12 14:41 137阅读 0赞

1、模板定义xml中增加如下内容(节点标签下extensionElements增加自定义属性(标签)):

20200310085028858.png

2、自定义任务解析器CustomUserTaskJsonConverter extends UserTaskJsonConverter

重写convertElementToJson方法,增加以下内容

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6Y2hhbmNlcw_size_16_color_FFFFFF_t_70

重写convertJsonToElement方法

  1. @Override
  2. protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode,
  3. Map<String, JsonNode> shapeMap) {
  4. UserTask flowElement = (UserTask) super.convertJsonToElement(elementNode, modelNode, shapeMap);
  5. LOGGER.info("进入自定义属性解析");
  6. if(flowElement instanceof UserTask){
  7. String customSetting = getPropertyValueAsString("customSetting",elementNode);
  8. if(StringUtils.isNotBlank(customSetting)){
  9. LOGGER.info("新增自定义属性[customSetting]="+customSetting);
  10. ExtensionAttribute ea1 = generateExtensionAttribute("customSetting",customSetting);
  11. flowElement.addAttribute(ea1);
  12. }
  13. // addExtensionElement("customSetting", customSetting, flowElement);
  14. }
  15. return flowElement;
  16. }
  17. public static ExtensionAttribute generateExtensionAttribute(String key, String val){
  18. ExtensionAttribute ea = new ExtensionAttribute();
  19. ea.setNamespace("http://flowable.org/bpmn");
  20. ea.setName(key);
  21. ea.setNamespacePrefix("custom");
  22. ea.setValue(val);
  23. return ea;
  24. }

3、自定义CustomBpmnJsonConverter 继承BpmnJsonConverter

  1. public class CustomBpmnJsonConverter extends BpmnJsonConverter {
  2. static {
  3. convertersToBpmnMap.put(STENCIL_TASK_USER,CustomUserTaskJsonConverter.class);
  4. }
  5. }

发表评论

表情:
评论列表 (有 0 条评论,137人围观)

还没有评论,来说两句吧...

相关阅读

    相关 data-* 定义属性

    之前没有关于自定义属性的规范,所以管理起来比较混乱。 HTML5增加data-*用于设置自定义属性,可以用来存储数据,也可以称之为数据属性。 同时,JavaScript提...