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