# SAP ECC Customer Exits by Module: SMOD Enhancements for MM, PP, PM, QM, SD and FI

> Source: https://netray.co/tools/sap-ecc-customer-exits-smod-by-module-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Lookup table of widely used SMOD enhancements on SAP ECC 6.0 by module, with transactions, components and typical use, plus how to find the exit for any transaction.

## Category

sap

## Erp

SAP ECC 6.0

## Audience

- ABAP developer
- SAP functional consultant
- SAP technical architect

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Enhancement (SMOD)

**Key:** enh

**Type:** text

#### Module

**Key:** module

**Type:** text

#### Transactions

**Key:** tcode

**Type:** text

#### Description

**Key:** desc

**Type:** text

#### Components

**Key:** comp

**Type:** text

#### Typical use

**Key:** use

**Type:** text

**Rows:**

**Enh:** MM06E005

**Module:** MM

**Tcode:** ME21N, ME22N, ME23N, ME31K, ME31L

**Desc:** Customer fields in purchasing document

**Comp:** Function exits EXIT_SAPMM06E_006 to _009, _012, _013, _016 to _018; subscreens SAPLXM06 0101 (header), 0111 (item); CI_EKKODB, CI_EKPODB

**Use:** Add Z fields to PO header or item with a custom tab

**Enh:** MEREQ001

**Module:** MM

**Tcode:** ME51N, ME52N, ME53N

**Desc:** Customers' own data in purchase requisition

**Comp:** EXIT_SAPLMEREQ_* function exits; CI_EBANDB; subscreen SAPLXM02 0111

**Use:** Custom tab and fields on the requisition item

**Enh:** M06B0001

**Module:** MM

**Tcode:** ME51N, ME54N

**Desc:** Role determination for release of requisitions

**Comp:** Function exit

**Use:** Workflow agent determination for PR release

**Enh:** M06B0002

**Module:** MM

**Tcode:** ME51N, ME52N

**Desc:** Changes to communication structure for requisition release

**Comp:** Function exit; communication structure CEBAN (extend with an append structure)

**Use:** Release strategy by a custom characteristic, e.g. total value of all items or a Z field

**Enh:** M06E0004

**Module:** MM

**Tcode:** ME21N, ME22N, ME28, ME29N

**Desc:** Changes to communication structure for release of purchasing document

**Comp:** Function exit; structure CEKKO

**Use:** PO release strategy by a derived value such as a Z cost center group

**Enh:** M06E0005

**Module:** MM

**Tcode:** ME28, ME29N

**Desc:** Role determination for release of purchasing documents

**Comp:** Function exit

**Use:** Workflow agent determination for PO release

**Enh:** MM06E003

**Module:** MM

**Tcode:** ME21N, ME31K, ME31L

**Desc:** Number range and document number

**Comp:** Function exits

**Use:** Choose a number range by plant or purchasing org

**Enh:** MM06E004

**Module:** MM

**Tcode:** ME21N, ME22N

**Desc:** Control import data screens in purchase order

**Comp:** Function exits

**Use:** Control foreign trade import data screens

**Enh:** ME590001

**Module:** MM

**Tcode:** ME59, ME59N

**Desc:** Grouping of requisitions for PO split in ME59

**Comp:** Function exit

**Use:** Split automatic POs by a custom criterion

**Enh:** MEVME001

**Module:** MM

**Tcode:** MIGO, MB01

**Desc:** GR default quantity calculation and over/underdelivery tolerance

**Comp:** Function exits

**Use:** Custom proposed GR quantity or tolerance check

**Enh:** MBCF0002

**Module:** MM-IM

**Tcode:** MIGO, MB1A, MB1B, MB1C

**Desc:** Customer function exit: segment text in material document item

**Comp:** EXIT_SAPMM07M_001

**Use:** Default MSEG-SGTXT item text from other data

**Enh:** MB_CF001

**Module:** MM-IM

**Tcode:** MIGO and all goods movements

**Desc:** Customer function exit when updating a material document

**Comp:** EXIT_SAPLMBMB_001 (update task)

**Use:** Write Z tables with the posted material document; no COMMIT

**Enh:** LMR1M001

**Module:** MM-IV

**Tcode:** MIRO, MIR7

**Desc:** User exits in Logistics Invoice Verification

**Comp:** Function exits

**Use:** Custom checks or defaults during invoice entry

**Enh:** LMR1M003

**Module:** MM-IV

**Tcode:** MIRO

**Desc:** Number assignment in Logistics Invoice Verification

**Comp:** Function exit

**Use:** Own number range logic for invoice documents

**Enh:** LMR1M005

**Module:** MM-IV

**Tcode:** MIR7, MRBP

**Desc:** Logistics Invoice Verification: release parked document

**Comp:** Function exit

**Use:** Control release of parked invoices

**Enh:** MGA00001

**Module:** MM / LO-MD

**Tcode:** MM01, MM02

**Desc:** Material master (industry): checks and enhancements

**Comp:** EXIT_SAPLMGMU_001

**Use:** Validate material master fields on save, e.g. mandatory MRP fields by material type

**Enh:** MGA00002

**Module:** MM / LO-MD

**Tcode:** MM01

**Desc:** Material master (industry): number assignment

**Comp:** Function exit

**Use:** Build or check material numbers by type

**Enh:** PPCO0007

**Module:** PP

**Tcode:** CO01, CO02

**Desc:** Exit when saving production order

**Comp:** EXIT_SAPLCOZV_001

**Use:** Checks or Z table updates when a production order is saved

**Enh:** COZF0001

**Module:** PP

**Tcode:** CO01, CO02

**Desc:** Change purchase requisition for externally processed operation

**Comp:** Function exit

**Use:** Set purchasing group or vendor on PRs from external operations

**Enh:** COZF0002

**Module:** PP

**Tcode:** CO01, CO02

**Desc:** Change purchase requisition for externally procured component

**Comp:** Function exit

**Use:** Adjust PRs created for non-stock components

**Enh:** CONFPP05

**Module:** PP

**Tcode:** CO11N, CO15

**Desc:** PP order confirmation: customer specific enhancements when saving

**Comp:** Function exit

**Use:** Checks or Z updates at confirmation save

**Enh:** IWO10009

**Module:** PM

**Tcode:** IW31, IW32

**Desc:** PM order: customer check for save event

**Comp:** EXIT_SAPLCOIH_009

**Use:** Block save of maintenance orders missing data such as PM activity type

**Enh:** IWO10002

**Module:** PM

**Tcode:** IW31, IW32

**Desc:** PM maintenance order: customer check for order release

**Comp:** Function exit

**Use:** Prevent release until checks pass

**Enh:** QQMA0014

**Module:** QM / PM

**Tcode:** QM01, QM02, IW21, IW22

**Desc:** Checks before saving a notification

**Comp:** EXIT_SAPMIWO0_020

**Use:** Mandatory damage or cause codes before save

**Enh:** V45A0001

**Module:** SD

**Tcode:** VA01, VA02

**Desc:** Determine alternative materials for product selection

**Comp:** Function exit

**Use:** Custom product substitution logic

**Enh:** V45A0002

**Module:** SD

**Tcode:** VA01

**Desc:** Predefine sold-to party in sales document

**Comp:** Function exit

**Use:** Default sold-to from user or terminal

**Enh:** V60A0001

**Module:** SD

**Tcode:** VF01, VF04

**Desc:** Customer functions in the billing document

**Comp:** Function exits EXIT_SAPLV60A_*

**Use:** Changes during billing document creation

**Enh:** V61A0001

**Module:** SD

**Tcode:** VA01, VF01 (pricing)

**Desc:** Customer enhancement: pricing

**Comp:** EXIT_SAPLV61A_001

**Use:** Exclude or modify conditions during pricing

**Enh:** SDVFX001

**Module:** SD / FI

**Tcode:** VF01, VFX3

**Desc:** User exit header line in delivery to accounting

**Comp:** EXIT_SAPLV60B_001

**Use:** Change accounting document header data from billing

**Enh:** SAPLF051

**Module:** FI

**Tcode:** FB01, FBV0, FB60

**Desc:** Workflow for FI (pre-capture, release for payment)

**Comp:** Function exits

**Use:** Parked document and payment release workflow logic

**Enh:** FEDI0001

**Module:** FI

**Tcode:** IDoc inbound/outbound for FI

**Desc:** Function exits for EDI in FI

**Comp:** Function exits

**Use:** Custom segments in FI EDI processing

**Notes:** Component names are listed only where they are widely documented; open the enhancement in SMOD > Components to see the full list on your release. Activate an exit by assigning the enhancement to a project in CMOD and activating the project.

