One of the most frequent issues described on SCN threads is that MRP does not plan a specific material. The idea behind this blog is to describe exactly what can be checked to ensure that all the materials will be planned by MRP.
Below you can find the steps to check this specific material on your system and understand exactly why it was not planned.
1 – Check if there is a termination on the MRP background job
The first check to be carried out is if there was any termination on the MRP background job. We can check that accessing the job on transaction SM37.
The most frequent cause of terminations on the MRP background job is when the number ranges are almost expired. Note 531599 provides more details about this issue.
2 – Check the material MRP List
When a material is planned by MRP, an MRP List is generally created and it can be accessed on transaction MD05.
On the MRP list we can find exactly when this material was planned by the last time and if any error message happened during the MRP planning run, that could affect the MRP results. Here, we will define if the material was not planned by MRP or if it was planned but no replenishment proposals were created due to a termination or any other possible issue.
Below there is an example of a MRP List where a termination happened for a material.
We can also find all the MRP lists where an error happened running the report RMMDERRO on transaction SE38. This report is very useful when errors are happening for several materials.
CAUTION: depending on the settings defined on the MRP variant or on the MRP Group Creation Indicator, the MRP list may not be created.
3 – Check the planning file entry exists on transaction MD21
If a material is not being planned by MRP in background or on MD01, then we must check if the planning file exists on transaction MD21.
Please observe that the material can still be planned by individual MRP transactions, such as MD02 or MD03, since they do not check the planning file when planning a specific material.
If the planning file does not exist, the error message “No planning file entry exists for this selection” should be displayed on MD21 and the solution in this case is to run transaction MDAB (report RMMDVM20), in order to create ensure that all the planning file entries were created.
CAUTION: The planning file entries are generally created when MRP is active for a plant and a material is create with a valid MRP type. It is not necessary to run this transaction or report on a regular basis.
4 – Check if the planning file flags NETCH or NETPL are marked
Whenever there is an MRP relevant change for a material (such as a goods movement, a master data change or any change to an MRP element) the planning file flags should be marked. Therefore, a material will be only planned in background with the keys NETPL or NETCH if the respective flag is marked on the planning file.
If those flags are not checked, it’s probably because there was no MRP relevant change for this material since the last MRP run, so it was not necessary to plan this material again.
If there are uncovered requirements and this material should have been planned by MRP, you must find out what was the last MRP relevant change for this material and understand exactly why the planning file flags were not set. A good starting point for the investigation is to compare MD04 with MD05 to check if there is any missing planning element or any new planning element, to find out exactly when the planning file entry was not set.
A workaround for this issue is to run MRP using key NEUPL, which will plan all the materials, even when those flags are not set.
CAUTION: Transaction MDAB (Rerport RMMDVM20)only creates missing planning file entries. It does not check the flags NETCH or NETPL when the planning file already exists. The same is valid for transaction MDRE (RMMDVM10), which only corrects inconsistencies but does not check those flags when there is no inconsistency.
5 – Check if it is an MPS material
A material with an MPS MRP type will be planned by MPS transactions and programs. MPS uses different transactions, such as MDBS, MD40, MD41, etc… so these materials will not be planned by MRP transactions.
6 – MRP areas should be included on a Scope of Planning
If the material is not planned under a specific storage location or subcontracting MRP area, you should ensure that this MRP area is included on a Scope of Planning and that MRP is executed for this Scope of Planning or that MRP is executed directly for this MRP area. A Scope of Planning can be created on transaction OM0E and ideally it should include the plant and all the MRP areas.
7 – Check if the servers for parallel processing are available
If you are using parallel processing, the servers that will be used for parallel processing are defined on the customizing transaction OMIQ. During the MRP run, all the servers must available, otherwise, one of the packages may not be processed, which means that some materials may not be planned by MRP.
Generally, all the servers defined on the customizing transaction OMIQ must be available on transaction SM51, so that MRP can correctly process all the packages.
A workaround for this issue is to run MRP with the flag “parallel processing” unchecked, until fixing the entries on transaction OMIQ.
8 – Retail listing prevents the planning with MRP.
There is a retail functionality called listing, which can prevent the a material to be planned within MRP. When this functionality is active we can generally find an entry on table WLK1 for the material.
9 – Check if EXIT_SAPMM61X_001 and EXIT_SAPLM61C_001 are implemented
User exits EXIT_SAPMM61X_001 and EXIT_SAPLM61C_001 are generally implemented to select which materials will be planned by MRP. The most frequent use of these exits is to plan all the materials for a specific MRP controller. However, if there is any problem on the exits implementation, it may affect the MRP planning run. So we must test the MRP run after deactivating those exits, in order to ensure that there is no problem with the exits implementation.
10 – Check if there is any BAdI active
Any BAdI active executing custom code during the MRP run can lead to unknown side-effects. When a BAdI is executed during the MRP run, the indicator BAdI Active is displayed on the MRP List (MD05), as displayed on the picture below:
A list of the BAdIs available for MRP is available on the document BAdIs for MRP.