I_EngmntProjAssgmtToSessionUsr
Engagement Project Assignment To User
I_EngmntProjAssgmtToSessionUsr is a Composite CDS View that provides data about "Engagement Project Assignment To User" in SAP S/4HANA. It reads from 2 data sources (I_EngagementProjFinancialPlan, P_EngmntProjWthRolesAsAttrib) and exposes 37 fields with key field EngagementProjectUUID. It has 5 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_EngagementProjFinancialPlan | FinancialPlan | inner |
| P_EngmntProjWthRolesAsAttrib | Project | from |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Customer | _Customer | $projection.Customer = _Customer.Customer |
| [1..1] | I_BusinessUserBasic | _ProjectManager | $projection.ProjectManagerExternalID = _ProjectManager.UserID |
| [0..1] | I_BusinessUserBasic | _ProjectAccountant | $projection.ProjectAccountantExternalID = _ProjectAccountant.UserID |
| [0..1] | I_BusinessUserBasic | _ProjectController | $projection.ProjectControllerExternalID = _ProjectController.UserID |
| [0..1] | I_BusinessUserBasic | _ProjectPartner | $projection.ProjectPartnerExternalID = _ProjectPartner.UserID |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IEPASSGTOSESNUSR | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #COMPOSITE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.modelingPattern | #TRANSACTIONAL_ENTITY | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| EndUserText.label | Engagement Project Assignment To User | view |
Fields (37)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | EngagementProjectUUID | P_EngmntProjWthRolesAsAttrib | EngagementProjectUUID | |
| EngagementProject | P_EngmntProjWthRolesAsAttrib | EngagementProject | ||
| EngagementProjectName | EngagementProjectName | |||
| ProjectStartDate | ProjectStartDate | |||
| ProjectEndDate | ProjectEndDate | |||
| Customer | Customer | |||
| EngagementProjectServiceOrg | EngagementProjectServiceOrg | |||
| EngagementProjectType | EngagementProjectType | |||
| EngagementProjectCategory | EngagementProjectCategory | |||
| EngagementProjectStage | EngagementProjectStage | |||
| ProjectVisibility | ProjectVisibility | |||
| IsMyProject | IsMyProject | |||
| Currency | Currency | |||
| EngagementProjFinPlanUUID | EngagementProjFinPlanUUID | |||
| EngmntProjReviewYearPeriod | EngmntProjReviewYearPeriod | |||
| EngagementProjectReviewStatus | EngagementProjectReviewStatus | |||
| LastChangeDateTime | P_EngmntProjWthRolesAsAttrib | LastChangeDateTime | ||
| ProjManagerUserID | ProjectManager | |||
| ProjectManagerName | ProjectManagerName | |||
| ProjectManagerExternalID | ProjectManagerExternalID | |||
| ProjAccountantUserID | ProjectAccountant | |||
| ProjectAccountantName | ProjectAccountantName | |||
| ProjControllerUserID | ProjectController | |||
| ProjectControllerName | ProjectControllerName | |||
| ProjPartnerUserID | Projectpartner | |||
| ProjectPartnerName | ProjectpartnerName | |||
| CurrentYearPeriod | ||||
| ProjectProfileCode | ProjectProfileCode | |||
| ControllingArea | ControllingArea | |||
| EngmntProjectHeaderCompanyCode | CompanyCode | |||
| EngagementProjectCostCenter | CostCenter | |||
| ProfitCenter | ProfitCenter | |||
| _Customer | _Customer | |||
| _ProjectManager | _ProjectManager | |||
| _ProjectAccountant | _ProjectAccountant | |||
| _ProjectController | _ProjectController | |||
| _ProjectPartner | _ProjectPartner |
@AbapCatalog.sqlViewName: 'IEPASSGTOSESNUSR'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@AbapCatalog:{ compiler.compareFilter: true,
preserveKey: true }
@ObjectModel: {
usageType: { serviceQuality: #C,
sizeCategory: #L,
dataClass: #TRANSACTIONAL },
modelingPattern: #TRANSACTIONAL_ENTITY,
supportedCapabilities: [#CDS_MODELING_DATA_SOURCE,
#SQL_DATA_SOURCE]
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData: { blocking: #REQUIRED,
blockingIndicator: ['_Customer.IsBusinessPurposeCompleted',
'_ProjectManager.IsBusinessPurposeCompleted',
'_ProjectAccountant.IsBusinessPurposeCompleted',
'_ProjectController.IsBusinessPurposeCompleted',
'_ProjectPartner.IsBusinessPurposeCompleted' ] }
}
@EndUserText.label: 'Engagement Project Assignment To User'
define view I_EngmntProjAssgmtToSessionUsr
as select from P_EngmntProjWthRolesAsAttrib as Project
inner join I_EngagementProjFinancialPlan as FinancialPlan on Project.EngagementProjectUUID = FinancialPlan.EngagementProjectUUID
association [1..1] to I_Customer as _Customer on $projection.Customer = _Customer.Customer
association [1..1] to I_BusinessUserBasic as _ProjectManager on $projection.ProjectManagerExternalID = _ProjectManager.UserID
association [0..1] to I_BusinessUserBasic as _ProjectAccountant on $projection.ProjectAccountantExternalID = _ProjectAccountant.UserID
association [0..1] to I_BusinessUserBasic as _ProjectController on $projection.ProjectControllerExternalID = _ProjectController.UserID
association [0..1] to I_BusinessUserBasic as _ProjectPartner on $projection.ProjectPartnerExternalID = _ProjectPartner.UserID
{
key Project.EngagementProjectUUID,
Project.EngagementProject,
EngagementProjectName,
ProjectStartDate,
ProjectEndDate,
Customer,
EngagementProjectServiceOrg,
EngagementProjectType,
EngagementProjectCategory,
EngagementProjectStage,
ProjectVisibility,
IsMyProject,
Currency,
EngagementProjFinPlanUUID,
EngmntProjReviewYearPeriod,
EngagementProjectReviewStatus,
@Semantics.dateTime:true
@Semantics.systemDate.lastChangedAt: true
Project.LastChangeDateTime,
// For all the records where External id is null or blank {Possible for Controller, Accountant and Partner} 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.
ProjectManager as ProjManagerUserID,
ProjectManagerName,
ProjectManagerExternalID,
ProjectAccountant as ProjAccountantUserID,
ProjectAccountantName,
case
when ProjectAccountantExternalID is null
then 'A'
else ProjectAccountantExternalID
end as ProjectAccountantExternalID,
ProjectController as ProjControllerUserID,
ProjectControllerName,
case
when ProjectControllerExternalID is null
then 'A'
else ProjectControllerExternalID
end as ProjectControllerExternalID,
Projectpartner as ProjPartnerUserID,
ProjectpartnerName as ProjectPartnerName,
case
when ProjectpartnerExternalID is null
then 'A'
else ProjectpartnerExternalID
end as ProjectPartnerExternalID,
cast(concat(substring(CurrentDate, 1, 4), concat('0', substring(CurrentDate, 5, 2))) as /cpd/ss_current_year_period) as CurrentYearPeriod,
ProjectProfileCode,
ControllingArea,
CompanyCode as EngmntProjectHeaderCompanyCode,
CostCenter as EngagementProjectCostCenter,
ProfitCenter,
_Customer,
_ProjectManager,
_ProjectAccountant,
_ProjectController,
_ProjectPartner
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENGAGEMENTPROJFINANCIALPLAN",
"P_ENGMNTPROJWTHROLESASATTRIB"
],
"ASSOCIATED":
[
"I_BUSINESSUSERBASIC",
"I_CUSTOMER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA