SAP库存表之间的逻辑关系
转载于SAP学习门户网,原文链接:
http://www.sap6.com/learn/mm/073504302015/3370.html
当前库存:
一般保存在 MARD 表 LABST 字段中, 为Valuated Unrestricted-Use Stock
INSME: Stock in Quality Inspection
SPEME: Blocked Stock
当然, 也可这样:
Stock = MD04 下的 Stock(unres&block) + QM
IF mdezx-delb0 = 'Stock' OR mdezx-delkz = 'QM'.
stock = stock + mdezx-mng01. "get Stock
ENDIF.
在途库存:
指已经生成发货订单, 但还未收货的物料数量( Open PO ).
保存在 MARC 表中, 为 UMLMC 和 TRAME 两字段数据之和.( 公司系统和我的系统不知道为什么这两 个栏位都没数据? )
用 Function MD_STOCK_REQUIREMENTS_LIST_API 去获取 MD04 的信息, 去得到 Open PO 数量.
( mdezx-plaab = '02',
mdezx-delkz = 'LA' (Shipping notification)
mdezx-delkz = 'BE' (Purch.ord.)
mdezx-delkz = 'LE' (SchLne)
寄售库存:
库存信息存储在 MSKU 表的 Labst, 寄售库存不存在库位关系的.
可用库存:
当前所能进行分配的商品数量, 不包括被某些单据所预定的库存.
EXCESS: 所有供已与需求和.
LOOP AT mdezx WHERE plaab = '02'.
md04_balance = md04_balance + mdezx-mng01.
ENDLOOP.
通过 BAPI_MATERIAL_AVAILABILITY 来获取(得到的是 Unrestricted-Use Stock)
所有需求:
IF mdezx-plumi = '-'. " All Demand dat
total_demand = total_demand + mdezx-mng01 * -1.
ENDIF.
****************************************************************
LOOP AT mdezx WHERE plaab = '02'.
excess = excess + mdezx-mng01. "可用库存
IF mdezx-delb0 = 'Stock' OR mdezx-delkz = 'QM'.
stock = stock + mdezx-mng01.
ENDIF.
IF mdezx-plumi = '-'. "Demand
total_demand = total_demand + mdezx-mng01 * -1.
ELSE.
IF mdezx-delkz = 'LA' "shipping notification
OR mdezx-delkz = 'LE' "Normal PO
OR mdezx-delkz = 'BE'. "SA schedule line
open_po = open_po + mdezx-mng01.
ENDIF.
ENDIF.
ENDLOOP.
Stock Provided to Vendor:( MSLB )
发给外包商数量.
Consignment Stock at Customer(MSKU):
Customer Consignment:
GR Block:(EKBE-WESBS):
作者:Helena
转载于SAP学习门户网,原文链接:
http://www.sap6.com/learn/mm/073504302015/3370.html