关于库存 &库存BAPI

mard里记载的是当前库存的数量,但是期间并不一定是当月。比如你物料4月一整月都没有库存数量变化(没收没发),那么5月初你看mard里的条目期间数还是4月而非5月。
某个期间发生货物移动的时候,系统在更新mard数据的之前(这个表是实时更新的),会检查此笔业务过账期间和mard里对应记录的期间是否一致,也就是看这是不是本期间第一笔移动。如果是,copymard里对应记录到mardh,然后把mard记录改成当期(也可能是先删后建),然后再作更新数量数据的操作。如果不是第一笔记录,也就是mard期间和mseg期间一致,则不作copy记录只更新mard数量。

这样处理貌似减少了冗余数据,不过给编程取历史库存增加了很大的工作量,个人觉得不算明智之举。
库存方面的表
mbew     mbewh
mard--
查主库存    mardh--主库存历史记录
mslb--
特殊库存O  mkol--特殊库存K/M     mska--特殊库存E          msku--特殊库存V/W
mcha  mchb

无论移动平均价(Moving Average Price MAP)是否有更改,MBEWH表都会更新。

MBEWH表记录了MBEW表的历史数据,而MBEW是物料评估(Material Valuation)表。

MBEW表记录了当前的物料价格,当物料价格被重估(比如更新物料当前移动平均价)时,SAP系统会将当前价格写入MBEWH表中,而将新价格写入MBEW中。

当前的价格总是记录在表MBEW中,当某一期间(Period)的第一项操作更新了物料数量或价值,则SAP系统会向表MBEWH写入一条记录,以第一项操作之前的余额、价格控制为标准。

MBEWH表中代表上一期间记录的数字储存在当前期间”LFMON字段中。

