I_EnterpriseProject

DDL: I_ENTERPRISEPROJECT Type: view BASIC

Enterprise Project

I_EnterpriseProject is a Basic CDS View (Dimension) that provides data about "Enterprise Project" in SAP S/4HANA. It reads from 4 data sources (proj, /s4ppm/project, prps, /s4ppm/task) and exposes 53 fields with key field ProjectUUID. It has 10 associations to related views.

Data Sources (4)

SourceAliasJoin Type
proj proj inner
/s4ppm/project project from
prps prps inner
/s4ppm/task task inner

Associations (10)

CardinalityTargetAliasCondition
[1..*] I_EnterpriseProjectElement _ProjectElement $projection.ProjectUUID = _ProjectElement.ProjectUUID
[0..*] I_EnterpriseProjectRole _ProjectRole $projection.ProjectUUID = _ProjectRole.ProjectUUID
[0..*] I_EnterpriseProjectTeamMember _ProjectTeamMember $projection.ProjectUUID = _ProjectTeamMember.ProjectUUID ---Extension
[1..1] E_PPM_Project _ProjectExtension $projection.ProjectUUID = _ProjectExtension.ProjectUUID
[1..1] E_PPM_EngagementProject _EngagementProjectExtension $projection.ProjectUUID = _EngagementProjectExtension.ProjectUUID
[0..*] I_PPM_AuthznByUsrH _AuthUser _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID 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.ProjectSummaryTaskUUID 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.ProjectSummaryTaskUUID 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.ProjectSummaryTaskUUID 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 (20)

NameValueLevelField
VDM.viewType #BASIC view
EndUserText.label Enterprise Project view
AbapCatalog.sqlViewName IIENTERPROJ 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 ProjectUUID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.sizeCategory #L view
UI.headerInfo.typeName Project view
UI.headerInfo.typeNamePlural Projects view
Metadata.ignorePropagatedAnnotations true view
Analytics.dataExtraction.enabled true view
Analytics.dataCategory #DIMENSION view
Metadata.allowExtensions true view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view

Fields (53)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID /s4ppm/project guid
ProjectInternalID
CustomerUUID /s4ppm/project customer
EnterpriseProjectServiceOrg /s4ppm/project org_id
EntProjectIsConfidential /s4ppm/project confidential
RestrictedTimePosting /s4ppm/project restrict_time_posting
ProjectCategory /s4ppm/project pro_category
ProjectSummaryTaskUUID /s4ppm/task guid
Project
ProjectDescription /s4ppm/task name
ProcessingStatus /s4ppm/task proc_status_own
PlannedStartDate /s4ppm/task planstart_date
PlannedEndDate /s4ppm/task planfinish_date
ActualStartDate /s4ppm/task actualstart_date
ActualFinishDate /s4ppm/task actualfinish_date
PriorityCode /s4ppm/task priority
EntProjIsMultiSlsOrdItmsEnbld /s4ppm/task multi_soi_enabled
ProjectStartDate /s4ppm/task latest_start_date
ProjectEndDate /s4ppm/task latest_finish_date
WBSElementInternalID
ProjectProfileCode proj profl
ProfitCenter proj prctr
CompanyCode proj vbukr
ControllingArea proj vkokr
FunctionalArea proj func_area
Location proj stort
Plant proj werks
Currency proj cpcurr
AvailabilityControlProfile proj avc_profile
AvailabilityControlIsActive proj avc_active
InvestmentProfile proj imprf
TaxJurisdiction proj txjcd
EnterpriseProjectType prps prart
ResponsibleCostCenter prps fkstl
FunctionalLocation prps tplnr
IsBillingRelevant prps fakkz
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
ProjectLastChangedByUser /s4ppm/project last_changed_by
ProjectLastChangedDateTime
_ProjectElement _ProjectElement
_ProjectRole _ProjectRole
_ProjectTeamMember _ProjectTeamMember
_EnterpriseProjectForUser _EnterpriseProjectForUser
_AuthUser _AuthUser
_AuthSubst _AuthSubst
_AuthRole _AuthRole
_AuthGroup _AuthGroup
@VDM.viewType: #BASIC
@EndUserText.label: 'Enterprise Project'

