I_EnterpriseProjectElement

DDL: I_ENTERPRISEPROJECTELEMENT Type: view BASIC

Enterprise Project Element

I_EnterpriseProjectElement is a Basic CDS View (Dimension) that provides data about "Enterprise Project Element" in SAP S/4HANA. It reads from 1 data source (/s4ppm/task) and exposes 46 fields with key field ProjectElementUUID. It has 9 associations to related views.

Data Sources (1)

SourceAliasJoin Type
/s4ppm/task task from

Associations (9)

CardinalityTargetAliasCondition
[1..1] I_EnterpriseProject _Project _Project.ProjectUUID = $projection.ProjectUUID
[1..*] I_EntProjElmntDlvbrl _EntProjElmntDlvbrl _EntProjElmntDlvbrl.ProjectElementUUID = $projection.ProjectElementUUID
[1..1] E_PPM_Task _ProjectElementExtension $projection.ProjectElementUUID = _ProjectElementExtension.TaskUUID
[1..1] E_PPM_EngagementProjElmnt _EngagementProjElmtExtension $projection.ProjectElementUUID = _EngagementProjElmtExtension.TaskUUID
[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' )
[0..1] I_EnterpriseProjectForUser _EnterpriseProjectForUser _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID

Annotations (18)

NameValueLevelField
EndUserText.label Enterprise Project Element view
AbapCatalog.sqlViewName IENTERPROJELE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AbapCatalog.dataMaintenance #RESTRICTED view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.representativeKey ProjectElementUUID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.sizeCategory #XL view
Metadata.ignorePropagatedAnnotations true view
Analytics.dataExtraction.enabled true view
Analytics.dataCategory #DIMENSION view
Metadata.allowExtensions true view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view

Fields (46)

KeyFieldSource TableSource FieldDescription
KEY ProjectElementUUID /s4ppm/task guid
ProjectElement
ProjectUUID /s4ppm/task project_guid
ProjectElementDescription /s4ppm/task name
ProcessingStatus /s4ppm/task proc_status_own
PlannedStartDate /s4ppm/task latest_start_date
PlannedEndDate /s4ppm/task latest_finish_date
ActualStartDate /s4ppm/task actualstart_date
ActualFinishDate /s4ppm/task actualfinish_date
SortingNumber /s4ppm/task sort_number
EntProjectElementType /s4ppm/task task_type
IsProjectMilestone /s4ppm/task milestone
TaxJurisdiction prps txjcd
FunctionalLocation prps tplnr
WBSElementIsBillingElement prps fakkz
WBSElementInternalID
ProjectInternalID
ParentObjectUUID
ProjectElementOrdinalNumber
WBSIsStatisticalWBSElement prps xstat
CompanyCode prps pbukr
ControllingArea prps pkokr
CostCenter prps kostl
CostingSheet prps kalsm
FactoryCalendar prps fabkl
FunctionalArea prps func_area
InvestmentProfile prps imprf
Location prps stort
Plant prps werks
ProfitCenter prps prctr
ResponsibleCostCenter prps fkstl
ResultAnalysisInternalID prps abgsl
LeadingSalesOrder prps vbeln_prps
LeadingSalesOrderItem prps posnr_prps
CreatedByUser /s4ppm/task created_by
CreationDateTime /s4ppm/task created_on
LastChangedByUser /s4ppm/task changed_by
LastChangeDateTime /s4ppm/task changed_on
HierarchyNodeUUID hiera guid
_Project _Project
_EntProjElmntDlvbrl _EntProjElmntDlvbrl
_AuthUser _AuthUser
_AuthSubst _AuthSubst
_AuthRole _AuthRole
_AuthGroup _AuthGroup
_EnterpriseProjectForUser _EnterpriseProjectForUser
@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
@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 [1..*] to I_EntProjElmntDlvbrl    as _EntProjElmntDlvbrl      on  _EntProjElmntDlvbrl.ProjectElementUUID  = $projection.ProjectElementUUID
//  association [0..1] to I_CostCenter              as _CostCenter           on  _CostCenter.CostCenter        = $projection.CostCenter

//                                                                            and _CostCenter.ControllingArea  = $projection.ControllingArea


  // ---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,
      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,
      

//_CostCenter._Text[1:Language = $session.system_language].CostCenterName ,

      _Project,
      _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
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"/S4PPM/HIERARCHY",
"/S4PPM/TASK",
"PRPS"
],
"ASSOCIATED":
[
"E_PPM_ENGAGEMENTPROJELMNT",
"E_PPM_TASK",
"I_ENTERPRISEPROJECT",
"I_ENTERPRISEPROJECTFORUSER",
"I_ENTPROJELMNTDLVBRL",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/