Drools jBPM访问业务规则任务规则内的输入和输出变量
我的业务流程中有业务规则任务:Drools jBPM访问业务规则任务规则内的输入和输出变量,drools,jbpm,Drools,Jbpm,我的业务流程中有业务规则任务: <bpmn2:businessRuleTask id="BusinessRuleTask_3" tns:ruleFlowGroup="ruleGroup" name="TestRule" implementation="Java"> <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_10</bpmn2
<bpmn2:businessRuleTask id="BusinessRuleTask_3" tns:ruleFlowGroup="ruleGroup" name="TestRule" implementation="Java">
<bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
<bpmn2:ioSpecification id="InputOutputSpecification_4">
<bpmn2:dataInput id="DataInput_4" itemSubjectRef="_ItemDefinition_3" name="input1"/>
<bpmn2:dataOutput id="DataOutput_2" itemSubjectRef="_String" name="output1"/>
<bpmn2:inputSet id="InputSet_2">
<bpmn2:dataInputRefs>DataInput_4</bpmn2:dataInputRefs>
</bpmn2:inputSet>
<bpmn2:outputSet id="OutputSet_3">
<bpmn2:dataOutputRefs>DataOutput_2</bpmn2:dataOutputRefs>
</bpmn2:outputSet>
</bpmn2:ioSpecification>
<bpmn2:dataInputAssociation id="DataInputAssociation_4">
<bpmn2:sourceRef>inputMessage</bpmn2:sourceRef>
<bpmn2:targetRef>DataInput_4</bpmn2:targetRef>
</bpmn2:dataInputAssociation>
<bpmn2:dataOutputAssociation id="DataOutputAssociation_2">
<bpmn2:sourceRef>DataOutput_2</bpmn2:sourceRef>
<bpmn2:targetRef>outputMessage</bpmn2:targetRef>
</bpmn2:dataOutputAssociation>
</bpmn2:businessRuleTask>
我可以通过p:SomeClass(someField==“testRoad”)
测试输入变量,并使用p
供以后使用
但如何设置output1变量,以便稍后在BP中使用该变量
我应该在“then”中写些什么来设置输出1
我试过这样的方法:
rule "TestRule"
ruleflow-group "ruleGroup"
when
p: SomeClass(someField== "testRoad")
s: String()
then
System.out.println("+++ Rule if statement true: " + p.getSomeField());
s = "test";
end
但它不起作用。如果我只是在没有BPM的情况下使用drools并在会话中手动插入所有变量,那么它就可以工作。但在英国石油公司,这种规则是行不通的。在这种情况下,它甚至不会进入“then”
我没有找到任何关于这个的文件。我所能找到的就是System.out.println
或者在“then”中修改输入变量(p
)
谢谢。太不可思议了。我没有找到任何文档。你找到解决办法了吗?
rule "TestRule"
ruleflow-group "ruleGroup"
when
p: SomeClass(someField== "testRoad")
then
System.out.println("+++ Rule if statement true: " + p.getSomeField());
end
rule "TestRule"
ruleflow-group "ruleGroup"
when
p: SomeClass(someField== "testRoad")
s: String()
then
System.out.println("+++ Rule if statement true: " + p.getSomeField());
s = "test";
end