
Hello Community Friends,
It´s fact that there is a lack of information and materials about the CKMHELP - Material Ledger Help Desk in the community. This powerful tool that helped me for several years in the challenges with the Material Ledger. There are several discussions about this solution once the corrections in the update run are to be implemented by SAP Support only. But it´s important to understand the functions delivered and why not try it in a non-production environment - sometimes it can be useful in projects.
Before we get into the CKMHELP itself, it is indispensable to understand the Material Ledger Data Structure, otherwise the usage of CKMHELP will not make any sense to you.
The Material Ledger, as the name suggests, is a Finance Accounting Sub-Ledger. That means that the main purpose of Material Ledger is the revaluation into Actual Cost of your General Ledger Material Stock Accounts. So, some of the CKMHELP programs and tools will be used to compare Finance Accounting and Material Ledger once they should be consistent. The first step of understanding the Data Structure of the Material Ledger is the first step to understand the CKMHELP.
There are several tables and material ledger data, but we can classify them into three categories that will make you understand better the ML Structure:
1) Material Master: the material master consists in the structure by Material and Valuation Area level assigned to the Material Master Data. They are not just Material Ledger tables, but some fields of them are updated by the material ledger. For sure you have already use them:
You should also know that there are some other details extensions from MBEW when you have some cost by Sales Order(Table EBEW), Project(Table QBEW), Subcontractor(Table OBEW), etc. Some of the CKMHELP consistency and check these tables.
2) Material Ledger - Totals: the most important Material Ledger tables that manage the totals(values, prices, amounts, quantities) by category, cost estimation and period.
3) Material Ledger - Documents: the material ledger documents are posted and assigned to the source document for every material movement or logistic post. The Material Ledger Documents are the lowest data structure, and they are summarized into the Material Ledger Totals and Material Master for every post. Every amount or quantity in the material ledger, you will have some material ledger document posted.
*It´s important to highlight the structure of the Material Ledger Documents(Transaction Data). It´s similar to several other structures in the SAP(Header and Items) but for performance and reporting purposes the Documents are summarized in the table MLCD - Material Ledger: Summarization Record (from Documents). Every Material Ledger Document posting will update the MLCD that is a Summarization by Period.
An easy way to understand and memorize this structure, it´s to relate it with the CKM3 once it´s the most used ML transaction code. The relation between CKM3 and this structure will make you understand it much better:
All these data should be consistent among them and match with the Accounting and CKMHELP exist to help you analyze this consistency and perform some adjustments if necessary.
Now, let´s get into some of the most useful programs delivered by CKMHELP and how it can help you to analyze and fix some material ledger inconsistencies.
When you access the CKMHELP, the main menu with radio buttons will be displayed. The purpose of this menu is to organize better the functions of the CKMHELP by category: Overview, Master Data, Transactional Data, etc. After you choose an option and run it will drive you to the submenu, now with the executable functions, for the chosen category.
The Material Ledger Overview Option will run the checking program MLHELP_BWKEY_COUNT - Display Material Ledger Overview. This is an information only report that will show totals of ML Material Master tables such as MBEW, EBEW, QBEW and OBEW, ML Period Data Tables CKMLHD, CKMLPP and CKMLCR and Material Ledger Line Items table MLIT.
This option is useful when you need to understand or check an SAP Environment you are not familiar with. Usually, SAP when providing some support, they run this option to have an overview about the Material Ledger of that customer. But if you are familiar with your environment, probably you will not use this report.
The CKMHELP Transactional Data option will deliver several functions and consistency reports over the Material Ledger Documents and Totals Summarization.
Let´s list up some important reports for consistent check you may use to analyze the Material Ledger Totals and Documents.
As mentioned before, the core function of Material Ledger is the General Ledger Stock Account revaluation. So, this report will analyze and cross check the General Ledger Stock and Material Ledger Totals. This report will get the Material Ledger Period Totals(CKMLHD, CKMLCR & CKMLPP) and Compare with the Stock Accounts as per defined in the OBYC.
Currently there is no option to compare Material Master MBEW / MBEWH with FI Accounts, but you can consist and compare Material Master(MBEW & MBEWH) with Material Ledger Totals(CKMLHD, CKMLCR & CKMLPP): MLHELP_SAPRCKMU - Checks Consistency between Material Master and Material Ledger
There are several information in the Material Master(MBEW, MBEWH, etc) that Material Ledger updates. This report is the most important report that compare both data structure MATERIAL MASTER and MATERIAL LEDGER. SAP also created a direct access transaction code for this report: CKMC - Consistency Check between Material Master and Material Ledger
The purpose of this analysis is to show you which field/table between MBEW/MBEWH and Material Ledger Tables are not matching. Of course, to identify the reason it's necessary further analysis. The previous sample shows an issue in the Total Amount(SALK3) in Valuation Data for Period 07.2024 and 06.2024. Probably some issue happened in period 06.2024 that carry to the next period, so further analysis into 06.2024 should take place to identify the root cause.
Until here in the Material Ledger Transaction analysis we have matched the Material Master and ML Totals with Accounting that may help you to identify some material or some period that may have some problem. Now, to go into your further analysis, it´s time to go into Document Level to check and compare if some documents have problems.
The next set of programs and functions will support you on the analysis of Material Ledger Documents and comparing the Documents with the Material Master and Material Ledger Total Tables:
Let´s list up the most useful set of functions to support you on the Material Ledger Documents Transactional Analysis.
The consistency this program does is the Material Ledger Documents Tables(MLHD, MLIT, MLCD, etc.) with the Material Ledger Totals(CKMLHD, CKMLCR, CKMLPP, etc.). This comparison is important to identify any inconsistency inside the Material Ledger Structure, Total Tables and Document Tables.
Just for information, the Processing Option "Ignore '_a' Fields" that comes marked for default it´s used as conditional logic to compare or not compare the Not Allocated and Differences Amounts that is stored in the CKMLCR table:
ZUUMB_A Revaluation Amount (Not Allocated)
ZUPRD_A Receipts: Single-Level Price Differences (Not Allocated)
ZUKDM_A Receipts: Single-Level Exch Rate Differences (Not Allocated)
EKPRD_A Receipts: Price Differences Settled from POs (From-Value)
EKKDM_A Receipts: Settld Exch.Rate Differences from POs (From-Value)
PBPRD_A Receipts: Pr. Diff. Settled from Sub. Adjust. (from value)
PBKDM_A Receipts: ExRtDiff. settled frm sub.adjustments (from value)
The Material Ledger documents are summarized for report and performance purposes in the MLCD Table. If any consistency is identified between MLCD and Material Ledger Documents or Material Ledger Totals, you can run this program that will Summarize and Adjust MLCD Table Again.
If you set Recreate Summarization Record all existing summarization records of a material will be deleted and recreated. If the indicator is not set, materials with existing summarization records are not processed.
Another consistency check that is available in the CKMHELP, is the comparison between FI and ML Documents. If you found any inconsistency when analyzing the FI Balance Account with Material Ledger(MLHELP_STOCKACCOUNT - Check material stock values against FI accounts), this analysis can also help you on the troubleshooting to check any inconsistency between FI and ML on the Document Level.
The Finance Accounting Documents checked on this report are defined by the transaction type - BSEG-KTOSL:
BSX: Inventory Posting
PRD: Price Differences on Goods Receipt(WE)
PRY: Price Differences on Material Ledger Closing(ML)
PRF: Price Differences on Invoice Posting(FA)
PRA: Price Differences on Goods Issue(WA)
PRV: Price Differences from Previous Period
AKO: Price Differences on Consignment Postings
AUM: Price Differences on Transfer Postings
KDM: Price Differences on Exchange Rate
UMB: Revaluation(MR22)
KDV: Exchange rate difference from previous period
Usually, after listing the documents FI x ML unmatching the program MLHELP_CORRECT_MLDOC_FROM_FI - Corrects ML documents with values of FI documents are used to correct the Material Ledger Documents. This step I recommend having SAP Support running it, you can run in Test Mode.
3 - Help Desk for Master Data
The CKMHELP functions for Master Data will consolidate some functions and reports to make the consistence of the Master Data Tables such as MBEW, MBEWH and Material Ledger Totals CKMLHD, CKMLCR and CKMLPP.
The Consistency Customizing Check program MLHELP_MBEW_CONSISTENCY it´s a useful program mainly for production startup and go-lives because it performs 5 important checks comparing your customization and the Material Master and reports you in case of error.
This program is one of the most critical programs over the CKMHELP and should be used in a production environment only by SAP Support. Basically, it allows you to maintain and repair directly the Material Ledger Total Tables: CKMLPR, CKMLPP and CKMLCR, invasive operation.
The Material Ledger Totals that are managed by Period(Year and Period) have a status control that is managed in the CKMLPP, field STATUS:
00 | Undefined |
01 | New Objects |
05 | Period Without Stock Opened |
10 | Period Opened |
20 | Price Change Completed |
30 | Quantities and Values Entered |
31 | Values Entered |
40 | Price Determined (Single-Level) |
50 | Price Determined (Multilevel) |
60 | Closing Entry Reversed |
70 | Closing Entry Completed |
By Period/Year the Material Ledger Totals manage the Material Status according to postings it is receiving. For example, status 01 - New Object happens when you have a new material without any movement or history. As soon as you start to post goods receipt and goods issue these status change until the last status which is 70 - when the material ledger for that period is closed - CKMLCP or CKMI. The statuses 40, 50, 60 and 70 are used by the Material Ledger Period Close corresponding to each step of the material ledger closing. The statuses 30 and 31 are set when you have any postings. 30 - Quantities and Values Entered is when material document that involves quantity and value is posted such as MIGO and 31 - Values Entered is when a material document that involves only amount is posted such as a MIRO.
This status sometimes needs to be adjusted depending on the issue you are handling. So, CKMHELP delivers some programs to deal with these statuses, of course it should be well managed, and you should understand about the Material Ledger status logic, otherwise you can have some side effects.
The MLHELP_SET_PP_STATUS can set any status for the period chosen.
The two other programs are like this one, but you have pre-determined status, one to close the material ledger setting status 70 - Closing Entry Completed and the other to open setting the status 10 - Period Opened.
MLHELP_SET_PP_STATUS_70 - Change Period Status to '70'
MLHELP_RESET_PP_STATUS - Reset Period Status to '10'
The Material Ledger also manages the Cost Component Split(CCS) for the Actual Costing/Price based on the OKTZ - Cost Component Structure. There are two important tables for that:
Note that Standard Cost CCS are managed in a similar table name: KEKO and KEPH.
There are several variables that can impact the Standard and Actual CCS, of course, the configuration done in the OKTZ and OBYC GBB/VBR but also the Material Master Data Origin Group.
It´s inevitable that inconsistencies between Standard and Actual Cost CCS happen between for some changes in the customizing OKTZ and OBYC, but also changes in the material Origin Group.
Simple and Single adjustments can be easily handled by CKMCCC - Manual Change: Act. Cost Comp. Split but some CCS Customizing Changes can generate several mismatching making the single material adjustments through CCS a difficult task. So, CKMHELP can support you on that.
The Actual CCS Consistency Check will compare the Material Ledger Totals with the Actual CCS Price. Just for your understanding, SAP manage the CCS Price(Actual and Standard) as mentioned before and to split the costs for example when you open in CKM3, the amounts in CKMLCR and CKMLPP are splitting by the Price Structure in CKMLPRKEPH or KEPH:
So, any divergency between CKMLCR and CKMLPRKEPH will be displayed in there.
To deal with these inconsistencies, MLHELP_MAT_CCS_INIT - Delete and Recreate Actual CCS according to S-price Split.
On the Administration menu you will find some information reports. They are not so important but it´s important to know them.
All the checking and consistency programs can generate ToDo Lists. The ToDo Lists are reporting results from a check or consistency program that are saved that can be later used by a repair or posting CKMHELP program. You can display the ToDo Lists over this menu.
ToDo List can also be generated from file using the program MLHELP_TODO_GENERATE_FROM_FILE - Generate a Todo list from file.
All corrections posted by the CKMHELP programs generate some log document that can be displayed in this program:
TEST RUN: The reason why you have unable Test Run screen parameter set for every Repair or Update CKMHELP program is because the include MLHELP_UPDATE_AUTH_CHECK is used to check the Update Authorization that should be reserved only for SAP. It checks the 'DONTPANIC' User Parameter making unable the Test Run to be changed.
***INCLUDE MLHELP_UPDATE_AUTH_CHECK .
************************************************************************
* STANDARD INCLUDE FOR HELPDESK PROGRAMS:
* AUTHORIZATION CHECK FOR UPDATE FUNCTION
************************************************************************
* ATTENTION: ONLY APPLICABLE IN PROGRAMS WHERE A TEST PARAMETER P_TEST
* EXISTS, AND WHERE THE EVENTS SELECTION-SCREEN AND SELECTION-SCREEN
* OUTPUT ARE NOT DEFINED YET !!!! Otherwise, you must copy the coding!
************************************************************************
TABLES: sscrfields.
DATA: h_master_code LIKE boole-boole,
h_dontpanic LIKE sy-datlo.
CONSTANTS: y_fcode_mast LIKE sy-tcode VALUE '42'.
****************************************************************
* AT SELECTION-SCREEN OUTPUT
****************************************************************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_TEST'.
IF h_master_code = 'X'.
screen-input = '1'.
ELSE.
IF sy-batch IS INITIAL.
p_test = 'X'.
screen-input = '0'.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
****************************************************************
* AT SELECTION-SCREEN
****************************************************************
AT SELECTION-SCREEN.
IF sscrfields-ucomm = y_fcode_mast.
* Sitzt der Benutzerparameter?
GET PARAMETER ID 'DONTPANIC' FIELD h_dontpanic.
IF h_dontpanic = sy-datlo.
h_master_code = 'X'.
EXIT.
ENDIF.
ENDIF.
It is hard to share all situations where CKMHELP can support you so it would be nice to have you sharing your experience and questions on the comments of this Blog Article. Let´s keep up the discussion around it.
It´s important to highlight some of the most important OSS Notes as references for you. As mentioned before, the main OSS Note that refer to the Material Ledger Help Desk is the OSS Note 364368 - Material ledger help desk
As of Release S/4 CORE 101 the help desk is delivered in the standard system thru transaction FCMLHELP. For all previous releases, the standard help desk can be installed with SAP Notes 2148839 and 2987906.
Check some nice SAP KDB for Material Ledger:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.