I_ProjectMgrOrgDet

DDL: I_PROJECTMGRORGDET SQL: IPROJMGRORGDET Type: view COMPOSITE

Retrieve project details for the session user

I_ProjectMgrOrgDet is a Composite CDS View that provides data about "Retrieve project details for the session user" in SAP S/4HANA. It reads from 4 data sources (I_PersonWorkAgrmtForKeyDate, I_PersonWorkAgreement_1, I_User, I_WorkforcePerson) and exposes 4 fields with key field EngagementProjectUUID.

Data Sources (4)

SourceAliasJoin Type
I_PersonWorkAgrmtForKeyDate I_PersonWorkAgrmtForKeyDate inner
I_PersonWorkAgreement_1 PersonWorkAgreement inner
I_User User left_outer
I_WorkforcePerson WorkforcePerson inner

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName IPROJMGRORGDET view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
AccessControl.authorizationCheck #NOT_REQUIRED view
AccessControl.personalData.blocking #REQUIRED view
VDM.viewType #COMPOSITE view
EndUserText.label Retrieve project details for the session user view

Fields (4)

KeyFieldSource TableSource FieldDescription
KEY EngagementProjectUUID EngagementProjectRole EngagementProjectUUID
EngagementProject EngagementProjectRole EngagementProject
EngagementProjectName
ProjectManager EngagementProjectRole EmploymentInternalID
@AbapCatalog.sqlViewName: 'IPROJMGRORGDET'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@ObjectModel.usageType.serviceQuality : #D
@ObjectModel.usageType.sizeCategory : #XL
@ObjectModel.usageType.dataClass : #MASTER
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #REQUIRED
// to check if this has to be required or not. Scenario check. In Odata role anyways this would be handled

//@Analytics: { dataCategory: #DIMENSION, dataExtraction.enabled: true }

@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Retrieve project details for the session user'
define view I_ProjectMgrOrgDet
  as select distinct from I_EngagementProjectRole as EngagementProjectRole
  inner join I_PersonWorkAgrmtForKeyDate(P_KeyDate : $session.system_date) as PersonWorkAgrmtForKeyDate on EngagementProjectRole.EmploymentInternalID = PersonWorkAgrmtForKeyDate.PersonWorkAgreement
  inner join I_PersonWorkAgreement_1 as PersonWorkAgreement on PersonWorkAgreement.PersonWorkAgreement =  PersonWorkAgrmtForKeyDate.PersonWorkAgreement
  inner join I_WorkforcePerson as WorkforcePerson on WorkforcePerson.Person = PersonWorkAgreement.Person
  left outer join I_User as User on User.BusinessPartnerUUID = WorkforcePerson.BusinessPartnerUUID
{
  //key _PersonWorkAgrmtForKeyDate(P_KeyDate : $session.system_date).

  //_Employment._Employee.PersonnelNumber,

  key EngagementProjectRole.EngagementProjectUUID,
      EngagementProjectRole.EngagementProject,
      EngagementProjectRole._EngagementProject.EngagementProjectName,
      EngagementProjectRole.EmploymentInternalID as ProjectManager
     // _PersonWorkAgrmtForKeyDate(P_KeyDate : $session.system_date).PersonWorkAgreement.

    //  User.UserID as BusinessUser

}

where ( EngagementProjectRole.EngagementProjectTeamRole = 'P001' or EngagementProjectRole.EngagementProjectTeamRole = 'P003' )
and User.UserID = $session.user