SAP User Exit Tables, BAdI Tables and Enhancement T-Codes
A lookup table of the transactions, tables and classes that hold SAP ECC 6.0 enhancement data: customer exits (SMOD/CMOD), classic BAdIs, kernel BAdIs and enhancement implementations. Use it to find an exit for a transaction or to audit what is active in a system.
| Object | Type | What it holds or does | Key fields or usage | Typical query |
|---|---|---|---|---|
SMOD | T-code | Display SAP enhancements (customer exits) and their components | Enhancement name, Components button | Which function exits belong to MM06E005? |
CMOD | T-code | Create, assign and activate customer exit projects | Project, Enhancement assignments, Activate | Is our PO exit project active? |
SE18 | T-code | BAdI Builder: display BAdI definitions and enhancement spots | Definition name or enhancement spot; interface, multiple use, filter | Is ME_PROCESS_PO_CUST multiple use? |
SE19 | T-code | Create and display BAdI implementations | Classic or new implementation name | Which implementations exist for MB_MIGO_BADI? |
SE20 | T-code | Enhancement Builder for enhancement spots and implementations | Enhancement spot, enhancement implementation | What is inside ENHO implementation Z_ENH_...? |
SE80 | T-code | Object Navigator; packages show exits, BAdIs and enhancement implementations | Package view | Which enhancements are in our Z package? |
SE84 | T-code | Repository Information System including Enhancements > Customer exits and Business Add-ins | Search by package or name | Find BAdIs in package ME |
SPAU_ENH | T-code | Adjust enhancements after upgrade or support package | Enhancement implementations to adjust | Which enhancement implementations need adjustment after the EHP? |
SE93 / TSTC | T-code / Table | Transaction to program mapping | TSTC: TCODE, PGMNA | Program behind VA01 |
MODSAP | Table | SAP enhancements and their components | NAME (enhancement), TYP (E function exit, S screen, T table, C GUI code), MEMBER (component) | Which enhancement contains EXIT_SAPMM06E_012? |
MODSAPT | Table | Short texts of SAP enhancements | SPRSL, NAME, MODTEXT | Search enhancement descriptions by keyword |
MODACT | Table | Assignment of enhancements to CMOD projects | NAME (project), MEMBER (enhancement) | Which project uses MM06E005? |
MODATTR | Table | Attributes of CMOD projects including status | NAME (project), STATUS, CNAM, UNAM, UDAT | List active projects and who last changed them |
TFDIR | Table | Function module directory | FUNCNAME, PNAME (function group program), INCLUDE | Which function group program holds EXIT_SAPLMGMU_001? |
TADIR | Table | Object directory: package and owner of repository objects | PGMID, OBJECT (e.g. SMOD, CMOD, SXSD, SXCI, ENHO, ENHS), OBJ_NAME, DEVCLASS | All CMOD projects and BAdI implementations in Z packages |
SXS_ATTR | Table | Classic BAdI definitions: attributes | EXIT_NAME, MLTP_USE (multiple use), FLT_TYPE (filter), DEVCLASS | Classic BAdIs in a package |
SXS_INTER | Table | Classic BAdI definition to interface | EXIT_NAME, INTER_NAME | Interface of a BAdI |
SXC_EXIT | Table | Classic BAdI implementation to definition | IMP_NAME, EXIT_NAME, FLT_VAL | Implementations of MB_DOCUMENT_BADI |
SXC_ATTR | Table | Classic BAdI implementation attributes | IMP_NAME, ACTIVE, UNAME, ADATE | Is implementation ZMB_DOC active? |
BADIIMPL_ENH | Table | New (kernel) BAdI implementations and runtime status | ENHNAME, BADI_IMPL, ACTIVE, SPOTNAME, BADI_NAME | Active implementations of a new BAdI |
ENHHEADER | Table | Enhancement implementation and spot headers | ENHNAME, VERSION, ENHTOOLTYPE | All enhancement implementations by tool type |
ENHOBJ | Table | Objects enhanced by an enhancement implementation | ENHNAME, VERSION, OBJ_TYPE, OBJ_NAME | Which implicit enhancements touch SAPMV45A? |
CL_EXITHANDLER | Class | Classic BAdI factory; GET_INSTANCE is called for every classic BAdI | Method GET_INSTANCE, parameter EXIT_NAME | Breakpoint to list BAdIs a transaction calls |
Tables are client-independent repository tables except where noted in SE11. Read them with SE16N or SE16 in display only. Use version A (active) when a table has a VERSION field.
Get an enhancement inventory before your upgrade
Send us extracts of MODATTR, SXC_ATTR and ENHHEADER and we will return a categorised inventory with S/4HANA relevance notes.
Optional. The tool and every export work without this. No spam.
How to use it
Search by object name or by the question you have. The tables let you answer audit questions without opening each object: MODATTR and MODACT for CMOD projects, SXC_ATTR and SXC_EXIT for classic BAdI implementations, BADIIMPL_ENH, ENHHEADER and ENHOBJ for Enhancement Framework objects. The Typical query column suggests what to put into SE16N. Export the list to Excel to use as an audit worksheet.
Finding the exits for a transaction
Start in TSTC with the transaction to get the program (PGMNA). In TADIR, read the program's package (DEVCLASS) with PGMID R3TR and OBJECT PROG. Then search SMOD by that package (SMOD F4 > Information system) and query SXS_ATTR with DEVCLASS equal to the package for classic BAdIs. MODSAP with MEMBER like EXIT_<program>* gives function exits whose names contain the program. Finally confirm at runtime: a breakpoint at CALL CUSTOMER-FUNCTION and at CL_EXITHANDLER=>GET_INSTANCE shows what really runs for your scenario.
- TSTC: TCODE to PGMNA
- TADIR: OBJ_NAME to DEVCLASS
- MODSAP or SMOD: enhancements by package or exit name
- SXS_ATTR: classic BAdIs by DEVCLASS
Worked example: auditing active exits
For an upgrade assessment, list every active CMOD project from MODATTR (field STATUS holds the activation status), join MODACT on NAME to get enhancements, then MODSAP with NAME equal to MODACT-MEMBER to get components. For BAdIs, list SXC_ATTR with ACTIVE = 'X', join SXC_EXIT on IMP_NAME to get the definition. For new BAdIs, BADIIMPL_ENH with ACTIVE = 'X' gives implementation, spot and BAdI. TADIR with OBJECT ENHO and a Z package lists explicit and implicit enhancement implementations to check in SPAU_ENH.
Gotchas
When joining MODACT to MODSAP, match MODACT-MEMBER to MODSAP-NAME and skip rows with an empty MEMBER. Classic BAdI names are 20 characters (SXS_ATTR-EXIT_NAME), new BAdI names are 30 characters. SXC_ATTR-ACTIVE marks the implementation active but filter values in SXC_EXIT still decide whether it runs. Implicit enhancements (ENHO objects in SAP programs) do not appear in SMOD or SE18, only in ENHHEADER, ENHOBJ and SE20, so an audit that only checks CMOD and SE19 misses them.
Frequently Asked Questions
Which table stores user exits in SAP?
MODSAP holds SAP enhancements and their components (function exits, screens, tables, GUI codes), with texts in MODSAPT. Customer projects are in MODATTR (attributes and status) and MODACT (which enhancements each project contains). TFDIR maps each EXIT_ function module to its function group program.
Which table stores BAdIs in SAP?
Classic BAdI definitions are in SXS_ATTR, with the interface in SXS_INTER. Classic implementations are in SXC_ATTR (with the ACTIVE flag) and SXC_EXIT (implementation to definition, with filter value). New BAdI implementations are in BADIIMPL_ENH, and enhancement implementations in ENHHEADER and ENHOBJ.
What is the t-code for user exits?
SMOD displays SAP enhancements and their components; CMOD creates the project where you assign and activate them. SE84 searches enhancements by package. SE38 or SE80 is used to find CALL CUSTOMER-FUNCTION statements in the program.
What is the t-code for BAdI?
SE18 displays BAdI definitions and enhancement spots, SE19 creates and shows implementations, and SE20 is the Enhancement Builder for spots and implementations. SPAU_ENH adjusts enhancements after an upgrade.
If you want an assistant that answers questions like these against your ECC repository on your own servers, we can build it.
Related Tools
SAP ECC Customer Exits (SMOD Enhancements) by Module Reference
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.
SAPSAP ECC Classic BAdI Definitions Reference (MIGO, ME21N, MIRO, Deliveries, PM Orders)
Reference table of widely used BAdI definitions on SAP ECC 6.0 with interface, key methods, transactions and typical use, plus how to find a BAdI and where error messages are allowed.
SAPSAP ECC SD User Exit Forms Reference (MV45AFZZ, RV60AFZZ, MV50AFZ1)
Lookup table of the classic SD user exit FORM routines for sales orders, deliveries and billing on SAP ECC 6.0: include, transaction, when it fires, structures available and the usual gotcha.
SAPSAP ECC Background Job Tables Reference (TBTCO, TBTCP, Job Status Codes)
Reference of the tables behind SM37 on SAP ECC 6.0: job header, steps, schedules, events, spool and variants, with joins, plus the TBTCO-STATUS values.
More Developer Tools tools
See all- SAP ECC Data Dictionary and Repository Tables Reference (DD02L, DD03L, T100, E070, TSTC)
- SAP ECC ABAP Runtime Errors (ST22 Dumps) and Error Log Transactions Reference
- SAP ECC Background Job History ABAP Query Generator (TBTCO + TBTCP)
- SAP ECC Background Job Creation ABAP Generator (JOB_OPEN, SUBMIT, JOB_CLOSE)
- SAP ECC IDoc Segment Data Reader ABAP Generator (EDIDC, EDID4, EDIDS)
- SAP ECC Custom Inbound IDoc Function Module Skeleton Generator
- SAP ECC BAPI_SALESORDER_CHANGE ABAP Generator
- SAP ECC BAPI_PO_CHANGE ABAP Generator
- SAP ECC BAPI_MATERIAL_SAVEDATA Material Creation ABAP Generator
Keep exploring
Free tools
- SAP ECC Customer Exits (SMOD Enhancements) by Module ReferenceLookup 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.
- SAP ECC User Exit (CMOD/SMOD) Implementation ChecklistFind the right exit, decide between customer exit, form user exit, BAdI or BTE, then implement, activate, transport and test a CMOD project in SAP ECC.
- SAP PM Maintenance Order Types, Tables and Transactions ReferenceSearchable lookup of SAP plant maintenance order types, order transactions, order tables and system statuses.
ERP fixes and how-tos
- SAP PP and MM Enhancement Examples: User Exits, BAdIs and Enhancement SpotsPractical SAP PP and MM enhancement examples: user exits, BAdIs such as ME_PROCESS_PO_CUST and WORKORDER_UPDATE, how to find them and a PO validation sketch.
- SAP QM QA32: user exits, enhancements and standard lot reportsOptions to customise the QA32 inspection lot list, how to find user exits and BAdIs, and the standard SAP QM lot and results reports you can use instead.
Integrations
- How to automate email into SAP ECC 6.0Turn inbound emails into SAP ECC 6.0 transactions: customer POs into sales orders, supplier confirmations, RFQs and invoices, with review and BAPI posting.
- How to connect Power BI to SAP ECC 6.0Connect Power BI to SAP ECC 6.0: SAP ERP connector, BW and warehouse options, on-prem data gateway, key manufacturing dashboards, and adding natural-language Q&A.