Create batch job using SysOperationFramework

2021/02/22閱讀時間約 3 分鐘
在一個功能需要長時間執行,執行時一直占用頁面導致無法繼續操作
就可以使用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
就大功告成囉~~
Ruby
Ruby
留言0
查看全部
發表第一個留言支持創作者!