IFS 後臺調用背景任務工作

IFS 後臺調用背景任務工作可由Transaction_SYS.Deferred_Call實現,它是IFS對於處理時間較長的過程通過前臺將任務添加到延遲調用的JOB隊列中,這種處理任務列在"概要/背景工作"中

PROCEDURE Create_Report_Line( report_id_        IN VARCHAR2)
IS
   job_id_                NUMBER;
   online_flag_           VARCHAR2(5);
   CURSOR cs_chk_job IS
          SELECT  id        job_id
          FROM    transaction_sys_local_tab m
          WHERE   m.procedure_name = 'Dj_Purch_Inv_Sales_Line_API.Report_Job'
          AND     m.state IN ('Posted','Executing')
          AND     m.arguments_string = report_id_;
BEGIN
   General_SYS.Init_Method(lu_name_, 'DJ_PURCH_INV_SALES_LINE_API', 'Create_Report_Line');
   OPEN  cs_chk_job;
   FETCH cs_chk_job INTO job_id_;
   CLOSE cs_chk_job;
   IF job_id_ IS NOT NULL THEN
      Error_Sys.Record_General(lu_name_, 'DJ_SCMJOBEXEC: Report Id :P1 Exits Job Id :P2 Dj Purch Inv Sales !',
                                         report_id_, job_id_ );
   END IF;
   --
   online_flag_ := Dj_Purch_Inv_Sales_Api.Get_Online_Flag(report_id_);
   IF nvl(online_flag_,'FALSE') = 'TRUE' THEN
       Dj_Purch_Inv_Sales_Line_Api.Report_Job(report_id_);
   ELSE
       Transaction_SYS.Deferred_Call('Dj_Purch_Inv_Sales_Line_Api.Report_Job', report_id_,
                   Language_SYS.Translate_Constant(lu_name_, 'DJ_BATCHSCM: Dj Purch Inv Sales') );
   END IF;

END Create_Report_Line;


另外也可以利用IFS的JOB機制也,例如   Batch_SYS.New_Job(job_id_, 'Reserve_Customer_Order_API.Make_Pick_Plan__(''''' || attr_ || ''''')',
                     'WEEKLY ON ' || on_days_ || ' AT ' || at_time_);可以動態創建JOB,指定執行時間,系統有不少這樣的例子;

發佈了81 篇原創文章 · 獲贊 0 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章