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