I_QualityLevelAnalysisCube
Quality Level History - Cube
I_QualityLevelAnalysisCube is a Composite CDS View (Cube) that provides data about "Quality Level History - Cube" in SAP S/4HANA. It reads from 3 data sources (I_CalendarDate, I_InspectionCharacteristic, I_InspectionLot) and exposes 47 fields with key fields InspectionLot, InspPlanOperationInternalID, InspectionCharacteristic. It has 6 associations to related views. Part of development package ODATA_QM_CONTROL_ANALYTICS.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_CalendarDate | _CalendarDate | left_outer |
| I_InspectionCharacteristic | _InspChar | left_outer |
| I_InspectionLot | _InspLot | from |
Parameters (2)
| Name | Type | Default |
|---|---|---|
| P_StartDate | mm_a_delivery_date | |
| P_EndDate | mm_a_delivery_date |
Associations (6)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_InspLotDynamicRule | _InspLotDynamicRule | $projection.InspLotDynamicRule = _InspLotDynamicRule.InspLotDynamicRule |
| [1..1] | I_InspectionLotDynamicLevel | _InspectionLotDynamicLevel | $projection.InspectionLotDynamicLevel = _InspectionLotDynamicLevel.InspectionLotDynamicLevel |
| [1..1] | I_InspectionSeverity | _InspectionSeverity | $projection.InspectionSeverity = _InspectionSeverity.InspectionSeverity |
| [1..1] | I_InspLotDynRuleStage | _InspLotDynRuleStage | $projection.InspLotDynamicRule = _InspLotDynRuleStage.InspLotDynamicRule and $projection.InspectionDynamicStage = _InspLotDynRuleStage.InspLotDynRuleStage |
| [1..1] | I_Indicator | _InspectionLotIsSkipped | $projection.InspectionLotStatusSkip = _InspectionLotIsSkipped.IndicatorValue |
| [1..1] | I_InspectionCharacteristic | _InspectionCharacteristic | $projection.InspectionLot = _InspectionCharacteristic.InspectionLot and $projection.InspPlanOperationInternalID = _InspectionCharacteristic.InspPlanOperationInternalID and $projection.InspectionCharacteristic = _InspectionCharacteristic.InspectionCharacteristic |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.buffering.status | #NOT_ALLOWED | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.sqlViewName | IQLTYLVLANALYZE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| Analytics.dataCategory | #CUBE | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Quality Level History - Cube | view | |
| Metadata.allowExtensions | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view |
Fields (47)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | InspectionLot | I_InspectionLot | InspectionLot | |
| KEY | InspPlanOperationInternalID | I_InspectionCharacteristic | InspPlanOperationInternalID | |
| KEY | InspectionCharacteristic | |||
| Material | I_InspectionLot | Material | ||
| Plant | I_InspectionLot | Plant | ||
| InspectionSpecificationText | I_InspectionCharacteristic | InspectionSpecificationText | ||
| BillOfOperationsType | I_InspectionLot | BillOfOperationsType | ||
| BillOfOperationsGroup | I_InspectionLot | BillOfOperationsGroup | ||
| BillOfOperationsVariant | I_InspectionLot | BillOfOperationsVariant | ||
| Supplier | Supplier | |||
| Customer | Customer | |||
| Manufacturer | Manufacturer | |||
| InspectionLotType | I_InspectionLot | InspectionLotType | ||
| InspectionLotUsageDecisionCode | _InspLotUsageDecision | InspectionLotUsageDecisionCode | ||
| InspectionLotStatusSkip | I_InspectionLot | InspectionLotIsSkipped | ||
| InspectionLotCreatedOn | InspectionLotCreatedOn | |||
| InspectionLotDynamicLevel | InspectionLotDynamicLevel | |||
| InspLotUsageDecisionCodeGroup | _InspLotUsageDecision | InspLotUsageDecisionCodeGroup | ||
| IndicatorValue | _InspectionLotIsSkipped | IndicatorValue | ||
| MatlQualityAuthorizationGroup | MatlQualityAuthorizationGroup | |||
| int4endasInspectionLotCount | ||||
| int4endasInspCharCount | ||||
| int4endasInspectionLotIsSkipped | ||||
| int4endasInspectionLotIsNotSkipped | ||||
| int4endasInspCharcSkipCount | ||||
| int4endasInspCharcNotSkipCount | ||||
| int4endasInspectionNotSkippedCount | ||||
| QualityLevelCount | ||||
| IsBusinessPurposeCompleted | I_InspectionLot | IsBusinessPurposeCompleted | ||
| CalendarYear | I_CalendarDate | CalendarYear | ||
| CalendarQuarter | I_CalendarDate | CalendarQuarter | ||
| CalendarMonth | I_CalendarDate | CalendarMonth | ||
| CalendarWeek | I_CalendarDate | CalendarWeek | ||
| _Plant | I_InspectionLot | _Plant | ||
| _Material | I_InspectionLot | _Material | ||
| _Supplier | _Supplier | |||
| _Customer | _Customer | |||
| _Manufacturer | _Manufacturer | |||
| _InspectionLotType | _InspectionLotType | |||
| _UsageDecisionCode | _InspLotUsageDecision | _UsageDecisionCode | ||
| _UsageDecisionCodeGroup | _InspLotUsageDecision | _UsageDecisionCodeGroup | ||
| _InspectionLotDynamicLevel | _InspectionLotDynamicLevel | |||
| _InspLotDynamicRule | _InspLotDynamicRule | |||
| _InspLotDynRuleStage | _InspLotDynRuleStage | |||
| _InspectionSeverity | _InspectionSeverity | |||
| _IndicatorText | _InspectionLotIsSkipped | _IndicatorText | ||
| _InspectionCharacteristic | _InspectionCharacteristic |
@AbapCatalog : {
buffering.status: #NOT_ALLOWED,
compiler.compareFilter: true,
sqlViewName: 'IQLTYLVLANALYZE'
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #REQUIRED
}
@Analytics: {
dataCategory: #CUBE
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Quality Level History - Cube'
@Metadata: {
allowExtensions:true
// ignorePropagatedAnnotations: true
}
@ObjectModel: {
usageType: {
serviceQuality: #C,
sizeCategory : #XXL,
dataClass : #MIXED
}
}
@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
define view I_QualityLevelAnalysisCube
with parameters
P_StartDate : mm_a_delivery_date,
P_EndDate : mm_a_delivery_date
as select from I_InspectionLot as _InspLot
left outer join I_InspectionCharacteristic as _InspChar on _InspChar.InspectionLot = _InspLot.InspectionLot
and _InspLot.InspectionLotDynamicLevel = '3'
and _InspChar.InspLotDynamicRule != ''
left outer join I_CalendarDate as _CalendarDate on _InspLot.InspectionLotCreatedOn = _CalendarDate.CalendarDate
/* Text Associations */
association [1..1] to I_InspLotDynamicRule as _InspLotDynamicRule on $projection.InspLotDynamicRule = _InspLotDynamicRule.InspLotDynamicRule
association [1..1] to I_InspectionLotDynamicLevel as _InspectionLotDynamicLevel on $projection.InspectionLotDynamicLevel = _InspectionLotDynamicLevel.InspectionLotDynamicLevel
association [1..1] to I_InspectionSeverity as _InspectionSeverity on $projection.InspectionSeverity = _InspectionSeverity.InspectionSeverity
association [1..1] to I_InspLotDynRuleStage as _InspLotDynRuleStage on $projection.InspLotDynamicRule = _InspLotDynRuleStage.InspLotDynamicRule
and $projection.InspectionDynamicStage = _InspLotDynRuleStage.InspLotDynRuleStage
/* Indicator Text Associations */
association [1..1] to I_Indicator as _InspectionLotIsSkipped on $projection.InspectionLotStatusSkip = _InspectionLotIsSkipped.IndicatorValue
association [1..1] to I_InspectionCharacteristic as _InspectionCharacteristic on $projection.InspectionLot = _InspectionCharacteristic.InspectionLot
and $projection.InspPlanOperationInternalID = _InspectionCharacteristic.InspPlanOperationInternalID
and $projection.InspectionCharacteristic = _InspectionCharacteristic.InspectionCharacteristic
{
key _InspLot.InspectionLot,
key _InspChar.InspPlanOperationInternalID,
key cast(_InspChar.InspectionCharacteristic as vdm_qmerknrp) as InspectionCharacteristic,
/*** Dimensions (Table Order) ***/
@ObjectModel.foreignKey.association: '_Material'
@UI.textArrangement: #TEXT_FIRST
_InspLot.Material,
@ObjectModel.foreignKey.association: '_Plant'
_InspLot.Plant,
_InspChar.InspectionSpecificationText,
_InspLot.BillOfOperationsType,
_InspLot.BillOfOperationsGroup,
_InspLot.BillOfOperationsVariant,
@ObjectModel.foreignKey.association: '_Supplier'
Supplier,
@ObjectModel.foreignKey.association: '_Customer'
Customer,
@ObjectModel.foreignKey.association: '_Manufacturer'
Manufacturer,
@ObjectModel.foreignKey.association: '_InspectionLotType'
_InspLot.InspectionLotType,
@ObjectModel.foreignKey.association: '_UsageDecisionCode'
_InspLotUsageDecision.InspectionLotUsageDecisionCode as InspectionLotUsageDecisionCode,
@ObjectModel.foreignKey.association: '_InspLotDynamicRule'
case
when InspectionLotDynamicLevel = '3' then _InspChar.InspLotDynamicRule
else _InspLot.InspLotDynamicRule
end as InspLotDynamicRule,
@ObjectModel.foreignKey.association: '_InspLotDynRuleStage'
case
when InspectionLotDynamicLevel = '3' then _InspChar._InspCharacteristic.InspLotDynRuleStage
else _InspLot.InspectionDynamicStage
end as InspectionDynamicStage,
_InspLot.InspectionLotIsSkipped as InspectionLotStatusSkip,
@ObjectModel.text.association: '_IndicatorText'
case
when InspectionLotDynamicLevel = '3' and _InspChar.InspLotDynamicRule != ''
and ( _InspChar.InspectionCharacteristicStatus = '0'
or _InspChar.InspectionCharacteristicStatus = '1'
or _InspChar.InspectionCharacteristicStatus = '2'
or _InspChar.InspectionCharacteristicStatus = '3'
or _InspChar.InspectionCharacteristicStatus = '5' ) then ''
when InspectionLotDynamicLevel = '3' and _InspChar.InspLotDynamicRule != ''
and _InspChar.InspectionCharacteristicStatus = '4' then 'X'
else _InspectionLotIsSkipped.IndicatorValue
end as IsInspectionLotSkippedText,
/*** Other Dimensions ***/
InspectionLotCreatedOn,
@ObjectModel.foreignKey.association: '_InspectionLotDynamicLevel'
InspectionLotDynamicLevel,
@ObjectModel.foreignKey.association: '_InspectionSeverity'
case
when InspectionLotDynamicLevel = '3' then _InspChar._InspCharacteristic.InspectionSeverity
else _InspLot.InspectionSeverity
end as InspectionSeverity,
@ObjectModel.foreignKey.association: '_UsageDecisionCodeGroup'
_InspLotUsageDecision.InspLotUsageDecisionCodeGroup as InspLotUsageDecisionCodeGroup,
/* Exposed for Association */
_InspectionLotIsSkipped.IndicatorValue,
/* Exposed for DCL */
MatlQualityAuthorizationGroup,
/* Measures */
@DefaultAggregation: #SUM
case
when ( InspectionLotDynamicLevel = '0' or InspectionLotDynamicLevel = '1' ) then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspectionLotCount,
@DefaultAggregation: #SUM
case
when InspectionLotDynamicLevel = '3' then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspCharCount,
@DefaultAggregation: #SUM
case
when ( InspectionLotDynamicLevel = '0' or InspectionLotDynamicLevel = '1' ) and InspectionLotIsSkipped = 'X' then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspectionLotIsSkipped,
@DefaultAggregation: #SUM
case
when ( InspectionLotDynamicLevel = '0' or InspectionLotDynamicLevel = '1' ) and InspectionLotIsSkipped = '' then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspectionLotIsNotSkipped,
@DefaultAggregation: #SUM
case
when _InspChar.InspLotDynamicRule != '' and _InspChar.InspectionCharacteristicStatus = '4' then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspCharcSkipCount,
@DefaultAggregation: #SUM
case
when _InspChar.InspLotDynamicRule != ''
and ( _InspChar.InspectionCharacteristicStatus = '0'
or _InspChar.InspectionCharacteristicStatus = '1'
or _InspChar.InspectionCharacteristicStatus = '2'
or _InspChar.InspectionCharacteristicStatus = '3' ) then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspCharcNotSkipCount,
@DefaultAggregation: #SUM
case
when ( InspectionLotDynamicLevel = '0' or InspectionLotDynamicLevel = '1' )
and InspectionLotIsSkipped = '' then cast( 1 as abap.int4 )
when _InspChar.InspLotDynamicRule != ''
and ( _InspChar.InspectionCharacteristicStatus = '0'
or _InspChar.InspectionCharacteristicStatus = '1'
or _InspChar.InspectionCharacteristicStatus = '2'
or _InspChar.InspectionCharacteristicStatus = '3' ) then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as InspectionNotSkippedCount,
@DefaultAggregation: #SUM
cast( 1 as abap.int4 ) as QualityLevelCount,
/* DPP */
@Consumption: {
hidden: true
}
_InspLot.IsBusinessPurposeCompleted,
/* Calendar Function Columns */
_CalendarDate.CalendarYear,
_CalendarDate.CalendarQuarter,
_CalendarDate.CalendarMonth,
_CalendarDate.CalendarWeek,
/* Text Associations */
_InspLot._Plant,
_InspLot._Material,
_Supplier,
_Customer,
_Manufacturer,
_InspectionLotType,
_InspLotUsageDecision._UsageDecisionCode,
_InspLotUsageDecision._UsageDecisionCodeGroup,
_InspectionLotDynamicLevel,
_InspLotDynamicRule,
_InspLotDynRuleStage,
_InspectionSeverity,
_InspectionLotIsSkipped._IndicatorText,
_InspectionCharacteristic
}
where
InspectionLotDynamicLevel != ''
and InspectionLotCreatedOn >= $parameters.P_StartDate
and InspectionLotCreatedOn <= $parameters.P_EndDate
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- 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