在一個功能需要長時間執行,執行時一直占用頁面導致無法繼續操作
就可以使用Batch Job讓功能背景執行
此章節紀錄撰寫擁有Batch 選項的Class
新增三個Class 來製作擁有Batch 選項的Class
1- Contract(參數的結構)
此Class 主要決定執行功能的參數結構與型別
[DataContractAttribute, SysOperationContractProcessingAttribute(classstr(SysOperationAutomaticUIBuilder))]
class ContractClass
{
//data結構
[DataMemberAttribute("FieldName")]
public int parmint(int _int = int)
{
int = _int;
return int;
}
}
2- Service(主要執行的程式)
此Class 主要決定執行功能的邏輯內容並取用Contract Class內的參數
class ClassService
{
public void processReconcile(ContractClass _dataContract)
{
ttsbegin;
int i = _dataContract.parmint();
this.excuteReconcile();
ttscommit;
}
private void excuteReconcile()
{//Your Code}
}
3- Controller(呼叫的程式)
此Class 主要為呼叫Service的程式 class ClassController extends sysOperationServiceController
{
public static ClassController construct()
{
return new ClassController();
}
public void new()
{
super(classStr( ClassService),methodStr( ClassService,processReconcile));
} public static void main(Args _args)
{
ClassController controller;
controller = ClassController::construct();
controller.startOperation();
}
}
4. 最後在MenuItem上面指定Object 為ClassController
且指定Parameters 為ClassService.processReconcile
就大功告成囉~~