I_ENTERPRISEPROJECTELEMENT
Enterprise Project Element
I_ENTERPRISEPROJECTELEMENT is a CDS View in S/4HANA. Enterprise Project Element. It contains 22 fields. 15 CDS views read from this table.
CDS Views using this table (15)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_EntPrjElmntProfnlSrvcDet | view_entity | from | CONSUMPTION | Project Control Planning Facet |
| C_EntProjElmntMassChangeVH | view | from | CONSUMPTION | Enterprise Project Elements Value Help for Mass change |
| C_ProjBillgReqWrkPckgWrkItmVH | view_entity | inner | CONSUMPTION | Work Item Work Package |
| I_EntPrjElmntProfnlSrvcPlndKPI | view_entity | from | COMPOSITE | Work package attributes and planned KPIs |
| I_EntProjProfnlSrvcBillgElmnt | view_entity | inner | COMPOSITE | Billing Elements of Projects |
| I_EntProjWrkBrkdwnStrucElmntVH | view_entity | from | COMPOSITE | WBS Element |
| MMIM_WBSELEMENTVALUEHELP | view | from | Value Help for WBS Element | |
| MMIMWBSElementVH | view | from | Value Help for WBS Element | |
| P_BusSolnOrdEntProjectFlwLvl2 | view | inner | CONSUMPTION | Solution Order Enterprise Project Flow: Level 2 |
| P_EntProjElementBillingElement | view_entity | from | COMPOSITE | Project Element with Billing Element |
| P_EntProjProfnlSrvcRblsInTC | view_entity | inner | COMPOSITE | Billg Doc Receivables in TransactionCrcy |
| P_PrjBlgElmPlndRevnAmt | view_entity | inner | COMPOSITE | Planned Revenue Amount for Billing Elmnt |
| P_WorkPackageFunctions | view | from | BASIC | Work Package with Function Names |
| P_WorkPackageList | view | from | COMPOSITE | WorkPackages List (Including PPM) |
| P_WorkPackageList | view | union | COMPOSITE | WorkPackages List (Including PPM) |
Fields (22)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | ProjectElementUUID | ProjectElementUUID,TaskUUID,WorkPackageUUID | 6 |
| KEY | ProjectUUID | ProjectUUID | 4 |
| KEY | WBSElementInternalID | WBSElementInternalID | 6 |
| _EnterpriseProjectForUser | _EnterpriseProjectForUser | 1 | |
| _Project | _Project | 1 | |
| CompanyCode | CompanyCode | 1 | |
| ControllingArea | ControllingArea | 3 | |
| EntProjectElementType | EntProjectElementType | 2 | |
| FunctionalArea | FunctionalArea | 1 | |
| PlannedEndDate | PlannedEndDate,WorkPackageEndDate | 4 | |
| PlannedStartDate | PlannedStartDate,WorkPackageStartDate | 4 | |
| Plant | Plant | 1 | |
| ProfitCenter | ProfitCenter | 3 | |
| ProjectElement | ProjectElement,Task,WBSElementExternalID,WorkPackage | 6 | |
| ProjectElementDescription | ProjectElementDescription,TaskName,WBSDescription,WorkPackageName | 6 | |
| ProjectInternalID | ProjectInternalID | 2 | |
| ResponsibleCostCenter | ResponsibleCostCenter | 1 | |
| ResultAnalysisInternalID | ResultAnalysisInternalID | 1 | |
| WorkPackage | WorkPackage | 1 | |
| WorkPackageEndDate | WorkPackageEndDate | 1 | |
| WorkPackageName | WorkPackageName | 1 | |
| WorkPackageStartDate | WorkPackageStartDate | 1 |
@EndUserText.label: 'Enterprise Project Element'
@AbapCatalog: {
sqlViewName: 'IENTERPROJELE',
compiler.compareFilter: true,
preserveKey: true,
dataMaintenance: #RESTRICTED
}
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: [ 'ProjectElement' ],
representativeKey: 'ProjectElementUUID',
supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #EXTRACTION_DATA_SOURCE ],
usageType: {
serviceQuality: #B,
dataClass: #MASTER,
sizeCategory: #XL
}
}
@Metadata.ignorePropagatedAnnotations: true
@Analytics.dataExtraction: {
enabled: true,
delta.changeDataCapture: {
mapping:[
{
table: '/s4ppm/task', role: #MAIN,
viewElement: ['ProjectElementUUID'],
tableElement: ['guid']
},
{
table: 'prps', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['WBSElementInternalID'],
tableElement: ['pspnr']
},
{
table: '/s4ppm/hierarchy', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['HierarchyNodeUUID'],
tableElement: ['guid']
}
]
}
}
@Analytics.dataCategory: #DIMENSION
@ObjectModel.sapObjectNodeType.name: 'EnterpriseProjectElement'
@Metadata.allowExtensions:true
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
define view I_EnterpriseProjectElement
as select from /s4ppm/task as task
//Left Outer Join To get also Milestones
left outer to one join prps as prps on prps.pspnr = task.pspnr
// to make sure parent is empty in case of parent being PST
left outer to one join /s4ppm/hierarchy as hiera on hiera.object_guid = task.guid
and hiera.hierarchy_type = 'T'
and task.object_type <> 'DPO'
association [1..1] to I_EnterpriseProject as _Project on _Project.ProjectUUID = $projection.ProjectUUID
association [0..1] to I_EnterpriseProjectElement as _ParentElement on $projection.ParentObjectUUID = _ParentElement.ProjectElementUUID
association [1..*] to I_EntProjElmntDlvbrl as _EntProjElmntDlvbrl on _EntProjElmntDlvbrl.ProjectElementUUID = $projection.ProjectElementUUID
association [0..1] to I_PPM_Tasktype as _tasktype on $projection.EntProjectElementType = _tasktype.TaskType
// ---Extension Association
association [1..1] to E_PPM_Task as _ProjectElementExtension on $projection.ProjectElementUUID = _ProjectElementExtension.TaskUUID
association [1..1] to E_PPM_EngagementProjElmnt as _EngagementProjElmtExtension on $projection.ProjectElementUUID = _EngagementProjElmtExtension.TaskUUID
// 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'
)
//For Cat 7 Authorization
association [0..1] to I_EnterpriseProjectForUser as _EnterpriseProjectForUser on _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID
{
@ObjectModel.text.element: ['ProjectElementDescription']
key task.guid as ProjectElementUUID,
cast ( task.external_id as /s4ppm/project_ele_id preserving type ) as ProjectElement,
@ObjectModel.foreignKey.association: '_Project'
task.project_guid as ProjectUUID,
@Semantics.text: true
task.name as ProjectElementDescription,
task.proc_status_own as ProcessingStatus,
@EndUserText:
{ quickInfo : 'Latest Planned Start',
label : 'Latest Planned Start',
heading : 'Latest Planned Start' }
task.latest_start_date as PlannedStartDate,
@EndUserText:
{ quickInfo : 'Latest Planned Finish',
label : 'Latest Planned Finish',
heading : 'Latest Planned Finish' }
task.latest_finish_date as PlannedEndDate,
task.actualstart_date as ActualStartDate,
task.actualfinish_date as ActualFinishDate ,
task.sort_number as SortingNumber,
//2008 EPPM Harmonization Start
task.task_type as EntProjectElementType,
@Semantics.booleanIndicator: true
task.milestone as IsProjectMilestone,
//milestone
task.forecast_finish_date as ForecastedEndDate,
task.mlstn_apprvl_status as MilestoneApprovalStatus,
_tasktype.IsEssentialMilestone as IsMainMilestone,
prps.txjcd as TaxJurisdiction,
prps.tplnr as FunctionalLocation,
prps.fakkz as WBSElementIsBillingElement,
//2008 EPPM Harmonization End
cast ( task.pspnr as ps_s4_pspnr preserving type ) as WBSElementInternalID,
// 2105 Adding Project internal ID as part of BW integration.
cast ( prps.psphi as ps_s4_proj_pspnr preserving type ) as ProjectInternalID,
cast ( hiera.up as /s4ppm/tv_parent_entity_guid preserving type ) as ParentObjectUUID,
cast (hiera.sort_number as /s4ppm/tv_sort_number preserving type ) as ProjectElementOrdinalNumber,
prps.xstat as WBSIsStatisticalWBSElement,
prps.pbukr as CompanyCode,
prps.pkokr as ControllingArea,
prps.kostl as CostCenter,
prps.kalsm as CostingSheet,
prps.fabkl as FactoryCalendar,
prps.func_area as FunctionalArea,
prps.imprf as InvestmentProfile,
prps.stort as Location,
prps.werks as Plant,
prps.prctr as ProfitCenter,
prps.fkstl as ResponsibleCostCenter,
//SO Integration
prps.abgsl as ResultAnalysisInternalID,
prps.vbeln_prps as LeadingSalesOrder,
prps.posnr_prps as LeadingSalesOrderItem,
@Semantics.user.createdBy: true
task.created_by as CreatedByUser,
@Semantics.systemDateTime.createdAt: true
task.created_on as CreationDateTime,
@Semantics.user.lastChangedBy: true
task.changed_by as LastChangedByUser,
@Semantics.systemDateTime.lastChangedAt: true
task.changed_on as LastChangeDateTime,
hiera.guid as HierarchyNodeUUID,
task.entprojectsettlementelement as EntProjectSettlementElement,
task.entprojissettlmtruleinherited as EntProjIsSettlmtRuleInherited,
// CE2602 profitability segment
task.entprojprofitabilitysegment as EntProjProfitabilitySegment,
//_CostCenter._Text[1:Language = $session.system_language].CostCenterName ,
_Project,
_ParentElement,
_EntProjElmntDlvbrl,
// Authorization Association, do not expose externally
@Consumption.hidden: true
_AuthUser,
@Consumption.hidden: true
_AuthSubst,
@Consumption.hidden: true
_AuthRole,
@Consumption.hidden: true
_AuthGroup,
// _CostCenter
_EnterpriseProjectForUser
}