[转载]MBEWH表数据更新逻辑

无论移动平均价(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不会为每个期间创建记录。

表MBEW、MBEWH与MCHBH的区别:

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

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

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

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

事务代码:S_P00_07000139

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

附:Note 193554
Summary
As of Release 4.5, stock and valuation fields that refer to the previous period or those dating back even farther, are not stored in those tables in which the current stock data is stored (MBEW, MARD, MCHB, and so on) but in so-called history tables (MBEWH, MARDH, MCHBH, and so on.).
(Also compare release note for period closing as of Release 4.5)
These history tables can have one entry per period. The values of such an entry refer to the end of the period. For the current period, there are no entries in the history tables. An entry is not written in this history table for every period. If stock-relevant or valuation-relevant data change, the system might generate an entry in the history table.
Furthermore, the fields LFMON ('Current Period (Booking period)') and LFGJA ('Fiscal Year of the Current Period') in the stock tables are no longer automatically set to the current period by the period closing program. The period is only transferred to the new period during the first movement. At the same time, the relevant history entries are also generated.

Example:
Material 4711 has a stock of 10 pieces at the end of period 01
In period 02, a goods receipt of 5 pieces occurs.
Now, an entry is added in the history table for period 01 with a stock of 10 pieces. Simultaneously, the current stock is increased to 15 pieces and the 'Current Period' field (LFMON) is set to 02.
In period 02, an additional goods receipt occurs with 2 pieces.
The history table is not affected by this operation since an entry already exists for period 01. The current stock is increased to 17 pieces.
In period 04, a goods issue of 4 pieces occurs.
Now, the system adds an entry for period 03 with a stock of 17 pieces in the history table. Simultaneously, the current stock is decreased to 13 pieces and the 'Current Period' field (LFMON) is changed from 02 to 04.
Since no goods movement has occurred in period 03, there is no entry for period 02 in the history table.

Thus, the following applies:

1. The stock in the stock table describes the situation since the last goods movement which changed this segment. The period of this movement appears in the fields LFMON and LFGJA. All stocks for periods which are earlier than the periods given in the fields LFMON and LFGJA relate to the current stocks and can be found in the stock tables.

2. If for a previous period n, no entry exists in the history table, then the values of this period correspond to the values of the period n+1.

Since the 2nd rule can be used recursively, under consideration of the two above rules the values can be determined for any periods of that period in which Release 4.5 or a higher release were implemented.

Please note: Since the history tables are not created retroactively, the history entries only exist in their completed form from the time from which users work with the new period closing program. The periods for which the period closing program has run for the first time with history records are listed in the table MARV for every company code in the fields GJA_40C and MON_40C. For technical reasons it is possible that there are also entries in the history tables with an older period. Nevertheless, these entries are not available without gaps for all stocks.
This algorithm is also implemented in function modules MBEW_EXTEND, MARD_EXTEND and so on. These function modules are used in the standard SAP programs in order to determine the values of the previous period and to extend tables with the reference structure MBEW, MARD and so on correspondingly.

If you have your own programs which use the prior-period values from the tables MARD, MBEW etc., you should call up the relevant EXTEND component after reading the data from the table. This then returns the data as though no change had taken place in the previous logic. You can then remove the prior-period values from the known fields.

Additional key words
MBEWH, MARDH, MCHBH, stock information, previous period stock, previous month stock

posted @ 2012-06-05 15:21  elegant  阅读(2180)  评论(0编辑  收藏