java 文字添加触发_如何使用自定义触发器向camunda属性面板添加动态值到字段注入列表?...

本文介绍了如何使用自定义触发器,在Java类中通过修改set函数,动态向Camunda流程实例的属性面板添加字段值。具体方法包括获取并处理扩展元素,移除已存在的扩展元素,根据属性类型创建新的字段元素,并将其添加到列表中。
摘要由CSDN通过智能技术生成

对于对答案感兴趣的任何人,我能够通过更改Java Class选择输入的set函数来实现上述目标,如下所示

进口很少

var extensionElementsHelper = require('../../../../helper/ExtensionElementsHelper'),

elementHelper = require('../../../../helper/ElementHelper')

var CAMUNDA_FIELD_EXTENSION_ELEMENT = 'camunda:Field';

function getExtensionFields(bo) {

return bo && extensionElementsHelper.getExtensionElements(bo, CAMUNDA_FIELD_EXTENSION_ELEMENT) || [];

}

然后更改set函数以创建扩展元素并将字段值推送为:

set: function(element, values, node) {

var bo = getBusinessObject(element);

var type = getImplementationType(element);

var attr = getAttribute(type);

var prop = {}

var commands = [];

prop[attr] = values.delegate || '';

var extensionElements = getExtensionFields(bo);

//remove any extension elements existing before

extensionElements.forEach(function(ele){

commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, ele));

});

if(prop[attr] !== ""){

var extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);

commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));

var arrProperties = ["private org.camunda.bpm.engine.delegate.Expression com.cfe.extensions.SampleJavaDelegate.varOne","private org.camunda.bpm.engine.delegate.Expression com.cfe.extensions.SampleJavaDelegate.varTwo"]

var newFieldElem = "";

arrProperties.forEach(function(prop){

var eachProp = {

name:"",

string:"",

expression:""

}

var type = prop.split(" ")[1].split(".").reverse()[0];

var val = prop.split(" ")[2].split(".").reverse()[0];

eachProp.name = val;

if( type == "String"){

eachProp.string = "${" + val +" }"

}else if( type == "Expression"){

eachProp.expression = "${" + val +" }"

}

newFieldElem = elementHelper.createElement(CAMUNDA_FIELD_EXTENSION_ELEMENT, eachProp, extensionElements, bpmnFactory);

commands.push(cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newFieldElem ]));

});

}

commands.push(cmdHelper.updateBusinessObject(element, bo, prop));

return commands;

}

干杯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值