I_InspCharcsKeyFigCube

DDL: I_INSPCHARCSKEYFIGCUBE Type: view COMPOSITE Package: ODATA_QM_INSPECTION_ANALYTICS

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)

SourceAliasJoin Type
I_InspSubsetCharacteristic _InspSubsetCharcs from

Parameters (2)

NameTypeDefault
P_StartDate mm_a_delivery_date
P_EndDate mm_a_delivery_date

Associations (5)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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
    )
  )