2021-02-22|閱讀時間 ‧ 約 4 分鐘

Create batch job using SysOperationFramework

在一個功能需要長時間執行,執行時一直占用頁面導致無法繼續操作 就可以使用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
就大功告成囉~~
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.