sap历史库存的详解

sap历史库存的详解 (2015-09-20 19:53:06)转载▼
标签: sap 库存查询 分类: ERP、MES与企业信息化
项目实施中,经常报表需要读取当前月份库存和历史库存,本文简要描述

1.1 库存数据的保存
根据库存类型的不同,库存信息保存在不同的表中,具体而言见下表
在这里插入图片描述
以表MBEW和MBWEH为例

在表MBEW中,按照物料+工厂记录物料在工厂下的数量和金额;

在表MBWEH中,记录历史库存,按照物料+工厂+月份记录物料特定月份在工厂下的数量和金额;

1.2 表MBEW和MBEWH记录的逻辑说明
物料MBEW为当前库存信息,因此每次库存变动时,都会更新表MBEW。

表MBEWH记录历史库存,当物料第一次发生移动时,在表MBEWH中记录上个月的库存和去年底的库存、前年底的库存,当然这条记录均为零。

当物料在每个月发生第一次货物移动时,则在表MBEWH中记录该物料上个月的库存信息,当物料未发生货物移动,但发生金额变动时,也会在表MBEWH记录该物料上个月的库存信息。

下文通过一个案例解释表MBEWH的逻辑说明:

某公司2011.12.1SAP项目上线,

物料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)

clip_image002[9]

如下图所示,事务代码MR21查看物料发生的金额变动

物料1000000005006在2011.12月发生价格重新评估, 11月份入库时成本为零,重新评估后成本为每1000个9069.05

clip_image002[7]

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,金额为零

clip_image006

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

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

我看到过的SAP系统中关于“历史库存报表”或“时点库存报表”的方案无外乎有两种:

一、使用作业的办法,定期(一般是每天)抓取作业执行时刻的库存信息,存储在自定义表格中;

二、查询业务单据或物料凭证的明细,再累计出待查时刻的余额。

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

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

或许有第三个方案,有人会想到信息记录(LIS),SAP有一大堆积于LIS的库存分析报表,不过,用过的人都知道,它极不可信。这种报表成就了日常对数的用户与支持者或实施者之间旷日持久的拉锯战,虽然OSS里面有若干针对LIS报表的修正方案。

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

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

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值