QS23 — Display Selected Set in QM Catalogs
QS23 displays a Selected Set, a curated subset of codes drawn from one or more QM catalog code groups. It is read-only; codes cannot be added, removed, or re-sequenced here. Selected sets are what gets attached to master inspection characteristics, inspection plan characteristics, and notification catalog profiles so that only a restricted list of defect or valuation codes is offered at recording time.
QS23 is the display transaction for a Selected Set in Quality Management catalog maintenance, the curated list of codes pulled from one or more code groups that gets attached to a characteristic or catalog profile so recording screens only offer a restricted code list. The page covers where selected sets sit relative to code groups and codes, what breaks when a code group changes underneath a set, and how to prove a display discrepancy in the underlying data.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,220 words
Purpose
QS23 shows the contents of a Selected Set: the catalog type it belongs to, the code group or groups it draws from, and the specific codes included, each with its short text and status. A Selected Set is not itself a source of codes; it is a filter layer sitting between the raw code group and whatever master data object consumes it, so that a characteristic used at ten work centers can be given ten different narrow views of the same underlying catalog without duplicating codes. The structural fact that causes most confusion is exactly this: a Selected Set does not own the codes it displays, it references them, so a code deleted or blocked in the source code group disappears from every Selected Set built on it, silently, with no warning at the set level.
When it is used
QS23 gets used during audit or troubleshooting of inspection master data, when a consultant needs to confirm exactly which codes a characteristic or usage decision profile is actually offering, without risking an accidental change. It sits downstream of code group and code maintenance and upstream of master inspection characteristics, inspection plan characteristics, and notification catalog profiles. Reached for instead of QS22 when the task is verification rather than maintenance, and instead of the results recording transaction when the question is why a code is missing from a dropdown rather than why a result failed. Also used when handing off a master data investigation to someone else, to capture the exact set contents at a point in time before a change is made in QS22.
How to use it in practice
- Start QS23 and enter the catalog type (defect type, defect location, cause, task, or usage decision, depending on configuration).
- Enter the Selected Set identifier, or use the match code to search by description if the ID is unknown.
- Execute to open the display view, which lists the code group(s) referenced and the individual codes drawn into the set.
- Check the validity period on the set header if codes appear missing; an expired validity hides the set from selection screens even though the codes still exist.
- Cross-check the catalog type shown here against the catalog type expected by the characteristic or profile that references it; a mismatch is the most common reason a set does not appear where expected.
- Exit without saving; QS23 has no update function.
Key data objects
- Code group table (holds the code group definition per catalog type, the parent of every code) - confirms whether the source group still exists and is not blocked.
- Codes table (holds each individual code, its short text, and its blocked/deleted status per code group) - confirms whether a specific code visible in the Selected Set is still active at source.
- Selected Set header table (holds the set ID, catalog type, description, and validity period) - confirms the set itself is not expired or catalog-type mismatched.
- Selected Set assignment table (links the set ID to the specific code group and code combinations included) - confirms which codes were deliberately pulled into the set versus excluded.
How to prove it in the data
Pull the Selected Set header record by set ID and catalog type and note the validity dates and catalog type stored there. Then pull the codes table filtered by catalog type and code group for the group(s) the set references, and compare the code list against what QS23 actually displays. A code present in the codes table but absent from the QS23 display confirms it was never assigned to this set or was removed from the assignment layer; a code present in both but greyed out or unselectable confirms it is blocked at the code level, not at the set level.
ECC vs S/4HANA
Catalog and Selected Set maintenance behaves the same on S/4HANA as on ECC; QS21, QS22, and QS23 remain the transactions of record and no Fiori app has replaced catalog code or Selected Set maintenance. Consultants working from Fiori-first S/4HANA rollouts still drop into these classic GUI transactions for catalog work, since the surrounding inspection and notification apps read the catalog data these transactions maintain rather than exposing catalog administration themselves.
Common pitfalls and how to diagnose them
- Fewer codes than expected: check the source code group first, not the Selected Set. A code blocked or deleted at the code-group level vanishes from every Selected Set built on it with no error message; QS23 simply shows a shorter list. Verify in the codes table before assuming the set was misconfigured.
- Selected Set missing from a characteristic dropdown entirely: check the catalog type on the set against the catalog type expected by the characteristic or profile. A perfectly valid set built under the wrong catalog type is invisible to a consumer expecting a different one, and this is easy to get wrong when catalogs are cloned for a new plant.
- Attempted edit in QS23: this transaction has no maintenance function. Anyone trying to add, remove, or reorder codes here is in the wrong transaction and needs QS22; repeated confusion here usually means the naming convention for display versus change transactions was never documented for the team.
- Validity expired silently: the set header carries a validity period independent of the code group's own validity. A set can be technically correct and still disappear from selection lists because its own validity window closed, while the underlying code group remains fully active.
- Stale documentation after code group changes: a Selected Set built months ago against a code group that has since had codes added does not automatically pick up the new codes. Confirm whether the set's assignment is a static snapshot or a dynamic group reference before assuming a newly created code should already be visible.
Whose problem this is
Functional QM master data ownership. A clean handover states the catalog type, the Selected Set ID, the specific code(s) in question, and whether the discrepancy was traced to the code group, the code status, or the set's own validity period. ABAP involvement is rare and limited to custom validations firing off catalog data; Basis has no role unless the transaction itself is inaccessible.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/qs23ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.