BAdIs and Exits for production and process orders
As I see daily on the Manufacturing PP space threads asking for exits or BAdis for specific scenarios, I decided to create this list with the most important user-exits and BAdIs that are available for production and process orders (if you are looking for BAdIs for MRP, check the blog BAdIs for MRP).
Below you can find the main BAdIs for production and process orders and the methods available for each one:
- WORKORDER_UPDATE: This BAdI is called whenever the order is changed, for example, on transaction CO02 or during capacity leveling
- ARCHIVE_OBJECTS – Archiving Additional Objects
- AT_DELETION_FROM_DATABASE – Order is deleted from the database (archiving)
- AT_SAVE – Save Order Time: Dialog
- CMTS_CHECK Check – Configurable Warehouse Order Allowed
- INITIALIZE – Initialization when Importing/Creating Order
- IN_UPDATE – Save Order Time: Update
- NUMBER_SWITCH – Swap Tempory Order Numbers with Final Order Numbers
- BEFORE_UPDATE – Save Order Time: Before Calling Update
- AT_RELEASE – Release Order Time: After SAP Checks, Before Release
- REORG_STATUS_ACT_CHECK – Reorganization of Order: Status Check
- REORG_STATUS_ACTIVATE – Reorganization of Order: Follow-Up Action After Status Set
- REORG_STATUS_REVOKE – Reorganization of Order: Follow-Up Action After Status Reset
- WORKORDER_CONFIRM: This BAdI is called during the order confirmation for additional checks.
- AT_SAVE – Confirm Order, Time: Dialog
- BEFORE_UPDATE -Confirm Order, Time: Before Update
- IN_UPDATE – Confirm Order, Time: Update
- AT_CANCEL_CHECK – Confirm Order, Time: Check if Cancellation is Possible
- INDIVIDUAL_CAPACITY – Confirm Order: Preassignment Individual Capacity
- WORKORDER_GOODSMVT: This BAdI can be used to manipulate goods movements that are posted during an order confirmation
- BACKFLUSH – Confirmation: Backflush
- GOODS_RECEIPT – Confirmation: Automatic Goods Receipt
- MANUAL_GOODS_RECEIPT – Manual Goods Receipt for Order
- IM_CALLED – Time after Inventory Management is Called
- PICKLIST – Pick list
- GM_SCREEN_LINE_CHECK – Goods Movement Overview: Line Check
- GM_SCREEN_OKCODE_CHECK – Goods Movement Overview: OK Code Check
- COGI_AUTHORITY_CHECK – Postprocessing: Authorization Check
- COGI_POST – Postprocessing of Incorrect Goods Movements
- COMPLETE_GOODSMOVEMENT – Confirmation: Addition of User Input on Goods Movement
- GM_WIPBATCH_PROPOSE – Goods Movement WIP-Batch: Proposal
- GM_WIPBATCH_CHECK – Goods Movement WIP-Batch: Line Check
- WORKORDER_REWORK: This BAdI is used on a rework scenario, in order to transfer outwards an additional yield when entering a backflush for PP orders. This is added
- GET_REWORKED_QUANTITY – Returns the Reworked Yield
- WORKORDER_INFOSYSTEM: This Business Add-In can be used to fill additional (customer-specific) fields in the order info system (transactions COOIS, COOISPI, COHV…) for production orders and process orders.
- ORDER_TABLES_MODIFY – Processing of order tables
- PLANNED_ORDER_TABLES_MODIFY – Processing of planned order tables
- AT_SELECTION_SCREEN – Is called in the WBS for the PPIO_ENTRY selection screen
- AT_OUTPUT_SCREEN – Is called for every action on the output list
- OVERVIEW_MODIFY – Processing of the object overview
- TABLES_MODIFY_LAY – Processing of Order and Planned Order Tables
- DETAIL_LIST_LAY – Process Detail Lists
- OVERVIEW_TREE_LAY – Process Layout-Based Object Overview
- AT_OUTPUT_SCREEN_LAY – Call When Action is Carried Out on the Output List
- WORKORDER_DOCLINKS: This BAdI can be used to manipulate the order document links.
- MAINTAIN_DOCLINKS – Document Link Maintenance
- WORKORDER_PISHEET: This BAdI enables you to discard browser-based PI sheets directly from the process order.
- PI_SHEET_DISCARD – Discard PI Sheet
- PI_SHEET_DISCARD_DOWN – Discard PI Sheet/Download to External System
- WORKORDER_CONFIRM_CUST_SUBSCR: This BAdI enables you to change the subscreen for customer-specific fields in the time ticket (single-screen entry CO11N/COR6N and in the order header confirmation CO15/CORK).
-
GET_SUBQTY_LAYOUTS – Determine Name of Existing Quantity Layouts
-
CHECK_SUBQTY_LAYOUT – Check for Layout for Existence of Subdivided Quantities
-
GET_CONF_CUSTOMIZING – Customizing Confirmation Parameters
-
CHECK_SUBQTY_POSTED – Check Whether Subdivided Quantities Confirmed
-
PUT_DATA_TO_QM_SUBSCR – Transfer Data to Screen Enhancement for QM
-
PUT_OK_CODE_TO_SUBSCR – Transfer OK Code to Screen Enhancement
-
PUT_DATA_TO_SUBSCR – Transfer Data to Screen Enhancement
-
GET_DATA_FROM_SUBSCR – Adopt Data from Screen Enhancement
-
Here are the user-exits available for PP order processing:
- PPCO0001
- EXIT_SAPLCOBT_001 – User Exit PP Order Processing (Non-Order-Type-Specific)
- PPCO0002
- EXIT_SAPLCORE_001 Set deletion flag
- EXIT_SAPLCORE_002 Set deletion indicator
- EXIT_SAPLCORE_003 Technically complete
- EXIT_SAPLCORO_001 Check exit for function “Set deletion flag”
- EXIT_SAPLCORO_002 Check exit for function “Set deletion indicator”
- PPCO0003
- EXIT_SAPLCOEXT_001 – Check Exit for Production Order Change from Assembly Order
- PPCO0004
- EXIT_SAPLCORE_004 – Mass Processing of Production Orders: General Sort Exit
- PPCO0005
- EXIT_SAPLCOSD_001 – Storage Location/Backflushing on Order Creation
- PPCO0006
- EXIT_SAPLCOZF_003 – Exit for Predefining Fields in the Order Header
- PPCO0007
- EXIT_SAPLCOZV_001 – User Exit for Checking or Changing Header Fields During Order-Type-Specific
- PPCO0008
- EXIT_SAPLCOMK_006 – Enhancement in the adding and changing of components
- PPCO0009
- EXIT_SAPLCOSF_001 – Customer Exit: Goods Receipt for Production Order
- PPCO0010
- EXIT_SAPLCOCOM10_001 – Enhancement in make-to-order production – Unit of measure
- PPCO0012 – Production Order: Display/Change Order Header Data
- EXIT_SAPLCOKO1_001 – Transfer of Order Data to Customer Enhancement
- EXIT_SAPLCOKO1_002 – Transfer of Data Changes from Customer Enhancement
- PPCO0013
- EXIT_SAPLCOMK_008 – Change Priorities for Selection Criteria for Batch Determination
- PPCO0014
- EXIT_SAPLNWDB_001 – Select process orders for external relationships
- PPCO0015
- EXIT_SAPLCOSD_002 – Customer Exit: Additional Attributes Document Link
- PPCO0016
- EXIT_SAPLCODM_001 – User Exit: Generate Document Links from Master Data
- PPCO0017
- EXIT_SAPLCODD_001 – User Exit: Document Links Dialog Processing
- PPCO0018
- EXIT_SAPLCOKO1_004 – Check whether changes to order header/item are allowed in th
- PPCO0019
- EXIT_SAPLCOVG_001 – User Exit for Checks of Operation Changes in the Production
- PPCO0020 – Process order: Display/change order header data
- EXIT_SAPLCOKO_005 – Transfer of Order Data to Customer Enhancement
- EXIT_SAPLCOKO_006 – Transfer of Data Changes from Customer Enhancement
- PPCO0021
- EXIT_SAPLCOZR_003 – Release Control for Automatic Batch Determination: Handling
- PPCO0022
- EXIT_SAPLCOTX_001 – Determination of Production Memo
- PPCO0023
- EXIT_SAPLCOMK_014 – Checks Changes to Order Components
User-exits called during the process order confirmation:
- CONF0001 Enhancements in order confirmation
- EXIT_SAPLCORU_001 – Order Confirmation: Deactivation of Functions
- CONFPI01
- EXIT_SAPLCORF_401 – Process order conf.: Calculate cust.specific default values
- CONFPI02
- EXIT_SAPLCORF_402 – Process Order Confirmation: Customer-Specific Input Check Wi
- CONFPI03
- EXIT_SAPLCORF_403 – Process Order Conf.: Customer-Specific Checks after Operation
- CONFPI04
- EXIT_SAPLCORF_404 – Process Order Confirmation: Customer-Specific Input Checks
- CONFPI05
- EXIT_SAPLCORF_405 – Process order conf.: Cust. spec. enhancements when saving
- CONFPI06
- EXIT_SAPLCORF_406 – Process order confirmation: Actual data transfer
User-exits called during the process order confirmation:
- CONFPP01
- EXIT_SAPLCORF_101 – PP order conf.: Determine customer specific default values
- CONFPP02
- EXIT_SAPLCORF_102 – PP order conf.: Customer specific input checks 1
- CONFPP03
- EXIT_SAPLCORF_103 – PP order conf.: Cust. specific check after op. selection
- CONFPP04
- EXIT_SAPLCORF_104 – PP order conf.: Customer specific input checks 2
- CONFPP05
- EXIT_SAPLCORF_105 – PP order conf.: Customer specific enhancements when saving
- CONFPP06
- EXIT_SAPLCORF_106 – PP Order Confirmations: Actual Data Transfer
- CONFPP07 – Single Screen Entry: Inclusion of User-Defined Subscreen
- EXIT_SAPLCORU_S_100 – Transfer Data from SAPLCORU_S to Customer-Defined Screen
- EXIT_SAPLCORU_S_101 – Return Data from Customer-Defined Screen to SAPLCORU_S
Hi,
Nice work!
Thanks.
Hi Caetano,
Very useful this list!
Thank you for sharing.
Marcos
HI,
Nice topic.
But i am confused to call the badi method,how to implement?
Thanks
Hello Matthew
You must create your own BAdI implementation on transaction SE18, then you can add the code on the method.
BR
Caetano
HI Caetano
Fox example,The BADI WORKORDER_INFOSYSTEM method GET_REWORKED_QUANTITY,there are four parameters,I_ORDER_HEADER、I_OPERATION、I_PREDEC_OPERATION、CH_REWORKED_QUANTITY,the rework order yield how to update the original production order?I don't know what the fields of original production order should be updated.
Can u give same advice?
Thanks
Matthew
Hi Matthew
You can find a detailed documentation about the BAdI on transaction SE18.
If you have further questions, please open a thread describing the issue.
BR
Caetano
Dear Caetano,
I want to create automatic settlement rule while creation process order using tcode COR1, I have tried IWO10027 but its not getting triggered through COR1. Could you please suggest any specific BADI/Enhancement for creation of settlement rule at time of creation of process order using COR1 ?
Regards,
Sagar
Hello Sagar,
What was the solution you finally achieved ?
Regards,
Rohan
hello sir
did u find the solution for that ??
Hi Caetano,
Very useful details. Thank you for collating them here.
regards,
Renald.
Hi,
I am still unable to find how to update qndat via COR6 T-code. Please suggest.
Hi
this is a quite useful list of the user Exits in one place
i was looking in particular for the exit to add components into a PP Order: PPCO0008
many thanks !
I need to change some header data for Production orders when i execute the /SAPAPO/RRP3 transaction i check the conversion indicator an click on SAVE button i need one USER EXIT or method to change data
Nice,thanks a lot.
can anyone please suggest me the user exit by using which we can prohibit the issue of SFG to next higher level production order unless SFG production order is settled.
Hi Almeida,
Really awesome sharing! That's so helpful for ABAPer who wanna work deeper in PP module.
Thanks.
Thanks for your feedback!
Looking for a user exit when doing the goods receipt on the production order. Currently in OBYC, the offset to inventory is one gl account. Client would like to split the material valuation and credit material, labor and overhead based on the standard. Is this possible?