S/4HANA MRP – to Live or not to Live: Planning scope
The intent of this article to point out the importance of planning scope or MRP areas planning sequence and the ramifications of phasing them out in S/4HANA MRP Live
The article is inspired by the question Define sequence of MRP areas in MRP Live planning scope risen by Offshore Development. I have provided a work around proposal there but at the same time I have realized that the lack of planning scope or selection criteria by MRP areas is a serious deficiency of MRP Live.
This is a second installment of my S/4HANA MRP – to Live or not to Live mini series preceded by S/4HANA MRP – to Live or not to Live: MRP lists
Let’s consider the following scenario in trading, buy-and-sell business. A company is running a simple supply chain consisting of 3 distribution centers A, B, C.
- Distribution center A is used to cover customers’ requirements, sales is handled from there.
- Distribution center B is also used to cover customers’ requirements but it is also used to supply distribution center A.
- Distribution center C is used to supply distribution center B. All purchases go there first.
Notice that the sequence of planning is very important here – distribution center A needs to be planned first, then B, then C. If the planning starts with distribution center B, it is going to cover only customers’ requirements there but not the needs of the distribution center A.
Classic MRP uses planning scope setting (configuration path: Production -> Material Requirements Planning -> Planning -> Define Scope of Planning for Total Planning) to define which plants or MRP areas and in which sequence will be planned.
MRP Live doesn’t feature planning scope anymore – note 2640393 – Differences between t-code MD01N and classic MRP t-codes MD01/MD02/MD03 reads:
|Feature||Classic MRP (t-codes MD01/MD02/MD03)||MRP live (t-code MD01N)||Related Note/KBA|
|Scope of planning||MRP parameter “Scope of planning” can be used to combine a group of plants or MRP areas.||Scope of planning is not supported. MRP Live can plan many materials in many plants. It always plans all MRP Areas.|
Now let’s see how this simple scenario can be implemented with MRP Live, first using plants, then using MRP areas.
The distribution centers of our supply chain could be implemented as plants. If so, we have to options to implement the planning scenario.
1. Rely on MRP Live logic
SAP Help under MRP Live: Incompatible Changes reads
|Functions Not Supported||Reason||How to Upgrade|
Planning Sequence of Plants
Table T439C*) has been decommissioned.
|Table T439C only allows you to define the planning sequence of locations not location materials. With the sequence defined in table T439C you cannot support the stock transfer of different materials in different directions between the same two locations.||The MRP logic determines the planning sequence of plants automatically. There is no need to define a planning sequence in a table. No special activities are necessary.|
*) T439C is one of the table of MRP classic planning scope definition.
MRP Live claims, it is able to figure out the planning sequence internally. Therefore to implement our scenario it would be sufficient to just run MD01N for all three plants. That would be perfect solution just to dump all the plants to MD01N and get perfect results.
Yes, it would be, if the software was flawless. However it is not. No software is bug free. It is enough to see the number of correction notes on MRP Live. Therefore I would feel much more secure if I were able to control the planning sequence.
Also issues resolution would be much easier if the planning sequence was known a priori, not figured internally during MRP execution, especially that MRP Live lacks tools to evaluate MRP results – see S/4HANA MRP – to Live or not to Live: MRP lists.
2. Force the sequence
The only method to manually establish planning sequence of plants in MRP Live is to run MD01N for one plant at a time and repeat the process for each plant. Or to schedule background job with as many steps of PPH_MRP_START report as there plants in the planning sequence.
That works, for sure. The problem I see here, is that the planning job has to be set up manually in PRD system and anyone with enough authorization can change it and no MRP controller will know about that.
In contrast MRP classic planning scope is a configuration setting. It has to be changed in DEV environment, tested in QA and transported to PRD. It undergoes change management process.
In my opinion planning scope is just safer.
Another issue with this approach is how bad it is going to harm MRP Live performance and paralelization?
As you see, the scenario is implementable with MRP Live on plant levels. However it gets much worse when we contemplate MRP areas.
The distribution centers of our supply chain could be implemented as MRP areas instead of plants. There is an important reason for this approach. Plant is also valuation level; material price is set on this level. If a company wants to have their materials valued uniformly, it should go with MRP areas instead of plants.
SAP Glossary provides the following definition of MRP area:
An MRP area represents an organizational unit for which you can perform material requirements planning separately.
An MRP area can include one or several storage locations of a plant or a subcontractor. You can define MRP areas in a plant.
By defining MRP areas, you can perform MRP for each area. This means the right quantity of materials can be provided on time for each area, such as a production line, a storage location for spare parts, or subcontractor stock.
Notice – MRP areas are to be planned separately! A the same time SAP Help under MRP Live: Planning Scope reads:
No selection option is available for planning individual MRP areas. The planning run is always performed for the complete plant.
It means MRP Live defies the sheer definition of MRP areas, it does not provide for separate planning of MRP areas! That is the first problem.
Another problem is that MD01N doesn’t select by MRP areas – it just plans all the areas in the plant But in what sequence???
Here we don’t have any control whatsoever and SAP Help gives nothing on the MRP areas planning sequence. I highly doubt if MRP Live implements similar logic here as with plants sequence.
The only solution I could see is to implement an enhancement using MRP_DISPATCHER_BADI, method AT_PLANNING_FILE_ENTRIES_READ – see Define sequence of MRP areas in MRP Live planning scope
It is just not right that the intelligent ERP drops the ball on MRP areas planning sequence.
MRP areas are prominent in S/4HANA. They are obligatory. They have superseded storage location MRP. Subcontractor’s stock planning relies heavily on them. In my opinion these are the changes in the right direction as MRP areas are powerful tool in MRP planning, often underutilized.
The problem is that MRP Live lacks flexibility in handling MRP areas, the scope of planning and planning sequence.
Here I would plea to SAP:
Reintroduce planning scope configuration to MRP Live to provide much need flexibility in MRP areas planning
Vote to support: https://influence.sap.com/sap/ino/#/idea/249487
Disclaimer: Opinions and views expressed herein are solely my own.
If a finance person like myself understands from this blog that parts of solution are missing on S4 then I am sure that SAP MRP-responsible persons will understand necessity of bringing them back as well!
Hi my Guru!
I am really surprised after reading this blog ... I can't believe that there are such specialists in SAP SE and they have omitted such important aspects of planning scope! I am sure that everyone who reads your text will also be surprised! I am impressed - what experience and knowledge do you need to consider such topics so deeply. I suppose that 90% of people who use S / 4 HANA on a daily basis have not noticed such significant changes or are not even aware of what these changes caused. I love your articles because they give a lot to think about. You should work at SAP SE 😉
Hi Dominik Tylczynski
In Md01n we have a check box stock transfer material. If this is selected, the materials should automatically get sequenced between plants A, B, and C right (If we put all 3 plants in Md01n)? Because we would have a special procurement Key setup for STO requirement/source list/Info record etc. So even without planning scope, because of the master data and configuration setup between plants, MRP live should be able to sequence things with a logic right ?
Any cases where you think it would fail?
Hello Narasimha Prasad Bhat
Thank you for your comment - it is spot on.
We need to consider the sequence of MRP planning on two levels: on plant level and on MRP area level.
Plant level - MRP Live promises to automatically sequence plants based on special procurement keys:
That is great if it works. MRP Live is still an immature product in my opinion. "Program error" type notes are still being delivered. The newest ones are from June 2022. Therefore the logic to automatically sequence plants might be buggy.
I am not saying the MRP Live plant sequencing is incorrect. I am just saying it might be. If it is, it will be very hard to catch those errors during testing. But they will hugely impact MRP planning results.
So I think it is safer to sequence plants manually with a planning scope definition.
MRP area level - MRP areas are obligatory in S/4HANA. They are typically used to subdivide plants and to run MRP planning on MRP area level. MRP Live and its automatic sequencing logic seam to ignore MRP areas. At least the documentation says nothing about it.
You can not determine an source MRP area level with a special procurement key, the way you define a source plant. Special procurement key allows to define a source plant, but not a source MRP area. That determination is typically implemented with the MD_EXT_SUP BAdI. I highly doubt if MRP Live sequencing logic evaluates the BAdI implementation. I am convince that MRP areas sequencing is simply ignored by MRP Live. That defies the whole purpose of MRP areas.
Again, here planning scope definition would solve the problem easily.
Yes agree Dominik
MRP area for sure will not work. At the plant level, I am currently testing all possible intra-plant scenarios with Md01n. STO between 2 plants did work with that tick even when I ran it only at the source plant (It did create STO at other plants even when MRP was not run on 2nd plant). I will get back with many more scenarios like with PIR/demand / all types of special procurements. But as you rightly said, I am also of the opinion planning scope would have simplified it (Less regression testing scope)
Hi Narasimha Prasad Bhat
I'd really like to see the results of your tests. I'm especially interested if MRP Live plants sequencing handles the following scenario, that I've seen in real life:
Here MRP should plan plant A, then plant B, then plant A again.
Actually, the planning scope can be implemented in MRP Live with a multistep job that runs MD01N in each step for a selected plant. That is a plausible workaround.
However that can not be implemented for MRP areas as MD01N doesn't provided selection by MRP area in standard. The only solution I could see is to implement an enhancement using MRP_DISPATCHER_BADI, method AT_PLANNING_FILE_ENTRIES_READ. But that is a custom development.
In my opinion SAP should provide either planning scope in MRP Live as it is available in classic MRP or at least at selection criterion by MRP areas in standard.