0

我这里有两个问题

  1. 是否可以将动态列表值添加到字段注入列表输入?
  2. 我可以为此创建一个触发器,以便可以从任何其他输入选择启动它,例如类选择将填充所有字段

我只是在研究FieldInjection.js是否可以扩展为相同的

在此处输入图像描述

有人可以为此提供提示或方向吗?

谢谢。

4

1 回答 1

0

对于任何对答案感兴趣的人,我可以通过更改 Java 类选择输入的 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;
    }

干杯!

于 2017-03-31T10:08:12.867 回答