I_EngagementProjectRole

DDL: I_ENGAGEMENTPROJECTROLE SQL: IENGMTPROJROLE Type: view COMPOSITE Package: CPD_CDS

Roles for an Engagement Project

I_EngagementProjectRole is a Composite CDS View that provides data about "Roles for an Engagement Project" in SAP S/4HANA. It reads from 5 data sources (I_EngagementProject, I_EngagementProjectMember, I_EngagementProjectTeam, I_EngagementProjectTeamRole, I_EngmtProjTeamMember) and exposes 17 fields with key fields EngagementProject, EngagementProjectTeamRole. It has 3 associations to related views. Part of development package CPD_CDS.

Data Sources (5)

SourceAliasJoin Type
I_EngagementProject EngagementProject from
I_EngagementProjectMember EngagementProjectMember left_outer
I_EngagementProjectTeam EngagementProjectTeam inner
I_EngagementProjectTeamRole EngagementProjectTeamRole left_outer
I_EngmtProjTeamMember EngmtProjTeamMember left_outer

Associations (3)

CardinalityTargetAliasCondition
[0..*] I_PersnWrkAgreementDet _PersonWorkAgreement $projection.EmploymentInternalID = _PersonWorkAgreement.PersonWorkAgreement
[1..1] I_EngagementProject _EngagementProject $projection.EngagementProject = _EngagementProject.EngagementProject
[0..*] I_EngmtProjectRoleText _Text $projection.EngagementProjectTeamRole = _Text.EngagementProjectRole

Annotations (11)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName IENGMTPROJROLE view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Roles for an Engagement Project view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (17)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject I_EngagementProject EngagementProject
KEY EngagementProjectTeamRole I_EngagementProjectTeamRole EngagementProjectTeamRole
ProjectStartDate I_EngagementProject ProjectStartDate
EngagementProjectUUID
EngagementProjectTeamUUID
EngagementProjectTeamRoleUUID
EngmtProjTeamMemberUUID
EngagementProjectMemberUUID
EmploymentInternalID I_EngagementProjectMember EmploymentInternalID
BusinessPartnerType I_EngagementProjectMember BusinessPartnerType
BusinessPartnerMemberType I_EngagementProjectMember BusinessPartnerType
BusinessUser
PersonFullName
PersonExternalID
_PersonWorkAgreement _PersonWorkAgreement
_EngagementProject _EngagementProject
_Text _Text
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'IENGMTPROJROLE'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Roles for an Engagement Project'
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AccessControl.personalData.blocking: #NOT_REQUIRED
define view I_EngagementProjectRole
  as select from    I_EngagementProject         as EngagementProject
    inner join      I_EngagementProjectTeam     as EngagementProjectTeam     on  EngagementProject.EngagementProjectUUID = EngagementProjectTeam.EngagementProjectUUID
                                                                             and EngagementProject.EngagementProject     = EngagementProjectTeam.EngagementProjectTeamName
    left outer join I_EngagementProjectTeamRole as EngagementProjectTeamRole on EngagementProjectTeam.EngagementProjectTeamUUID = EngagementProjectTeamRole.EngagementProjectTeamUUID
    left outer join I_EngmtProjTeamMember       as EngmtProjTeamMember       on EngagementProjectTeamRole.EngagementProjectTeamRoleUUID = EngmtProjTeamMember.EngagementProjectTeamRoleUUID
    left outer join I_EngagementProjectMember   as EngagementProjectMember   on EngmtProjTeamMember.EngagementProjectMemberUUID = EngagementProjectMember.EngagementProjectMemberUUID    
  association [0..*] to I_PersnWrkAgreementDet as _PersonWorkAgreement on $projection.EmploymentInternalID = _PersonWorkAgreement.PersonWorkAgreement
  //and $projection.ProjectStartDate     >= _Employment.StartDate

  association [1..1] to I_EngagementProject    as _EngagementProject   on $projection.EngagementProject = _EngagementProject.EngagementProject

  association [0..*] to I_EngmtProjectRoleText as _Text                on $projection.EngagementProjectTeamRole = _Text.EngagementProjectRole   
  
{

      //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

      @Consumption.valueHelpDefinition: [ 
        { entity:  { name:    'I_EngagementProjectStdVH',
                     element: 'EngagementProject' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_EngagementProject'
  key EngagementProject.EngagementProject                                                                                                                      as EngagementProject,
  key EngagementProjectTeamRole.EngagementProjectTeamRole                                                                                                      as EngagementProjectTeamRole,
      EngagementProject.ProjectStartDate                                                                                                                       as ProjectStartDate,
      cast( EngagementProjectTeam.EngagementProjectUUID as /cpd/eng_db_key     preserving type )                                                               as EngagementProjectUUID,
      cast(EngagementProjectTeam.EngagementProjectTeamUUID  as /cpd/team_db_key preserving type )                                                              as EngagementProjectTeamUUID,
      cast(EngagementProjectTeamRole.EngagementProjectTeamRoleUUID  as /cpd/eng_team_role_db_key preserving type )                                             as EngagementProjectTeamRoleUUID,
      cast(EngmtProjTeamMember.EngmtProjTeamMemberUUID           as /cpd/eng_team_member_db_key  preserving type )                                             as EngmtProjTeamMemberUUID,
      cast(EngmtProjTeamMember.EngagementProjectMemberUUID  as    /cpd/eng_proj_member_db_key  preserving type )                                               as EngagementProjectMemberUUID,
      EngagementProjectMember.EmploymentInternalID                                                                                                             as EmploymentInternalID,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'BusinessPartnerMemberType'  
      EngagementProjectMember.BusinessPartnerType                                                                                                              as BusinessPartnerType,
      EngagementProjectMember.BusinessPartnerType                                                                                                              as BusinessPartnerMemberType,
      //associations

      // For Authorization

      //      case when EngagementProjectMember.EmploymentInternalID is not null and _PersonWorkAgreement._WorkforcePerson.UserID is null

      //      then '*****'

      //      else

    _PersonWorkAgreement._WorkforcePerson.UserID                                                                                                             as BusinessUser,
      _PersonWorkAgreement._WorkforcePerson.PersonFullName, 
      _PersonWorkAgreement._WorkforcePerson.PersonExternalID,
      //      case when EngagementProjectMember.EmploymentInternalID is not null and _PersonWorkAgreement._WorkforcePerson.PersonFullName is null

      //      then '*****'

      //      else

      //      _PersonWorkAgreement._WorkforcePerson.PersonFullName

      //      end                                                                                                                                                    as EmployeeFullName,

      //_PersonWorkAgreement._WorkforcePerson.BusinessPartnerUUID                                                     as BusinessPartnerUUID,

      _PersonWorkAgreement,
      _EngagementProject,
      _Text
            

}