Many SAP installations experience long run-times during Material Ledger close. This Blog explains a function that can help expedite Material Ledger close.
Knowing how much a product costs is essential to determining actual profitability. Yet most decisions are based on the standard cost of the product, given that it is not always easy to get an accurate picture of the actual cost. Actual costing functionality provided by the Material Ledger component of SAP Controlling bridges this gap. It provides the ability to capture actual costs by tracking variances at the material (product) level. This section provides an overview of actual costing in SAP Material Ledger.
1.1.1 Actual Costing with Material Ledger
SAP Material Ledger inventory valuation includes the following:
- Collecting actual data during the month.
- Determining price: single-level and multi-level prices are determined based on the type of transactions performed.
- Calculating periodic unit prices at the end of the month.
SAP Material Ledger collects material movement data throughout the month and keeps track of which materials were used for the production of specific goods in production/process orders.
The SAP Materials Management module (in combination with the FI module) tracks goods movements and their values at standard cost, while the SAP Material Ledger tracks goods movement values at standard and actual costs. In other words, SAP Material Ledger can be considered a second set of books where each material has a record of all goods movements for actual valuation.
1.1.2 Material Ledger closing cockpit
You run SAP Material Ledger closing cockpit every month to perform actual costing using transaction code CKMLCP. The menu path is as follows: Accounting • Controlling • Product Cost Controlling • Actual Costing/Material Ledger • Actual Costing • CKMLCP—Edit Costing Run.
The first step is to create a costing run and assign relevant plants. After selecting plant(s), the Material Ledger closing cockpit requires several steps as shown in Figure 1.1
Figure 1.1: CKMLCP — SAP Material Ledger closing cockpit process steps
- Selection: all materials for the given plants are selected.
- Sequence Determination: the sequence of costing is established, starting with the lowest level material and going all the way up to the highest-level material and goods movements.
- Single-Level Price Determination: prices are calculated for each material.
- Multi-Level Price Determination: prices are calculated for the entire production stream.
- Revaluation of Consumption: adjustment posting of actual costs at month end, where all variances are transferred to the receiving object (which can be a material, cost center, internal order, GL Account, etc., depending on where the original consumption occurred).
- Post-Closing: all calculations performed in prior steps are posted during this step.
- Multi-level price differences are transferred to the next level.
- Revaluation of consumption is posted to cost objects.
- Inventory is revalued in FI for the period being closed.
- Mark Material Prices: this step is optional. An organization may decide not to use the periodic unit price as a standard for the upcoming month. If so, this step is skipped, and the system uses the standard price for goods movements and revalues at the periodic unit price only at month-end.
1.1.3 Performance improvement with parallel processing
Large run times and low system performance may become the norm, given that Material Ledger processes large amounts of data in the closing cockpit. Parallel processing can be used to address this performance concern.
As shown in Figure 1.2, there is an option to run Material Ledger close steps on multiple servers at the same time.
Figure 1.2: CKMLCP – ML Close: Parallel processing on multiple servers
This feature is often referred to as parallel processing. You can see at the bottom of the screen, server group parallel_generators has been selected, with the additional selection of maximum number of parallel processes as 10. This means that, instead of the usual single server, this job will be executed in parallel on 10 servers. This implies there could be a significant (at times, 85-90 percent) performance improvement for this job.
Parallel processing setup requires collaboration with the BASIS team in your organization.