日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP 取月度期初库存和月度期末库存(历史库存)

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP 取月度期初库存和月度期末库存(历史库存) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mard里記載的是當前庫存的數量,但是期間并不一定是當月。比如你物料4月一整月都沒有庫存數量變化(沒收沒發),那么5月初你看mard里的條目期間數還是4月而非5月。
當某個期間發生貨物移動的時候,系統在更新mard數據的之前(這個表是實時更新的),會檢查此筆業務過賬期間和mard里對應記錄的期間是否一致,也就是看這是不是本期間第一筆移動。如果是,copy表mard里對應記錄到mardh,然后把mard記錄改成當期(也可能是先刪后建),然后再作更新數量數據的操作。如果不是第一筆記錄,也就是mard期間和mseg期間一致,則不作copy記錄只更新mard數量。

這樣處理貌似減少了冗余數據,不過給編程取歷史庫存增加了很大的工作量,個人覺得不算明智之舉。
庫存方面的表
mbew? --當前庫存
mbewh? --歷史庫存

EBEWH? --銷售訂單庫存的評估:歷史

mard--查主庫存
mardh--主庫存歷史記錄
mslb--特殊庫存O
mkol--特殊庫存K/M
mska--特殊庫存E
msku--特殊庫存V/W
mcha
mchb?


有很多人在做庫存進銷存的時候,感覺期初庫存和期末庫存比較難搞定,感覺要去取貨物移動的數據來獲取期初庫存和期末庫存,其實不然,只要理解原理就可以快速取出期初庫存和期末庫存

庫存表:MARDH MARD MSKUH MSKU MSLBH MSLB MSKAH MSKA

下面以MARDH MARD為例,如果一個物料在2011年9月份做了一筆貨物移動,則會自動在MARDH中更新2011年8月份的期末庫存,假如在2011年9月份一直沒有做貨物移動,則不會更新MARDH中8月份的期末庫存

?

假如我想獲得2011年7月份的庫存,則需要先在MARH中查找7月份的庫存,找不到找8月份的庫存,找不到找9月份的庫存,以此類推,最后都找不到,則用MARD中的庫存

?

* 下面代碼為獲取8月份的期初庫存和8月份的期末庫存

?

PARAMETERS:
*?會計年度
??p_gjahr??LIKE?bkpf-gjahr?OBLIGATORY?DEFAULT?'2011',
*?期間
??p_monat??LIKE?bkpf-monat?OBLIGATORY?DEFAULT?'08'.

?

DATA:
??v_gjahr??LIKE?bkpf-gjahr,????"?上月期間年度
??v_monat??LIKE?bkpf-monat.???"?上月期間月份

?

*?獲取上月度年度和月份
??IF?p_monat?=?'01'.
????v_monat?=?'12'.
????v_gjahr?=?p_gjahr?-?1.
??ELSE.
????v_monat?=?p_monat?-?1.
????v_gjahr?=?p_gjahr.
??ENDIF.

?

??DATA:?BEGIN?OF?typ_mardh,
????????p_string(6)?TYPE?c.
??????????INCLUDE?STRUCTURE?mardh?.
??DATA:?END?OF?typ_mardh.
??DATA:?i_mardh?LIKE?TABLE?OF?typ_mardh?WITH?HEADER?LINE.?????"?期末數據
??DATA:?n_mardh?LIKE?TABLE?OF?typ_mardh?WITH?HEADER?LINE.?????"?當前庫存
??DATA:?m_mardh?LIKE?TABLE?OF?typ_mardh?WITH?HEADER?LINE.?????"?上月期初數據

?

*?查找庫存歷史表
??SELECT?? *

????FROM?mardh
????INTO?CORRESPONDING?FIELDS?OF?TABLE?m_mardh
???WHERE?(?lfgja?>?v_gjahr?OR?(?lfgja?=?v_gjahr?AND?lfmon?>=?v_monat?)?).

??LOOP?AT?m_mardh?.
????CONCATENATE?m_mardh-lfgja?m_mardh-lfmon?INTO?m_mardh-p_string?.
????MODIFY?m_mardh?.
????IF?m_mardh-p_string?>=?p_estring?.
??????MOVE-CORRESPONDING?m_mardh?TO?i_mardh.
??????APPEND?i_mardh?.
????ENDIF.
??ENDLOOP.

?

??SELECT?? *

????FROM?mard
????INTO?CORRESPONDING?FIELDS?OF?TABLE?n_mardh .

?

??LOOP?AT?n_mardh?.
????CONCATENATE?n_mardh-lfgja?n_mardh-lfmon?INTO?n_mardh-p_string?.
????MODIFY?n_mardh?.
????MOVE-CORRESPONDING?n_mardh?TO?m_mardh.
????APPEND?m_mardh?.
????MOVE-CORRESPONDING?n_mardh?TO?i_mardh.
????APPEND?i_mardh?.
??ENDLOOP.

?

* 期初庫存都在表M_MARDH

??SORT?m_mardh?BY?matnr?werks?lgort?lfgja?lfmon?.
??DELETE?ADJACENT?DUPLICATES?FROM?m_mardh?COMPARING?matnr?werks?lgort.

*?期末庫存都在表I_MARDH
??SORT?i_mardh?BY?matnr?werks?lgort?lfgja?lfmon?.
??DELETE?ADJACENT?DUPLICATES?FROM?i_mardh?COMPARING?matnr?werks?lgort.

?

下面在獲取數據的時候,直接可以READ TABLE ........??BINARY?SEARCH?.

?

?

?

?轉載地址:http://blog.csdn.net/lbxp521/article/month/2011/08


總結

以上是生活随笔為你收集整理的SAP 取月度期初库存和月度期末库存(历史库存)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。