P_ProjectObject

DDL: P_PROJECTOBJECT SQL: PPROJECTOBJECT Type: view COMPOSITE

P_ProjectObject is a Composite CDS View in SAP S/4HANA. It reads from 5 data sources (I_ManufacturingOrder, I_WBSElementBasicData, I_MaintenanceOrder, I_ProjectBasicData, I_WBSElementStructure) and exposes 35 fields with key fields ProjectObjectNode, IsActiveEntity, IsActiveEntity, IsActiveEntity, IsActiveEntity. It has 2 associations to related views.

Data Sources (5)

SourceAliasJoin Type
I_ManufacturingOrder _Order union
I_WBSElementBasicData _WBS inner
I_MaintenanceOrder I_MaintenanceOrder union
I_ProjectBasicData I_ProjectBasicData from
I_WBSElementStructure I_WBSElementStructure union

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_EnterpriseProject _EnterpriseProject $projection.ProjectObjectInternalID = _EnterpriseProject.ProjectInternalID
[0..1] I_EnterpriseProjectElement _EnterpriseProjectElement $projection.ProjectObjectInternalID = _EnterpriseProjectElement.WBSElementInternalID

Annotations (5)

NameValueLevelField
AbapCatalog.sqlViewName PPROJECTOBJECT view
AccessControl.authorizationCheck #NOT_REQUIRED view
ObjectModel.representativeKey ProjectObjectNode view
VDM.viewType #COMPOSITE view
VDM.private true view

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY ProjectObjectNode ProjectObject
KEY IsActiveEntity
ProjectObjectRootNode ProjectObject
ProjectObjectParentNode
ProjectObjectType
ProjectObjectInternalID ProjectInternalID
ProjectObjectUUID _EnterpriseProject ProjectUUID
ProjectObjectExternalID Project
ProjectObjectDescription ProjectDescription
WBSElementObjectasProjectObjectNode
KEY IsActiveEntity
ProjectObjectRootNode _Project ProjectObject
ProjectObjectType
ProjectObjectInternalID WBSElementInternalID
ProjectObjectUUID _EnterpriseProjectElement ProjectElementUUID
ProjectObjectExternalID _WBSElement WBSElement
ProjectObjectDescription _WBSElement WBSDescription
KEY IsActiveEntity
ProjectObjectRootNode
ProjectObjectParentNode _WBSElement WBSElementObject
ProjectObjectType
ProjectObjectInternalID MaintenanceOrder
ProjectObjectUUID _EnterpriseProject ProjectUUID
ProjectObjectExternalID
ProjectObjectDescription MaintenanceOrderDesc
ManufacturingOrderasProjectObjectNode
KEY IsActiveEntity
ProjectObjectRootNode
ProjectObjectParentNode
ProjectObjectType
ProjectObjectInternalID I_ManufacturingOrder ManufacturingOrder
ProjectObjectUUID _EnterpriseProject ProjectUUID
ProjectObjectExternalID
ProjectObjectDescription I_ManufacturingOrder ManufacturingOrderText
Project
@AbapCatalog.sqlViewName: 'PPROJECTOBJECT'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.representativeKey: 'ProjectObjectNode'
@ObjectModel.semanticKey:  [ 'ProjectObjectExternalID', 'IsActiveEntity' ]
@VDM.viewType: #COMPOSITE
@VDM.private: true

define view P_ProjectObject
  as select from I_ProjectBasicData
  association [0..1] to I_EnterpriseProject as _EnterpriseProject on $projection.ProjectObjectInternalID = _EnterpriseProject.ProjectInternalID
{

  key ProjectObject                  as ProjectObjectNode,
  key 'A'                            as IsActiveEntity,
      ProjectObject                  as ProjectObjectRootNode,
      cast(' ' as abap.char(22))     as ProjectObjectParentNode,
      cast('PD' as abap.char(2))     as ProjectObjectType,
      ProjectInternalID              as ProjectObjectInternalID,
      _EnterpriseProject.ProjectUUID as ProjectObjectUUID,
      Project                        as ProjectObjectExternalID,
      ProjectDescription             as ProjectObjectDescription,
      Project
}
where
  I_ProjectBasicData.ProjectObject <> ''

