I_BPDataControllerProcChanges

DDL: I_BPDATACONTROLLERPROCCHANGES Type: view_entity TRANSACTIONAL Package: MDC_BUPA_GOV_BO

Business Partner Data Controller Changes

I_BPDataControllerProcChanges is a Transactional CDS View that provides data about "Business Partner Data Controller Changes" in SAP S/4HANA. It reads from 2 data sources (I_BPDataControllerProcess, I_BPDataControllerProcess) and exposes 39 fields with key fields MasterDataChangeProcess, MDChgProcessStep, MDChgProcessSrceSystem, MDChgProcessSrceObject, DataController. It has 1 association to related views. Part of development package MDC_BUPA_GOV_BO.

Data Sources (2)

SourceAliasJoin Type
I_BPDataControllerProcess _Current from
I_BPDataControllerProcess _Current union_all

Associations (1)

CardinalityTargetAliasCondition
[1..1] I_BusinessPartnerProcess _BusinessPartner $projection.MasterDataChangeProcess = _BusinessPartner.MasterDataChangeProcess and $projection.MDChgProcessStep = _BusinessPartner.MDChgProcessStep and $projection.MDChgProcessSrceSystem = _BusinessPartner.MDChgProcessSrceSystem and $projection.MDChgProcessSrceObject = _BusinessPartner.MDChgProcessSrceObject

Annotations (7)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Business Partner Data Controller Changes view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #TRANSACTIONAL view

Fields (39)

KeyFieldSource TableSource FieldDescription
KEY MasterDataChangeProcess I_BPDataControllerProcess MasterDataChangeProcess
KEY MDChgProcessStep I_BPDataControllerProcess MDChgProcessStep
KEY MDChgProcessSrceSystem I_BPDataControllerProcess MDChgProcessSrceSystem
KEY MDChgProcessSrceObject I_BPDataControllerProcess MDChgProcessSrceObject
KEY DataController I_BPDataControllerProcess DataController
KEY PurposeForPersonalData I_BPDataControllerProcess PurposeForPersonalData
KEY MDChgProcessModelTableName _ModelTable MDChgProcessModelTableName
KEY MDChangeProcessModelFieldName
KEY char1000asMDChgProcessRecordObjectID
MDChangeProcModelTableDesc _ModelTable MDChangeProcModelTableDesc
MDChangeProcessModelFieldDesc
MDChgProcModelNodeExternalName
MDChgProcModTableExternalName
MDChgProcModFieldExternalName
MDChgProcCurrentAttributeValue
MDChgProcPrevAttributeValue
MDChgProcessAttributeIsChanged
MDChgProcessRecordObjectText
MDChgProcessSourceModified I_BPDataControllerProcess MDChgProcessSourceModified
MasterDataChangeProcess
KEY MDChgProcessStep I_BPDataControllerProcess MDChgProcessStep
KEY MDChgProcessSrceSystem I_BPDataControllerProcess MDChgProcessSrceSystem
KEY MDChgProcessSrceObject I_BPDataControllerProcess MDChgProcessSrceObject
KEY DataController I_BPDataControllerProcess DataController
KEY PurposeForPersonalData I_BPDataControllerProcess PurposeForPersonalData
KEY MDChgProcessModelTableName _ModelField MDChgProcessModelTableName
KEY MDChangeProcessModelFieldName _ModelField MDChangeProcessModelFieldName
KEY char1000asMDChgProcessRecordObjectID
MDChangeProcModelTableDesc _ModelField MDChangeProcModelTableDesc
MDChangeProcessModelFieldDesc _ModelField MDChangeProcessModelFieldDesc
MDChgProcModelNodeExternalName
MDChgProcModTableExternalName
MDChgProcModFieldExternalName
MDChgProcCurrentAttributeValue
MDChgProcPrevAttributeValue
MDChgProcessAttributeIsChanged
MDChgProcessRecordObjectText
MDChgProcessSourceModified I_BPDataControllerProcess MDChgProcessSourceModified
_BusinessPartner _BusinessPartner
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Business Partner Data Controller Changes'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #XXL,
  dataClass: #TRANSACTIONAL
}
@VDM.viewType: #TRANSACTIONAL
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
define view entity I_BPDataControllerProcChanges
  as select from           I_BPDataControllerProcess   as _Current
    left outer to one join I_MDChangeProcessModelTable as _ModelTable on  _ModelTable.MDChgProcessModelTableName     = 'BUT_DC_LINK'
                                                                      and _ModelTable.MDChgProcessSrceObjectTypeCode = '147'
  association [1..1] to I_BusinessPartnerProcess as _BusinessPartner on  $projection.MasterDataChangeProcess = _BusinessPartner.MasterDataChangeProcess
                                                                     and $projection.MDChgProcessStep        = _BusinessPartner.MDChgProcessStep
                                                                     and $projection.MDChgProcessSrceSystem  = _BusinessPartner.MDChgProcessSrceSystem
                                                                     and $projection.MDChgProcessSrceObject  = _BusinessPartner.MDChgProcessSrceObject
{
  key _Current.MasterDataChangeProcess,
  key _Current.MDChgProcessStep,
  key _Current.MDChgProcessSrceSystem,
  key _Current.MDChgProcessSrceObject,
  key _Current.DataController,
  key _Current.PurposeForPersonalData,
  key _ModelTable.MDChgProcessModelTableName,

  key cast ( '' as fieldname )                           as MDChangeProcessModelFieldName,
  key cast( concat(
                 concat(
                  concat( _Current.MDChgProcessSrceSystem, concat( '%%', _Current.MDChgProcessSrceObject )),
                 concat( '%%', _Current.DataController )),
            concat( '%%', _Current.PurposeForPersonalData ))
      as abap.char(1000) )                               as MDChgProcessRecordObjectID,

      _ModelTable.MDChangeProcModelTableDesc,
      cast ('' as as4text )                              as MDChangeProcessModelFieldDesc,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      cast( 'DataController' as fieldname )              as MDChgProcModelNodeExternalName,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      cast( 'I_BPDataControllerProcessTP' as fieldname ) as MDChgProcModTableExternalName,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_BP_BUPAPROCTP2_CALC_EXIT'
      cast( '' as fieldname )                            as MDChgProcModFieldExternalName,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_BP_BUPAPROCTP2_CALC_EXIT'
      cast( '' as abap.char( 260 ) )                     as MDChgProcCurrentAttributeValue,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_BP_BUPAPROCTP2_CALC_EXIT'
      cast( '' as abap.char( 260 ) )                     as MDChgProcPrevAttributeValue,
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_BP_BUPAPROCTP2_CALC_EXIT'
      cast( '' as boolean )                              as MDChgProcessAttributeIsChanged,
      cast(  _Current.DataController as abap.char( 260 ) ) as MDChgProcessRecordObjectText,
     _Current.MDChgProcessSourceModified,
//     _Current.DataControlAssignmentStatus,

//     _Current.IsDerivationSet,

      _BusinessPartner
}

