I_PPM_BUSINESSPARTNERFOROBJECT

CDS View

Responsible or assigned BusinessPartners for objects

I_PPM_BUSINESSPARTNERFOROBJECT is a CDS View in S/4HANA. Responsible or assigned BusinessPartners for objects. It contains 2 fields. 4 CDS views read from this table.

CDS Views using this table (4)

ViewTypeJoinVDMDescription
I_DevProjResponsible view from COMPOSITE Responsible Details
I_PPM_MyChecklistItem view from COMPOSITE Returns My Checklist Items
P_PPM_ResponsibleSummaryForObj view from COMPOSITE
P_PPM_RespSummaryForObjInRange view from COMPOSITE

Fields (2)

KeyField CDS FieldsUsed in Views
KEY BusinessPartnerUUID BusinessPartnerUUID 1
ProjectRoleUUID ProjectRoleUUID 2
@EndUserText.label: 'Responsible or assigned BusinessPartners for objects'
@VDM.viewType: #BASIC

@AbapCatalog: { 
    sqlViewName: 'IPPMBPFOROBJ',
    compiler.compareFilter: true,
    preserveKey:true
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@ObjectModel: {
   representativeKey: 'BusinessPartnerUUID',
   usageType: {
     serviceQuality:  #C,
     dataClass:       #MIXED,
     sizeCategory:    #XL
   }
}
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

define view I_PPM_BusinessPartnerForObject 

// Return all objects including information which Business Partner is either responsible or task assigned

  //return Entities and Business Partners with concrete linkage

  
  as select from dpr_entity_link as elink
    join         dpr_bupa_link   as blink    on blink.participant_guid = elink.participant_guid
    join         cgpl_hierarchy  as cgplhier on cgplhier.guid = elink.participant_guid
association [0..1]  to I_BusinessUserBasic              as _BusinessUser
                    on $projection.BusinessPartnerUUID  =  _BusinessUser.BusinessPartnerUUID                                    
association [0..1]  to I_PPM_Text                       as _ProjectRoleName
                    on ( $projection.ProjectRoleUUID         = _ProjectRoleName.ReferencedObjectUUID ) 
                    and ( _ProjectRoleName.LanguageCode      = $session.system_language )
{
  key elink.entity_guid            as ReferencedObjectUUID,
  key blink.bupa_guid              as BusinessPartnerUUID,
      cast(cgplhier.up             as /s4ppm/tv_entity_guid preserving type ) as ProjectRoleUUID,
      elink.responsible            as IsBusinessPartnerResponsible,
      cast( case when elink.beg_tmstmp = 0 then
         
      case when blink.beg_tmstmp = 0 then
                  blink.planstart
             else
              blink.beg_tmstmp end
      else elink.beg_tmstmp end as timestamp ) as StaffingPeriodStartDateTime,
      cast( case when elink.end_tmstmp = 0 then
         
      case when blink.end_tmstmp = 0 then
                  blink.planfinish
             else
              blink.end_tmstmp end
      else elink.end_tmstmp end as timestamp ) as StaffingPeriodFinishDateTime,
      _BusinessUser,
      _ProjectRoleName
}

union

//return Entities and Business Partners with abstract linkage

select from dpr_entity_link as elink
  join      cgpl_hierarchy  as cgplhier on cgplhier.up = elink.participant_guid
  join      dpr_bupa_link   as blink    on blink.participant_guid = cgplhier.guid
association [0..1]  to I_BusinessUserBasic              as _BusinessUser
                    on $projection.BusinessPartnerUUID  =  _BusinessUser.BusinessPartnerUUID                                                       
association [0..1]  to I_PPM_Text                       as _ProjectRoleName
                    on ( $projection.ProjectRoleUUID         = _ProjectRoleName.ReferencedObjectUUID ) 
                    and ( _ProjectRoleName.LanguageCode      = $session.system_language )
{
  key elink.entity_guid              as ReferencedObjectUUID,
  key blink.bupa_guid                as BusinessPartnerUUID,
      cgplhier.up                    as ProjectRoleUUID,
      elink.responsible              as IsBusinessPartnerResponsible,
      cast( case when elink.beg_tmstmp = 0 then
         
      case when blink.beg_tmstmp = 0 then
                  blink.planstart
             else
              blink.beg_tmstmp end
      else elink.beg_tmstmp end as timestamp ) as StaffingPeriodStartDateTime,
      cast( case when elink.end_tmstmp = 0 then
         
      case when blink.end_tmstmp = 0 then
                  blink.planfinish
             else
              blink.end_tmstmp end
      else elink.end_tmstmp end as timestamp ) as StaffingPeriodFinishDateTime,
      _BusinessUser,
      //_BusinessPartner, // obsolete, will be removed

      _ProjectRoleName
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"CGPL_HIERARCHY",
"DPR_BUPA_LINK",
"DPR_ENTITY_LINK"
],
"ASSOCIATED":
[
"I_BUSINESSUSERBASIC",
"I_PPM_TEXT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/