Financial Management Blogs by Members
Dive into a treasure trove of SAP financial management wisdom shared by a vibrant community of bloggers. Submit a blog post of your own to share knowledge.
cancel
Showing results for 
Search instead for 
Did you mean: 
coleti
Active Contributor
8,654

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.

 

Material Ledger Data Structure

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:

  • MBEW: Material Valuation
  • MBEWH: Material Valuation: History by Period

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.

  • CKMLHD Header Record
  • CKMLPR Prices
  • CKMLPP Quantity
  • CKMLCR Values
  • CKMLKEPH Material Cost Component Split
  • CKMLPRKEKO Cost Component Split for Prices

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.

  • MLHD Documents Headers
  • MLIT Documents Items
  • MLPP Documents Quantities
  • MLPPF Documents Quantities by Field Group
  • MLCR Documents Currencies and Values
  • MLCRF Documents Currencies and Values by Field Group
  • MLKEPH Documents Cost Component Split (Elements) for Values
  • MLCD Documents Summarization Record*

*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:

coleti_2-1719922663504.png

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.

 

Main Menu

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.

coleti_0-1719852841099.png

 

1 - Material Ledger Overview

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.

coleti_1-1719853784655.png

 

2 - Help Desk for Transaction Data

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.

 

MLHELP_STOCKACCOUNT - Check material stock values against FI accounts

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.

coleti_0-1719928386636.png

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

 

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

coleti_0-1719929801038.png

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:

coleti_0-1719930276795.png

Let´s list up the most useful set of functions to support you on the Material Ledger Documents Transactional Analysis.

 

MLHELP_DOC_PERIODS_COMPARE - Check ML documents against material ledger period totals

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.

coleti_0-1719931265392.png

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)

 

ML_MLCD_CREATE - Check ML Documents against Summarization Records

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.

coleti_0-1719934397510.png

 

MLHELP_FIDOC_MLDOC_COMPARE - Check FI documents against ML documents

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.

coleti_0-1719937106288.png

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.

 

MLHELP_MBEW_CONSISTENCY - Check Consistency Customizing-MBEW

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.

coleti_1-1719948994251.png

 

MLHELP_REPAIR_TABLES - Repairs CKMLPR/CKMLPP/CKMLCR Material Ledger tables

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.

coleti_0-1719948386692.png

 

Period Status

The Material Ledger Totals that are managed by Period(Year and Period) have a status control that is managed in the CKMLPP, field STATUS:

00Undefined
01New Objects
05Period Without Stock Opened
10Period Opened
20Price Change Completed
30Quantities and Values Entered
31Values Entered
40Price Determined (Single-Level)
50Price Determined (Multilevel)
60Closing Entry Reversed
70Closing 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.

 

MLHELP_SET_PP_STATUS - Change Period Status

The MLHELP_SET_PP_STATUS can set any status for the period chosen.

coleti_0-1719946152977.png

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'

coleti_4-1719946507541.png

 

MLHELP_RESET_PP_STATUS - Reset Period Status to '10'

coleti_3-1719946485776.png

 

4 - Help Desk for Actual Cost Component Split

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:

  • CKMLPRKEKO Header for Prices Cost Component Split
  • CKMLPRKEPH Elements for Prices Cost Component Split

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.

 

MLHELP_CCS_CONS_CHECK - Check Consistency of Actual Cost Component Split

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:

coleti_0-1720004750477.png

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.

coleti_0-1720007137839.png

coleti_1-1720007226385.png

 

5 - Administration

On the Administration menu you will find some information reports. They are not so important but it´s important to know them.

 

MLHELP_TODO_ADMIN - Show all Todo-Lists

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.

coleti_2-1719947587905.png

ToDo List can also be generated from file using the program MLHELP_TODO_GENERATE_FROM_FILE - Generate a Todo list from file.

 

MLHELP_CORRECTION_ADMIN - Show all corrections

All corrections posted by the CKMHELP programs generate some log document that can be displayed in this program:

coleti_0-1719947075116.png

 

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.

 

References

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:

3305451 - Central KBA for Material Ledger in ERP

3306727 - Central KBA for Material Ledger in S/4HANA

1 Comment
Labels in this area
Top kudoed authors