I_MasterProjectRole

DDL: I_MASTERPROJECTROLE SQL: IMSTRPROJROLE Type: view COMPOSITE Package: VDM_CPM_WS

Master Project Role

I_MasterProjectRole is a Composite CDS View that provides data about "Master Project Role" in SAP S/4HANA. It reads from 5 data sources (I_MasterProject, I_EngagementProjectTeamRole, I_EngagementProjectTeam, I_MstrProjMember, I_EngmtProjTeamMember) and exposes 21 fields with key fields MasterProject, ProjectRole. It has 3 associations to related views. Part of development package VDM_CPM_WS.

Data Sources (5)

SourceAliasJoin Type
I_MasterProject Project from
I_EngagementProjectTeamRole ProjectRoles left_outer
I_EngagementProjectTeam ProjectTeam inner
I_MstrProjMember ProjMembers left_outer
I_EngmtProjTeamMember TeamMembers left_outer

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_DistinctEmployee _Employment $projection.EmploymentInternalID = _Employment.EmploymentInternalID
[1..1] I_MstrProjRoleID _ProjectRole $projection.ProjectRole = _ProjectRole.ProjectRole
[1..1] I_User _User $projection.BusinessUser = _User.UserID

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName IMSTRPROJROLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Master Project Role view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
Search.searchable true view
AccessControl.personalData.blocking #REQUIRED view

Fields (21)

KeyFieldSource TableSource FieldDescription
KEY MasterProject I_MasterProject MasterProject
KEY ProjectRole I_EngagementProjectTeamRole EngagementProjectTeamRole
StartDate I_MasterProject StartDate
EndDate I_MasterProject EndDate
BusinessUser _Employment BusinessUser
ProjectUUID I_MasterProject MasterProjectUUID
EngagementProjectTeamUUID I_EngagementProjectTeam EngagementProjectTeamUUID
ProjectRoleUUID I_EngagementProjectTeamRole EngagementProjectTeamRoleUUID
MstrProjTeamMemberUUID I_EngmtProjTeamMember EngmtProjTeamMemberUUID
MstrProjMemberUUID I_EngmtProjTeamMember EngagementProjectMemberUUID
EmploymentInternalID I_MstrProjMember BusinessPartner
BusinessPartnerType I_MstrProjMember BusinessPartnerType
EmployeeFullName _Employment EmployeeFullName
MasterProjectType I_MasterProject MasterProjectType
MasterProjectOrganization I_MasterProject MasterProjectOrganization
MasterProjectIsConfidential I_MasterProject MasterProjectIsConfidential
_ProjectRole _ProjectRole
_Employment _Employment
Person _Employment Person
_WorkforcePerson _Employment _WorkforcePerson
_User _User
@AbapCatalog.sqlViewName: 'IMSTRPROJROLE'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Master Project Role'
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE
@Search.searchable: true
@AccessControl.personalData.blocking: #REQUIRED
define view I_MasterProjectRole
  as select from    I_MasterProject             as Project

    inner join      I_EngagementProjectTeam     as ProjectTeam  on Project.MasterProjectUUID = ProjectTeam.EngagementProjectUUID

    left outer join I_EngagementProjectTeamRole as ProjectRoles on ProjectTeam.EngagementProjectTeamUUID = ProjectRoles.EngagementProjectTeamUUID
    left outer join I_EngmtProjTeamMember       as TeamMembers  on ProjectRoles.EngagementProjectTeamRoleUUID = TeamMembers.EngagementProjectTeamRoleUUID
    left outer join I_MstrProjMember            as ProjMembers  on TeamMembers.EngagementProjectMemberUUID = ProjMembers.MstrProjMemberUUID

 association [0..1] to I_DistinctEmployee      as _Employment on $projection.EmploymentInternalID = _Employment.EmploymentInternalID

  //                                                 and $projection.StartDate     >= _Employment.StartDate

  //                                                 and $projection.EndDate       <= _Employment.EndDate

  association [1..1] to I_MstrProjRoleID as _ProjectRole       on $projection.ProjectRole = _ProjectRole.ProjectRole
  association [1..1] to I_User                  as _User       on $projection.BusinessUser = _User.UserID
{

  key Project.MasterProject,
      //  @ObjectModel.text.association: '_Text'

      @Search.defaultSearchElement: true
  key ProjectRoles.EngagementProjectTeamRole                                            as ProjectRole,
      Project.StartDate                                                                 as StartDate,
      Project.EndDate                                                                   as EndDate,
      // @ObjectModel.foreignKey.association: '_User'

      @Semantics.user.id: true
//    _Employment._Employee.BusinessUser                                                as BusinessUser,            NOTE:2921621

      _Employment.BusinessUser                                                          as BusinessUser,            //NOTE:2921621

      Project.MasterProjectUUID                                                         as ProjectUUID,
      ProjectTeam.EngagementProjectTeamUUID,
      ProjectRoles.EngagementProjectTeamRoleUUID                                        as ProjectRoleUUID,
      TeamMembers.EngmtProjTeamMemberUUID                                               as MstrProjTeamMemberUUID,
      TeamMembers.EngagementProjectMemberUUID                                           as MstrProjMemberUUID,
      @ObjectModel.text.element: 'EmployeeFullName'
      ProjMembers.BusinessPartner                                                       as EmploymentInternalID,
//      _Employment.PersonnelNumber                                                       as PersonnelNumber,       NOTE:2921621 *removing PersonnelNumber without replacement              

      ProjMembers.BusinessPartnerType                                                   as BusinessPartnerType,
      @Semantics.name.fullName: true
//      _Employment._Employee.EmployeeFullName                                            as EmployeeFullName,      NOTE:2921621

      _Employment.EmployeeFullName                                                      as EmployeeFullName,        //NOTE:2921621

      Project.MasterProjectType,
      Project.MasterProjectOrganization,
      Project.MasterProjectIsConfidential,
      //associations

      _ProjectRole,
      _Employment,
//      _Employment._Employee,                                                                   NOTE:2921621

      _Employment.Person,                                                                        //NOTE:2921621

      _Employment._WorkforcePerson,                                                              //NOTE:2921621

      _User

}