I_BPRelshpProcessKPIRecordType

DDL: I_BPRELSHPPROCESSKPIRECORDTYPE SQL: IBPRPRORECKPITYP Type: view TRANSACTIONAL

MD Chg Proc Record Type KPI of a Record

I_BPRelshpProcessKPIRecordType is a Transactional CDS View that provides data about "MD Chg Proc Record Type KPI of a Record" in SAP S/4HANA. It reads from 5 data sources (I_MDChgProcessStep, I_MDChgProcessStep, I_MDChgProcessStep, I_MDChgProcessStep, I_MDChgProcessStep) and exposes 26 fields with key fields MasterDataChangeProcess, MDChgProcessStep, MDChgProcessSrceSystem, MDChgProcessSrceObject, MDChgProcessStep. It has 3 associations to related views.

Data Sources (5)

SourceAliasJoin Type
I_MDChgProcessStep Step from
I_MDChgProcessStep Step union
I_MDChgProcessStep Step union
I_MDChgProcessStep Step union
I_MDChgProcessStep Step union

Associations (3)

CardinalityTargetAliasCondition
[0..1] P_MDChgProcessOpenMatchGroup _OpenMatchGroup _OpenMatchGroup.MasterDataChangeProcess = MatchGroup.MasterDataChangeProcess and _OpenMatchGroup.MDChgProcessMatchGroupID = MatchGroup.MDChgProcessMatchGroupID
[0..1] I_MDChgProcKPIFilterRecordType _KPIRecordTypeText $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
[0..1] I_MDChgProcessStep _MTCStep $projection.MasterDataChangeProcess = _MTCStep.MasterDataChangeProcess and _MTCStep.MDChgProcessStepType = 'MTC' and _MTCStep.MDChgProcessSrceObjectTypeCode = '1405'

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName IBPRPRORECKPITYP view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label MD Chg Proc Record Type KPI of a Record view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
VDM.viewType #TRANSACTIONAL view

Fields (26)

KeyFieldSource TableSource FieldDescription
KEY MasterDataChangeProcess BusPartRelation MasterDataChangeProcess
KEY MDChgProcessStep BusPartRelation MDChgProcessStep
KEY MDChgProcessSrceSystem BusPartRelation MDChgProcessSrceSystem
KEY MDChgProcessSrceObject BusPartRelation MDChgProcessSrceObject
MDChgProcKPIRecordType
MasterDataChangeProcess
KEY MDChgProcessStep BusPartRelation MDChgProcessStep
KEY MDChgProcessSrceSystem BusPartRelation MDChgProcessSrceSystem
KEY MDChgProcessSrceObject BusPartRelation MDChgProcessSrceObject
MDChgProcKPIRecordType
MasterDataChangeProcess
KEY MDChgProcessStep BusPartRelation MDChgProcessStep
KEY MDChgProcessSrceSystem BusPartRelation MDChgProcessSrceSystem
KEY MDChgProcessSrceObject BusPartRelation MDChgProcessSrceObject
MDChgProcKPIRecordType
MasterDataChangeProcess
KEY MDChgProcessStep BusPartRelation MDChgProcessStep
KEY MDChgProcessSrceSystem BusPartRelation MDChgProcessSrceSystem
KEY MDChgProcessSrceObject BusPartRelation MDChgProcessSrceObject
MDChgProcKPIRecordType
MasterDataChangeProcess
KEY MDChgProcessStep BusPartRelation MDChgProcessStep
KEY MDChgProcessSrceSystem BusPartRelation MDChgProcessSrceSystem
KEY MDChgProcessSrceObject BusPartRelation MDChgProcessSrceObject
MDChgProcKPIRecordType
_KPIRecordTypeText _KPIRecordTypeText
@AbapCatalog.sqlViewName: 'IBPRPRORECKPITYP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'MD Chg Proc Record Type KPI of a Record'
@ObjectModel : {
  usageType : {
    dataClass: #MIXED,
    serviceQuality: #C,
    sizeCategory: #M
    }
  }
