ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SAP歷史庫存計算思路(sap history stock calculate)

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

原创 Linux操作系统 作者:negat_wu 时间:2010-03-10 11:26:23 0 删除 编辑

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沒有異動就不結月末庫存,現在這樣看,還是為計算歷史庫存埋下伏筆。

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

若和TIPTOP的IMK一樣,③和④還是要抓一次異動。

 

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

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

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

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

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

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

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

请登录后发表评论 登录
全部评论

注册时间:2009-12-10

  • 博文量
    4
  • 访问量
    16509