Developer ToolsFree referencePDF, Excel, Word exportSAP ECC 6.0All SAP ECC 6.0 tools

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.

Download:
ObjectTypeWhat it holds or doesKey fields or usageTypical 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.

Was this tool useful?

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.

ArchRay builder
Design the on-prem AI stack for SAP ECC 6.0: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring