... snip...
<header>
<variables>
<variable name="name" >
<type name="org.drools.process.core.datatype.impl.type.StringDataType" />
<value>World</value>
</variable>
<variable name="length" >
<type name="org.drools.process.core.datatype.impl.type.IntegerDataType" />
<value>0</value>
</variable>
</variables>
</header>
... snip...
<subProcess id="4" name="SubHello"
processId="subhello" waitForCompletion="true" >
<mapping type="in" from="name" to="name" />
<mapping type="out" from="length" to="length" />
</subProcess>
... snip...
这里是简单的例子
subhello
子流程,它只需获取输入并将其打印出来,然后获取输入长度以将其返回:
... snip...
<header>
<variables>
<variable name="name" >
<type name="org.drools.process.core.datatype.impl.type.StringDataType" />
<value></value>
</variable>
<variable name="length" >
<type name="org.drools.process.core.datatype.impl.type.IntegerDataType" />
<value></value>
</variable>
</variables>
</header>
<nodes>
<start id="1" name="Start" />
<end id="2" name="End" />
<actionNode id="3" name="Action" >
<action type="expression" dialect="mvel" >
System.out.println(name + ", " + length + ", in SubProcess, before");
length = name.length;
System.out.println(length + ", in SubProcess, after");
</action>
</actionNode>
</nodes>
... snip...
这是根据我对文档和示例的解释。在主流程和子流程上都声明了所需的变量,然后只需使用子流程in/out映射元素来设置from和to属性。
name
length
返回主进程失败。这个
在主要过程中没有改变。
我做错了什么?非常感谢您的指点和解释。谢谢