I_QualityLevel
Quality Level
I_QualityLevel (Basic)
Package: Explore, extend and adapt the SAP S/4HANA Cloud Public Edition with built-in and side-by-side extension capabilities.
Quality Level · Manufacturing
I_QualityLevel is a Basic CDS View that provides data about "Quality Level" in SAP S/4HANA. It reads from 1 data source (qdql) and exposes 52 fields with key fields Plant, Material, BillOfOperationsType, BillOfOperationsGroup, BillOfOperationsVariant. It has 18 associations to related views. Part of development package VDM_QM_INSPECTION.
SAP Help Documentation
| Category | CDS Views for Quality Inspection |
|---|
This CDS view provides access to quality levels. This CDS view provides the data to answer the following business questions: Which quality levels exists? What are the inspection stages for the next inspections and what dynamic modification rules are used to determine that? What is the level of dynamic modification and which dynamic modification criteria are defined? To help you decide which CDS view to use for your purposes, SAP has introduced the annotation ObjectModel.supportedCapabilities that indicates the most appropriate use cases for each CDS view. To find out what use cases are best supported by this CDS view, access the entry of the CDS view in the View Browser app and find the values for this annotation under the Annotation tab. For more information, see Supported Capabilities for CDS Views .
Prerequisites
Authorizations Users who want to use this CDS view must have the following authorization objects assigned: SAP_QM_BC_QUALITY_CONTROL_PC (QM - Quality Control)
Structure
Important Fields Important fields in this view include the following: Field Name Description Plant Plant ID that uniquely identifies a plant. The field has a value if the Material field has a value. Material Material ID of a material. The field is only filled if Material was selected as a criterion for dynamic modification. It is always filled if dynamic modification is done at inspection type level (for example, if a dynamic modification rule is set in the material master data). BillOfOperationsType Task List Type One of the foreign key fields that identify the used task list. It only has a value if dynamic modification is done at inspection lot level or characteristic level. Identifies the task list type of the quality level (inspection plan or routing). BillOfOperationsGroup Task List Group One of the foreign key fields that identify the used task list. It only has a value if dynamic modification is done at inspection lot level or characteristic level. BillOfOperationsVariant Group Counter One of the foreign key fields that identify the used task list. It only has a value if dynamic modification is done at inspection lot level or characteristic level. BOOOperationInternalID Task List Node Internal identifier of an operation within the used task list. The field only has a value if dynamic modification is done at characteristic level. Sequence Sequence Sequence of an operation in a routing. The field only has a value other than 0000 if dynamic modification is done at characteristic level and a routing (instead of an inspection plan) is used. Supplier Supplier ID of a supplier. The field is only filled if Supplier was selected as a criterion for dynamic modification. Manufacturer Manufacturer ID of a manufacturer. The field is only filled if Manufacturer was selected as a criterion for dynamic modification. Customer Customer ID of a customer. The field is only filled if Customer was selected as a criterion for dynamic modification. InspectionLotType Inspection Type ID of an inspection type. The field is only filled if dynamic modification is done at inspection type level. InspectionOperation Operation The field is only filled if dynamic modification is done at characteristic level. Identifies an operation within a specified task list (inspection plan or routing). InspLotDynamicRule Dynamic Modification Rule QltyLevelNextDynRuleStage Next Stage Inspection stage for the next inspection.
SAP API Hub
| Category | Basic |
|---|---|
| State | C1 |
| Line of Business | Manufacturing |
| Application Component | QM-IM-2CL |
| Capabilities | Data Source for Defining CDS Entities,Association Target for Defining CDS Entities |
| Extensible (Key User) | No |
| Extensible (Developer) | No |
| Release State (Key User) | Not Released |
| Release State (Developer) | Released |
| Package | Manufacturing for SAP S/4HANA Cloud Public Edition |
| Description | <p>This CDS view provides access to quality levels.</p> <p>This CDS view provides the data to answer the following business questions:</p> <ul> <li><p>Which quality levels exists?</p></li> <li><p>What are the inspection stages for the next inspections and what dynamic modification rules are used to determine that?</p></li> <li><p>What is the level of dynamic modification and which dynamic modification criteria are defined?</p></li> </ul> <p>To help you decide which CDS view to use for your purposes, SAP has introduced the annotation ObjectModel.supportedCapabilities that indicates the most appropriate use cases for each CDS view. To find out what use cases are best supported by this CDS view, access the entry of the CDS view in the View Browser app and find the values for this annotation under the Annotation tab. For more information, see Supported Capabilities for CDS Views.</p> |
Documentation
- Analytics with CDS Views — Build Analytics for S/4HANA Cloud Public Edition ABAP CDS views replicated to SAP Cloud Platform
- CDS Views on SAP Business Accelerator Hub — Explore SAP S/4HANA Cloud Public Edition CDS Views on SAP Business Accelerator Hub
- Create CDS View as API — Create CDS views in SAP S/4HANA Cloud Public Edition and consume them as APIs
- Custom CDS Views — Access data using a Custom Core Data Service view (Custom CDS view)
- Custom Communication Scenarios — Create custom communication scenarios to configure custom communication arrangement
- Key User Extensibility Tools — The Key User Extensibility Tools of S/4HANA
- SAP S/4HANA Extensibility — SAP S/4HANA Extensibility Tutorial
- VDM View Types — The Virtual Data Model in SAP S/4HANA Cloud Public Edition
- View Browser — Search, browse and tag CDS Views
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| qdql | qdql | from |
Associations (18)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [1..1] | I_Material | _Material | $projection.Material = _Material.Material |
| [1..1] | I_BillOfOperationsType | _BillOfOperationsType | $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType |
| [0..1] | I_Supplier | _Supplier | $projection.Supplier = _Supplier.Supplier |
| [0..1] | I_Customer | _Customer | $projection.Customer = _Customer.Customer |
| [0..1] | I_Supplier | _Manufacturer | $projection.Manufacturer = _Manufacturer.Supplier |
| [0..1] | I_BOOCharacteristic | _BOOCharacteristic | $projection.BillOfOperationsType = _BOOCharacteristic.BillOfOperationsType and $projection.BillOfOperationsGroup = _BOOCharacteristic.BillOfOperationsGroup and $projection.BOOOperationInternalID = _BOOCharacteristic.BOOOperationInternalID and $projection.InspectionCharacteristic = _BOOCharacteristic.BOOCharacteristic |
| [1..1] | I_InspLotDynRuleStage | _NextInspLotDynRuleStage | $projection.InspLotDynamicRule = _NextInspLotDynRuleStage.InspLotDynamicRule and $projection.QltyLevelNextDynRuleStage = _NextInspLotDynRuleStage.InspLotDynRuleStage |
| [1..1] | I_InspLotDynamicRule | _InspLotDynamicRule | $projection.InspLotDynamicRule = _InspLotDynamicRule.InspLotDynamicRule |
| [1..1] | I_InspectionLot | _InspectionLot | $projection.InspectionLot = _InspectionLot.InspectionLot |
| [1..1] | I_InspectionLot | _QualityLevelLastOpenInspLot | $projection.QualityLevelLastOpenInspLot = _QualityLevelLastOpenInspLot.InspectionLot |
| [1..1] | I_Productplantqtmanagement | _ProductPlantQtManagement | $projection.Material = _ProductPlantQtManagement.Product and $projection.Plant = _ProductPlantQtManagement.Plant |
| [0..1] | I_BillOfOperationsGroup | _BillOfOperationsGroup | $projection.BillOfOperationsType = _BillOfOperationsGroup.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup |
| [0..1] | I_BOOOperationInternalID | _BOOOperationInternalID | $projection.BillOfOperationsType = _BOOOperationInternalID.BillOfOperationsType and $projection.BillOfOperationsGroup = _BOOOperationInternalID.BillOfOperationsGroup and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID |
| [0..1] | I_BillOfOperations | _BillOfOperations | $projection.BillOfOperationsType = _BillOfOperations.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperations.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _BillOfOperations.BillOfOperationsVariant |
| [0..1] | I_BillOfOperationsOperation | _BillOfOperationsOperation | $projection.BillOfOperationsType = _BillOfOperationsOperation.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsOperation.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _BillOfOperationsOperation.BillOfOperationsVariant and $projection.BOOOperationInternalID = _BillOfOperationsOperation.BOOOperationInternalID and $projection.Sequence = _BillOfOperationsOperation.BillOfOperationsSequence |
| [0..1] | I_BillOfOperationsSequence | _BillOfOperationsSequence | $projection.BillOfOperationsType = _BillOfOperationsSequence.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsSequence.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _BillOfOperationsSequence.BillOfOperationsVariant and $projection.Sequence = _BillOfOperationsSequence.BillOfOperationsSequence |
| [1..1] | E_QualityLevel | _Extension | $projection.Plant = _Extension.Plant and $projection.Material = _Extension.Material and $projection.BillOfOperationsType = _Extension.BillOfOperationsType and $projection.BillOfOperationsGroup = _Extension.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _Extension.BillOfOperationsVariant and $projection.BOOOperationInternalID = _Extension.BOOOperationInternalID and $projection.Sequence = _Extension.Sequence and $projection.QualityLevelInternalID = _Extension.QualityLevelInternalID |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Quality Level | view | |
| VDM.viewType | #BASIC | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AbapCatalog.sqlViewName | IQLTYLVL | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.sapObjectNodeType.name | QualityLevel | view | |
| Metadata.ignorePropagatedAnnotations | true | view |
Fields (52)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Plant | werks | Receiving Plant | |
| KEY | Material | matnr | Material Number | |
| KEY | BillOfOperationsType | plnty | Task List Type | |
| KEY | BillOfOperationsGroup | plnnr | Key for Task List Group | |
| KEY | BillOfOperationsVariant | plnal | Referenced BOO Variant | |
| KEY | BOOOperationInternalID | plnkn | Number of Task List Node | |
| KEY | Sequence | plnfl | Sequence of Operations Within a Plan | |
| KEY | QualityLevelInternalID | zaehlerql | Sequential Counter for Different Quality Levels | |
| Supplier | lifnr | Supplier Account Number | ||
| Manufacturer | hersteller | Manufacturer Account Number | ||
| Customer | kunnr | Customer Account Number | ||
| InspectionLotType | pruefart | Inspection Type | ||
| InspectionOperation | Operation Number without NUMCV Conversion Routine | |||
| InspectionCharacteristic | merknr | Characteristic Number in the Quality Level | ||
| QltyLvlIndirectlyChangedBy | aendlosa | User who Last Changed the Quality Level | ||
| QltyLvlManuallyChangedBy | aendlosm | User who Manually Changed the Quality Level | ||
| QltyLvlIndirectlyChangedOn | aedatlosa | Change Date of the Quality Level | ||
| QltyLvlManuallyChangedOn | aedatlosm | Change Date (Manual) of the Quality Level | ||
| InspectionLot | Number of Last Inspection Lot with Usage Decision | |||
| InspLotUsageDecisionValuation | bwlos | Valuation (Usage Decision) of the Last Inspection Lot | ||
| InspLotUsgeDcsnDynValuation | bwlosdyn | Dynamic Modification Valuation of the Last Inspection Lot | ||
| SamplingProcedure | stichprver | Sampling Procedure | ||
| InspLotDynamicRule | Dynamic Modification Rule | |||
| QltyLevelNextDynRuleStage | prstufenae | Inspection Stage for Next Inspection | ||
| InspLotsWithoutUsageDecision | anzloseove | Number of Inspection Lots Without Usage Decision | ||
| InspLotsSinceStageChg | anzpraen | Number of Inspections Since Inspection Stage Change | ||
| RjctdInspLotsSinceStgeChg | anznioaen | Number of Not-OK Inspections (Rejections) Since Stage Change | ||
| InspResultDynModifValuation | dbewertg | Dynamic Modification Valuation (Accept/Reject) of Char. | ||
| InspectionValuationResult | mbewertg | Valuation of the Characteristic from Results Recording | ||
| QualityLevelLastOpenInspLot | plosove | Number of Last Inspection Lot Without Usage Decision | ||
| QualityLevelLastInspectionOn | datlpruef | Date of Last Inspection | ||
| QltyLevelCanceledInspections | anzprstop | No. of Canceled Inspections per Charc Since Last Inspection | ||
| QualityLevelDeletionOn | deldatum | Deletion Date of the Quality Level | ||
| QualityLevelResetOn | resdatum | Reset Date of Quality Level | ||
| changeddatetimeendasChangedDateTime | ||||
| _Plant | _Plant | |||
| _Material | _Material | |||
| _BillOfOperationsType | _BillOfOperationsType | |||
| _BillOfOperationsGroup | _BillOfOperationsGroup | |||
| _BillOfOperations | _BillOfOperations | |||
| _BOOOperationInternalID | _BOOOperationInternalID | |||
| _BillOfOperationsSequence | _BillOfOperationsSequence | |||
| _BillOfOperationsOperation | _BillOfOperationsOperation | |||
| _Supplier | _Supplier | |||
| _Customer | _Customer | |||
| _BOOCharacteristic | _BOOCharacteristic | |||
| _NextInspLotDynRuleStage | _NextInspLotDynRuleStage | |||
| _InspLotDynamicRule | _InspLotDynamicRule | |||
| _InspectionLot | _InspectionLot | |||
| _Manufacturer | _Manufacturer | |||
| _QualityLevelLastOpenInspLot | _QualityLevelLastOpenInspLot | |||
| _ProductPlantQtManagement | _ProductPlantQtManagement |
Derived SQL interpretation, reconstructed from the parsed view metadata (data sources, associations, and field mappings). SAP annotations are omitted and the structure is reformulated as SQL — this is a functional approximation, not the verbatim SAP source.
-- Derived SQL interpretation of CDS view I_QualityLevel.
-- Reconstructed from parsed metadata (data sources, associations, fields).
-- SAP annotations are omitted and the structure is reformulated as SQL;
-- this is a functional approximation, not the verbatim SAP source. Some join
-- conditions may be unavailable and a few CDS constructs are kept as-is.
-- SQL view name: IQLTYLVL
CREATE VIEW I_QualityLevel AS
SELECT
werks AS Plant,
matnr AS Material,
plnty AS BillOfOperationsType,
plnnr AS BillOfOperationsGroup,
plnal AS BillOfOperationsVariant,
plnkn AS BOOOperationInternalID,
plnfl AS Sequence,
zaehlerql AS QualityLevelInternalID,
lifnr AS Supplier,
hersteller AS Manufacturer,
kunnr AS Customer,
pruefart AS InspectionLotType,
cast( vornr as qvornr_rap preserving type ) AS InspectionOperation,
merknr AS InspectionCharacteristic,
aendlosa AS QltyLvlIndirectlyChangedBy,
aendlosm AS QltyLvlManuallyChangedBy,
aedatlosa AS QltyLvlIndirectlyChangedOn,
aedatlosm AS QltyLvlManuallyChangedOn,
cast( prueflos as vdm_qplosql preserving type ) AS InspectionLot,
bwlos AS InspLotUsageDecisionValuation,
bwlosdyn AS InspLotUsgeDcsnDynValuation,
stichprver AS SamplingProcedure,
cast( dynregel as vdm_qdynregel preserving type ) AS InspLotDynamicRule,
prstufenae AS QltyLevelNextDynRuleStage,
anzloseove AS InspLotsWithoutUsageDecision,
anzpraen AS InspLotsSinceStageChg,
anznioaen AS RjctdInspLotsSinceStgeChg,
dbewertg AS InspResultDynModifValuation,
mbewertg AS InspectionValuationResult,
plosove AS QualityLevelLastOpenInspLot,
datlpruef AS QualityLevelLastInspectionOn,
anzprstop AS QltyLevelCanceledInspections,
deldatum AS QualityLevelDeletionOn,
resdatum AS QualityLevelResetOn,
case qdql.changeddatetime when 0 then cast( '19000101010101' as tzntstmps ) else qdql.changeddatetime end as ChangedDateTime AS changeddatetimeendasChangedDateTime
FROM qdql
LEFT OUTER JOIN I_Plant AS _Plant ON Plant = _Plant.Plant -- association [1..1]
LEFT OUTER JOIN I_Material AS _Material ON Material = _Material.Material -- association [1..1]
LEFT OUTER JOIN I_BillOfOperationsType AS _BillOfOperationsType ON BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType -- association [1..1]
LEFT OUTER JOIN I_Supplier AS _Supplier ON Supplier = _Supplier.Supplier -- association [0..1]
LEFT OUTER JOIN I_Customer AS _Customer ON Customer = _Customer.Customer -- association [0..1]
LEFT OUTER JOIN I_Supplier AS _Manufacturer ON Manufacturer = _Manufacturer.Supplier -- association [0..1]
LEFT OUTER JOIN I_BOOCharacteristic AS _BOOCharacteristic ON BillOfOperationsType = _BOOCharacteristic.BillOfOperationsType AND BillOfOperationsGroup = _BOOCharacteristic.BillOfOperationsGroup AND BOOOperationInternalID = _BOOCharacteristic.BOOOperationInternalID AND InspectionCharacteristic = _BOOCharacteristic.BOOCharacteristic -- association [0..1]
LEFT OUTER JOIN I_InspLotDynRuleStage AS _NextInspLotDynRuleStage ON InspLotDynamicRule = _NextInspLotDynRuleStage.InspLotDynamicRule AND QltyLevelNextDynRuleStage = _NextInspLotDynRuleStage.InspLotDynRuleStage -- association [1..1]
LEFT OUTER JOIN I_InspLotDynamicRule AS _InspLotDynamicRule ON InspLotDynamicRule = _InspLotDynamicRule.InspLotDynamicRule -- association [1..1]
LEFT OUTER JOIN I_InspectionLot AS _InspectionLot ON InspectionLot = _InspectionLot.InspectionLot -- association [1..1]
LEFT OUTER JOIN I_InspectionLot AS _QualityLevelLastOpenInspLot ON QualityLevelLastOpenInspLot = _QualityLevelLastOpenInspLot.InspectionLot -- association [1..1]
LEFT OUTER JOIN I_Productplantqtmanagement AS _ProductPlantQtManagement ON Material = _ProductPlantQtManagement.Product AND Plant = _ProductPlantQtManagement.Plant -- association [1..1]
LEFT OUTER JOIN I_BillOfOperationsGroup AS _BillOfOperationsGroup ON BillOfOperationsType = _BillOfOperationsGroup.BillOfOperationsType AND BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup -- association [0..1]
LEFT OUTER JOIN I_BOOOperationInternalID AS _BOOOperationInternalID ON BillOfOperationsType = _BOOOperationInternalID.BillOfOperationsType AND BillOfOperationsGroup = _BOOOperationInternalID.BillOfOperationsGroup AND BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID -- association [0..1]
LEFT OUTER JOIN I_BillOfOperations AS _BillOfOperations ON BillOfOperationsType = _BillOfOperations.BillOfOperationsType AND BillOfOperationsGroup = _BillOfOperations.BillOfOperationsGroup AND BillOfOperationsVariant = _BillOfOperations.BillOfOperationsVariant -- association [0..1]
LEFT OUTER JOIN I_BillOfOperationsOperation AS _BillOfOperationsOperation ON BillOfOperationsType = _BillOfOperationsOperation.BillOfOperationsType AND BillOfOperationsGroup = _BillOfOperationsOperation.BillOfOperationsGroup AND BillOfOperationsVariant = _BillOfOperationsOperation.BillOfOperationsVariant AND BOOOperationInternalID = _BillOfOperationsOperation.BOOOperationInternalID AND Sequence = _BillOfOperationsOperation.BillOfOperationsSequence -- association [0..1]
LEFT OUTER JOIN I_BillOfOperationsSequence AS _BillOfOperationsSequence ON BillOfOperationsType = _BillOfOperationsSequence.BillOfOperationsType AND BillOfOperationsGroup = _BillOfOperationsSequence.BillOfOperationsGroup AND BillOfOperationsVariant = _BillOfOperationsSequence.BillOfOperationsVariant AND Sequence = _BillOfOperationsSequence.BillOfOperationsSequence -- association [0..1]
LEFT OUTER JOIN E_QualityLevel AS _Extension ON Plant = _Extension.Plant AND Material = _Extension.Material AND BillOfOperationsType = _Extension.BillOfOperationsType AND BillOfOperationsGroup = _Extension.BillOfOperationsGroup AND BillOfOperationsVariant = _Extension.BillOfOperationsVariant AND BOOOperationInternalID = _Extension.BOOOperationInternalID AND Sequence = _Extension.Sequence AND QualityLevelInternalID = _Extension.QualityLevelInternalID -- association [1..1]
;
Learn More
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- CDS View Annotations — A Complete Guide
- What Is a CDS View in SAP S/4HANA?
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA
- BSEG to ACDOCA: The Universal Journal Migration
- Business Partner Migration: KNA1/LFA1 to BUT000
- Material Document Migration: MSEG/MKPF to MATDOC
- How to Find the Right CDS View for an SAP Table
- BW Extractor to CDS View Migration Guide
- S/4HANA CDS View Deprecation: What You Need to Know
- ABAP CDS View Tutorial — From Basics to Real-World Examples
- RAP and CDS Views — Building Transactional Apps in SAP S/4HANA
- Sales Document Status Migration: VBUP/VBUK Removal in S/4HANA
- CO Tables in S/4HANA: COEP, COBK, COSS, COSP to ACDOCA