EOS中在java代码中直接访问逻辑流

xiaoxiao2021-02-27  147

阅读原文

在java代码中直接访问逻辑流

在java代码中可以调用所有的逻辑流,包括公有和私有的。

说明

java代码中直接访问逻辑流不能脱离EOSServer环境,比如在单独的main函数中是无法调用的。

在某些场景下,需要在java代码中直接访问逻辑流,可以通过下面几个步骤来完成:

获得逻辑流构件实例 com.eos.engine.component.ILogicComponent comp = com.primeton.ext.engine.component.LogicComponentFactory.create("逻辑构件全名称"); 逻辑构件全名称如:com.primeton.samples.base.logicflow.ScoreManager通过逻辑流构件调用逻辑流 ? Object[] params = new Object[size];            //assign params' value;            ...... Object[] returnValues = comp.invoke(logicName, params); //process return values 代码示例:参见com.primeton.samples.base.logicflow.javaCall.JavaCallLogic.java中的例子。 ? /**       * 调用逻辑构件ScoreManager下面的逻辑流sendEMail       *       * 需要为逻辑流准备好输入的参数,返回值是一个Object[]       *       * @return Object[]       * @throws Throwable       */      public Object[] callLogicBusiness() throws Throwable {          Object[] result = null ;          // 逻辑构件名称          String componentName = "com.primeton.samples.base.logicflow.ScoreManager" ;          // 逻辑流名称          String operationName = "sendEMail" ;          ILogicComponent logicComponent = LogicComponentFactory                  .create(componentName);          int size = 1 ;          // 逻辑流的输入参数          Object[] params = new Object[size];          params[ 0 ] = new Customer();          result = logicComponent.invoke(operationName, params);          // 逻辑流的返回值          return result;      }

说明

ILogicComponent的invoke方法中的第2个参数params数组需要和逻辑流中定义的输入参数个数和类型一致。

转载请注明原文地址: https://www.6miu.com/read-16873.html

最新回复(0)