P_EngmntProjectForAuthzdUser

DDL: P_ENGMNTPROJECTFORAUTHZDUSER Type: view COMPOSITE Package: CPD_CDS

Engagement Projects for authorized User

P_EngmntProjectForAuthzdUser is a Composite CDS View that provides data about "Engagement Projects for authorized User" in SAP S/4HANA. It reads from 2 data sources (P_EngmntProjWthRolesAsAttrib, I_EngagementProjFinancialPlan) and exposes 28 fields. Part of development package CPD_CDS.

Data Sources (2)

SourceAliasJoin Type
P_EngmntProjWthRolesAsAttrib A from
I_EngagementProjFinancialPlan B inner

Annotations (12)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName PEPFORAUTHZDUSR 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 (28)

KeyFieldSource TableSource FieldDescription
EngagementProjectUUID P_EngmntProjWthRolesAsAttrib EngagementProjectUUID
EngagementProject P_EngmntProjWthRolesAsAttrib EngagementProject
ProjectStartDate P_EngmntProjWthRolesAsAttrib ProjectStartDate
ProjectEndDate P_EngmntProjWthRolesAsAttrib ProjectEndDate
LastChangeDateTime P_EngmntProjWthRolesAsAttrib LastChangeDateTime
Customer P_EngmntProjWthRolesAsAttrib Customer
EngagementProjectServiceOrg P_EngmntProjWthRolesAsAttrib EngagementProjectServiceOrg
Currency I_EngagementProjFinancialPlan Currency
EngagementProjFinPlanUUID I_EngagementProjFinancialPlan EngagementProjFinPlanUUID
EngmntProjReviewYearPeriod I_EngagementProjFinancialPlan EngmntProjReviewYearPeriod
EngagementProjectReviewStatus I_EngagementProjFinancialPlan EngagementProjectReviewStatus
EngagementProjectType P_EngmntProjWthRolesAsAttrib EngagementProjectType
EngagementProjectCategory P_EngmntProjWthRolesAsAttrib EngagementProjectCategory
EngagementProjectStage P_EngmntProjWthRolesAsAttrib EngagementProjectStage
CurrentYearPeriod
IsMyProject P_EngmntProjWthRolesAsAttrib IsMyProject
ProjectVisibility P_EngmntProjWthRolesAsAttrib ProjectVisibility
ProjectManager P_EngmntProjWthRolesAsAttrib ProjectManager
ProjectManagerName P_EngmntProjWthRolesAsAttrib ProjectManagerName
ProjectManagerExternalID P_EngmntProjWthRolesAsAttrib ProjectManagerExternalID
ProjectAccountant P_EngmntProjWthRolesAsAttrib ProjectAccountant
ProjectAccountantName P_EngmntProjWthRolesAsAttrib ProjectAccountantName
ProjectController P_EngmntProjWthRolesAsAttrib ProjectController
ProjectControllerName P_EngmntProjWthRolesAsAttrib ProjectControllerName
Projectpartner P_EngmntProjWthRolesAsAttrib Projectpartner
ProjectpartnerName P_EngmntProjWthRolesAsAttrib ProjectpartnerName
CompanyCode
ControllingArea
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
    sqlViewName: 'PEPFORAUTHZDUSR',
    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_EngmntProjectForAuthzdUser
  as select from P_EngmntProjWthRolesAsAttrib  as A
    inner join   I_EngagementProjFinancialPlan as B on A.EngagementProjectUUID = B.EngagementProjectUUID {
A.EngagementProjectUUID,
A.EngagementProject,
//A.EngagementProjectName,

A.ProjectStartDate,
A.ProjectEndDate,  
A.LastChangeDateTime,
A.Customer,
A.EngagementProjectServiceOrg,
B.Currency,
B.EngagementProjFinPlanUUID,
B.EngmntProjReviewYearPeriod,
B.EngagementProjectReviewStatus,
A.EngagementProjectType,
A.EngagementProjectCategory,
A.EngagementProjectStage,
concat(substring(CurrentDate, 1, 4), concat('0', substring(CurrentDate, 5, 2))) as CurrentYearPeriod,
A.IsMyProject,
A.ProjectVisibility,
A.ProjectManager,
A.ProjectManagerName,

// For all the records where External id for , Controller , Accountant and Partner is null or blank we are setting as 'A'.

// This is required because External id is used on join condition of the Union view. If these fields have null values, 

//join condition will fail.


A.ProjectManagerExternalID,

A.ProjectAccountant,
A.ProjectAccountantName,
case
when A.ProjectAccountantExternalID is null
then 'A'
else A.ProjectAccountantExternalID
end as ProjectAccountantExternalID,

A.ProjectController,
A.ProjectControllerName,
case
when A.ProjectControllerExternalID is null
then 'A'
else A.ProjectControllerExternalID
end as ProjectControllerExternalID,

A.Projectpartner,
A.ProjectpartnerName,
case
when A.ProjectpartnerExternalID is null
then 'A'
else A.ProjectpartnerExternalID
end as ProjectpartnerExternalID,

B._EngagementProject.CompanyCode  as CompanyCode,
B._EngagementProject.ControllingArea as ControllingArea
} where A.IsMyProject = 'X' or A.ProjectVisibility = 'N'