SAP歷史庫存計算思路(sap history stock calculate)

SAP對絕大部分庫存table都有建立相應的歷史記錄table,用來記錄每個月月末的歷史庫存,其更新規則如下:

次月第一筆異動時,會向歷史記錄table中寫入異動前庫存的數量狀態,以及上月的年月信息。

需要注意的是:

1,MARD為例,料號100-100第一次寫入時,會自動往MARDH寫入一筆數量為0,年月為當前物料帳期的前一期。

2,如果本月(M)內都無異動,則上個月的月末庫存是不會結出來,因為月末庫存=當前庫存,直至后續第N月異動時,會結出N-1月的月末庫存。

  則從MàN-1月的庫存都是相同的,都為N-1的月末庫存,當然如果一直遞歸到當前月都沒有,則MàN-1的異動都為當前系統的實時庫存。

 

計算歷史庫存,無非是用歷史庫存針對異動進行加減,所以根據如上規則,我們可以整理出四種情況出來

①有月初歷史庫存,無月末歷史庫存

②有月初歷史庫存,有月末歷史庫存

③無月初歷史庫存,無月末歷史庫存

④無月初歷史庫存,有月末歷史庫存

 

根據注意項2的邏輯看:

狀況①和狀況②可以合并

無月末庫存可以用遞歸方式抓取到月末庫存。

然后比較查詢日期距月初月末的天數,如果距月初近,則用月初庫存為起點,計算期間異動。

反之,則以月末算(至月末天數需要用查詢日+1來計算)。

 

狀況③和狀況④亦可以合并。

因為無月初庫存(即上月月末庫存),說明此月內無異動,抓月末庫存即可。

如果無月末庫存,則用遞歸的方式查找即可。

 

之前不太理解,為什么SAP沒有異動就不結月末庫存,現在這樣看,還是為計算歷史庫存埋下伏筆。

起碼以狀況③和狀況④來看,計算起來會比較簡單。

若和TIPTOPIMK一樣,③和④還是要抓一次異動。

 

最后附注一點在DEV的小發現。

DEV2182的帳期還在200903,如果這個時候作一筆料件異動,他更新的可不是2010/02的歷史庫存。

他會結出一筆2009/02的歷史庫存,同時寫入一筆2009/03的歷史庫存。

如果同料號再作異動,SAP修改當前庫存的同時,也會修改2009/03的歷史庫存。

所以并不是歷史庫存寫入之后就不會變動,這個應該是配合SAP物料帳的開關所需要。

這個并不影響計算歷史庫存,所以不再贅述。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13325851/viewspace-629083/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13325851/viewspace-629083/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值