例:当在3期间发生第一笔过账(比如收货),则系统会在MBEWH表中的当前期间”LFMON字段写入数字2,数量和价值更新到总库存(Total Stock总价值(Total Value字段,并且等于发生在3期间的数量和价值。

若在连续几个期间内未发生过账,则表MBEWH不会为每个期间创建记录。

MBEWMBEWHMCHBH的区别:

MBEW:查看当前账期的移动平均价

MBEWH:查看历史账期的移动平均价

MBEWH记录了所有的库存价值,而表MCHBH则只代表了未限制库存的价值。

如何查看当前移动平均价:

事务代码:S_P00_07000139

每次物料重估后的最新移动平均价。

 

用户/客户有几百种历史库存报表需求的理由,而且是可以查任意时间的。

可惜的是,SAP系统并没有现成的所谓的History Stock,其实也没有必要,这违背了数据库设计的冗余规则。

我看到过的SAP系统中关于历史库存报表时点库存报表的方案无外乎有两种:
一、使用作业的办法,定期(一般是每天)抓取作业执行时刻的库存信息,存储在自定义表格中;
二,查询业务单据或物料凭证的明细,再累计出待查时刻的余额。

方法一的好处在于,查询历史数据速度较快。但是,这相当的占用存储资源;
其二,我们不能保证这定期的作业的确定性,硬件维护、系统性能都可能使这预定的时刻出现偏差,如果某一次没能抓取该时刻的库存,对整个报表来说,是数据的缺失;
其三,最初设计的抓取数据的方式、方法,极有可能在新需求的压力下被修改,或者被推翻,这仍然不能满足需要。

方法二的好处在于,它解决了上一个方案的第二和第三个问题。不过,这个报表运行起来就像回到了石器时代。这对于业务数据量大的SAP系统的影响是致命的,因为它不但失去了

用户的信任,更可怕的是它会动摇管理层的信心。

或许有第三个方案,有人会想到信息记录(LIS),SAP有一大堆积于LIS的库存分析报表,不过,用过的人都知道,它极不可信。这种报表成就了日常对数的用户与支持者或实施者

之间旷日持久的拉锯战,虽然OSS里面有若干针对LIS报表的修正方案。

我在一次对数的过程中尝试了第四种方案,那就是带H的月累表:MARCHMARDHMBEWH等。分析了一下这些表格的更新逻辑,它不是将每一种物料每一个期间都更新到表中的。

然后,摸索出一条使用标准程序来获得历史库存的途径。相关TCODE是,MB5BMB51,不使用MB5T

 

 

状态

库存级别

查询方式

有价库存

在库

S.Loc

MB5B(Valued Option)

在途(采购、两步移库)

Plant

MB5B(Valued Option)

质检

S.Loc

MB5B(Valued Option)

冻结

S.Loc

MB5B(Valued Option)

其他特殊库存

Plant

MB5B(Valued Option)

零价库存

在库

S.Loc

MB5B(S.Loc Option)

在途(采购、两步移库)

Plant

MB51累计

质检

S.Loc

MB5B(S.Loc Option)

冻结

S.Loc

MB5B(S.Loc Option)

其他特殊库存

Plant

MB5B(S.Loc Option)

 

 

库存: 
1. BAPI_MATERIAL_AVAILABILITY
获得商品可用库存 
2. CO_ZA_AVAILABILITY_CHECK 
3.AVAILABILITY_CHECK_CONTROLLER 
4.AVAILABILITY_CHECK 
库存管理: 
BAPI_GOODSMVT_GETDETAIL
显示货物移动的明细 
BAPI_GOODSMVT_GETITEMS
显示物料凭证的详细清单 
BAPI_GOODSMVT_CREATE
货物移动过帐,入库,出库 
BAPI_GOODSMVT_CANCEL
冲销货物移动

 

BAPI_MATERIAL_SAVEDATA

建立/更改物料主檔

BAPI_OBJCL_CREATE

建立/更改物料主檔分類

BAPI_OBJCL_CHANGE

建立/更改物料主檔分類

CLMM_MAINTAIN_CLASSIFICATIONS

批量建立/更改物料主檔分類

CLAF_CLASSIFICATION_OF_OBJECTS

顯示物料主檔分類特性值

BAPI_MATERIAL_EXISTENCECHECK

檢查物料主檔是否存在

BAPI_MATERIAL_GETLIST

顯示物料主檔明細

 

 

BAPI_PO_CREATE1

建立采購單

BAPI_PO_CHANGE

更改采購單

BAPI_PO_GETDETAIL

顯示采購單明細

BAPI_PO_RELEASE

核發采購單

BAPI_REQUISITION_CREATE

建立請購單

BAPI_REQUISITION_CHANGE

更改請購單

BAPI_REQUISITION_GETDETAIL

顯示請購單明細

BAPI_REQUISITION_RELEASE_GEN

核發請購單

 

 

BAPI_CHARACT_CREATE

建立特性

BAPI_CHARACT_CHANGE

更改特性

BAPI_CHARACT_DELETE

刪除特性

BAPI_CHARACT_RENAME

重新命名特性

BAPI_CHARACT_GETDETAIL

讀取特性屬性

BAPI_CHARACT_ADDLONGTEXT

設定特性或數值的長文

BAPI_CHARACT_REMOVELONGTEXT

刪除特性或數值的長文

BAPI_CHARACT_GETLONGTEXT

讀取數值的特性長文

CARD_CHARACTERISTIC_READ

顯示特性值的值列表

 

 

BAPI_CLASS_CREATE

建立類別

BAPI_CLASS_CHANGE

變更類別

BAPI_CLASS_DELETE

刪除類別

BAPI_CLASS_GETDETAIL

讀取類別資訊(取分類下特性及特性值)

BAPI_CLASS_EXISTENCECHECK

檢查物件存在性

 

 

BAPI_VENDOR_GETDETAIL

顯示供應商明細

BAPI_VENDOR_EXISTENCECHECK

檢查存在性

 

 

BAPI_MATERIALGROUP_GET_LIST

讀取物料群組/物料群組說明

 

 

BAPI_GOODSMVT_CREATE

過帳物料異動

BAPI_GOODSMVT_CANCEL

沖帳(取消)物料異動

BAPI_GOODSMVT_GETDETAIL

顯示物料異動明細

BAPI_GOODSMVT_GETITEMS

顯示物料文件的明細清單


  

MBEWMBEWH的更新机制

设有某料从period 1开始就一直没有做交易,那时库存是100,MAP假设是1RMB/PC,一直到现在period 4, 你收了100,2RMB/PC,系统会在每个跨期间的第一笔交易将历史记录写入MBEWH,假设period 2,3无交易,MBEWH将增加一笔 period 3, 100 PC, MAP 1RMB ,同时MBEWcurrentperiod/year2006/period 1改成2006/03, MBEWH总是会在post第一笔当前期间时总是保存上期间的stock value MAP . MBEWH几个月没数据说明物料几个月没移动. MBEWH总是会在post第一笔当前期间的物料移动时总是保存上期间的total stock value MAP ,如果中间可能没有period记录说明这n-1period该物料没有做任何移动

通常看库存报表可能会用到如下几个T-code:

MMBE:MARD-LABST(Valuated stock withunrestricted use)
       MB52:MARD-LABST

MB51:MSEG:ERFMG累加

MM03:MBEW-LBKUM (Total valuated stock)
       MB5L:MBEW-SALK3 (Value of total valuatedstock)

MC.9:S032-MBWBEST(Quantity of valuatedstock)
       S032-WBWBEST(Value of valuated stock)
你看到上面几个典型T-code实际上是从不同table读数据的.

***我强烈建议那些号称MM资深顾问的人最少花点时间去了解下三支程序.
   PO,
收货和发票校验逻辑,我指的是内部逻辑.
研究过SAPMM07MSAPLMIGO(两者对应分别对应MB1AT-codeMIGO)一定
会知道通常如果MARD,MSEG,MBEW的数据对不上那SAP就有问题了,知道什么时候
material doc.no and FI doc No
获得(这时候实际上还没有save到表中,这很容易解释
为什么Doc no跳号,如果你愿意你可象放慢镜头一样,故意制造出doc no跳号的case),
你也了解materail movement是如何updateDB table中的.

再次申明,使用Mard,MSEG,MBEWT-code看库存数据一般会一致,但是 MC.9等使用了LIS table的就不一定了
熟悉LIS的朋友肯定熟悉此两表
TMC4:Global Control Elements: LIS Info Structure
TMCAE:Features of Application
而且知道通常S031,S032update ruleSynchronousUpdating (V1 Update)
是的,它是由MB1*include 程序RMCSV3VB完成的.就是说在物料移动时实时update那么为什么
MC.9
看到的库存还会和MB1*MMBE看到的不同呢?原因有很多,比如你更该了material type, Material group,


出现问题了,当然你必须更新信息机构的数据.
更新S012 PURCHASE DATA.
OLI3 - Statistical setup of info structures from purchasing documents 
重组Purchase Doc to LIS.
NPRT - Log for Setup of Statistical Data 
NPRT to check REsetup log.
MC26
允许你看到LIS, QIS,SIS的更新情况,无论是LIS,QIS,SIS...,库存如不一致就应该update一下了.

关于如何更新IS系统下面有一堆T-code
(OLI1-9),
实际上后台你也可看到.

---------------------------------------


.for WM相关(部分):
LS09 Display Material Data for Stor.Type
LS24 Display Quants for Material
LS25 Display Quants per Storage Bin
LS26 Warehouse stocks per material
LS27 Display quants for storage unit
LS28 Display storage units / bin
LT0G Return delivery to stock
LX02 Stock list
.库存重新估价
J1A3 MM goods issue revaluation(
重新估价)
J1A5 MM Warehouse stock report
J1AI Asset Revaluation (Inflation)

.关于物料价格(及其更改)
MR21 Price Change
MR22 Material Debit/Credit
CK24           Mark/change Standard Cost
CKMTOPSTOCKVAL Materials w/ Highest Inventory Value
MRN8 Lowest Value: Price Variances
.关于库存分析.
MMBE(MB53):
显示单个库存(可将0库存的sto.过滤)
MB52: Warehouse Stocks on Hand (
不能By date)
MB54:Consignment Stocks
MB51/MB59:Material Doc. List (
查看物料凭证,by posting date)
MB5B: Stocks for Posting Date
** By Selection date
可分时段查询库存MB5B
MB5K Stock Consistency Check
MB5L(MB5W)
显示 Stock Values Balances
** MB5L
是从物料评估层看物料价值.比如某plant 1100valuation clas12110101
**
如果你使用MB52 by plant 1100MB5L12110101(物料总帐科目)价值不同就有问题了.
MB5T Stock in transit CC(
转储)
**
通常跨公司转储使用MB1B 311plant,301plant(且可跨company).
**
内部公司关联贸易如果考虑MRP,一般不直接使用MB1B而开PO,这样open PO就考虑了.

MBBS Display valuated special stock
MBGR Displ. Material Docs. by Mvt. Reason(
有问题的库存)
MBLB Stocks at Subcontractor

MBST Cancel Material Document
**
通常MBST是整单的,比如PO 101收货错误,如整单可使用MBST,或一个个使用102.
**MBST
能找到cancelling mat.doc的对应的反向mvtype .
MBSM Display Cancelled Material Docs.

物料历史.
MRN9 Balance Sheet Values by Account (
各种价值)
MM60 Materials List 
MM04            materialChanged History(
物料被更改的历史记录)
MM06            markMaterial deleted flat (
将物料设置删除标志)
MMAM Change Material Type
**MMAM
怎样的material type才可change比如从SFG转到FG,条件是什么?我知道.
MCE9   Purchasing Function(
转到MM_PUR功能菜单)
MCE3   Vendor Analysis Selection
MCE5   MatGrp Analysis Selection
MCE7   Material Analysis Selection
MCW2
ME2M            Material by Purchase Order 
---------------------------------------------------------------
库存相关表格:
MKOL :Special Stocks from Vendor
MKOLH:Special Stocks from Vendor: History

MSCA :Sales Orders on Hand with Vendor
MSCAH:Sales Order Stock at Vendor: History

MSKA :Sales Order Stock
MSKAH:Sales Order Stock: History

MSKU :Special Stocks at Customer
MSKUH:Special Stocks at Customer: History

MSLB :Special Stocks at Vendor
MSLBH:Special Stocks at Vendor: History

MARA :Plant Data for Material(物料plant相关master data)
MARCH:Material Master C Segment: History

MARD :Material Master Storage Location(常规库存在此表)
MARDH:Material Master Storage Location Segment: History

MBEW :对应material master dataaccount1-2,costing1-2 view.
MBEWH:Material Valuation: History

MCHB :       Batch Stocks
MCHBH      Batch Stocks: History

MCH1       Batches (if Batch ManagementCross-Plant)
MCHA       Batches

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值