@AbapCatalog: {
    sqlViewName: 'IIENTERPROJ',
    compiler.compareFilter: true,
    preserveKey: true,
    dataMaintenance: #RESTRICTED
}

@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@ClientHandling.algorithm: #SESSION_VARIABLE

@ObjectModel: {
   semanticKey:       [ 'Project' ],
   representativeKey: 'ProjectUUID',
   supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #EXTRACTION_DATA_SOURCE ],
   usageType: {
     serviceQuality:  #B,
     dataClass:       #MASTER,
     sizeCategory:    #L
   }
}

@UI.headerInfo: {
  typeName:       'Project',
  typeNamePlural: 'Projects'
}

@Metadata.ignorePropagatedAnnotations: true

@Analytics.dataExtraction: {
        enabled: true,
        delta.changeDataCapture: {

            mapping:[
                {
                    table: '/s4ppm/project', role: #MAIN,
                    viewElement: ['ProjectUUID'],
                    tableElement: ['guid']
                },
                {
                    table: '/s4ppm/task', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['ProjectSummaryTaskUUID'],
                    tableElement: ['guid']},
                {
                    table: 'proj', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['ProjectInternalID'],
                    tableElement: ['pspnr']},
                {
                    table: 'prps', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['WBSElementInternalID'],
                    tableElement: ['pspnr']
                }


            ]
        }
}
@Analytics.dataCategory: #DIMENSION
@Metadata.allowExtensions:true

@VDM.lifecycle.contract.type:  #PUBLIC_LOCAL_API

