SAP Clean Core下如何實現採購訂單相關的增強?
SAP傳統技術架構下,如果要實現特殊需求,可以在相關業務單據的創建事務代碼裏找到user-exit或者BAPI/Function Module, 通過在User-exit裏增加代碼或者在相關BAPI的import parameter裏傳入相關參數,以實現特殊業務需求。這在很多項目裏都是常見做法。
近些年SAP提出了Clean Core策略,也就是説摒棄之前一直在用的user-exit等傳統方式,通過調用預定義好的API來實現特殊需求,而儘量避免對SAP core代碼的改動。
在SAP clean core策略下,如果要在採購訂單創建或者修改的時候實現特殊業務需求,實現方式完全不同。本文以筆者自己的項目經歷,做一個簡要介紹。
首先找到採購訂單相關的event。進入如下的SAP API HUB界面,
https://api.sap.com/products/SAPS4HANA/events/events

在Event選顯卡里輸入Purchase order event,

點擊查詢,得到如下界面,

點擊‘Purchase Order Events’, 進入如下界面,

就能看到很多Event:
Created;
Changed;
Approved;
Approve Rejected;
Item Created;
Item Changed;
Item Deleted;
Item Blocked;
Item Unblocked.
2,然後我們根據實際業務需求判斷是在PO header還是PO item的Event里加入代碼實現特殊需求。這樣SAP S/4HANA裏面的代碼基本不會被改動,保持SAP出廠設置,卻能實現特殊的業務需求。後續在SAP系統版本升級的時候,這些增強可以以最小的代價保留並繼續支持業務需求。這就是所謂的SAP Clean Core的效果。
寫於2025-12-18.