1.概述
在實際業務環境中,某一個業務子產品往往需要重複執行,這就需要使用循環來完成。AEAI ESB在流程化的設計模式中也支援循環的使用,本文檔為讀者介紹如何使用分支、合并路由設計循環流程。
2.樣例
2.1.建立Http流程
2.2.整體流程圖
2.3.參數說明
2.4.元件說明
2.4.1.httpRequest
2.4.2.初始化内容
package com.aeai.demo.messageflows.simpleloop;
importcom.agileai.esb.core.AdapteException;
importcom.agileai.esb.component.flow.http.HttpRequest;
importcom.agileai.esb.component.transformer.JavaTransformer;
public classJavaConverter1 extends JavaTransformer{
public void handleRequest() throwsAdapteException{
try {
HttpRequest req =(HttpRequest) getMessageFlow().getRequest();
String _counter =req.getParam("counter");
int counter =Integer.parseInt(_counter);
getVariable("index").setValue(0); //初始值
getVariable("counter").setValue(counter); //循環數
} catch (Exception e) {
logger.error(e.getLocalizedMessage(),e);
throw newAdapteException(e.getLocalizedMessage(),e);
}
}
}
2.4.3.循環合并
2.4.4.循環内容
package com.aeai.demo.messageflows.simpleloop;
importcom.agileai.esb.core.AdapteException;
importcom.agileai.esb.component.transformer.JavaTransformer;
public classJavaConverter2 extends JavaTransformer{
public void handleRequest() throwsAdapteException{
try {
int index = (Integer)getVariable("index").getValue();
logger.info("循環第 " + (index + 1) + "次");
//循環++
getVariable("index").setValue(index+ 1);
} catch (Exception e) {
logger.error(e.getLocalizedMessage(),e);
throw new AdapteException(e.getLocalizedMessage(),e);
}
}
}
2.4.5.循環分支
2.4.6.HttpResponse
2.4.7.循環分支到循環合并連線
2.4.8.循環分支待HttpResponse連線
2.5.測試
AEAI ESB-基于ESB的循環及判斷處理控制文檔 下載下傳