我希望来自 DMN 行的两个输出值被发送到 BPMN 上下文,例如 DMN.output.var1=val1、DMN.output.var2=val2。
输入:(空间=法律,事物=故意破坏)
输出:(ROUT_TO_DEPT =BY_LAW, OUT_CATEGORY = INSPECTION)
这两个变量必须在 context 中,并且可用于 BPMN 的下一步。
但是我收到一个错误,如何使它发生?
错误
堆栈跟踪:
Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-22002 The decision result mapper 'CollectEntriesDecisionResultMapper{}' failed to process '[{ROUT_TO_DEPT=Value 'BY_LAW' of type 'PrimitiveValueType[string]', isTransient=false, OUT_CATETORY=Value 'INSPECTION' of type 'PrimitiveValueType[string]', isTransient=false}]'. The decision outputs should only contains values for one output name but found '[ROUT_TO_DEPT, OUT_CATETORY]'.
at org.camunda.bpm.engine.impl.dmn.DecisionLogger.decisionResultCollectMappingException(DecisionLogger.java:44)
at org.camunda.bpm.engine.impl.dmn.result.CollectEntriesDecisionResultMapper.mapDecisionResult(CollectEntriesDecisionResultMapper.java:46)
at org.camunda.bpm.engine.impl.util.DecisionEvaluationUtil.evaluateDecision(DecisionEvaluationUtil.java:79)
at org.camunda.bpm.engine.impl.bpmn.behavior.DmnBusinessRuleTaskActivityBehavior$1.call(DmnBusinessRuleTaskActivityBehavior.java:56)
at org.camunda.bpm.engine.impl.bpmn.behavior.DmnBusinessRuleTaskActivityBehavior$1.call(DmnBusinessRuleTaskActivityBehavior.java:53)
at org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.executeWithErrorPropagation(AbstractBpmnActivityBehavior.java:90)
at org.camunda.bpm.engine.impl.bpmn.behavior.DmnBusinessRuleTaskActivityBehavior.execute(DmnBusinessRuleTaskActivityBehavior.java:53)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:61)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用RedHat Business Central并尝试从另一个 DMN 文件调用一个 DMN 文件。
用例 - 如果工资 > 40000 则从 firstdmn 计算税金,否则从secondarydmn计算税金。
我在Tax DMN 决策中添加了上下文和文字表达式,并包含了下面的模型。但不知道如何进一步进行。请建议该怎么做。
我想利用 DMN 来创建计算,但每个国家/地区的每个类别的规则都不同,因此美国和类别 1 的规则将与美国和类别 2 的规则不同,加拿大和类别 1 的规则也不同。
我不想为国家/地区类别添加列并将其全部保留在同一个表中,因为这将形成一个超级大的表,并且由于每个表将由一组不同的用户维护,因此将其分开会更简单,如果可能的。
有没有办法用 DMN 对此进行建模?
我知道 BPMN 可以用来决定调用哪个表,但很好奇 DMN 是否可以单独处理这种情况。
提前致谢