🥑隐式子流程
LiteFlow支持在一个节点里通过代码调用另外一条流程, 这个流程关系在规则文件中并不会显示。所以这里称之为隐式调用。
主流程和隐式子流程共同享有同一个上下文的数据。所以隐式子流程里也完全可以拿到这个请求中的所有数据。
隐式调用可以完成更为复杂的子流程,比如循环调用,复杂条件判断等等。隐式子流程需要你在组件里通过this.invoke
这个语句来调用。
@Component("h")
public class HComponent extends NodeComponent {
@Override
public void process() {
System.out.println("Hcomponent executed!");
for(int i=0;i<10;i++){
this.invoke("strategy1","隐式流程的初始参数,可为null");
}
}
}
这段代码演示了在某个业务节点内循环调用另外一个流程链的方法。
提示
要注意的是,如果你在组件里另外开线程去调用隐式组件,推荐用invokeInAsync
方法。
同样,隐式子流程也支持返回LiteFlowResponse
对象,需要调用invoke2Resp
方法,关于返回对象为LiteFlowResponse
的说明,请参照LiteflowResponse对象。
注意
如果你是用invoke
去调用隐式流程,在组件中拿到传入的隐式流程请求参数,通过this.getSubChainReqData()
去拿。
如果你是用invokeInAsync
去调用隐式流程,在组件中拿到传入的隐式流程请求参数,请通过this.getSubChainReqDataInAsync()
去拿。
用this.getRequestData()
是拿不到的!
帮助我们改善此文档 (opens new window)
上次更新: 2023/08/04, 17:02:03