你們若是使用我github上的這段代碼建立S/4HANA的生產訂單時,必定會發現,我在代碼裏並無硬編碼來指定生產訂單的ID,然而運行時會發現我在系統裏配置的這個2800被自動使用了,這是怎麼作到的呢?git
https://github.com/i042416/Kn...github
經過閱讀SAP S/4HANA有關生產訂單的標準代碼發現,生產訂單使用的plant工廠數據來自表VBAP的字段WERKS。函數
FV45EFMA_編碼
VBAP正是銷售訂單的行項目表。spa
問題就轉化爲這個2800和銷售訂單行項目的關係。事務
這個2800來自結構體KUWEV的字段DWERK Delivering Plant:Ship-to Party's View of the Customer Master Recordip
FV45PF0K_KOMKG_KOMPG_FUELLEN,第45行。rem
第32行重要的函數 RV_CUSTOMER_MATERIAL_READget
DA_KUNNR:這個字段存放的是我代碼裏硬編碼的這個客戶ID:it
VBAK-VKORG:VBAK-VKORG
VTWEG: distribution channel
SPART: division
而後經過函數LOCATION_ISS_PLANT_DETERMINE決定出plant:
從這裏能看出這個plant來自客戶主數據的ship to 視圖:
kuwev KUWEV-DWERK
kuwev的值從哪裏來?
從KNVV的字段VWERK裏來:
knvv是客戶主數據的Sales data存儲表:
如何查看S/4HANA裏的客戶主數據的Sales相關數據?
事務碼BP:
根據客戶ID搜索以後,在明細頁面裏將Display in BP role的下拉菜單宣稱FLCU01 Customer:
點這個Sales and distribution按鈕:
2800就維護在這裏的:
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":