克米亚sap论坛,最好的sap论坛,sap系统,sap培训,kemiya,克米亚,sap账号,sap ides,sap mm,sap hana,sap fico,sap pp

 找回密码
 注册
查看: 58|回复: 2

sap历史库存的详解

[复制链接]
kmy 发表于 2019-5-13 09:06:09 | 显示全部楼层 |阅读模式
项目实施中,经常报表需要读取当前月份库存和历史库存,本文简要描述

1.1 库存数据的保存根据库存类型的不同,库存信息保存在不同的表中,具体而言见下表
库存类型
当前库存
历史库存
库存金额
历史库存金额
工厂级别库存
MARC
MBEW
MARCH
MBEW
MBEWH
库存地点库存
MARC
MARDH
MBEW
MBEWH
供应商寄售库存
MKOL
MKOLH
MBEW
MBEWH
客户寄售库存
MSKU
MSKUH
MBEW
MBEWH
供应商外包库存
MSLB
MSLBH
MBEW
MBEWH
销售订单库存
MSKA
MSKAH
EBEW
EBEWH
批次库存
MCHB
MCHB
MBEW
MBEWH
以表MBEW和MBWEH为例
在表MBEW中,按照物料+工厂记录物料在工厂下的数量和金额;
在表MBWEH中,记录历史库存,按照物料+工厂+月份记录物料特定月份在工厂下的数量和金额;

1.2 表MBEW和MBEWH记录的逻辑说明物料MBEW为当前库存信息,因此每次库存变动时,都会更新表MBEW。
表MBEWH记录历史库存,当物料第一次发生移动时,在表MBEWH中记录上个月的库存和去年底的库存、前年底的库存,当然这条记录均为零。
当物料在每个月发生第一次货物移动时,则在表MBEWH中记录该物料上个月的库存信息,当物料未发生货物移动,但发生金额变动时,也会在表MBEWH记录该物料上个月的库存信息。
下文通过一个案例解释表MBEWH的逻辑说明:
某公司2011.12.1     SAP    项目上线,
物料A在某工厂期初库存为500个,金额为5000
物料B在某工厂期初库存为600个,金额为6000
因此期初库存初始化时
通过移动类型561的形式将物料A、B的库存导入到系统中,过账日期为2011.11.31,
导入后,库存信息将会记录到表MBEW中,具体如下
物料A 数量500个, 金额5000元,
物料B 数量600个,金额6000元
此时表MBEWH的数据如下
物料A 2008 12 数量0 金额0
物料A 2009 12 数量0 金额0
物料A 2010 11 数量0 金额0
物料B 2008 12 数量0 金额0
物料B 2009 12 数量0 金额0
物料B 2010 11 数量0 金额0
2011年1月份,物料A发生二次库存移动,每次数量减少100个,物料B未发生库存移动。
当物料A在1月份发生第一次库存移动时,此时系统更新表MBEWH,更新结果为上个月的库存数量和金额,具体而言,在本例中,表MBEWH的信息增加记录如下
物料A 月份201012 数量500个 金额5000元
当物料A在1月份再次发生货物移动时,由于已经在表MBEWH记录了上个月的库存信息,因此不再更新表MBEWH
而物料B在1月份未发生任何货物,因此不会更新表MBEWH。

1.3 示例说明1.3.1 物料的移动情况和金额变动情况如下图所示,通过事务代码MB51查看物料的移动情况
三个物料1000000002020、1000000005006、1000000021025在工厂1014下分别发生以下货物移动
在2011年11月期初库存入库产生三行物料凭证(移动类型561),物料1000000021025发生一笔采购入库(移动类型101)

如下图所示,事务代码MR21查看物料发生的金额变动
物料1000000005006在2011.12月发生价格重新评估,11月份入库时成本为零,重新评估后成本为每1000个9069.05


1.3.2 查看表MBEWH三个物料在期初库存导入时,在表MBEWH形成三条记录,分别记录上月、去年底、前年底
物料1000000021025在12月份未发生库存移动,因此无新记录。
物料1000000021025在12月份新入库一笔,数量15,000,因此在表中记录上个月(2011.11)的库存数量和金额,具体而言,在表中新增一条2011.11的记录,数量18,000.000金额3,230.77。
物料1000000005006在12月份被重新发生评估,因此在表中新增一条2011.11的记录,数量192,金额为零


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

可惜的是,     SAP    系统并没有现成的所谓的HistoryStock,其实也没有必要,这违背了数据库设计的冗余规则。  
  
我看到过的     SAP系统    中关于“历史库存报表”或“时点库存报表”的方案无外乎有两种:  
  
一、使用作业的办法,定期(一般是每天)抓取作业执行时刻的库存信息,存储在自定义表格中;
二、查询业务单据或物料凭证的明细,再累计出待查时刻的余额。  
  
方法一的好处在于,查询历史数据速度较快。但是,这相当的占用存储资源;其二,我们不能保证这定期的作业的确定性,硬件维护、系统性能都可能使这预定的“时刻”出现偏差,如果某一次没能抓取该时刻的库存,对整个报表来说,是数据的缺失;其三,最初设计的抓取数据的方式、方法,极有可能在新需求的压力下被修改,或者被推翻,这仍然不能满足需要。  
  
方法二的好处在于,它解决了上一个方案的第二和第三个问题。不过,这个报表运行起来就像回到了石器时代。这对于业务数据量大的SAP系统的影响是致命的,因为它不但失去了用户的信任,更可怕的是它会动摇管理层的信心。  
  
或许有第三个方案,有人会想到信息记录(LIS),SAP有一大堆积于LIS的库存分析报表,不过,用过的人都知道,它极不可信。这种报表成就了日常对数的用户与支持者或实施者之间旷日持久的拉锯战,虽然OSS里面有若干针对LIS报表的修正方案。  
  
我在一次对数的过程中尝试了第四种方案,那就是带H的月累表:MARCH、MARDH、MBEWH等。分析了一下这些表格的更新逻辑,它不是将每一种物料没一个期间都更新到表中的。  
  
然后,摸索出一条使用标准程序来获得历史库存的途径。相关TCODE是,MB5B、MB51,不使用MB5T。

状态库存级别查询方式
有价库存在库Storage loc.MB5B(Valued Option)
在途(采购、两步移库)PlantMB5B(Valued Option)
质检Storage loc.MB5B(Valued Option)
冻结Storage loc.MB5B(Valued Option)
其他特殊库存PlantMB5B(Valued Option)
零价库存在库Storage loc.MB5B(Storage loc. Option)
在途(采购、两步移库)PlantMB51累计
质检Storage loc.MB5B(Storage loc. Option)
冻结Storage loc.MB5B(Storage loc. Option)
其他特殊库存PlantMB5B(Valued Option)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
执着的鱼 发表于 4 天前 | 显示全部楼层
sap sd
davidpon 发表于 11 小时前 | 显示全部楼层
sap s4 hana
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|克米亚sap论坛,sap账号,sap系统,sap ides,sap学习机,sap练习环境 ( 渝ICP备18002525号-5 )

GMT+8, 2019-5-26 17:57

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表