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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SAP ABAP MARD和MARDH计算逻辑

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP ABAP MARD和MARDH计算逻辑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MARD里記載的是當前庫存的數量,但是期間并不一定是當月。比如你物料4月一整月都沒有庫存數量變化(沒收也沒發),那么5月初你看MARD表里的條目期間數還是4月而非5月。

當某個期間發生貨物移動的時候,系統在更新MARD數據的之前(這個表是實時更新的),會檢查此筆業務過賬期間和MARD里對應記錄的期間是否一致,也就是看這是不是本期間第一筆移動。如果是,copy表MARD里對應記錄到MARDH,然后把MARD記錄改成當期(也可能是先刪后建),然后再作更新數量數據的操作。如果不是第一筆記錄,也就是MARD期間和MSEG期間一致,則不作copy記錄只更新MARD數量。

這樣處理貌似減少了冗余數據,不過給編程取歷史庫存增加了很大的工作量,個人覺得不算明智之舉,但是可以做幾個精明的函數取值一勞永逸,具體可以跟本人聯系。

涉及透明表:

? ? ? ? ? MARD:物料倉儲位置的當前庫存數據

? ? ? ? ? MARDH:物料倉儲庫存的歷史數據

其存數邏輯如下:

Scenario?方案

At the start of period 02, there are 10 pieces of material A100 in stock.

Goods receipt 收貨

5 pieces are received in period 02.

System response

The system records(生成一條記錄) a stock of 10 pieces in the history table (MARDH) for period 01. At the same time, the system increases the current stock to 15 pieces (MARD).

Goods receipt?收貨

2 more pieces are received in period 02.

System response

The history table is unaffected by this event because an entry already exists for period 01. The system increases the current stock to 17 pieces (MARD).

Goods issue 發貨

4 pieces are withdrawn from stock in period 04.

System response

The system records(生成一條記錄) a stock of 17 pieces in the history table (MARDH) for period 03. At the same time, the system reduces the current stock to 13 pieces.

注:The history table (MARDH)does not contain an entry for period 02 because there were no goods movements in period 03.

?

到此為止,MARD中:物料 A100 期間 04 數量 13

MARDH中:物料 A100 期間 01 數量 10

? ? ? ? ? ? ? ? ?物料 A100 期間 03 數量 17

由此可見,如果要查詢物料A100在期間02的庫存,應是17;在期間05的庫存則是13。

下面函數可實現查詢任一工廠下、任一庫存地點中、任一物料、在任一期間末的庫存(非限制+質檢中+凍結)。

FUNCTION Z_GET_COMM_STOCK.

*"----------------------------------------------------------------------

*"*"Local interface:

*" IMPORTING

*" REFERENCE(WERKS) LIKE MARD-WERKS

*" REFERENCE(LGORT) LIKE MARD-LGORT

*" REFERENCE(MATNR) LIKE MARD-MATNR

*" REFERENCE(LFGJA) LIKE MARD-LFGJA

*" REFERENCE(LFMON) LIKE MARD-LFMON

*" EXPORTING

*" REFERENCE(CURR_STOCK) LIKE MARD-LABST

*"----------------------------------------------------------------------

data: cyear(4),

? ? ? ? ?cmonth(2),

? ? ? ? ?currmonth(6),

? ? ? ? ?mardmonth(6).

data: h_tab like mardh occurs 0 with header line.

cyear = lfgja.?

cmonth = lfmon.

concatenate cyear cmonth into currmonth."查詢庫存的年月

*----------------------------------------------------------------

比如上面的例子,我們這個時候查詢02期間的庫存數量

select single *?

from mard?

where matnr = matnr?

? ?and lgort = lgort and

? ? ? ? ?werks = werks.

if sy-subrc = 0.

"當前庫存表里面的年月

cyear = mard-lfgja.?

cmonth = mard-lfmon.

concatenate cyear cmonth into mardmonth.

if mardmonth > currmonth.

*-----本期期末庫存已經存入MARDH

select *?

into table h_tab

from mardh?

where matnr = matnr

? ? and lgort = lgort

? ? and werks = werks

? ? and ( ( lfgja = lfgja and

? ? ? ? ? lfmon >= lfmon ) or lfgja > lfgja )

? ? order by lfgja ascending lfmon ascending .

if sy-subrc = 0.

loop at h_tab.

cyear = h_tab-lfgja.?

cmonth = h_tab-lfmon.

concatenate cyear cmonth into mardmonth.

比如上面的例子,這里查出來的結果應該是下圖


依次比較01 月 和 03 月 ?發現在03月的時候滿足條件 即庫存為17

if mardmonth >= currmonth.

curr_stock = h_tab-labst + h_tab-insme + h_tab-speme.

exit.

endif.

endloop.

endif.

else.

*-----本期期末庫存還未存入MARDH

curr_stock?= mard-labst + mard-insme + mard-speme.

endif.

endif.