@VDM.viewType: #TRANSACTIONAL
define view I_BPRelshpProcessKPIRecordType

  // New Single Record

  as select from            I_MDChgProcessStep             as Step
    join                    I_MasterDataChangeProcess      as Process         on Step.MasterDataChangeProcess = Process.MasterDataChangeProcess
    left outer to many join I_BusPartRelationshipProcess   as BusPartRelation on  BusPartRelation.MasterDataChangeProcess = Step.MasterDataChangeProcess
                                                                              and BusPartRelation.MDChgProcessStep        = Step.MDChgProcessStep
    left outer to many join I_MDChgProcessMatchGroupRecord as MatchGroup      on  BusPartRelation.MasterDataChangeProcess = MatchGroup.MasterDataChangeProcess
                                                                              and BusPartRelation.MDChgProcessSrceSystem  = MatchGroup.MDChgProcessSrceSystem
                                                                              and BusPartRelation.MDChgProcessSrceObject  = MatchGroup.MDChgProcessSrceObject
  association [0..1] to P_MDChgProcessOpenMatchGroup   as _OpenMatchGroup    on  _OpenMatchGroup.MasterDataChangeProcess  = MatchGroup.MasterDataChangeProcess
                                                                             and _OpenMatchGroup.MDChgProcessMatchGroupID = MatchGroup.MDChgProcessMatchGroupID
  association [0..1] to I_MDChgProcKPIFilterRecordType as _KPIRecordTypeText on  $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
  association [0..1] to I_MDChgProcessStep             as _MTCStep           on  $projection.MasterDataChangeProcess     = _MTCStep.MasterDataChangeProcess
                                                                             and _MTCStep.MDChgProcessStepType           = 'MTC'
                                                                             and _MTCStep.MDChgProcessSrceObjectTypeCode = '1405'
{
  key BusPartRelation.MasterDataChangeProcess,
  key BusPartRelation.MDChgProcessStep,
  key BusPartRelation.MDChgProcessSrceSystem,
  key BusPartRelation.MDChgProcessSrceObject,
      cast ('S' as mdc_kpi_filter_val ) as MDChgProcKPIRecordType,
      @ObjectModel.text.element: ['_KPIRecordTypeText.MDChangeProcKPIValueKeyDesc']
      _KPIRecordTypeText
}
where
       Process.MDChgProcessGoal                 <> 'U'
  and  Process.MDChgProcessGoal                 <> 'B'
  and  Process.MDChgProcessGoal                 <> 'R'
  and  Process.MDChgProcessGoal                 <> 'D'
  and  Process.MDChgProcessGoal                 <> 'E'
  and(
       Step.MDChgProcessStepType                =  'VAL'
    or Step.MDChgProcessStepType                =  'BRC'
  )
  and(
       MatchGroup.MDChgProcessMatchGroupID      is null
    or MatchGroup.MDChgProcMatchGrpApprvlStatus =  'D'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus =  ''
    or _OpenMatchGroup.MDChgProcessMatchGroupID is not null
    or Step.MDChgProcessStep                    <  _MTCStep.MDChgProcessStep
  )

// Update

union select from         I_MDChgProcessStep             as Step
  join                    I_MasterDataChangeProcess      as Process         on Step.MasterDataChangeProcess = Process.MasterDataChangeProcess
  left outer to many join I_BusPartRelationshipProcess   as BusPartRelation on  BusPartRelation.MasterDataChangeProcess = Step.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessStep        = Step.MDChgProcessStep
  join                    mdc_own_bus_sys                as OwnBusSystem    on BusPartRelation.MDChgProcessSrceSystem = OwnBusSystem.own_business_system
  join                    I_MDChgProcessMatchGroupRecord as MatchGroup      on  BusPartRelation.MasterDataChangeProcess = MatchGroup.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessSrceSystem  = MatchGroup.MDChgProcessSrceSystem
                                                                            and BusPartRelation.MDChgProcessSrceObject  = MatchGroup.MDChgProcessSrceObject
