I_EnterpriseProjectElementTP
TP view for CRUD API for EPPM Workpackages and milestones
I_EnterpriseProjectElementTP is a Transactional CDS View that provides data about "TP view for CRUD API for EPPM Workpackages and milestones" in SAP S/4HANA. It reads from 2 data sources (I_PPM_ProjectSummaryTask, I_PPM_ProjectTask) and exposes 53 fields with key field ProjectElementUUID. It has 10 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_ProjectSummaryTask | Project | inner |
| I_PPM_ProjectTask | Workpackage | from |
Associations (10)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_EnterpriseProjectElementTP | _ParentProjElement | $projection.ParentObjectUUID = _ParentProjElement.ProjectElementUUID |
| [1..*] | I_EnterpriseProjectElementTP | _SubProjElement | $projection.ProjectElementUUID = _SubProjElement.ParentObjectUUID |
| [0..*] | I_PPM_AuthznByUsrH | _AuthUser | _AuthUser.ReferencedObjectUUID = $projection.ProjectElementUUID and _AuthUser.UserID = $session.user and ( _AuthUser.Activity = 'Admin' or _AuthUser.Activity = 'Write' or _AuthUser.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznBySubstitH | _AuthSubst | _AuthSubst.ReferencedObjectUUID = $projection.ProjectElementUUID and _AuthSubst.UserID = $session.user and ( _AuthSubst.Activity = 'Admin' or _AuthSubst.Activity = 'Write' or _AuthSubst.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUserRoleH | _AuthRole | _AuthRole.ReferencedObjectUUID = $projection.ProjectElementUUID and _AuthRole.UserID = $session.user and ( _AuthRole.Activity = 'Admin' or _AuthRole.Activity = 'Write' or _AuthRole.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUsrGrpH | _AuthGroup | _AuthGroup.ReferencedObjectUUID = $projection.ProjectElementUUID and _AuthGroup.UserID = $session.user and ( _AuthGroup.Activity = 'Admin' or _AuthGroup.Activity = 'Write' or _AuthGroup.Activity = 'Read' ) ---Extension |
| [1..1] | E_PPM_Task | _ProjectElementExtension | $projection.ProjectElementUUID = _ProjectElementExtension.TaskUUID |
| [0..1] | I_EntProjectElementJVATP | _EntProjectElementJVA | |
| [0..1] | I_EntProjElmntPublicSectorTP | _EntProjectElmntPublicSector | |
| [0..1] | R_EntProjElmntBlockFuncTP | _EntProjElmntBlkFunc | |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IENRPRPROELEMTP | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ObjectModel.representativeKey | ProjectElementUUID | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| VDM.viewType | #TRANSACTIONAL | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| AbapCatalog.preserveKey | true | view | |
| EndUserText.label | TP view for CRUD API for EPPM Workpackages and milestones | view |
Fields (53)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectElementUUID | I_PPM_ProjectTask | TaskUUID | |
| ProjectElement | I_PPM_ProjectTask | Task | ||
| WBSElementInternalID | I_PPM_ProjectTask | WBSElementInternalID | ||
| ProjectUUID | I_PPM_ProjectTask | ProjectUUID | ||
| ProjectElementDescription | ||||
| ParentObjectUUID | HierarchyData | ParentObjectUUID | ||
| ProcessingStatus | I_PPM_ProjectTask | ProcessingStatus | ||
| SortingNumber | I_PPM_ProjectTask | SortingNumber | ||
| IsProjectMilestone | I_PPM_ProjectTask | IsProjectMilestone | ||
| MilestoneApprovalStatus | I_PPM_ProjectTask | MilestoneApprovalStatus | ||
| IsMainMilestone | I_PPM_ProjectTask | IsMainMilestone | ||
| PlannedStartDate | I_PPM_ProjectTask | PlannedStartDate | ||
| PlannedEndDate | I_PPM_ProjectTask | PlannedEndDate | ||
| ActualStartDate | I_PPM_ProjectTask | ActualStartDate | ||
| ActualEndDate | I_PPM_ProjectTask | ActualEndDate | ||
| ResponsibleCostCenter | I_PPM_ProjectTask | ResponsibleCostCenter | ||
| CompanyCode | I_PPM_ProjectTask | CompanyCode | ||
| ProfitCenter | I_PPM_ProjectTask | ProfitCenter | ||
| FunctionalArea | I_PPM_ProjectTask | FunctionalArea | ||
| ControllingArea | I_PPM_ProjectTask | ControllingArea | ||
| Plant | I_PPM_ProjectTask | Plant | ||
| Location | I_PPM_ProjectTask | Location | ||
| TaxJurisdiction | I_PPM_ProjectTask | TaxJurisdiction | ||
| FunctionalLocation | I_PPM_ProjectTask | FunctionalLocation | ||
| FactoryCalendar | I_PPM_ProjectTask | FactoryCalendar | ||
| CostingSheet | I_PPM_ProjectTask | CostingSheet | ||
| InvestmentProfile | I_PPM_ProjectTask | InvestmentProfile | ||
| WBSIsStatisticalWBSElement | I_PPM_ProjectTask | WBSIsStatisticalWBSElement | ||
| CostCenter | I_PPM_ProjectTask | CostCenter | ||
| WBSElementIsBillingElement | I_PPM_ProjectTask | WBSElementIsBillingElement | ||
| CreatedByUser | I_PPM_ProjectTask | CreatedByUser | ||
| CreationDateTime | I_PPM_ProjectTask | CreationDateTime | ||
| LastChangedByUser | I_PPM_ProjectTask | LastChangedByUser | ||
| LastChangeDateTime | I_PPM_ProjectTask | LastChangeDateTime | ||
| ProjectLastChangedDateTime | I_PPM_ProjectSummaryTask | LastChangeDateTime | ||
| _CompanyCode | I_PPM_ProjectTask | _CompanyCode | ||
| _ControllingArea | I_PPM_ProjectTask | _ControllingArea | ||
| _FunctionalArea | I_PPM_ProjectTask | _FunctionalArea | ||
| _ProfitCenter | I_PPM_ProjectTask | _ProfitCenter | ||
| _Plant | I_PPM_ProjectTask | _Plant | ||
| _ResponsibleCostCenter | I_PPM_ProjectTask | _ResponsibleCostCenter | ||
| _FactoryCalendar | I_PPM_ProjectTask | _FactoryCalendar | ||
| _CostCenter | I_PPM_ProjectTask | _CostCenter | ||
| _EnterpriseProject | _EnterpriseProject | |||
| _ParentProjElement | _ParentProjElement | |||
| _SubProjElement | _SubProjElement | |||
| _EntProjectElementJVA | _EntProjectElementJVA | |||
| _EntProjectElmntPublicSector | _EntProjectElmntPublicSector | |||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _EntProjElmntBlkFunc | _EntProjElmntBlkFunc |
@AbapCatalog: {
sqlViewName: 'IENRPRPROELEMTP',
compiler.compareFilter: true
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@ObjectModel: {
semanticKey: [ 'ProjectElement' ],
representativeKey: 'ProjectElementUUID',
alternativeKey: [ { id : 'WBSElementInternalID', element: ['WBSElementInternalID'], uniqueness: #UNIQUE } ],
usageType: {
dataClass: #MIXED,
serviceQuality: #C,
sizeCategory: #L
}
}
@VDM: {
viewType: #TRANSACTIONAL,
lifecycle.contract.type: #SAP_INTERNAL_API
}
@AbapCatalog.preserveKey: true
@EndUserText.label: 'TP view for CRUD API for EPPM Workpackages and milestones'
define view I_EnterpriseProjectElementTP
as select from I_PPM_ProjectTask as Workpackage
// inner join I_EnterpriseProjectTP as Project on Workpackage.ProjectUUID = Project.ProjectUUID // reduce complexity
inner join I_PPM_ProjectSummaryTask as Project on Workpackage.ProjectUUID = Project.ProjectUUID
// to make sure parent is empty in case of parent being PST
left outer to one join I_PPM_StdTaskHierarchyData as HierarchyData
on Workpackage.TaskUUID = HierarchyData.ReferencedObjectUUID
and Project.ProjectSummaryTaskUUID <> HierarchyData.ParentObjectUUID
// association [1..1] to I_EnterpriseProjectTP as _EnterpriseProject on $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
association to parent I_EnterpriseProjectTP as _EnterpriseProject on $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
association [0..1] to I_EnterpriseProjectElementTP as _ParentProjElement on $projection.ParentObjectUUID = _ParentProjElement.ProjectElementUUID
association [1..*] to I_EnterpriseProjectElementTP as _SubProjElement on $projection.ProjectElementUUID = _SubProjElement.ParentObjectUUID
// associations to authorization views
association [0..*] to I_PPM_AuthznByUsrH as _AuthUser on _AuthUser.ReferencedObjectUUID = $projection.ProjectElementUUID
and _AuthUser.UserID = $session.user
and (
_AuthUser.Activity = 'Admin'
or _AuthUser.Activity = 'Write'
or _AuthUser.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznBySubstitH as _AuthSubst on _AuthSubst.ReferencedObjectUUID = $projection.ProjectElementUUID
and _AuthSubst.UserID = $session.user
and (
_AuthSubst.Activity = 'Admin'
or _AuthSubst.Activity = 'Write'
or _AuthSubst.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznByUserRoleH as _AuthRole on _AuthRole.ReferencedObjectUUID = $projection.ProjectElementUUID
and _AuthRole.UserID = $session.user
and (
_AuthRole.Activity = 'Admin'
or _AuthRole.Activity = 'Write'
or _AuthRole.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznByUsrGrpH as _AuthGroup on _AuthGroup.ReferencedObjectUUID = $projection.ProjectElementUUID
and _AuthGroup.UserID = $session.user
and (
_AuthGroup.Activity = 'Admin'
or _AuthGroup.Activity = 'Write'
or _AuthGroup.Activity = 'Read'
)
---Extension Association
association [1..1] to E_PPM_Task as _ProjectElementExtension on $projection.ProjectElementUUID = _ProjectElementExtension.TaskUUID
composition [0..1] of I_EntProjectElementJVATP as _EntProjectElementJVA
//Add PSM fields on 27.06
composition [0..1] of I_EntProjElmntPublicSectorTP as _EntProjectElmntPublicSector
//Add PSM fields on 27.06
composition [0..1] of R_EntProjElmntBlockFuncTP as _EntProjElmntBlkFunc
{
key Workpackage.TaskUUID as ProjectElementUUID,
Workpackage.Task as ProjectElement,
Workpackage.WBSElementInternalID as WBSElementInternalID,
Workpackage.ProjectUUID as ProjectUUID,
cast(TaskName as text40 ) as ProjectElementDescription,
HierarchyData.ParentObjectUUID as ParentObjectUUID,
// task type needed ?
Workpackage.ProcessingStatus as ProcessingStatus,
Workpackage.SortingNumber as SortingNumber,
Workpackage.IsProjectMilestone as IsProjectMilestone,
Workpackage.MilestoneApprovalStatus as MilestoneApprovalStatus,
Workpackage.IsMainMilestone as IsMainMilestone,
// PlannedStartDate as TaskStartDate,
// PlannedEndDate as TaskEndDate,
Workpackage.PlannedStartDate as PlannedStartDate,
Workpackage.PlannedEndDate as PlannedEndDate,
Workpackage.ForecastedStartDate as ForecastedStartDate,
Workpackage.ForecastedEndDate as ForecastedEndDate,
Workpackage.ActualStartDate as ActualStartDate,
Workpackage.ActualEndDate as ActualEndDate,
Workpackage.ResponsibleCostCenter as ResponsibleCostCenter,
Workpackage.CompanyCode as CompanyCode,
Workpackage.ProfitCenter as ProfitCenter,
Workpackage.FunctionalArea as FunctionalArea,
Workpackage.ControllingArea as ControllingArea,
Workpackage.Plant as Plant,
Workpackage.Location as Location,
//Tax Jurisdiction, Functional Location fields
Workpackage.TaxJurisdiction as TaxJurisdiction,
Workpackage.FunctionalLocation as FunctionalLocation,
Workpackage.FactoryCalendar as FactoryCalendar,
Workpackage.CostingSheet as CostingSheet,
Workpackage.InvestmentProfile as InvestmentProfile,
Workpackage.WBSIsStatisticalWBSElement as WBSIsStatisticalWBSElement,
Workpackage.CostCenter as CostCenter,
// S4H 2005 Billing element indicator
Workpackage.WBSElementIsBillingElement as WBSElementIsBillingElement,
//admin data
Workpackage.CreatedByUser as CreatedByUser,
Workpackage.CreationDateTime as CreationDateTime,
Workpackage.LastChangedByUser as LastChangedByUser,
Workpackage.LastChangeDateTime as LastChangeDateTime,
// needed for etag
Project.LastChangeDateTime as ProjectLastChangedDateTime,
Workpackage._CompanyCode,
Workpackage._ControllingArea,
Workpackage._FunctionalArea,
Workpackage._ProfitCenter,
Workpackage._Plant,
Workpackage._ResponsibleCostCenter,
Workpackage._FactoryCalendar,
Workpackage._CostCenter,
//needed or not ?
// @ObjectModel.association.type: [ #TO_COMPOSITION_ROOT, #TO_COMPOSITION_PARENT ]
_EnterpriseProject,
//needed or not ?
// @ObjectModel.association.type: [ #TO_COMPOSITION_PARENT ]
_ParentProjElement,
//needed or not ?
// @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_SubProjElement,
//needed or not ?
// @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD
_EntProjectElementJVA,
// @feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL, EPPM_PUBLIC_SECTOR'
_EntProjectElmntPublicSector,
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup,
_EntProjElmntBlkFunc
}
where
Workpackage.ObjectType <> 'DPO';
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