ENDFUNCTION.


上面函數在報表程序中的調用方法如下:

CALL FUNCTION?'Z_GET_COMM_STOCK'

EXPORTING

? ? ?WERKS = '工廠'

? ? ?LGORT = '倉儲地點'

? ? ?MATNR = '物料號'

? ? ?LFGJA = '會計年度'

? ? ?LFMON = '會計期間'

IMPORTING

? ? ?CURR_STOCK = GV_STOCK.

其中GV_STOCK為存儲最終結果的變量,即查詢物料在指定工廠、指定倉儲地點、指定會計期間末的庫存。

類似的透明表:

庫存類型 ? ? ? ?描述 ? ? ? ? ?表 ? ? ? ? ? ?歷史表

空 ? ? ? ? ? ? ? ? 自由庫存 ? ? mard ? ? ? mardh

K ? ? ? ? ? ? ? ? ?供應商寄售 ?mkol ? ? ? mkolh

E ? ? ? ? ? ? ? ? ?銷售訂單 ? ? mska ? ? ?mskah

W ? ? ? ? ? ? ? ? 寄售到客戶 ?msku ? ? ?mskuh

Q ? ? ? ? ? ? ? ? ?項目庫存 ? ? mspr ? ? ? msprh

O ? ? ? ? ? ? ? ? ?發貨給供應商 ?mslb ? ? mslbh

? ? ? ? ? ? ? ? ? ? 物料價格 ? ? ?MBEW ? ? MBEWH


這幾種特殊庫存與mseg表中的操作記錄的對應的關系

庫存類型是O,外發商庫存

庫存類型是Q,生產批次庫存

庫存類型是W,寄售給客戶

庫存類型是E,銷售訂單庫存

庫存類型是K,供應商寄售庫存

自由庫存是空

由于其物料性質與常用料不同,在計算其期末庫存時跟常用料的計算方法有些許差異。

總結

以上是生活随笔為你收集整理的SAP ABAP MARD和MARDH计算逻辑的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕无码毛片免费看 | 97久久免费视频 | 久久受| 国产看真人毛片爱做a片 | 亚洲色图自拍 | www免费黄色| 操极品| 精品一区二区三区四区 | 性饥渴的农村熟妇 | 成人免费观看网站 | 丰满人妻一区二区三区大胸 | 日韩美女久久 | 成人免费性生活视频 | 欧美色88 | 明星毛片 | 丝袜高跟av | 欧美视频久久久 | 日韩在线观看一区二区 | 亚洲一区二区三区久久 | 88久久精品无码一区二区毛片 | 日韩首页 | 亚洲乱码国产乱码精品天美传媒 | 啪啪日韩 | 欧美另类在线观看 | 亚州中文字幕 | 免费看污片的网站 | 中国美女洗澡免费看网站 | 国产精品偷伦视频免费看 | 中文人妻熟妇乱又伦精品 | 操欧美美女 | 少妇荡乳情欲办公室456视频 | 伊人天天操 | 97成人精品| 九九精品免费视频 | 欧美黑人精品 | 裸体按摩www性xxxcom | 亚洲最新在线视频 | 黄色片网站免费观看 | 翔田千里一区二区三区av | www国产精品内射熟女 | 在线观看第一页 | gav久久| 国产精品无码一区二区无人区多人 | 国产女人精品 | 69av在线播放 | 国偷自拍 | 国产美女流白浆 | 精品午夜一区二区 | 国产又黄又嫩又滑又白 | 天天草天天摸 | 三及毛片 | 91网址入口 | 日本特黄一级大片 | 91色漫 | 青青青av | 一区二区在线国产 | 午夜寻花 | 男女激情网 | 日色网站 | 色涩涩| 五月婷激情 | 精品视频在线一区二区 | 污网站在线播放 | 欧美成人a∨高清免费观看 国产精品999视频 | 色婷婷91 | 二级黄色大片 | 成人伊人网 | 邻居少妇张开双腿让我爽一夜 | 国产69视频在线观看 | 成人羞羞免费 | 瑟瑟视频在线观看 | 开心六月婷婷 | babes性欧美69 | 青青草原亚洲视频 | 99在线精品视频免费观看软件 | 国产原创视频在线观看 | 99久久精品一区二区三区 | 亚洲欧美一区二区三区 | 中文字幕一级二级三级 | 欧美日韩国产二区 | 夜夜撸 | 午夜伦理剧场 | a黄色片| 麻豆chinese新婚xxx | 国产精品福利影院 | 爆操日本美女 | 一区三区视频在线观看 | 青娱乐国产视频 | 久久久久久久一区二区三区 | 大黄网站在线观看 | 久久福利视频网 | 亚洲精品在线视频观看 | 岛国av免费 | 柠檬av导航 | 日本免费黄色小视频 | 精品区在线观看 | 成年人国产视频 | www.亚洲黄色 | 啪啪短视频 |