I_ENTERPRISEPROJECTELEMENT

CDS View

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)

ViewTypeJoinVDMDescription
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)

KeyField CDS FieldsUsed 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
}