點擊藍字 關注我們
一
前言
因為標準事務代碼SM36調度的后臺作業功能相對比較簡單.項目中需要針對后臺作業做很多特殊的處理,這些處理有些可以通過標準功能實現, 有些無法通過標準功能實現.
為了簡化后臺作業的定義及豐富后臺作業的控制,開發了這個后臺作業二次調度程序
ZBC_IF_JOB_SCHEDULE
本文給出了增強后臺作業調度的幾個配置場景及示例.
詳細參數設置無峰,公眾號:ABAP 技巧與實戰SAP工具箱 增強后臺作業調度程序詳解(一)
二
場景及示例
列舉出了如下場景
一個作業定義多個步驟
帶有通配符號的變式在一個作業中
定義程序的并發作業
定義多變式的并發
按天定義的作業
控制指定時間段不執行作業
01
一個作業定義多個步驟
示例場景是一個主數據下傳場景,需要優先下傳主數據部分,然后下傳商品的不同視圖信息, 最后下傳各種列表.
這些JOB編號有一個共同的作業名稱ZIF_MD205.有相同的作業間隔期間.? 同時設置了步驟順序.
個別步驟之間有等待時間,通過程序 ZBC_JOB_WAIT 實現等待.
在SM37中查看作業細節時可以看到這些等待步驟.
02
帶有通配符號的變式在一個作業中
變式中維護通配符號,并且通過變式處理方式在一個作業的實現多個步驟.
示例是處理系統后臺開票程序.開票程序中只能限定一個銷售組織. 所以要為每一個銷售組織都創建一個變式,這些變式都以VF06開頭.
后臺調度配置表中變式維護VF06* .同時定義變式處理方式A . 這樣每個VF06*開頭的變式都會創建一個步驟.
變式允許的輸入方式
程序的多個變式
SM37中看到的作業詳情
03
定義程序的并發作業
示例是交貨單過賬程序.
在一個運行周期無法處理完所有需要自動過賬的交貨單.
所以為該JOB編號定義了并發處理. 并發10個作業處理. 同時傳遞選擇參數S_VBELN到并發調度程序ZBC_MULTI_JOB_ALL.
SM37中可以看到具體的并發作業. 這些并發作業都是由作業ZA_DN_POST_MULTI再次調度而來 并發作業命名用原程序_<時間>_<尾號開始>_<尾號截至>.
因為定義了10個并發 所以依次處理 00_09? 10_19 .....90_99 的尾號.
04
定義多變式的并發
程序ZA_DN_POST創建了多個以BGRUN開頭的變式.作業中定義變式 BGRUN* 變式處理方式B(多個作業執行). 這樣也可以實現作業的并發執行. 并發通過變式中限定的條件實現.
SM37中可以看到最終生成的三個作業 作業名 = <原作業名>_<變式名>
相比定義程序的并發作業. 這種方式需要創建若干個變式,好處是可以隨意區分間隔.
05
按天定義的作業
給出作業周期為86400秒,同時限定作業執行的時間范圍. 計算作業的執行會在間隔期間修正. 避免作業因為延遲的原因. 導致某天沒有執行.
06
指定時間段不執行作業
傳輸請求時,如果傳輸的請求包含重要信息的改變,比如表結構調整. 此時如果后臺還在執行創建單據的動作. 則后臺作業會大量報錯 "版本不一致",該錯誤在ST22中可以查看到.
為了避免這種報錯. 給出一個空擋期不執行后臺作業, 每天在此空擋期才傳輸請求.
下圖中給出了11:30 - 12:00 的空檔期. 在此期間將沒有作業執行,可以用來傳輸請求.
三
總結
ZBC_IF_JOB_SCHEDULE用于增強調度后臺作業. 在標準調度基礎上添加了很多實用功能. 管理人員可以通過SE16N維護表ZTIF002BJ,實現批量維護,調整后臺作業.
在項目實踐中,極大簡化了的作業的定義,調整過程.并附加了很多實用功能.用于定義更復雜的作業.
關于新版的下載: 舊版已經可以完成大部分功能了.如需新版,可以打賞后文章向作者索取.
THE
END