define view I_EnterpriseProject
  as select from /s4ppm/project as project
    inner join   /s4ppm/task    as task on  task.project_guid = project.guid
                                        and object_type       = 'DPO'
    inner join   proj           as proj on proj.pspnr = project.pspnr
    inner join   prps           as prps on prps.pspnr = task.pspnr

  -- child assocciations
  association [1..*] to I_EnterpriseProjectElement    as _ProjectElement             on  $projection.ProjectUUID = _ProjectElement.ProjectUUID

  association [0..*] to I_EnterpriseProjectRole       as _ProjectRole                on  $projection.ProjectUUID = _ProjectRole.ProjectUUID

  association [0..*] to I_EnterpriseProjectTeamMember as _ProjectTeamMember          on  $projection.ProjectUUID = _ProjectTeamMember.ProjectUUID

  ---Extension Association
  association [1..1] to E_PPM_Project                 as _ProjectExtension           on  $projection.ProjectUUID = _ProjectExtension.ProjectUUID
  association [1..1] to E_PPM_EngagementProject       as _EngagementProjectExtension on  $projection.ProjectUUID = _EngagementProjectExtension.ProjectUUID

  // associations to authorization views

  association [0..*] to I_PPM_AuthznByUsrH            as _AuthUser                   on  _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
                                                                                     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.ProjectSummaryTaskUUID
                                                                                     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.ProjectSummaryTaskUUID
                                                                                     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.ProjectSummaryTaskUUID
                                                                                     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: ['ProjectDescription']
  key project.guid                                                                  as ProjectUUID,
      cast ( project.pspnr as ps_s4_proj_pspnr preserving type )                    as ProjectInternalID,
      //2008 C4P Harmonization Start

      project.customer                                                              as CustomerUUID,
      project.org_id                                                                as EnterpriseProjectServiceOrg,
      project.confidential                                                          as EntProjectIsConfidential,
      project.restrict_time_posting                                                 as RestrictedTimePosting,
      @Consumption.hidden: true
      project.pro_category                                                          as ProjectCategory,
      //2008 C4P Harmonization End

      task.guid                                                                     as ProjectSummaryTaskUUID,
      cast ( task.external_id as /s4ppm/project_id preserving type )                as Project,
      @Semantics.text: true
      task.name                                                                     as ProjectDescription,
      task.proc_status_own                                                          as ProcessingStatus,
      @EndUserText:
         { quickInfo : 'Earliest Planned Start',
           label     : 'Earliest Planned Start',
           heading   : 'Earliest Planned Start' }
      task.planstart_date                                                           as PlannedStartDate,
      @EndUserText:
         { quickInfo : 'Earliest Planned Finish',
           label     : 'Earliest Planned Finish',
           heading   : 'Earliest Planned Finish' }
      task.planfinish_date                                                          as PlannedEndDate,
      task.actualstart_date                                                         as ActualStartDate,
      task.actualfinish_date                                                        as ActualFinishDate,
      task.priority                                                                 as PriorityCode,
      //2102 SD eppm N:1 indicator

      task.multi_soi_enabled                                                        as EntProjIsMultiSlsOrdItmsEnbld,
      //2008 C4P Harmonization Start

      @EndUserText:
         { quickInfo : 'Latest Planned Start',
           label     : 'Latest Planned Start',
           heading   : 'Latest Planned Start' }
      task.latest_start_date                                                        as ProjectStartDate,
      @EndUserText:
         { quickInfo : 'Latest Planned Finish',
           label     : 'Latest Planned Finish',
           heading   : 'Latest Planned Finish' }
      task.latest_finish_date                                                       as ProjectEndDate,
      //2105 EPPM-BW integration

      cast ( prps.pspnr as ps_s4_pspnr preserving type )                            as WBSElementInternalID,
      // prps.pspnr                                                                  as ProjectObjectReferenceElement,

      //2008 C4P Harmonization End

      proj.profl                                                                    as ProjectProfileCode,
      proj.prctr                                                                    as ProfitCenter,
      proj.vbukr                                                                    as CompanyCode,
      proj.vkokr                                                                    as ControllingArea,
      proj.func_area                                                                as FunctionalArea,
      proj.stort                                                                    as Location,
      proj.werks                                                                    as Plant,
      proj.cpcurr                                                                   as Currency,
      //2008 C4P Harmonization Start

      proj.avc_profile                                                              as AvailabilityControlProfile,
      proj.avc_active                                                               as AvailabilityControlIsActive,
      proj.imprf                                                                    as InvestmentProfile,
      proj.txjcd                                                                    as TaxJurisdiction,
      //2008 C4P Harmonization End

      prps.prart                                                                    as EnterpriseProjectType,
      prps.fkstl                                                                    as ResponsibleCostCenter,
      prps.tplnr                                                                    as FunctionalLocation,
      prps.fakkz                                                                    as IsBillingRelevant,
      //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.localInstanceLastChangedBy: true
      task.changed_by                                                               as LastChangedByUser,
      @Semantics.systemDateTime.localInstanceLastChangedAt: true
      task.changed_on                                                               as LastChangeDateTime,
      project.last_changed_by                                                       as ProjectLastChangedByUser,
      cast ( project.last_changed_on as /s4ppm/tv_proj_changed_on preserving type ) as ProjectLastChangedDateTime,

      _ProjectElement,
      _ProjectRole,
      _ProjectTeamMember,
      _EnterpriseProjectForUser,

      // Authorization Association, do not expose externally

      @Consumption.hidden: true
      _AuthUser,
      @Consumption.hidden: true
      _AuthSubst,
      @Consumption.hidden: true
      _AuthRole,
      @Consumption.hidden: true
      _AuthGroup

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"/S4PPM/PROJECT",
"/S4PPM/TASK",
"PROJ",
"PRPS"
],
"ASSOCIATED":
[
"E_PPM_ENGAGEMENTPROJECT",
"E_PPM_PROJECT",
"I_ENTERPRISEPROJECTELEMENT",
"I_ENTERPRISEPROJECTFORUSER",
"I_ENTERPRISEPROJECTROLE",
"I_ENTERPRISEPROJECTTEAMMEMBER",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/