I_ProjectByProjMgr
Project by Project Manager
I_ProjectByProjMgr is a Composite CDS View that provides data about "Project by Project Manager" in SAP S/4HANA. It reads from 2 data sources (I_ProjectBasicData, I_ProjectBasicData) and exposes 43 fields with key field Project. It has 2 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_ProjectBasicData | Project | from |
| I_ProjectBasicData | Project | union_all |
Associations (2)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_SingleResponsibleForProj | _Responsible | _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID |
| [1..1] | I_ResponsiblePersonForProj | _ResPerson | _ResPerson.ProjectInternalID = Project.ProjectInternalID |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPPROJMNGR | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Project by Project Manager | view | |
| ObjectModel.representativeKey | Project | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| VDM.viewType | #COMPOSITE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| AbapCatalog.preserveKey | true | view |
Fields (43)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Project | I_ProjectBasicData | ProjectExternalID | |
| ProjectUUID | ProjectSummary | ProjectUUID | ||
| ProjectDescription | I_ProjectBasicData | ProjectDescription | ||
| ProjectInternalID | I_ProjectBasicData | ProjectInternalID | ||
| ProjectObject | ProjectObject | |||
| ProjectObjectRootNode | ProjectObject | |||
| ProjectProfileCode | ProjectProfileCode | |||
| PlannedStartDate | PlannedStartDate | |||
| PlannedEndDate | PlannedEndDate | |||
| ProjectManagerUUID | _Responsible | BusinessPartnerUUID | ||
| BusinessPartnerFullName | _Responsible | BusinessPartnerFullName | ||
| ProjectSummaryTaskUUID | ProjectSummary | ProjectSummaryTaskUUID | ||
| ProjectCategory | ProjectSummary | ProjectCategory | ||
| CompanyCode | I_ProjectBasicData | CompanyCode | ||
| ProfitCenter | I_ProjectBasicData | ProfitCenter | ||
| AvailyCtrlTimeRangeType | ||||
| BudgetCurrencyRole | ||||
| AvailabilityControlIsActive | I_ProjectBasicData | AvailabilityControlIsActive | ||
| AvailabilityControlProfile | I_ProjectBasicData | AvailabilityControlProfile | ||
| ControllingArea | I_ProjectBasicData | ControllingArea | ||
| ProjectProcessingStatus | ProjectSummary | ProjectProcessingStatus | ||
| ProjectExternalIDasProject | ||||
| ProjectUUID | ProjectSummary | ProjectUUID | ||
| ProjectDescription | I_ProjectBasicData | ProjectDescription | ||
| ProjectInternalID | I_ProjectBasicData | ProjectInternalID | ||
| ProjectObject | ProjectObject | |||
| ProjectObjectRootNode | ProjectObject | |||
| ProjectProfileCode | ProjectProfileCode | |||
| PlannedStartDate | PlannedStartDate | |||
| PlannedEndDate | PlannedEndDate | |||
| ProjectManagerUUID | _Responsible | BusinessPartnerUUID | ||
| BusinessPartnerFullName | _ResPerson | ResponsiblePersonName | ||
| ProjectSummaryTaskUUID | ProjectSummary | ProjectSummaryTaskUUID | ||
| ProjectCategory | ProjectSummary | ProjectCategory | ||
| CompanyCode | I_ProjectBasicData | CompanyCode | ||
| ProfitCenter | I_ProjectBasicData | ProfitCenter | ||
| AvailyCtrlTimeRangeType | ||||
| BudgetCurrencyRole | ||||
| AvailabilityControlIsActive | I_ProjectBasicData | AvailabilityControlIsActive | ||
| AvailabilityControlProfile | I_ProjectBasicData | AvailabilityControlProfile | ||
| ControllingArea | I_ProjectBasicData | ControllingArea | ||
| ProjectProcessingStatus | ProjectSummary | ProjectProcessingStatus | ||
| WBSElementInternalID | ProjectSummary | WBSElementInternalID |
@AbapCatalog.sqlViewName: 'IPPROJMNGR'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Project by Project Manager'
@ObjectModel.representativeKey: 'Project'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MASTER
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@Metadata.ignorePropagatedAnnotations: true
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@AbapCatalog.preserveKey:true
define view I_ProjectByProjMgr
as select from I_ProjectBasicData as Project
left outer to one join I_PPM_ProjectSummaryTask as ProjectSummary on ProjectSummary.ProjectInternalID = Project.ProjectInternalID
association [0..1] to I_SingleResponsibleForProj as _Responsible on _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID
{
@ObjectModel.text.element: 'ProjectDescription'
key Project.ProjectExternalID as Project, //Project.Project as Project,
ProjectSummary.ProjectUUID,
@Semantics.text: true
Project.ProjectDescription,
Project.ProjectInternalID,
ProjectObject,
ProjectObject as ProjectObjectRootNode,
ProjectProfileCode,
PlannedStartDate,
PlannedEndDate,
_Responsible.BusinessPartnerUUID as ProjectManagerUUID,
_Responsible.BusinessPartnerFullName as BusinessPartnerFullName,
// _ResPerson.ResponsiblePersonName,
// case
// when _Responsible.BusinessPartnerFullName is null
// then cast ( _ResPerson.ResponsiblePersonName as ps_verna)
// else cast ( _Responsible.BusinessPartnerFullName as ps_verna)
// end as BusinessPartnerFullName,
ProjectSummary.ProjectSummaryTaskUUID,
ProjectSummary.ProjectCategory,
Project.CompanyCode,
Project.ProfitCenter,
Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
Project._AvailabilityCtrlProfile.BudgetCurrencyRole,
Project.AvailabilityControlIsActive,
Project.AvailabilityControlProfile,
Project.ControllingArea,
ProjectSummary.ProjectProcessingStatus,
ProjectSummary.WBSElementInternalID
}
where
Project.ProjectInternalID != '00000000'
and _Responsible.BusinessPartnerFullName is not null
and
(
_Responsible.BusinessPartnerUUID is null
or(
_Responsible.BusinessPartnerUUID is not null
and _Responsible.IsBusinessPurposeCompleted <> 'X'
)
)
union all select from I_ProjectBasicData as Project
left outer to one join I_PPM_ProjectSummaryTask as ProjectSummary on ProjectSummary.ProjectInternalID = Project.ProjectInternalID
association [0..1] to I_SingleResponsibleForProj as _Responsible on _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID
association [1..1] to I_ResponsiblePersonForProj as _ResPerson on _ResPerson.ProjectInternalID = Project.ProjectInternalID
{
@ObjectModel.text.element: 'ProjectDescription'
key Project.ProjectExternalID as Project,
ProjectSummary.ProjectUUID,
@Semantics.text: true
Project.ProjectDescription,
Project.ProjectInternalID,
ProjectObject,
ProjectObject as ProjectObjectRootNode,
ProjectProfileCode,
PlannedStartDate,
PlannedEndDate,
_Responsible.BusinessPartnerUUID as ProjectManagerUUID,
// _Responsible.BusinessPartnerFullName as BusinessPartnerFullName,
_ResPerson.ResponsiblePersonName as BusinessPartnerFullName,
ProjectSummary.ProjectSummaryTaskUUID,
ProjectSummary.ProjectCategory,
Project.CompanyCode,
Project.ProfitCenter,
Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
Project._AvailabilityCtrlProfile.BudgetCurrencyRole,
Project.AvailabilityControlIsActive,
Project.AvailabilityControlProfile,
Project.ControllingArea,
ProjectSummary.ProjectProcessingStatus,
ProjectSummary.WBSElementInternalID
}
where
Project.ProjectInternalID != '00000000'
and _Responsible.BusinessPartnerFullName is null
and
(
_Responsible.BusinessPartnerUUID is null
or(
_Responsible.BusinessPartnerUUID is not null
and _Responsible.IsBusinessPurposeCompleted <> 'X'
)
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_AVAILABILITYCTRLPROFILE",
"I_PPM_PROJECTSUMMARYTASK",
"I_PROJECTBASICDATA",
"I_RESPONSIBLEPERSONFORPROJ",
"I_SINGLERESPONSIBLEFORPROJ"
],
"ASSOCIATED":
[
"I_SINGLERESPONSIBLEFORPROJ"
],
"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