SAP 常用業務數據表設計
表的要求
表中使用的字段請盡量參照各模塊的SAP字段標準使用習慣;
例:"ZXSLRZX銷售組織對應的利潤中心"中的銷售組織應該使用VKORG、利潤中心應該使用PRCTR。
根據表的用途,需確定是否屬於配置目的、還是業務目的。
配置表的建議:
需要加入MANDT字段
例: "ZQJQD缺件清單"就沒有MANDT字段
需提供相應的維護視圖;
例:如ZCHECK_MM01工廠和利潤中心的對應
為保證DEV/QAS/PRD系統的一致性,不應該對配置表提供批量維護的功能,而應該走Request傳輸流程;
例: "ZMM_GSJJGLJ公司間物料轉賣價格邏輯"就是一個失敗的開發案例。
若有必要,可激活日誌功能,便於對配置的更改查詢;
在定義表的時候,請不要偷懶使用"預定義數據類型"這種方式;
業務表的建議:
若無特殊目的,也請加入MANDT字段
在定義關鍵字段的時候,請務必慎重,在理解業務需求的前提下,合理設置;(數據存在後,關鍵自動的變更存在較大風險)
為減少系統存儲空間,一般不需要激活更改日誌;
在定義表的時候,請不要偷懶使用"預定義數據類型"這種方式;
程序的要求
程序的選擇屏幕,如果需要提供缺省值,請盡量通過Memory ID的方式實現,不要使用硬代碼。
例:"ZPOOIS采購訂單信息報表"中的公司代碼(BUK)、工廠(WRK)。
程序的選擇屏幕上的選擇文本,如果屬於標準字段,若無特殊需求,請盡量使用Dictionary,避免造成在不同環境中顯示錯誤的情況。
例:ZPOOIS的選擇屏幕在英文環境下完全錯誤,而ZJSJSNEW就相對正確。
程序變式(選擇變式、輸出變式)的靈活使用
ALV報表,請提供變式功能(IS_VARIANT ,I_SAVE等變量);
例: ZPOOIS的輸出格式就無法保存 。
二次開發程序中定義的自定義表,需考慮相應數據的刪除及歸檔策略,並應該對數據量的大小有合理的估計。
金額,請考慮幣別;數量,請考慮計量單位;
? 公司代碼與工廠的關系
一個工廠只能屬於一個公司代碼;
例:3110起重機工廠只能屬於3011公司代碼。
表:T001K,其中的BWKEY就是指工廠,完全等同於T001W的WERKS;
? 公司代碼與利潤中心的關系
SAP是允許一個利潤中心屬於多個公司代碼的,但是,我們實際業務上一個利潤中心通常只應該對應一個公司代碼(有部分特例!)
一個公司代碼下,可以存在多個利潤中心;
例:在2001公司代碼下,存在LR2180/LR2170/LR2160等多個利潤中心;
表:CEPC_BUKRS分配利潤中心至公司代碼
? 工廠與利潤中心的關系
工廠跟利潤中心按照SAP的本身邏輯是沒有關系的;
但為了保證業務的正確性,我們創建了表ZCHECK_MM01(工廠和利潤中心的對應)來進行檢查(如在物料主數據創建的時候進行檢查)。
? 工廠與庫存地點的關系
庫存地點必須跟工廠一起才有意義,牢記"工廠+庫存地點"!
在不同的工廠下雖然可以存在同樣的庫存地點代碼,但本質上是有區別的;
T001L,工廠+庫存地點
? WM倉庫與庫存地點的關系
一個倉庫可以包括多個"工廠+庫存地點",一個"工廠+庫存地點"只能屬於一個倉庫;
T320,工廠+庫存地點=>倉庫號
? 銷售組織與公司代碼的關系
一個銷售組織只能屬於一個公司代碼;
例:3011寧鄉起重機銷售組織只能屬於3011公司代碼。
表: TVKO銷售組織;
? 銷售組織與工廠的關系
銷售組織與工廠是多對多的關系,但是該關系僅說明了銷售組織可以"銷售"哪些工廠的,並不能表示兩者之間有財務上的所屬關系;
表: TVKWZ 每個銷售機構允許的工廠數
? 采購組織與公司代碼的關系
采購組織與公司代碼可以不存在分配關系,我們除極少的兩三家公司外,基本上沒有進行分配(如果進行分配的話,則一個采購組織只能分配給一個公司代碼)。
表:T024E 采購組織
? 采購組織與工廠的關系
采購組織與工廠是多對多的關系(但是如果采購組織已經分配給公司代碼後,則只能分配該公司代碼下的工廠給采購組織)
T024W工廠的有效采購組織
? 不能根據字段在前臺所屬的物料視圖來確定相應的數據表,一定要使用F1->技術信息;
例:采購視圖的"采購價值代碼"就是屬於基本數據(MARA-EKWSL)。
? 物料主數據的關鍵表:
MARA,基本視圖
MARC,工廠
MARD,工廠/庫存地點
MBEW,財務數據,其中的MBEW-BWKEY就是指工廠MARC-WERKS
MVKE,銷售組織/分銷渠道
MLGN,倉庫
MLGT,倉庫/存儲類型
MSTA,物料主數據維護狀態
? BOM主數據
BOM用途:1表示生產
BOM類別:M表示物料BOM
MAST,BOM 鏈接物料
STKO,BOM表頭
STPO,BOM 項目
STZU,永久 BOM 數據
STAS,BOMs - 項選擇
? 工藝路線主數據
任務清單類型:N表示工藝路線、Q表示檢驗計劃
MAPL,分配任務清單到物料
PLKO,任務清單 - 表頭
PLFL,任務清單 - 順序
PLPO,任務清單 - 工序/作業
PLAS,任務清單 - 工序/作業選擇
PLMZ,組件分配
CRHD,工作中心
? 獨立需求
PBIM,物料的獨立需求
PBED,獨立需求數據
PBID,獨立需求數據(MRP區域)
PBHI ,獨立需求歷史記錄
? 計劃訂單
PLAF,計劃訂單,需註意計劃工廠PLWRK、生產工廠PWWRK的區別;
RESB,預留表(通過PLAF-RSNUM與RESB-RSNUM關聯)
? 生產訂單
訂單類別: AUTYP,10表示生產訂單
AUFK,訂單主數據
其中WERKS 工廠是指生產訂單的生產工廠、 LOEKZ刪除標記是對刪除狀態的生產訂單生效(其他狀態需通過JEST)進行讀取。
AFKO,訂單表頭數據 PP 訂單
其中PLNBEZ 、STLBEZ並不一定是訂單中產出物料(真正的物料應該是AFPO-MATNR)。
AFPO,訂單項
雖然關鍵字中存在POSNR,但實際上我們不存在co-product業務,所以POSNR都為0001.
AFVC,訂單的工序(通過AFKO- AUFPL進行關聯)
AFVV,工序中數量/日期/值的DB結構
AFFL,加工單順序
JEST,訂單狀態(通過AUFK-OBJNR關聯)
其中STAT的具體含義通過TJ02T對應,註意當INACT=X時,表示該狀態不存在。
RESB,預留表(通過AFKO-RSNUM與RESB-RSNUM關聯)
? 報工/入庫/發料
AFRU,訂單確認(AFRU-AUFNR為訂單號)
AFFW,COGI錯誤(AFFW-AUFNR為訂單號)
由於我們沒有激活COGI更改歷史,所以COGI的更改在AFFWPRO中是沒有記錄的,若有必要,可通過自定義備份表ZAFFWH進行查看。
AUFM,訂單物料移動數據(AUFM-AUFNR為訂單號)
該表的數據更新需依賴於PP的相關配置。此外,如果需要得到某一預留的累計發料數量,可直接使用RESB-ENMNG;如果需要得到某一訂單的累計入庫數量,可直接使用AFPO-WEMNG。均不需要對物料移動數據進行累加。
? 供應商主數據
LFA1,集團數據
ADRC,地址信息
LFB1,公司代碼數據
LFM1,采購組織數據
? 計劃訂單
PLAF,計劃訂單;
? 采購合同
憑證類別(EKKO-BSTYP)等於K(合同)
EKKO,采購憑證擡頭
EKPO,采購憑證項目
? 采購信息記錄
信息記錄類別(EINE-ESOKZ):0(標準)、 2(寄售)、3(分包合同)
EINA ,采購信息記錄 - 一般數據
EINE ,采購信息記錄 - 采購組織數據
? 采購申請
EBAN,采購申請
? 采購訂單
憑證類別(EKKO-BSTYP)等於F(采購訂單)
關鍵表:
EKKO,采購憑證擡頭
EKPO,采購憑證項目
EKET,計劃協議計劃行
EKKN,采購憑證中的帳戶設置
? 采購收貨及發票校驗
EKBE,采購憑證歷史
如果需要得到某一采購訂單行項目的累計入庫數量,可直接使用EKET-WEMNG,不需要對物料移動數據進行累加。 (雖然SAP是允許同一采購訂單行項目是允許多個交貨計劃(EKET),但我們實際上業務中只允許一個交貨計劃,很多開發和考核都是基於此)
RBKP,憑證表頭:發票收據
RSEG,憑證項目:收款發票
通過發票憑證讀取會計憑證建議使用函數AC_DOCUMENT_RECORD。
? 倉位主數據
倉位必須跟倉庫號、倉儲類型一起才有意義,牢記"倉庫號+倉儲類型+倉位"!
關鍵表:
LAGP,倉位
? 庫存數據
IM庫存數據(註意使用待H的數據):
MARD,物料的倉儲位置數據
MSLB,供應商特殊庫存(o)
MKOL,供應商的特殊庫存(k)
MSKA,銷售訂單庫存
MCH1/MCHB,批次庫存
? WM庫存數據:
LQUA,份(quants錯誤翻譯為數量)
? 物料移動數據
關鍵表:
MKPF,擡頭:物料憑證
MSEG,憑證段:物料
不是所有的物料移動數據都需要從這物料移動表中進行讀取。
生產訂單相關 AUFM,采購訂單相關 EKBE,銷售相關 VBFA。
? 移動類型
借貸標示:MSEG-SHKZG,S表示增加庫存、H表示減少庫存
關鍵表:
T156*,移動類型
T030,移動類型科目自動記賬
? WM的數據
關鍵表:
LTBK,轉儲請求擡頭
LTBP,轉儲請求項目
LTAK,WM轉儲單擡頭
LTAP,轉儲單項目
? 客戶主數據
KNA1, 基礎數據
KNB1,公司代碼
KNVV,銷售組織
ADRC,地址
? 銷售價格
根據條件類型(如PR01)查找存儲順序(如PR02),得到表(如A305等A*表)
KONP,條件記錄號關聯
? 銷售合同(銷售意向)
憑證類別G(VBAK-VBTYP)
VBAK
VBAP
? 銷售訂單
VBAK: 銷售憑證 : 擡頭數據
VBAP: 銷售憑證 : 項目數據
VBEP: 銷售憑證 : 計劃行數據
VBKD: 銷售憑證 : 業務數據
VBPA: 銷售憑證 : 合作夥伴
? 交貨單
LIKP
LIPS
? 發票憑證
VBRK
VBRP
? 銷售憑證流、憑證狀態
VBFA
VBUK
VBUP
? 會計
? 會計科目主數據
SKA1,科目表
SKB1,公司代碼
SKAT,科目描述
? 成本要素
CSKB,成本要素
? 記賬期間
T001B
財務供應商、財務客戶(同後勤模塊,維護事務代碼FK01,只有公司代碼數據)
? 總賬
BKPF/BSEG
FAGLFLEXT
BSAS/BSIS
GLFUNCT,功能範圍
? AR/AP
BSAD/BSID
BSAK/BSIK
? AM
ANLA
? CO
CSKS,成本中心
COEP
COSS(計劃/實際,通過WRTTP區分,期間通過字段區分,如WTG004)
COSP
? CO-ML
CKMLHD
CKMLCR
CKMLPR
COPA
CE*,如CE18000,8000指使用的經營範圍
CO與FI的區別及數據
SAP增強技術
用戶出口(USER EXIT)
增強(ENHANCEMENT)
? SMOD
? CMOD
BADI
? SE18
? SE19
Enhancement Spot
? ECC6.0後
標準程序的修改(以CO02為例)
? SE95查看
SAP 常用業務數據表設計