# SAP User Exit Tables, BAdI Tables and Enhancement T-Codes

> Source: https://netray.co/tools/sap-ecc-enhancement-tcodes-and-exit-tables-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Lookup table of the transactions, tables and classes used to find, implement and audit customer exits, BAdIs and enhancement implementations on SAP ECC 6.0.

## Category

developer

## Erp

SAP ECC 6.0

## Audience

- ABAP developer
- SAP Basis
- SAP technical auditor

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Object

**Key:** obj

**Type:** text

#### Type

**Key:** type

**Type:** text

#### What it holds or does

**Key:** what

**Type:** text

#### Key fields or usage

**Key:** keys

**Type:** text

#### Typical query

**Key:** query

**Type:** text

**Rows:**

**Obj:** SMOD

**Type:** T-code

**What:** Display SAP enhancements (customer exits) and their components

**Keys:** Enhancement name, Components button

**Query:** Which function exits belong to MM06E005?

**Obj:** CMOD

**Type:** T-code

**What:** Create, assign and activate customer exit projects

**Keys:** Project, Enhancement assignments, Activate

**Query:** Is our PO exit project active?

**Obj:** SE18

**Type:** T-code

**What:** BAdI Builder: display BAdI definitions and enhancement spots

**Keys:** Definition name or enhancement spot; interface, multiple use, filter

**Query:** Is ME_PROCESS_PO_CUST multiple use?

**Obj:** SE19

**Type:** T-code

**What:** Create and display BAdI implementations

**Keys:** Classic or new implementation name

**Query:** Which implementations exist for MB_MIGO_BADI?

**Obj:** SE20

**Type:** T-code

**What:** Enhancement Builder for enhancement spots and implementations

**Keys:** Enhancement spot, enhancement implementation

**Query:** What is inside ENHO implementation Z_ENH_...?

**Obj:** SE80

**Type:** T-code

**What:** Object Navigator; packages show exits, BAdIs and enhancement implementations

**Keys:** Package view

**Query:** Which enhancements are in our Z package?

**Obj:** SE84

**Type:** T-code

**What:** Repository Information System including Enhancements > Customer exits and Business Add-ins

**Keys:** Search by package or name

**Query:** Find BAdIs in package ME

**Obj:** SPAU_ENH

**Type:** T-code

**What:** Adjust enhancements after upgrade or support package

**Keys:** Enhancement implementations to adjust

**Query:** Which enhancement implementations need adjustment after the EHP?

**Obj:** SE93 / TSTC

**Type:** T-code / Table

**What:** Transaction to program mapping

**Keys:** TSTC: TCODE, PGMNA

**Query:** Program behind VA01

**Obj:** MODSAP

**Type:** Table

**What:** SAP enhancements and their components

**Keys:** NAME (enhancement), TYP (E function exit, S screen, T table, C GUI code), MEMBER (component)

**Query:** Which enhancement contains EXIT_SAPMM06E_012?

**Obj:** MODSAPT

**Type:** Table

**What:** Short texts of SAP enhancements

**Keys:** SPRSL, NAME, MODTEXT

**Query:** Search enhancement descriptions by keyword

**Obj:** MODACT

**Type:** Table

**What:** Assignment of enhancements to CMOD projects

**Keys:** NAME (project), MEMBER (enhancement)

**Query:** Which project uses MM06E005?

**Obj:** MODATTR

**Type:** Table

**What:** Attributes of CMOD projects including status

**Keys:** NAME (project), STATUS, CNAM, UNAM, UDAT

**Query:** List active projects and who last changed them

**Obj:** TFDIR

**Type:** Table

**What:** Function module directory

**Keys:** FUNCNAME, PNAME (function group program), INCLUDE

**Query:** Which function group program holds EXIT_SAPLMGMU_001?

**Obj:** TADIR

**Type:** Table

**What:** Object directory: package and owner of repository objects

**Keys:** PGMID, OBJECT (e.g. SMOD, CMOD, SXSD, SXCI, ENHO, ENHS), OBJ_NAME, DEVCLASS

**Query:** All CMOD projects and BAdI implementations in Z packages

**Obj:** SXS_ATTR

**Type:** Table

**What:** Classic BAdI definitions: attributes

**Keys:** EXIT_NAME, MLTP_USE (multiple use), FLT_TYPE (filter), DEVCLASS

**Query:** Classic BAdIs in a package

**Obj:** SXS_INTER

**Type:** Table

**What:** Classic BAdI definition to interface

**Keys:** EXIT_NAME, INTER_NAME

**Query:** Interface of a BAdI

**Obj:** SXC_EXIT

**Type:** Table

**What:** Classic BAdI implementation to definition

**Keys:** IMP_NAME, EXIT_NAME, FLT_VAL

**Query:** Implementations of MB_DOCUMENT_BADI

**Obj:** SXC_ATTR

**Type:** Table

**What:** Classic BAdI implementation attributes

**Keys:** IMP_NAME, ACTIVE, UNAME, ADATE

**Query:** Is implementation ZMB_DOC active?

**Obj:** BADIIMPL_ENH

**Type:** Table

**What:** New (kernel) BAdI implementations and runtime status

**Keys:** ENHNAME, BADI_IMPL, ACTIVE, SPOTNAME, BADI_NAME

**Query:** Active implementations of a new BAdI

**Obj:** ENHHEADER

**Type:** Table

**What:** Enhancement implementation and spot headers

**Keys:** ENHNAME, VERSION, ENHTOOLTYPE

**Query:** All enhancement implementations by tool type

**Obj:** ENHOBJ

**Type:** Table

**What:** Objects enhanced by an enhancement implementation

**Keys:** ENHNAME, VERSION, OBJ_TYPE, OBJ_NAME

**Query:** Which implicit enhancements touch SAPMV45A?

**Obj:** CL_EXITHANDLER

**Type:** Class

**What:** Classic BAdI factory; GET_INSTANCE is called for every classic BAdI

**Keys:** Method GET_INSTANCE, parameter EXIT_NAME

**Query:** Breakpoint to list BAdIs a transaction calls

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use it

**Body:** 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

**Body:** 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.

**Bullets:**

- 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

**Body:** 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

**Body:** 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.

**Cta:** If you want an assistant that answers questions like these against your ECC repository on your own servers, we can build it.

**Faq:**

#### Which table stores user exits in SAP?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

user exit table in sap, table to check user exit in sap, badi table in sap, sap user exits tcode, t code for user exit in sap, sap tcode for badi, modsap table, sxc_exit table

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