association [0..1] to I_MDChgProcKPIFilterRecordType as _KPIRecordTypeText on $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
{
  key BusPartRelation.MasterDataChangeProcess,
  key BusPartRelation.MDChgProcessStep,
  key BusPartRelation.MDChgProcessSrceSystem,
  key BusPartRelation.MDChgProcessSrceObject,
      cast ('U' as mdc_kpi_filter_val ) as MDChgProcKPIRecordType,
      @ObjectModel.text.element: ['_KPIRecordTypeText.MDChangeProcKPIValueKeyDesc']
      _KPIRecordTypeText
}
where
  (
       Step.MDChgProcessStepType                = 'VAL'
    or Step.MDChgProcessStepType                = 'BRC'
  )
  and  MatchGroup.MDChgProcMatchGrpIsBestRecord = 'X'
  and(
       MatchGroup.MDChgProcMatchGrpApprvlStatus = 'A'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'M'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'U'
  )

// Update

union select from         I_MDChgProcessStep             as Step
  join                    I_MasterDataChangeProcess      as Process         on Step.MasterDataChangeProcess = Process.MasterDataChangeProcess
  left outer to many join I_BusPartRelationshipProcess   as BusPartRelation on  BusPartRelation.MasterDataChangeProcess = Step.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessStep        = Step.MDChgProcessStep
  join                    mdc_own_bus_sys                as OwnBusSystem    on BusPartRelation.MDChgProcessSrceSystem = OwnBusSystem.own_business_system
  join                    I_MDChgProcessMatchGroupRecord as MatchGroup      on  BusPartRelation.MasterDataChangeProcess = MatchGroup.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessSrceSystem  = MatchGroup.MDChgProcessSrceSystem
                                                                            and BusPartRelation.MDChgProcessSrceObject  = MatchGroup.MDChgProcessSrceObject
association [0..1] to I_MDChgProcKPIFilterRecordType as _KPIRecordTypeText on $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
{
  key BusPartRelation.MasterDataChangeProcess,
  key BusPartRelation.MDChgProcessStep,
  key BusPartRelation.MDChgProcessSrceSystem,
  key BusPartRelation.MDChgProcessSrceObject,
      cast ('U' as mdc_kpi_filter_val ) as MDChgProcKPIRecordType,
      @ObjectModel.text.element: ['_KPIRecordTypeText.MDChangeProcKPIValueKeyDesc']
      _KPIRecordTypeText
}
where
  (
       Step.MDChgProcessStepType                = 'VAL'
    or Step.MDChgProcessStepType                = 'BRC'
  )
  and  MatchGroup.MDChgProcMatchGrpIsBestRecord = 'X'
  and(
       MatchGroup.MDChgProcMatchGrpApprvlStatus = 'A'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'M'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'U'
  )

// Update without MTC

union select from         I_MDChgProcessStep           as Step
  join                    I_MasterDataChangeProcess    as Process         on Step.MasterDataChangeProcess = Process.MasterDataChangeProcess
  left outer to many join I_BusPartRelationshipProcess as BusPartRelation on  BusPartRelation.MasterDataChangeProcess = Step.MasterDataChangeProcess
                                                                          and BusPartRelation.MDChgProcessStep        = Step.MDChgProcessStep
  join                    mdc_own_bus_sys              as OwnBusSystem    on BusPartRelation.MDChgProcessSrceSystem = OwnBusSystem.own_business_system

