BAdIs for MRP
MRP is a very flexible tool with lots of customizing settings and master data settings, however, sometimes is not possible to achieve some business requirements using only standard customizing and master data settings.
For that reason, some BAdIs were introduced on the standard programs, to allow the customers to use a custom logic on the standard MRP.
If you are facing any problem with a BAdI implementation, take a look on note 2012620 where the frequent issues with BAdIs on MRP are described.
Below you will find a list of the most important and useful BAdIs on MRP:
- MD_CHANGE_MRP_DATA: In my opinion, it is the most important BAdI on MRP. It allows you to change any MRP element during the MRP or on MD04 transaction. The most common use is to make an MRP element not relevant for MRP but it can be also used for another changes, such as changes in quantities, for example. You can find an example of implmenentation on the document Making an element not relevant to MRP using BAdI MD_CHANGE_MRP_DATA.
- MD_SUBCONT_LOGIC: This BAdI is used to activate the old subcontracting logic which was used until release release 3.1I. All subcontracting stocks and requirements are managed in the net segment, which means that there are no separate subcontracting segments. See also note 1927160.
- MD_ADD_ELEMENTS: With this BAdI is possible to include a new user-defined MRP element.
- MD_DISPLAY_ELEMENT: Allows you to change the display of an MRP element.
- MD_MRP_PARAMETERS: With this BAdI is possible to change the settings from material master, customizing or even quota arrangement for an specific material, before the MRP run or in MD04, for example.
- MD_ADD_COL_EZPS: With this BAdI it’s possible to include additional columns on the MRP evaluation transactions (MD04, for example).
- MD_PURREQ_CHANGE and MD_PLDORD_CHANGE: Can be used for fill and change fields of purchase requisitions and planned orders created, changed or deleted during the MRP run.
- MD_PURREQ_POST and MD_PLDORD_POST: Can be used for additional actions after the purchase requisition and planned order changes, such as saving information on a custom table, a workflow or implementing a change log. It should not be used for changing the order itself.
- MD_MODIFY_SOURCE: This BAdi allows you to define your own logic for the source determination during the MRP run.
- MD_MODIFY_PRODVERS: This BAdi allows you to define your own logic for the production version selection.
- MD_PLDORD_SCHEDULING: With this BAdI you can change the scheduling parameters for planned orders before scheduling is called.
- MD_STOCK_TRANSFER: This BAdI allows you to change the requirement dates of the requirements of stock transfer procurement proposal in the issuing plant.
- MD_EXT_SUP: On the standard system, there is no determination of the issuing storage location for stock transfers, however, it is possible to create your own logic to select the issuing storage location for stock transfers using this BAdI. You can find more information about MD_EXT_SUP on note 1783556 and on wiki http://wiki.scn.sap.com/wiki/x/qgQbF
- MD_CHANGE_CALENDAR: This BAdI can be used to use a different calendar for the safety time and the evaluations of the range of coverage data, instead of the factory calendar.
- MD_EXCLUDE_MATERIAL: Can be used to show a tab with “Additional Selections” on the initial screen of transactions MD06 and MD07 where you can add your own fields to restrict the selection.
- MD_LAST_LOT_EXACT: Allows you to use your own logic to calculat the last lot on a sales or project individual stocks.
- MD_MRP_LIST: With this BAdI you can process data from the MRP list of a material during posting in the planning run. It allows you to evaluate the MRP data immediately after the planning run and trigger follow-up actions, however, you cannot change the MRP data.
- MD_INTERACT_PLANNING: With this BAdI it’s possible to control is users are allowed to change MRP elements in the results display of the planning transactions for a material (such as MD02).
- MD_SET_TRAFFIC_LIGHTS_DS: With this BAdI you can define your own limit values for the range-of-coverage evaluation for certain materials. See note 1587375 for more details.
- MD_PURREQ_REL_STRAT: This BAdI can be used to deactivate the release strategy for purchase requisitions generated by MRP.
- MD_CREATE_GROUPING: You can use this BAdI to define a customer-specific grouping of materials for the current stock/requirements list.
- MD_MRP_RUN_PARALLEL: Can be used to adjust the number of materials which are assigned to a process for each planning package when running parallel MRP. That way, it is possible to achieve a more uniform utilization of the tasks when there are extremely different runtime of the individual application servers or of the tasks.
- MD_ADAPT_DISTRIBUTION: This BAdI was delivered to influence the start/end date and the factory calendar used for the distribution of quantities on the MRP transactions, when using a distribution key.
You must be very careful when implementing any of these BAdIs, since generally there is not check after the BAdI execution and it is possible to make deep changes on the MRP standard logic.
In order to find a complete list of the BAdIs available for MRP, just look for BAdIs starting with MD on transaction SE18.
It is possible to know if a BAdI is active by the indicator “BAdI Active” on transactions MD04 and MD05.
You can also find the complete list of available MRP BAdIs and more information about each BAdI on SPRO, on the following path:
– Production – Material Requirements Planning – Business Add-Ins for Requirements Planning
BR
Caetano
Please add ABAP tag, so that it shows up in the ABAP space too. Thank you!
Hello Jelena
The BAdI tag was already included on the blog.
BR
Caetano
Not BADI - ABAP. If you tag it with ABAP, it will also appear in the ABAP space on SCN.
ABAP tag added. Thaks for the tip.
Hi,
We are using the new Badi PPH_MRP_RUN_BADI to implement chang log of planned order.
Do you have some way to save log of planned order on MRP Live S4?
Thanks for sharing
Good blog, this list really helps. Thank you.
Caetano Almeida,
Good Blog, Thanks for sharing.
Ritesh
Hi Almeda,
It will be great if you can provide two three simple business examples on each of the BADi
May be youcan write another blog with examples elaborating the same.
Thanks for sharing this too.
Regards,
Mandar.
Hi Caetano,
Thanks for summarizing this important information!
Best regards,
Raphael
Very good summazization,
thank you
Hello Caetano,
Great compilation of MRP Related BADIs. Thanks for sharing the same to all. 🙂
Hello Caetano,
Helpful !!!!
Thanks and Regards
Thank you all for the feedback!
Hi Caetano,
Very Helpful document!!
Thanks a lot.
Its very helpful document ,,
Please keep sharing your knowledge
Hi Umesh and Mariano
Thank you both for the feedback!
BR
Caetano
Hi,
I am getting different screen of MD04 / MD05, could you help me to get the same screen as informed above.
Hello Vijay
Please open a new thread with your questions.
BR
Caetano
Caetano,
Is it possible to EXCLUDE the available quantity (available stock for MRP) for a given material, however - at the same time - not to exclude the material from planning in MF50?
I mention this, as this result is not possible by using MMSC, in my opinion.
Regards,
Andras
Hello
I have never tested on MF50, but on MD04 I know that it is possible. Try to make the same changed proposed on Making an element not relevant to MRP or MD04 using BAdI MD_CHANGE_MRP_DATA.
BR
Caetano
Nice & very useful document!!! Thanks
Hi Caeton,
Is there any possibility to control "individual and coll. reqmts flag" (MARC-SBDKZ) by one of the user exits mentioned by you.
We cannot change this flag from "2" to "0", but we need "0-functionality" for some business scenarios.
best regards
Vitali
Hello
Did you try MD_MRP_PARAMETERS?
Regards,
Caetano
Hi Caetano,
Thanks a lot for sharing shuch valuable information.
We are a construction company, we assign material components to project activities in CJ20N (Stock Items "Category L" that trigers procurement type: "Resevation for WBS element".
I'm going to implement BADI_MAT_CUST_SCR of enhancement spot: ES_BADI_MAT_CUST_SCR_PS) to create customer-specific fields for the material component on a separate tab page. These fields will be :
My question is: Is there any BADI to fetch these data from the customer-specific fields (along with the Storage Location from the Proc.Param. tab page) into the automatically generated MRP PR?
Regards,
Amr
Hello All!
Is it possible that standard follow-up material logic is failing when follow-up material added in the BOM items?
Is it possbile to change the follow up logic with these BADIs?
Hi Experts,
Any BADI could approach that MRP run to create PRs with specific difference storage location without active MRP area function?
Hi Almeida,
Really grateful for your sharing, even though it's already 9 years ago. It's never too late to express the appreciation.
It is so beneficial for me.
Thanks.