SAP工具箱 增強後臺作業排程程式詳解(二)

前言

因為標準事務程式碼SM36排程的後臺作業功能相對比較簡單。專案中需要針對後臺作業做很多特殊的處理,這些處理有些可以透過標準功能實現, 有些無法透過標準功能實現。

為了簡化後臺作業的定義及豐富後臺作業的控制,開發了這個後臺作業二次排程程式

ZBC_IF_JOB_SCHEDULE

本文給出了增強後臺作業排程的幾個配置場景及示例.

詳細引數設定

無峰,公眾號:ABAP 技巧與實戰SAP工具箱 增強後臺作業排程程式詳解(一)

場景及示例

列舉出瞭如下場景

一個作業定義多個步驟

帶有萬用字元號的變式在一個作業中

定義程式的併發作業

定義多變式的併發

按天定義的作業

控制指定時間段不執行作業

01

一個作業定義多個步驟

示例場景是一個主資料下傳場景,需要優先下傳主資料部分,然後下傳商品的不同檢視資訊, 最後下傳各種列表。

這些JOB編號有一個共同的作業名稱ZIF_MD205。有相同的作業間隔期間。  同時設定了步驟順序。

個別步驟之間有等待時間,透過程式 ZBC_JOB_WAIT 實現等待。

在SM37中檢視作業細節時可以看到這些等待步驟。

SAP工具箱 增強後臺作業排程程式詳解(二)

02

帶有萬用字元號的變式在一個作業中

變式中維護萬用字元號,並且透過變式處理方式在一個作業的實現多個步驟。

示例是處理系統後臺開票程式。開票程式中只能限定一個銷售組織。 所以要為每一個銷售組織都建立一個變式,這些變式都以VF06開頭。

後臺排程配置表中變式維護VF06* 。同時定義變式處理方式A 。 這樣每個VF06*開頭的變式都會建立一個步驟。

變式允許的輸入方式

SAP工具箱 增強後臺作業排程程式詳解(二)

程式的多個變式

SAP工具箱 增強後臺作業排程程式詳解(二)

SM37中看到的作業詳情

SAP工具箱 增強後臺作業排程程式詳解(二)

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中可以看到最終生成的三個作業 作業名 = _

相比定義程式的併發作業。 這種方式需要建立若干個變式,好處是可以隨意區分間隔。

SAP工具箱 增強後臺作業排程程式詳解(二)

05

按天定義的作業

給出作業週期為86400秒,同時限定作業執行的時間範圍。 計算作業的執行會在間隔期間修正。 避免作業因為延遲的原因。 導致某天沒有執行。

06

指定時間段不執行作業

傳輸請求時,如果傳輸的請求包含重要資訊的改變,比如表結構調整。 此時如果後臺還在執行建立單據的動作。 則後臺作業會大量報錯 “版本不一致”,該錯誤在ST22中可以檢視到。

為了避免這種報錯。 給出一個空擋期不執行後臺作業, 每天在此空擋期才傳輸請求。

下圖中給出了11:30 - 12:00 的空檔期。 在此期間將沒有作業執行,可以用來傳輸請求。

總結

ZBC_IF_JOB_SCHEDULE用於增強排程後臺作業。 在標準排程基礎上添加了很多實用功能。 管理人員可以透過SE16N維護表ZTIF002BJ,實現批次維護,調整後臺作業。

在專案實踐中,極大簡化了的作業的定義,調整過程。並附加了很多實用功能。用於定義更復雜的作業。

關於新版的下載: 舊版已經可以完成大部分功能了。如需新版,可以打賞後文章向作者索取。

THE

END

約定

如果你對這篇文章感興趣,請幫忙點贊,在看,分享。

如果你真的喜歡這篇文章,請記得回來打個賞,作為支援我繼續下去的動力,這是一個正反饋過程. 越多的人打賞,作者越有動力分享,讀者就能享受更多的福利.畢竟打賞的金額富不了我,窮不了你,卻能支援這個公眾號長久發文.

公眾號主群加入受限, 請掃碼加入副群后,向管理員申請加入主群