P_EngmntProjWithStdRoles

DDL: P_ENGMNTPROJWITHSTDROLES Type: view COMPOSITE

P_EngmntProjWithStdRoles is a Composite CDS View in SAP S/4HANA. It reads from 6 data sources and exposes 30 fields with key fields EngagementProjectUUID, EngagementProject, EngagementProjectTeamRole, BusinessPartnerUUID, BusinessPartner.

Data Sources (6)

SourceAliasJoin Type
I_EngagementProject A from
I_EnterpriseProjectRole B inner
I_EntProjectEntitlement C left_outer
I_EnterpriseProjectTeamMember D left_outer
I_BusinessUserBasic E left_outer
I_BPUsrExternalID F inner

Annotations (12)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName PEPWTHSTDROLES view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.private true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #NONE view
Metadata.ignorePropagatedAnnotations true view

Fields (30)

KeyFieldSource TableSource FieldDescription
KEY EngagementProjectUUID I_EngagementProject EngagementProjectUUID
KEY EngagementProject I_EngagementProject EngagementProject
KEY EngagementProjectTeamRole I_EnterpriseProjectRole ProjectRoleType
KEY BusinessPartnerUUID I_BusinessUserBasic BusinessPartnerUUID
KEY BusinessPartner I_BusinessUserBasic BusinessPartner
ProjectStartDate I_EngagementProject ProjectStartDate
ProjectEndDate I_EngagementProject ProjectEndDate
Customer I_EngagementProject Customer
EngagementProjectServiceOrg I_EngagementProject EngagementProjectServiceOrg
EngagementProjectType I_EngagementProject EngagementProjectType
EngagementProjectCategory I_EngagementProject EngagementProjectCategory
EngagementProjectStage I_EngagementProject EngagementProjectStage
ProjectVisibility I_EngagementProject ProjectVisibility
ProjectProfileCode I_EngagementProject ProjectProfileCode
CompanyCode I_EngagementProject CompanyCode
ControllingArea I_EngagementProject ControllingArea
CostCenter I_EngagementProject CostCenter
ProfitCenter I_EngagementProject ProfitCenter
LastChangeDateTime I_EngagementProject LastChangeDateTime
EngagementProjectName I_EngagementProject EngagementProjectName
UserIDendasProjectManager
PersonFullNameendasProjectManagerName
UserIDendasProjectAccountant
PersonFullNameendasProjectAccountantName
UserIDendasProjectController
PersonFullNameendasProjectControllerName
UserIDendasProjectpartner
PersonFullNameendasProjectpartnerName
userthenXelseendasIsMyProjectRole
CurrentDate
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
    sqlViewName: 'PEPWTHSTDROLES',
    compiler.compareFilter: true,
    preserveKey: true
}
@AccessControl: {
    authorizationCheck: #NOT_REQUIRED
}
@ObjectModel: {
    usageType.serviceQuality: #D,
    usageType.sizeCategory: #XL,
    usageType.dataClass: #MIXED
}
@VDM: {
    private: true,
    viewType: #COMPOSITE,
    lifecycle.contract.type: #NONE
}
@Metadata.ignorePropagatedAnnotations: true

define view P_EngmntProjWithStdRoles
  as select from    I_EngagementProject           as A
    inner join      I_EnterpriseProjectRole       as B on A.EngagementProjectUUID = B.ProjectUUID
    left outer join I_EntProjectEntitlement       as C on B.ProjectRoleUUID = C.ProjectRoleUUID
    left outer join I_EnterpriseProjectTeamMember as D on C.TeamMemberUUID = D.TeamMemberUUID
    left outer join I_BusinessUserBasic           as E on E.BusinessPartnerUUID = D.BusinessPartnerUUID
    inner join      I_BPUsrExternalID             as F on E.BusinessPartner = F.BusinessPartner
{

  key A.EngagementProjectUUID,
  key A.EngagementProject,
  key B.ProjectRoleType    as EngagementProjectTeamRole,
  key E.BusinessPartnerUUID,
  key E.BusinessPartner,
      A.ProjectStartDate,
      A.ProjectEndDate,
      A.Customer,
      A.EngagementProjectServiceOrg,
      A.EngagementProjectType,
      A.EngagementProjectCategory,
      A.EngagementProjectStage,
      A.ProjectVisibility,
      A.ProjectProfileCode,
      A.CompanyCode,
      A.ControllingArea,
      A.CostCenter,
      A.ProfitCenter,
      A.LastChangeDateTime, 
      A.EngagementProjectName, 
      case when B.ProjectRoleType = 'YP_RL_0001'
      then F.BPIdentificationNumber
      else '' end          as ProjectManagerExternalID,
      case when B.ProjectRoleType = 'YP_RL_0001'
      then E.UserID
      end                  as ProjectManager,
      case when B.ProjectRoleType = 'YP_RL_0001'
      then E.PersonFullName
      end                  as ProjectManagerName,
      case when B.ProjectRoleType = '0SAP_RL_006'
      then F.BPIdentificationNumber

      end                  as ProjectAccountantExternalID,
      case when B.ProjectRoleType = '0SAP_RL_006'
      then E.UserID
      end                  as ProjectAccountant,
      case when B.ProjectRoleType = '0SAP_RL_006'
      then E.PersonFullName
      end                  as ProjectAccountantName,
      case when B.ProjectRoleType = '0SAP_RL_005'
      then F.BPIdentificationNumber
      end                  as ProjectControllerExternalID,
      case when B.ProjectRoleType = '0SAP_RL_005'
      then E.UserID
      end                  as ProjectController,
      case when B.ProjectRoleType = '0SAP_RL_005'
      then E.PersonFullName
      end                  as ProjectControllerName,
      case when B.ProjectRoleType = '0SAP_RL_007'
      then F.BPIdentificationNumber
      end                  as ProjectpartnerExternalID,
      case when B.ProjectRoleType = '0SAP_RL_007'
      then E.UserID
      end                  as Projectpartner,
      case when B.ProjectRoleType = '0SAP_RL_007'
      then E.PersonFullName
      end                  as ProjectpartnerName,
      case when E.UserID = $session.user
      then 'X'
      else ''
      end                  as IsMyProjectRole,
      $session.system_date as CurrentDate
}
where
     F.BPIdentificationType = 'HCM001' // HCM001 - Employee ID

  or F.BPIdentificationType = 'HCM030' // HCM030 - Service Agent

  or F.BPIdentificationType = 'HCM031' // HCM031 - Freelancer

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BPUSREXTERNALID",
"I_BUSINESSUSERBASIC",
"I_ENGAGEMENTPROJECT",
"I_ENTERPRISEPROJECTROLE",
"I_ENTERPRISEPROJECTTEAMMEMBER",
"I_ENTPROJECTENTITLEMENT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/