where
     _Current.MDChgProcessSourceModified = 'I'
  or _Current.MDChgProcessSourceModified = 'D'

union all select from     I_BPDataControllerProcess   as _Current
  left outer to many join I_MDChangeProcessModelField as _ModelField on  _ModelField.MDChgProcessModelTableName     = 'BUT_DC_LINK'
                                                                     and _ModelField.MDChgProcessSrceObjectTypeCode = '147'
association [1..1] to I_BusinessPartnerProcess as _BusinessPartner on  $projection.MasterDataChangeProcess = _BusinessPartner.MasterDataChangeProcess
                                                                   and $projection.MDChgProcessStep        = _BusinessPartner.MDChgProcessStep
                                                                   and $projection.MDChgProcessSrceSystem  = _BusinessPartner.MDChgProcessSrceSystem
                                                                   and $projection.MDChgProcessSrceObject  = _BusinessPartner.MDChgProcessSrceObject
{
  key _Current.MasterDataChangeProcess,
  key _Current.MDChgProcessStep,
  key _Current.MDChgProcessSrceSystem,
  key _Current.MDChgProcessSrceObject,
  key _Current.DataController,
  key _Current.PurposeForPersonalData,
  key _ModelField.MDChgProcessModelTableName,
  key _ModelField.MDChangeProcessModelFieldName,
  key cast( concat(
                 concat(
                  concat( _Current.MDChgProcessSrceSystem, concat( '%%', _Current.MDChgProcessSrceObject )),
                 concat( '%%', _Current.DataController )),
            concat( '%%', _Current.PurposeForPersonalData ))
      as abap.char(1000) )                               as MDChgProcessRecordObjectID,

      _ModelField.MDChangeProcModelTableDesc,
      _ModelField.MDChangeProcessModelFieldDesc,
      cast( 'BusinessPartnerDataController' as fieldname )              as MDChgProcModelNodeExternalName,
      cast( 'I_BPDataControllerProcessTP' as fieldname ) as MDChgProcModTableExternalName,
      cast( '' as fieldname )                            as MDChgProcModFieldExternalName,
      cast( '' as abap.char( 260 ) )                     as MDChgProcCurrentAttributeValue,
      cast( '' as abap.char( 260 ) )                     as MDChgProcPrevAttributeValue,
      cast( '' as boolean )                              as MDChgProcessAttributeIsChanged,
      cast(  _Current.DataController as abap.char( 260 ) ) as MDChgProcessRecordObjectText,
      _Current.MDChgProcessSourceModified,
//      _Current.DataControlAssignmentStatus,

//      _Current.IsDerivationSet,

      _BusinessPartner
}

where
  _Current.MDChgProcessSourceModified = 'X'