SAP Variant Configuration Tables Reference: CABN, KLAH, INOB, AUSP and the BOM Tables
Variant configuration spreads one product model across many tables: characteristics, classes, class assignments, dependencies, variant tables and BOMs. This reference lists the tables you actually query, the key fields, and the one thing worth remembering about each.
| Table | Area | What it holds | Key fields to know | Practical note |
|---|---|---|---|---|
CABN | Characteristics | Characteristic master header | ATINN, ADZHL; ATNAM (name), ATFOR (data type) | ATINN is the internal number used by every other classification table. |
CABNT | Characteristics | Characteristic descriptions | ATINN, ADZHL, SPRAS | Language dependent texts. Join on ATINN to show readable names. |
CAWN | Characteristics | Allowed values of a characteristic | ATINN, ATZHL; ATWRT or ATFLV | ATWRT holds character values, ATFLV numeric values. |
CAWNT | Characteristics | Texts for characteristic values | ATINN, ATZHL, SPRAS | Source of the value descriptions shown in the configuration screen. |
KLAH | Classes | Class header | CLINT (internal), CLASS (name), KLART (class type) | CLINT is the key used by KSML and KSSK. |
SWOR | Classes | Class descriptions and keywords | CLINT, SPRAS, KLPOS | Join to KLAH on CLINT for class text. |
KSML | Classes | Characteristics assigned to a class | CLINT, POSNR, ADZHL; IMERK | IMERK points to the characteristic (ATINN). |
KSSK | Classes | Allocation of objects to classes | OBJEK, MAFID, KLART, CLINT | OBJEK is the internal object number from INOB. |
INOB | Classification | Link between an object (such as a material) and its internal object number | CUOBJ; KLART, OBTAB, OBJEK | OBTAB = MARA for materials. CUOBJ feeds KSSK and AUSP. |
AUSP | Classification | Characteristic values assigned to objects | OBJEK, ATINN, ATZHL, MAFID, KLART | Large table. Always filter by KLART and MAFID when reading it. |
TCLA | Classification | Class type customizing | KLART | Controls what object types a class type allows and whether it is multi-class. |
CUKB | Dependencies | Knowledge base object (dependency) header | KNNUM, ADZHL; KNNAME | KNNAME is the dependency name you see in CU02. Status sits here too. |
CUKBT | Dependencies | Dependency descriptions | KNNUM, ADZHL, SPRAS | Language dependent short text of a dependency. |
CUOB | Dependencies | Allocation of dependencies to objects | KNOBJ, KNNUM | Links a dependency to a characteristic, value, BOM item or operation. |
CUVTAB | Variant tables | Variant table header | VTNAM, VTINT | Structure definition; contents are held in the VALC and VALN tables. |
CUVTAB_FLD | Variant tables | Fields of a variant table | VTINT, field position | Each field ties back to a characteristic. |
CUVTAB_VALC | Variant tables | Character entries of variant tables | VTINT, record number | Read together with CUVTAB_VALN to rebuild a full table row. |
CUVTAB_VALN | Variant tables | Numeric entries of variant tables | VTINT, record number | Numeric field values are stored here, not in VALC. |
MARA | Material | General material data | MATNR; MTART; KZKFG | KZKFG flags a configurable material. |
MARC | Material | Plant data for a material | MATNR, WERKS | MRP and strategy group settings that drive make-to-order configuration. |
MAST | BOM | Material to BOM link | MATNR, WERKS, STLAN, STLNR, STLAL | Entry point from a material to its BOM number and alternative. |
STKO | BOM | BOM header | STLTY, STLNR, STLAL, STKOZ | STLTY is the BOM category, for example M for material BOM. |
STPO | BOM | BOM items | STLTY, STLNR, STLKN, STPOZ; IDNRK, POSNR, MENGE | KNOBJ ties the item to its dependencies. Super BOM selection lives here. |
STAS | BOM | BOM item selection | STLTY, STLNR, STLAL, STLKN, STASZ | Links items to alternatives. Needed when a plain STPO join over-counts. |
PLKO | Routing | Task list (routing) header | PLNTY, PLNNR, PLNAL, ZAEHL | Group counter and plan type identify the routing. |
PLPO | Routing | Task list operations | PLNTY, PLNNR, PLNKN, ZAEHL | Operations can carry dependencies through KNOBJ for configurable routings. |
MAPL | Routing | Material to task list assignment | MATNR, WERKS, PLNTY, PLNNR, PLNAL | Use it to find which routing a configurable material uses. |
DRAW | Documents | Document info record header | DOKAR, DOKNR, DOKVR, DOKTL | Document type, number, version and part. |
DRAD | Documents | Document to object link | DOKAR, DOKNR, DOKVR, DOKTL; DOKOB, OBJKY | Shows which materials or BOMs a document is attached to. |
AENR | Change management | Change master header | AENNR | The engineering change number record; validity dates and status. |
VBAP | Sales | Sales document item | VBELN, POSNR; CUOBJ | CUOBJ is the configuration number of a configured order item. |
Table and field names are from standard SAP ERP and S/4HANA. Always confirm in SE11 on your release. In S/4HANA some tables change length (for example the 40 character material number) and some fields move to compatibility views.
Want a read-only view of your VC data?
Ask for an expert walkthrough of how to query configuration and BOM data safely from your own SAP system.
Optional. The tool and every export work without this. No spam.
How to use the table list
Type a table name or a topic such as dependency or routing into the search box and the list narrows to matching rows. Use the Area column to follow the chain: material (MARA) to object number (INOB) to class (KSSK, KLAH) to characteristic values (AUSP, CABN). Export to Excel to keep a copy in your project workbook. The key fields column shows what you need in a join, so you do not have to open SE11 for each table. Treat it as a map, then confirm exact field lengths on your system.
- Search by table, field or area name
- Follow the chain from MARA through INOB and KSSK to AUSP
- Export to Excel for the project workbook
- Confirm field lengths in SE11 for your release
How the classification tables fit together
A characteristic lives in CABN. A class (KLAH) collects characteristics through KSML. A material is linked to its classification by an INOB row, which produces the internal object number CUOBJ. That number is the OBJEK in KSSK, which assigns the object to a class, and in AUSP, which stores the values. Reading values therefore always takes two steps: find the CUOBJ in INOB, then read AUSP for that object and class type. Texts sit in separate tables such as CABNT and CAWNT and are joined on ATINN.
Common mistakes when reading VC data
The classic error is reading AUSP without a class type filter, which returns values from other object types. Another is joining CABN on ATINN alone and getting duplicates from change numbers, because the key includes ADZHL. For BOMs, joining STPO straight to MAST on the BOM number can double count when alternatives exist, so bring in STKO or STAS. Finally, configured order items keep their values in the configuration store referenced by VBAP-CUOBJ, not in the material classification, so do not expect to find them in AUSP of the material.
- Filter AUSP by KLART and MAFID
- Include ADZHL or filter on the current change state in CABN
- Join STKO or STAS when a BOM has alternatives
- Order configuration is separate from material classification
Frequently Asked Questions
Where are SAP characteristic values stored?
Allowed values of a characteristic are in CAWN, with texts in CAWNT. The values actually assigned to a material or other object are in AUSP, linked through the internal object number from INOB. Do not mix the two: CAWN is the list of options, AUSP is the chosen values.
What is the difference between KLAH and KSML?
KLAH is the class header with the class name and class type. KSML lists the characteristics assigned to that class. KSSK, a third table, lists which objects such as materials are assigned to the class. You join all three to see a class and what is in it.
Which table links a BOM item to its dependencies?
The BOM item in STPO carries a KNOBJ field that points to the dependency allocation. The dependencies themselves are in CUKB with their source code in the knowledge base tables, and the allocation record is in CUOB. In practice most consultants read them through transactions rather than directly.
Are these the same in S/4HANA?
The core classification and BOM tables are largely the same, so existing queries usually still work. Material number fields are longer in S/4HANA, some data moves behind compatibility views, and SAP has added new tables for advanced variant configuration. Always verify in SE11 on your system.
If you need configuration data pulled and explained in plain language from a live SAP system, Netray can set up read-only natural language access that shows the query it ran.
Related Tools
SAP Variant Configuration Transaction Codes
A searchable list of the SAP transaction codes variant configuration and PLM consultants use daily, grouped by characteristic, class, dependency, BOM, routing and change work.
SAPSAP Classification Values ABAP Generator
Enter a material and a class type and get an ABAP snippet that resolves the internal object number and lists every assigned characteristic and value.
SAPSAP BOM Where-Used SQL Generator
Fill in a component, plant and BOM usage to get SQL that lists every parent BOM using it, plus a query for BOM items with dependencies.
SAPSAP BOM Category, Usage and Item Category Codes
A searchable lookup of the coded values consultants meet in BOM and classification work: BOM category, usage, item category, class type and dependency status.