Maria Luisa Munoz
June 15, 2010 4 minute read
How to change the standard price in Material Ledger for materials with Price Determination Control 3
116,935
When the Material Ledger is active, for materials with price determination control 3, a price change or a release cost estimate should always be the first transaction to execute in the period.
If you want to change the price for a new period, you have to release the price before closing the previous period. You can only release a new price for the material when the status in the period is 10 ‘Period opened’, 20 ‘Price change completed’ or 01 ‘New objects’. The reason is that the post closing process has an influence on the status of the material in the new period. After executing the post closing step, the system changes the status of the previous period to 70 ‘Closing entry completed’ and the status of current period to 30 ‘Quantities and values entered’. Therefore the system does not allow to change the price subsequently. Once the period status is ’30’, the standard price cannot be release or changed.
For more details please see note https://service.sap.com/sap/support/notes/190707.
Before opening a new period, in order to carry out the period end closing and release a new standard price, all the steps of transaction CKMLCP can be executed except the ‘post closing step’.
3. Single-level Price determination for previous period
4. Multi-level Price determination for previous period
8. Post closing step for the previous period
In case that the status of the material does not allow to release a new price in the period, the following workarounds can be applied in order to change the standard price for the new period:
– Postponing the costing release to next month
– Reversing transactions and usage of note https://service.sap.com/sap/support/notes/574930
– Using the option from note https://service.sap.com/sap/support/notes/555176 . You can use this option for current period. It provides a correction which allows you to make a price change, despite the transactions that you have already run.
Dynamic Price Release Functionality
In case that you want to release a future price or a marked cost estimate during the first material movement in the period you can use the functionality of the dynamic price release (Transaction OMX5).
The dynamic price release is intended to release the new prices for materials that are posted or moved at the beginning of a new period, before the price release has been implemented for flagged cost estimates or future prices.
It has been designed to be activated when there are material movements and a cost estimate has not been yet released.
With a posting for the material in MM module, the status of the material changes and if this functionality is not set, it is not possible to release a new standard price in the period.
Please check the attached note https://service.sap.com/sap/support/notes/757732 which provides a detailed explanation about the dynamic price release functionality.
Whatever the way in which the standard price is released in the new period, this change should be carried out before closing the previous period, otherwise it will not be possible.
This functionality has not been designed to replace the transactions CKME, CK24 or CK40N. The dynamic release cannot and should not replace the static release; it should only enhance it.
574930 - Resetting material ledger status
Program ZCKML_RESET_STATUS_OF_PERIOD
Symptom
If you use actual costing and material price determination 3, you can only change or release prices of marked cost estimates for a material at the beginning of the period, as long as no goods movements, invoices, and so on have been created for the material. If you then try to carry out a price change, the system generates message C+811 or C+212. This behavior is explained in SAP Note 555176.
The system also does not reset the status to the original value if either the goods movements causing this situation or the actual costing closing entry have been reversed.
Other Terms
CNACT, MR21, CKME, CK24
Reason and Prerequisites
Solution
This note provides a program that allows the status to be reset to 'Period opened' (10) under the following conditions:
Goods movements are completely reversed
The collected price differences and exchange rate differences are zero in all currencies. Generally, this is also possible by reversing all transactions that have been carried out.
The status of the previous period is not 'Closing entry performed'.
If Posting closing executed,Then need to perform CKMLCP reverse
The material is not locked by another user.
The relevant period is the current period. After resetting the status, it is possible to carry out price changes in the period again.
Since the status information is represented in the output table only as figures, the following is a list of the status texts:
Not defined '00'
New objects '01'
Period opened '10'
Price change completed '20'
Quantities and values entered '30'
Values entered '31'
Price determined single-level '40'
Price determined multi-level '50'
Closing entry reversed '60'
Closing entry performed '70'
After generating and activating the program, you can maintain the selection texts: SE38 Goto - Program texts - Selection texts. For all texts, mark checkbox 'from Dictionary' or copy the menu function from the DataDictionary(DD).
Name Text
P_EBEW Selection of sales order stock
P_MBEW Selection of stock material
P_QBEW Selection of project stock
555176 - Late price change
Version 12 from 14.07.2011 in English
Symptom
Actual costing with material price determination 3 no longer allows a price change for materials, if, in a period, there have already been goods movements, values have already been entered by invoices or if the closing entry of the previous period has been executed.
See also Note 190707.
Other Terms
MR21, material ledger, actual costing, CKME, release standard prices, error messages, C+ 811, C+ 212, CNACT
Reason and Prerequisites
Implement the program corrections.
You must implement the program corrections described in this section only if they are relevant for your Support Package. If the program corrections are already included in your Support Package or Enhancement Package, continue reading in the "Handling" section.
Sym Text dLen mLen
218 Subsequent price change 19 30
2. Add the following table parameters to the interface of the function module CKML_F_DOCUMENT_PRICE_CHANGE (transaction SE37):
Parameter name Type spec Associated Type Optional
IT_CKMLCR_OLD LIKE CKMLCR X
IT_CKMLCR_NEW LIKE CKMLCR X
3. Depending on your Support Package level, the function module MLCCS_READ_ONLY_BUFFER may already exist. Check whether the function module is contained in the function group MLCCS_DBACCESS. If not, create it there using transaction SE37.
I_BDATJ_1 LIKE CKMLPP-BDATJ
I_POPER_1 LIKE CKMLPP-POPER
I_BDATJ_2 LIKE CKMLPP-BDATJ
I_POPER_2 LIKE CKMLPP-POPER
I_BDATJ_3 LIKE CKMLPP-BDATJ
I_POPER_3 LIKE CKMLPP-POPER
I_BETWEEN_1_AND_2 TYPE CHAR01
I_UNTPER LIKE CKMLPP-UNTPER '000'
For all of these parameters, select Optional and Pass Value.
ET_OLD_KEPH TYPE MLCCS_T_KEPH
ET_NEW_KEPH TYPE MLCCS_T_KEPH
IT_KALNR TYPE CKMV0_MATOBJ_TBL
IT_LAKALNR TYPE CKMV0_LAOBJ_TBL optional
IR_CATEG TYPE CKMV0_YT_CATEG optional
IR_PTYP TYPE CKMV0_YT_PTYP optional
IR_BVALT TYPE CKMV0_YT_BVALT optional
IR_KEART TYPE CKMV0_YT_KEART optional
IR_MLCCT TYPE CKMV0_YT_MLCCT optional
IR_KKZST TYPE CKMV0_YT_KKZST optional
IR_PATNR TYPE CKMV0_YT_PATNR optional
IR_DIPA TYPE CKMV0_YT_DIPA optional
IR_CURTP TYPE CKMV0_YT_CURTP optional
UNSUFFICIENT_PARAMETERS unsufficient_parameters
NO_DATA_FOUND No period records found
Handling
The corrections allow you to make a price change, despite the transactions that you have already run. This option should only be used in urgent cases. In general, you should only ever make a price change at the beginning of the period. The subsequent price change introduced here does allow the price change and does not lead to inconsistencies, but errors occur in periodic consumption valuation, in particular if you have already posted consumption in the period. If possible, you should cancel consumption before making a subsequent price change.
You activate the subsequent price change using the OK code LTPC in transaction MR21.
Call transaction MR21.
Enter LTPC in the OK code field.
Enter the materials to be edited and the new prices.
If you want to release a marked planned price, choose 'Default Planned Prices'.
Choose 'Post'.
The preliminary valuation and any differences are rescaled at category level and the corresponding lines for price change documents are sorted and flagged with the text "Subsequent price change".
...