我在BPMN中创建了一个自定义任务,并编写了一个扩展KogitoWorkItemHandler的处理程序。输入值作为参数获得,结果作为Map<String, Object>推回。这在单个变量的情况下工作正常。当使用多个自定义对象输入并期望多个自定义对象输出时,如何识别与输入相同的自定义对象对应的特定输出变量名称,以便正确分配?
Map<String, Object>
oaxa6hgo1#
为了求解,我们可以从当前运行的Node示例中选取ioSpec,然后获取需要用作结果的变量的DataDefinition。
WorkItemNode node =(WorkItemNode) workItem.getNodeInstance().getNode(); IOSpecification ioSpec = node.getIoSpecification(); for(DataDefinition dataDefinition : ioSpec.getDataOutputs()){ if(dataDefinition.getType().equals(fullyQualifiedName)){ return dataDefinition.getLabel(); } }
这里的fullyQualifiedName是自定义输入对象的名称,可以从输入workItem.getParameters().get(parameter).getClass().getName()中获取,循环遍历所有输出,找到输入的自定义类型对应的名称。
workItem.getParameters().get(parameter).getClass().getName()
1条答案
按热度按时间oaxa6hgo1#
为了求解,我们可以从当前运行的Node示例中选取ioSpec,然后获取需要用作结果的变量的DataDefinition。
这里的fullyQualifiedName是自定义输入对象的名称,可以从输入
workItem.getParameters().get(parameter).getClass().getName()
中获取,循环遍历所有输出,找到输入的自定义类型对应的名称。