union select from I_WBSElementStructure
association [0..1] to I_EnterpriseProjectElement as _EnterpriseProjectElement on $projection.ProjectObjectInternalID = _EnterpriseProjectElement.WBSElementInternalID
{
  key  _WBSElement.WBSElementObject                 as ProjectObjectNode,
  key  'A'                                          as IsActiveEntity,
       _Project.ProjectObject                       as ProjectObjectRootNode,
       case
       when WBSElementParentInternalID = '00000000'
       then _Project.ProjectObject
       else
       _WBSElementParent.WBSElementObject
       end                                          as ProjectObjectParentNode,
       cast('PR' as abap.char(2))                   as ProjectObjectType,
       WBSElementInternalID                         as ProjectObjectInternalID,
       _EnterpriseProjectElement.ProjectElementUUID as ProjectObjectUUID,
       _WBSElement.WBSElement                       as ProjectObjectExternalID,
       _WBSElement.WBSDescription                   as ProjectObjectDescription,
       _Project.Project                             as Project
}
where
  _WBSElement.WBSElementObject <> ''

//S/4HANA CE2108 - Maintenance Order enablement-Begin

union select from I_MaintenanceOrder
association [0..1] to I_EnterpriseProject as _EnterpriseProject on I_MaintenanceOrder.ProjectInternalID = _EnterpriseProject.ProjectInternalID
{
  key  MaintenanceOrder                   as ProjectObjectNode,
  key  'A'                                as IsActiveEntity,
       _WBSElement._Project.ProjectObject as ProjectObjectRootNode,
       _WBSElement.WBSElementObject       as ProjectObjectParentNode,
       cast('OR' as abap.char(2))         as ProjectObjectType,
       MaintenanceOrder                   as ProjectObjectInternalID,
       _EnterpriseProject.ProjectUUID     as ProjectObjectUUID,
       ltrim( MaintenanceOrder, '0' )     as ProjectObjectExternalID,
       MaintenanceOrderDesc               as ProjectObjectDescription,
       _WBSElement._Project.Project

}
where
  MaintenanceOrder <> ''
//S/4HANA CE2108 - Maintenance Order enablement-End


//S/4HANA CE2302 - Production Order enablement-Begin

union select from I_ManufacturingOrder as _Order 
inner join  I_WBSElementBasicData      as _WBS  on _Order.WBSElementInternalID = _WBS.WBSElementInternalID 
association [0..1] to I_EnterpriseProject as _EnterpriseProject on  _WBS.ProjectInternalID = _EnterpriseProject.ProjectInternalID
{
  key  _Order.ManufacturingOrder                  as ProjectObjectNode,
  key  'A'                                        as IsActiveEntity,
       _Order._WBSElement._Project.ProjectObject  as ProjectObjectRootNode,
       _Order._WBSElement.WBSElementObject        as ProjectObjectParentNode,
       cast('PO' as abap.char(2))                 as ProjectObjectType,
       _Order.ManufacturingOrder                  as ProjectObjectInternalID,
       _EnterpriseProject.ProjectUUID             as ProjectObjectUUID,
       ltrim(  _Order.ManufacturingOrder, '0' )   as ProjectObjectExternalID,
       _Order.ManufacturingOrderText              as ProjectObjectDescription,
       _Order._WBSElement._Project.Project        as Project

}
where
  _Order.ManufacturingOrder <> ''
//S/4HANA CE2302 - Production Order enablement-End


/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENTERPRISEPROJECT",
"I_ENTERPRISEPROJECTELEMENT",
"I_MAINTENANCEORDER",
"I_MANUFACTURINGORDER",
"I_PROJECTBASICDATA",
"I_PROJECTBYINTERNALKEY",
"I_WBSELEMENTBASICDATA",
"I_WBSELEMENTBYINTERNALKEY",
"I_WBSELEMENTSTRUCTURE"
],
"ASSOCIATED":
[
"I_ENTERPRISEPROJECT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/