閱讀原文
在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數組需要和邏輯流中定義的輸入參數個數和類型一致。