association [0..1] to I_MDChgProcKPIFilterRecordType as _KPIRecordTypeText on $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
{
  key BusPartRelation.MasterDataChangeProcess,
  key BusPartRelation.MDChgProcessStep,
  key BusPartRelation.MDChgProcessSrceSystem,
  key BusPartRelation.MDChgProcessSrceObject,
      cast ('U' as mdc_kpi_filter_val ) as MDChgProcKPIRecordType,
      @ObjectModel.text.element: ['_KPIRecordTypeText.MDChangeProcKPIValueKeyDesc']
      _KPIRecordTypeText
}
where
       Process.MDChgProcessGoal  = 'U'
  or   Process.MDChgProcessGoal  = 'B'
  or   Process.MDChgProcessGoal  = 'R'
  or   Process.MDChgProcessGoal  = 'D'
  or   Process.MDChgProcessGoal  = 'E'
  and(
       Step.MDChgProcessStepType = 'VAL'
    or Step.MDChgProcessStepType = 'BRC'
  )

// New Best Record

union select from         I_MDChgProcessStep             as Step
  join                    I_MasterDataChangeProcess      as Process         on Step.MasterDataChangeProcess = Process.MasterDataChangeProcess
  left outer to many join I_BusPartRelationshipProcess   as BusPartRelation on  BusPartRelation.MasterDataChangeProcess = Step.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessStep        = Step.MDChgProcessStep
  join                    mdc_own_bus_sys                as OwnBusSystem    on BusPartRelation.MDChgProcessSrceSystem <> OwnBusSystem.own_business_system
  join                    I_MDChgProcessMatchGroupRecord as MatchGroup      on  BusPartRelation.MasterDataChangeProcess = MatchGroup.MasterDataChangeProcess
                                                                            and BusPartRelation.MDChgProcessSrceSystem  = MatchGroup.MDChgProcessSrceSystem
                                                                            and BusPartRelation.MDChgProcessSrceObject  = MatchGroup.MDChgProcessSrceObject
association [0..1] to P_MDChgProcessOpenMatchGroup   as _OpenMatchGroup    on  _OpenMatchGroup.MasterDataChangeProcess  = MatchGroup.MasterDataChangeProcess
                                                                           and _OpenMatchGroup.MDChgProcessMatchGroupID = MatchGroup.MDChgProcessMatchGroupID
association [0..1] to I_MDChgProcKPIFilterRecordType as _KPIRecordTypeText on  $projection.MDChgProcKPIRecordType = _KPIRecordTypeText.MDChangeProcKPIValueKey
{
  key BusPartRelation.MasterDataChangeProcess,
  key BusPartRelation.MDChgProcessStep,
  key BusPartRelation.MDChgProcessSrceSystem,
  key BusPartRelation.MDChgProcessSrceObject,
      cast ('B' as mdc_kpi_filter_val ) as MDChgProcKPIRecordType,
      @ObjectModel.text.element: ['_KPIRecordTypeText.MDChangeProcKPIValueKeyDesc']
      _KPIRecordTypeText
}
where
  (
       Step.MDChgProcessStepType                = 'VAL'
    or Step.MDChgProcessStepType                = 'BRC'
  )
  and  MatchGroup.MDChgProcMatchGrpIsBestRecord = 'X'
  and  _OpenMatchGroup.MDChgProcessMatchGroupID is null
  and(
       MatchGroup.MDChgProcMatchGrpApprvlStatus = 'A'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'M'
    or MatchGroup.MDChgProcMatchGrpApprvlStatus = 'U'
  )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSPARTRELATIONSHIPPROCESS",
"I_MASTERDATACHANGEPROCESS",
"I_MDCHGPROCESSMATCHGROUPRECORD",
"I_MDCHGPROCESSSTEP",
"P_MDCHGPROCESSOPENMATCHGROUP",
"MDC_OWN_BUS_SYS"
],
"ASSOCIATED":
[
"I_MDCHGPROCESSSTEP",
"I_MDCHGPROCKPIFILTERRECORDTYPE",
"P_MDCHGPROCESSOPENMATCHGROUP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/