[ChatGPT 勘誤]:SAP ABAP 系統裏數據庫表 dlv_systc 的用途

SAP ABAP 系統裏數據庫表 dlv_systc 的用途?

ChatGPT 的回覆:

在 SAP ABAP 系統中,數據庫表 dlv_systc 是用於存儲交貨單系統條件檢查的相關數據的。交貨單是指在銷售和分銷過程中,將產品或服務從供應商轉移到客戶的文件。在交貨單創建和處理過程中,系統需要進行一系列的條件檢查,以確保交貨單數據的正確性和完整性。

dlv_systc 表包含了用於交貨單系統條件檢查的各種規則和設置。它存儲了與條件檢查相關的信息,如檢查的編號、檢查的名稱、檢查的類型、檢查的結果等。這些數據可以用於在交貨單創建和處理過程中進行自動化的條件檢查,並在需要時自動觸發相關的操作和通知。

由於 dlv_systc 表存儲了涉及到交貨單創建和處理的重要信息,因此只有經過授權的用戶才能對其進行更改和維護。開發人員可以使用 ABAP 語言訪問和操作該表,以滿足特定的業務需求。

這個回覆不正確。筆者猜測 ChatGPT 將縮寫 dlv 理解成了 SAP S/4HANA(SCM) 供應鏈管理模塊裏的交貨單 - Delivery Note?

實際上,dlv_systc 這張表,描述信息 System Change Option for Software Components,存儲的是每個 ABAP software component 的可修改性(changeability):

這裏的 DLVUNIT,發佈單元,指的就是一個個的 ABAP Software Component.

這張表裏的內容如下:

ABAP 裏的對象(比如 ABAP 類,ABAP Function Module,ABAP DDIC 對象) 都存儲在 ABAP 開發包(package) 裏。

雙擊這些 ABAP 開發包,就能查詢到期所屬的 Software Component 了:

就能看到其所屬的 Software component 了:


這個表被 ABAP Function Module TR_GET_DLVUNIT_CHANGEABILITY 使用。


一個 ABAP Software Component 的可編輯性有下列 4 種情況,通過 Domain DLV_CHANGE 控制:

  • F:可以被修改
  • R:可以在滿足限制條件下被修改
  • E:不能被修改,可以被增強
  • N:不能被修改,不能被增強

在 cl_r3standard_persistence 的 obj_is_enhanceable 方法裏,有些 ABAP 系統核心的 Software Component 被硬編碼成不可修改,以避免 ABAP 開發人員低質量的增強影響整個系統的運行,如下圖所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章