I_InspCharcsKeyFigCube
Characteristics Analytics - Key Figures
I_InspCharcsKeyFigCube is a Composite CDS View (Cube) that provides data about "Characteristics Analytics - Key Figures" in SAP S/4HANA. It reads from 1 data source (I_InspSubsetCharacteristic) and exposes 43 fields with key fields InspectionLot, InspPlanOperationInternalID, InspectionCharacteristic, InspectionSubsetInternalID. It has 5 associations to related views. Part of development package ODATA_QM_INSPECTION_ANALYTICS.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_InspSubsetCharacteristic | _InspSubsetCharcs | from |
Parameters (2)
| Name | Type | Default |
|---|---|---|
| P_StartDate | mm_a_delivery_date | |
| P_EndDate | mm_a_delivery_date |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_InspectionLot | _ILot | $projection.InspectionLot = _ILot.InspectionLot |
| [1..1] | I_InspectionOperation | _IOperation | $projection.InspectionLot = _IOperation.InspectionLot and $projection.InspPlanOperationInternalID = _IOperation.InspPlanOperationInternalID |
| [1..1] | I_InspectionCharacteristic | _ICharacteristic | $projection.InspectionLot = _ICharacteristic.InspectionLot and $projection.InspPlanOperationInternalID = _ICharacteristic.InspPlanOperationInternalID and $projection.InspectionCharacteristic = _ICharacteristic.InspectionCharacteristic |
| [0..1] | I_InspSubsetResult | _ISubsetResult | $projection.InspectionLot = _ISubsetResult.InspectionLot and $projection.InspPlanOperationInternalID = _ISubsetResult.InspPlanOperationInternalID and $projection.InspectionSubsetInternalID = _ISubsetResult.InspectionSubsetInternalID and $projection.InspectionCharacteristic = _ISubsetResult.InspectionCharacteristic |
| [0..1] | I_InspSpecificationVersion | _InspSpecificationVersion | $projection.inspectionspecificationplant = _InspSpecificationVersion.InspectionSpecificationPlant and $projection.inspectionspecification = _InspSpecificationVersion.InspectionSpecification and $projection.inspectionspecificationversion = _InspSpecificationVersion.InspectionSpecificationVersion |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.buffering.status | #NOT_ALLOWED | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.sqlViewName | IINSPCHARKEYFIG | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| Analytics.dataCategory | #CUBE | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Characteristics Analytics - Key Figures | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| Metadata.allowExtensions | true | view |
Fields (43)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | InspectionLot | I_InspSubsetCharacteristic | InspectionLot | |
| KEY | InspPlanOperationInternalID | I_InspSubsetCharacteristic | InspPlanOperationInternalID | |
| KEY | InspectionCharacteristic | I_InspSubsetCharacteristic | InspectionCharacteristic | |
| KEY | InspectionSubsetInternalID | I_InspSubsetCharacteristic | InspectionSubsetInternalID | |
| InspectionLotOrigin | _ILot | InspectionLotOrigin | ||
| WorkCenterInternalID | _IOperation | WorkCenterInternalID | ||
| InspectionOperation | _IOperation | InspectionOperation | ||
| InspResultHistoryCharc | ||||
| BillOfOperationsType | _ILot | BillOfOperationsType | ||
| BillOfOperationsGroup | _ILot | BillOfOperationsGroup | ||
| BillOfOperationsVariant | _ILot | BillOfOperationsVariant | ||
| BOOOperationInternalID | _IOperation | BOOOperationInternalID | ||
| InspectionSpecificationPlant | _ICharacteristic | InspectionSpecificationPlant | ||
| InspectionSpecificationVersion | _ICharacteristic | InspectionSpecificationVersion | ||
| MasterInspCharcsKey | ||||
| InspectionSpecification | _ICharacteristic | InspectionSpecification | ||
| InspectionSpecificationText | _ICharacteristic | InspectionSpecificationText | ||
| Plant | _ILot | Plant | ||
| Material | _ILot | Material | ||
| Supplier | _ILot | Supplier | ||
| Customer | _ILot | Customer | ||
| WorkCenter | ||||
| InspectionOperationPlant | _IOperation | InspectionOperationPlant | ||
| WorkCenterPlantName | ||||
| NumberOfInspections | ||||
| int4endasNmbrOfVltdInspections | ||||
| int4endasNumberOfAcceptedInspCharcs | ||||
| int4endasNumberOfRejectedInspCharcs | ||||
| int4endasNumberOfSkipInspCharcs | ||||
| int4endasNumberOfNotSkipInspCharcs | ||||
| int4endasInspSkipRatePercent | ||||
| int4endasInspRsltRjcnRatePercent | ||||
| int4endasInspRsltNonconformingValsNmbr | ||||
| int4endasInspResultValidValuesNumber | ||||
| InspectionLotType | _ILot | InspectionLotType | ||
| InspectionSubsetType | _ILot | InspectionSubsetType | ||
| MatlQualityAuthorizationGroup | _ILot | MatlQualityAuthorizationGroup | ||
| IsBusinessPurposeCompleted | _ILot | IsBusinessPurposeCompleted | ||
| _Plant | _ILot | _Plant | ||
| _Supplier | _ILot | _Supplier | ||
| _Customer | _ILot | _Customer | ||
| _WorkCenter | _IOperation | _WorkCenter | ||
| _InspSpecificationVersion | _InspSpecificationVersion |
@AbapCatalog : {
buffering.status: #NOT_ALLOWED,
compiler.compareFilter: true,
sqlViewName: 'IINSPCHARKEYFIG'
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #REQUIRED
}
@Analytics: {
dataCategory: #CUBE
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Characteristics Analytics - Key Figures'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel: {
usageType: {
serviceQuality: #C,
sizeCategory : #XL,
dataClass : #MIXED
}
}
@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@Metadata.allowExtensions: true
define view I_InspCharcsKeyFigCube
with parameters
P_StartDate : mm_a_delivery_date,
P_EndDate : mm_a_delivery_date
as select from I_InspSubsetCharacteristic as _InspSubsetCharcs
association [1..1] to I_InspectionLot as _ILot on $projection.InspectionLot = _ILot.InspectionLot
association [1..1] to I_InspectionOperation as _IOperation on $projection.InspectionLot = _IOperation.InspectionLot
and $projection.InspPlanOperationInternalID = _IOperation.InspPlanOperationInternalID
association [1..1] to I_InspectionCharacteristic as _ICharacteristic on $projection.InspectionLot = _ICharacteristic.InspectionLot
and $projection.InspPlanOperationInternalID = _ICharacteristic.InspPlanOperationInternalID
and $projection.InspectionCharacteristic = _ICharacteristic.InspectionCharacteristic
association [0..1] to I_InspSubsetResult as _ISubsetResult on $projection.InspectionLot = _ISubsetResult.InspectionLot
and $projection.InspPlanOperationInternalID = _ISubsetResult.InspPlanOperationInternalID
and $projection.InspectionSubsetInternalID = _ISubsetResult.InspectionSubsetInternalID
and $projection.InspectionCharacteristic = _ISubsetResult.InspectionCharacteristic
// Fetch MIC/Charcs text value based on MIC or Insp plan Char
association [0..1] to I_InspSpecificationVersion as _InspSpecificationVersion on $projection.inspectionspecificationplant = _InspSpecificationVersion.InspectionSpecificationPlant
and $projection.inspectionspecification = _InspSpecificationVersion.InspectionSpecification
and $projection.inspectionspecificationversion = _InspSpecificationVersion.InspectionSpecificationVersion
{
key _InspSubsetCharcs.InspectionLot,
key _InspSubsetCharcs.InspPlanOperationInternalID,
key _InspSubsetCharcs.InspectionCharacteristic,
key _InspSubsetCharcs.InspectionSubsetInternalID,
_ILot.InspectionLotOrigin,
_IOperation.WorkCenterInternalID,
_IOperation.InspectionOperation,
//Inspection Characteristics
//Combination of Task List Type, Task List Group, Group Counter, Operation & Characteristic
concat(concat(concat(concat(concat( concat ( concat (concat( _ILot.BillOfOperationsType, '-'), ltrim( _ILot.BillOfOperationsGroup , '0') ), '-'), _ILot.BillOfOperationsVariant), '-'), _IOperation.InspectionOperation), '-'), _InspSubsetCharcs.InspectionCharacteristic) as InspResultHistoryCharc,
//Fields exposed for MIC/Charcs text
_ILot.BillOfOperationsType,
_ILot.BillOfOperationsGroup,
_ILot.BillOfOperationsVariant,
_IOperation.BOOOperationInternalID,
_ICharacteristic.InspectionSpecificationPlant,
_ICharacteristic.InspectionSpecificationVersion,
//Master Inspection Characterisitic
//Combination of Master Inspection Characteristic, Plant & Version
concat( concat ( concat (concat( _ICharacteristic.InspectionSpecification, '-'), _ICharacteristic.InspectionSpecificationPlant), '-'), ltrim(_ICharacteristic.InspectionSpecificationVersion, '0') ) as MasterInspCharcsKey,
_ICharacteristic.InspectionSpecification,
_ICharacteristic.InspectionSpecificationText,
//Dimensions
_ILot.Plant,
_ILot.Material,
_ILot.Supplier,
_ILot.Customer,
_IOperation._WorkCenter.WorkCenter,
//Work Center Plant
_IOperation.InspectionOperationPlant,
_IOperation._Plant.PlantName as WorkCenterPlantName,
// CreationDate field
case
when (_ILot.InspLotHasSubsets = 'X' and (_ISubsetResult.InspectionResultStatus = '4' or _ISubsetResult.InspectionResultStatus = '5' ) )
then cast(_ISubsetResult.CreationDate as vdm_qmrsltrecgdte)
when (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic._InspectionResult.InspectionResultStatus = '4' or _ICharacteristic._InspectionResult.InspectionResultStatus = '5' ) )
then cast( _ICharacteristic._InspectionResult.CreationDate as vdm_qmrsltrecgdte)
when (_ILot.InspLotHasSubsets = 'X' and (_InspSubsetCharcs.InspectionCharacteristicStatus = '4' ) )
then cast(_InspSubsetCharcs.InspSubsetCharcCreationDate as vdm_qmrsltrecgdte)
when (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic.InspectionCharacteristicStatus = '4' ) )
then cast(_ICharacteristic.InspCharcCreationDate as vdm_qmrsltrecgdte)
end as CreationDate,
// Aggregation Level Filter
case
when _ICharacteristic.InspectionSpecification <> ''
then cast('1' as qevt_inspresultaggrlevel)
else
cast('2' as qevt_inspresultaggrlevel)
end as InspResultAggregationLevel,
/*** Measures ***/
// Total Number of Inspections
cast( 1 as abap.int4 ) as NumberOfInspections,
// Total Number of Valuated Inspections
case
when (_ILot.InspLotHasSubsets = 'X' and (_ISubsetResult.InspectionResultStatus <> '4' and _InspSubsetCharcs.InspectionCharacteristicStatus <> '4' )
and ( _ISubsetResult.InspectionValuationResult = 'A' or _ISubsetResult.InspectionValuationResult = 'R' ) )
or (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic._InspectionResult.InspectionResultStatus <> '4' or _ICharacteristic.InspectionCharacteristicStatus <> '4' )
and ( _ICharacteristic._InspectionResult.InspectionValuationResult = 'A' or _ICharacteristic._InspectionResult.InspectionValuationResult = 'R' ) )
then cast( 1 as abap.int4 )
else cast( 0 as abap.int4 )
end as NmbrOfVltdInspections,
// Number of Accepted Inspections
case
when (_ILot.InspLotHasSubsets = 'X' and _ISubsetResult.InspectionValuationResult = 'A'
and (_ISubsetResult.InspectionResultStatus <> '4' and _InspSubsetCharcs.InspectionCharacteristicStatus <> '4' ))
or (_ILot.InspLotHasSubsets <> 'X' and _ICharacteristic._InspectionResult.InspectionValuationResult = 'A'
and (_ICharacteristic._InspectionResult.InspectionResultStatus <> '4' and _ICharacteristic.InspectionCharacteristicStatus <> '4' ))
then cast( 1 as abap.int4 )
else
cast( 0 as abap.int4 )
end as NumberOfAcceptedInspCharcs,
// Number of Rejected Inspections
case
when (_ILot.InspLotHasSubsets = 'X' and _ISubsetResult.InspectionValuationResult = 'R'
and (_ISubsetResult.InspectionResultStatus <> '4' and _InspSubsetCharcs.InspectionCharacteristicStatus <> '4' ))
or (_ILot.InspLotHasSubsets <> 'X' and _ICharacteristic._InspectionResult.InspectionValuationResult = 'R'
and (_ICharacteristic._InspectionResult.InspectionResultStatus <> '4' and _ICharacteristic.InspectionCharacteristicStatus <> '4' ))
then cast( 1 as abap.int4 )
else
cast( 0 as abap.int4 )
end as NumberOfRejectedInspCharcs,
// Number of Skipped Inspections
case
when (_ILot.InspLotHasSubsets = 'X' and (_InspSubsetCharcs.InspectionCharacteristicStatus = '4' or _ISubsetResult.InspectionResultStatus = '4' ))
or (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic.InspectionCharacteristicStatus = '4'or _ICharacteristic._InspectionResult.InspectionResultStatus = '4' ) )
then cast( 1 as abap.int4 )
else
cast( 0 as abap.int4 )
end as NumberOfSkipInspCharcs,
// Number of Not Skipped Inspections
case
when (_ILot.InspLotHasSubsets = 'X' and _ISubsetResult.InspectionResultStatus = '5' and _InspSubsetCharcs.InspectionCharacteristicStatus <> '4' )
or (_ILot.InspLotHasSubsets <> 'X' and _ICharacteristic._InspectionResult.InspectionResultStatus = '5' and _ICharacteristic.InspectionCharacteristicStatus <> '4')
then cast( 1 as abap.int4 )
else
cast( 0 as abap.int4 )
end as NumberOfNotSkipInspCharcs,
// Skip Rate
case
when (_ILot.InspLotHasSubsets = 'X' and (_InspSubsetCharcs.InspectionCharacteristicStatus = '4' or _ISubsetResult.InspectionResultStatus = '4' ))
or (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic.InspectionCharacteristicStatus = '4'or _ICharacteristic._InspectionResult.InspectionResultStatus = '4' ) )
then cast( 100 as abap.int4 )
else
cast( 0 as abap.int4 )
end as InspSkipRatePercent,
// Rejection Rate
case
when (_ILot.InspLotHasSubsets = 'X' and (_ISubsetResult.InspectionResultStatus <> '4' or _InspSubsetCharcs.InspectionCharacteristicStatus <> '4' )
and ( _ISubsetResult.InspectionValuationResult = 'R' ) )
or (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic._InspectionResult.InspectionResultStatus <> '4' or _ICharacteristic.InspectionCharacteristicStatus <> '4' )
and ( _ICharacteristic._InspectionResult.InspectionValuationResult = 'R' ) )
then cast( 100 as abap.int4 )
else
cast( 0 as abap.int4 )
end as InspRsltRjcnRatePercent,
// Non-conformance units
case
when (_ILot.InspLotHasSubsets = 'X'
and (_InspSubsetCharcs.InspectionCharacteristicStatus <> '4' and _ISubsetResult.InspectionResultStatus <> '4' ))
then _ISubsetResult.InspRsltNonconformingValsNmbr
when (_ILot.InspLotHasSubsets <> 'X'
and (_ICharacteristic.InspectionCharacteristicStatus <> '4' and _ICharacteristic._InspectionResult.InspectionResultStatus <> '4' ) )
then _ICharacteristic._InspectionResult.InspRsltNonconformingValsNmbr
else
cast( 0 as abap.int4 )
end as InspRsltNonconformingValsNmbr,
// Inspected units
case
when (_ILot.InspLotHasSubsets = 'X' and (_InspSubsetCharcs.InspectionCharacteristicStatus <> '4' and _ISubsetResult.InspectionResultStatus <> '4' ))
then _ISubsetResult.InspResultValidValuesNumber
when (_ILot.InspLotHasSubsets <> 'X' and (_ICharacteristic.InspectionCharacteristicStatus <> '4'and _ICharacteristic._InspectionResult.InspectionResultStatus <> '4' ) )
then _ICharacteristic._InspectionResult.InspResultValidValuesNumber
else
cast( 0 as abap.int4 )
end as InspResultValidValuesNumber,
/*** Properties for DCL ***/
_ILot.InspectionLotType,
_ILot.InspectionSubsetType,
_ILot.MatlQualityAuthorizationGroup,
_ILot.IsBusinessPurposeCompleted,
//Associations
_ILot._Plant,
_ILot._Supplier,
_ILot._Customer,
_IOperation._WorkCenter,
_InspSpecificationVersion
}
where
// When Characteristic is skipped at DMR level
(
(
(
_ILot.InspLotHasSubsets = 'X'
and _InspSubsetCharcs.InspectionCharacteristicStatus = '4'
and _ISubsetResult.InspectionResultStatus is null
and _InspSubsetCharcs.InspSubsetCharcCreationDate >= $parameters.P_StartDate
and _InspSubsetCharcs.InspSubsetCharcCreationDate <= $parameters.P_EndDate
)
or(
_ILot.InspLotHasSubsets <> 'X'
and _ICharacteristic.InspectionCharacteristicStatus = '4'
and _ICharacteristic._InspectionResult.InspectionResultStatus is null
and _ICharacteristic.InspCharcCreationDate >= $parameters.P_StartDate
and _ICharacteristic.InspCharcCreationDate <= $parameters.P_EndDate
)
)
)
or(
// Characteristics without Inspection Points
(
(
_ICharacteristic._InspectionResult.InspectionResultStatus = '4' //Skip Status
or _ICharacteristic._InspectionResult.InspectionResultStatus = '5' //Processing is Completed Status
)
and(
_ILot.InspLotHasSubsets = ' '
or _ILot.InspLotHasSubsets = ''
)
and _ICharacteristic._InspectionResult.CreationDate >= $parameters.P_StartDate
and _ICharacteristic._InspectionResult.CreationDate <= $parameters.P_EndDate
)
// Characteristics with Inspection Points
or(
(
_ISubsetResult.InspectionResultStatus = '4' //Skip Status
or _ISubsetResult.InspectionResultStatus = '5' //Processing is Completed Status
)
and(
_ILot.InspLotHasSubsets = 'X'
and _InspSubsetCharcs.InspectionSubsetInternalID <> '000000'
)
and _ISubsetResult.CreationDate >= $parameters.P_StartDate
and _ISubsetResult.CreationDate <= $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