## Content

**Intro:** A searchable list of commonly used SMOD customer exits on SAP ECC 6.0, grouped by MM, PP, PM, QM, SD and FI, with the transactions they affect and their components. Use it to shortlist the exit, then confirm the components in SMOD before creating a CMOD project.

**Sections:**

#### How to use it

**Body:** Filter by module or transaction code. The Components column tells you what you will implement: a function exit (EXIT_<program>_<nnn>, whose Z include ZX... you code), a screen exit (a subscreen in a SAPLX... function group) or a table include (CI_...). Once you have a candidate, open it in SMOD, read the documentation, then create a project in CMOD, assign the enhancement, code the ZX include and activate the project. Exits do nothing until the CMOD project is active, which is the first thing to check when an exit seems not to fire.

#### Finding the exit for any transaction

**Body:** The reliable manual route: in SE93 find the program behind the transaction (also in table TSTC), in SE38 or SE80 note the program's package, then in SMOD use F4 > Information system and search enhancements by that package. In code, search the program for CALL CUSTOMER-FUNCTION to see each exit number in context. Table MODSAP lists components per enhancement, MODSAPT holds the texts, and MODACT shows which CMOD project uses an enhancement. A breakpoint on the CALL CUSTOMER-FUNCTION statement in the debugger confirms the exit is reached for your scenario.

**Bullets:**

- SE93 or TSTC: transaction to program
- TADIR: program to package (DEVCLASS)
- SMOD F4 by package, or MODSAP by MEMBER
- CMOD: project, assignment, activation

#### Worked example: PR release by a custom field

**Body:** A plant wants requisitions over a threshold to need an extra approval only when the Z field ZZCAPEX on EBAN is set. Add ZZCAPEX to communication structure CEBAN with an append structure, create a characteristic on CEBAN-ZZCAPEX, then implement M06B0002, copying the EBAN value into the communication structure. Add the characteristic to the release class (CL20N / CL24N) and the strategies in SPRO. M06E0004 does the same for purchase orders with CEKKO. For PO custom tabs, MM06E005 with CI_EKKODB and CI_EKPODB is the standard route.

#### Version notes and gotchas

**Body:** On ECC 6.0 many SMOD exits have BAdI successors: ME_PROCESS_PO_CUST for purchase order logic, MB_DOCUMENT_BADI next to MB_CF001, WORKORDER_UPDATE next to the PPCO and IWO10 exits. Both can be active, so check both when tracing behaviour. Function exits run in the calling program's context; MB_CF001 runs in the update task, so no dialog messages and no COMMIT. A CMOD project with several enhancements activates or deactivates as a unit, which can surprise teams that transport one exit at a time.

**Cta:** If you want developers to ask your ECC system which exits are active and what the ZX includes do, privately on your own servers, we can build that.

**Faq:**

#### What is the user exit for a purchase order in SAP?

**Answer:** MM06E005 (customer fields in purchasing document) is the main one for custom PO header and item fields and tabs in ME21N. MM06E003 handles number ranges and M06E0004 the release strategy communication structure CEKKO. On ECC 6.0, BAdI ME_PROCESS_PO_CUST is often the better choice for checks and field changes.

#### Which user exits support PR release strategy?

**Answer:** M06B0002 lets you change the communication structure CEBAN used by requisition release strategies, so a custom characteristic can drive strategy determination. M06B0001 handles role determination for release workflow. The PO equivalents are M06E0004 (CEKKO) and M06E0005.

#### What is the user exit for the material master?

**Answer:** MGA00001 (material master industry: checks and enhancements) with function exit EXIT_SAPLMGMU_001 is the usual exit for validations at save in MM01 and MM02. MGA00002 covers number assignment. BAdI BADI_MATERIAL_CHECK is the BAdI alternative for checks.

#### How do I check if a user exit is active?

**Answer:** In CMOD, display the project that contains the enhancement and check its status is active; table MODATTR holds project attributes and MODACT maps projects to enhancements. Also check the ZX include actually has code. Set a breakpoint at the CALL CUSTOMER-FUNCTION statement to confirm it is reached.

## Search terms

sap user exit for purchase order, sap user exits for pr release strategy, sap user exit for material master, sap pm order user exit, sap qm user exits, sap user exit for invoice processing, smod enhancement list, mm06e005 user exit

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
