SAP进销存难点分析及对策
1、基本需求:
樣式:業務部門提出如上表格式進銷存需求,并且金額要和總賬中存貨科目保持一致,如果要實現上表格式進校存,可以通過SAP標準程序(MC.9、MB51、MB5B)加工繁瑣而成。現分析一下SAP標準程序邏輯優缺點及自開發程序實現方案。
2、SAP標準程序邏輯及優缺點分析
2.1 ?MC.9取數邏輯
MC.9取數邏輯基于S031和S032兩個信息結構可以取的某個月底庫存數量金庫存金額,其中S032表記錄當前庫存數量及金額,S031表記錄過去某個時間段的入庫數量、金額及出庫數量及金額,然后采用倒推方式計算出過去某個時點(按月)的庫存數量及金額。
優點:如果查詢數據量較小時,數據提取效率快且準確;
缺點:由于采用倒推方式,一旦查詢數據量較大,查詢時段如果有出入庫操作,數據可能不準;
2.2 ?MB51取數邏輯
? MB51查詢某個時間段內出入庫記錄,基于MKPF和MSEG進行取數,跟蹤MB51程序,主要邏輯如下:
? select (g_t_fields)
? into corresponding fields of table itab
? from mkpf inner join mseg
? on??? mkpf~mandt = mseg~mandt
??? and mkpf~mblnr = mseg~mblnr
??? and mkpf~mjahr = mseg~mjahr
? for all entries in matnr
? where matnr = matnr-low
??? and MKPF~BUDAT in BUDAT
??? and MSEG~BWART in BWART
??? and MSEG~CHARG in CHARG
??? and MSEG~KUNNR in KUNNR
??? and MSEG~LGORT in LGORT
??? and MSEG~LIFNR in LIFNR
??? and MSEG~SOBKZ in SOBKZ
??? and MKPF~USNAM in USNAM
??? and MKPF~VGART in VGART
and MSEG~WERKS in WERKS
and MKPF~XBLNR in XBLNR
%_HINTS
ORACLE '&SUBSTITUTE VALUES&' .
優點:能夠準確查詢某個時間段內出、入庫記錄;
缺點:MB51不能記錄價格修改、發票校驗差異對存貨價值影響,不能保持和總賬一致;
2.2 ?MB5B取數邏輯
MB5B取數主要基于MARD、MBEW、BSIM、MKPF、MSEG這五張數據表,與MC.9類似,采用倒推邏輯并依據MARD、MKPF、MSEG計算某個時間段期初數量、借方數量、貸方數量、期末數量,依據MBEW、BSIM計算某個時間段期初價值、借方價值、貸方價值、期末價值。由于MKPF、MSEG依據MB51邏輯,不能記錄價格修改、發票校驗差異對存貨價值影響,而BSIM只記錄有價值更新的出入庫記錄,對免費入庫類(只有數量更新無價值更新)不能記錄,二者各有利弊。數量取數邏輯如下:
價值取數邏輯如下:
優點:既考慮數量、又考慮價值,如果查詢數據量較少,數據比較全面且準確;
缺點:①查詢速度慢;②借、貸方不能反映出、入庫類型;③采用倒推方式,查詢大數據量時,數據可能不準確;
3、自開發程序設計邏輯:
SAP標準程序MC.9、MB5B采用倒推邏輯,查詢大數據量可能導致數據不準確,由于本集團工廠有60個左右,查詢數據量大不可避免,鑒于以上原因不采用倒推邏輯。大概設計思路:從MBEWH、S031表直接取得期初庫存數量及價值,然后從MKPF、MSEG、BSIM取得期間出入庫數量及價值,依據期初數量、價值及當期出入庫數量、價值計算期末數量及價值。
3.1?期初數量、價值計算
首先,介紹MBEWH表更新邏輯:如果第N月有一筆出入庫或價值更新操作,系統會將N-1月月底數量及價值更新至MBEWH表。如下表(當前月份為2013-02)
假定要查2012-12月進銷存,首先從MBEWH表取年度小于等于2012所有數據,然后刪除年度等于2012、月份大于等于12數據。經過數據處理后,依據物料、評估范圍取得年度+月份最大的那條記錄(如:3100101001取到2012-09那條數據)。
其次,計算取得數據下個月份如:3100101001取到2012-09這條數據下月為2012-10),并和查詢月份(2012-12)比較,如果二者不相等,從S031表取該時間段內(2012-10)出入庫記錄。將MBEWH、S031數據合并即為該物料2012-12期初數據。(為什么這樣計算,仔細想想MBEWH更新邏輯)
3.2?期間入庫、出庫數據計算
然后,依據MKPF、MSEG、BSIM提取2012-12該月的出入庫記錄及價值更新記錄。根據移動類型判斷該記錄屬于入庫或出庫。
期末數據可以依據期初數據和當期出入庫計算。這樣設計采用正推邏輯,避免查詢時有出入庫操作對查詢結果的影響;此程序既考慮了庫存數量更新,又考慮了價值更新,保證了數據的全面性;這樣就可保證進銷存和總賬一致,滿足業務需求。
總結
以上是生活随笔為你收集整理的SAP进销存难点分析及对策的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小暑7/7食谱
- 下一篇: BAPI_ACC_DOCUMENT_PO