I_PPM_ProjectObjectLink

DDL: I_PPM_PROJECTOBJECTLINK SQL: IPPMPROJOBJLINK Type: view COMPOSITE

PPM Project Object Link

I_PPM_ProjectObjectLink is a Composite CDS View that provides data about "PPM Project Object Link" in SAP S/4HANA. It reads from 2 data sources (I_PPM_ObjectLinkBasicData, I_PPM_ProjectSummaryTask) and exposes 19 fields with key field ProjectObjectLinkUUID. It has 3 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_PPM_ObjectLinkBasicData ProjectObjectLink from
I_PPM_ProjectSummaryTask PST inner

Associations (3)

CardinalityTargetAliasCondition
[1 ] I_PPM_ObjectLinkType _ObjectLinkType $projection.ObjectLinkType = _ObjectLinkType.ObjectLinkType
[1 ] I_PPM_ObjectLinkTypeText _ObjectLinkTypeText $projection.ObjectLinkType = _ObjectLinkTypeText.ObjectLinkType and _ObjectLinkTypeText.LanguageCode = $session.system_language
[1..1] I_PPM_Project _Root $projection.ProjectUUID = _Root.ProjectUUID

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName IPPMPROJOBJLINK view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.sizeCategory #L view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label PPM Project Object Link view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (19)

KeyFieldSource TableSource FieldDescription
KEY ProjectObjectLinkUUID
ProjectUUID I_PPM_ProjectSummaryTask ProjectUUID
ProjectSummaryTaskUUID I_PPM_ProjectSummaryTask ProjectSummaryTaskUUID
WBSElementInternalID I_PPM_ProjectSummaryTask WBSElementInternalID
ObjectLinkType I_PPM_ObjectLinkBasicData ObjectLinkType
ObjectLinkTypeGrouping _ObjectLinkType ObjectLinkTypeGrouping
CreatedByUser I_PPM_ObjectLinkBasicData CreatedByUser
CreationDateTime
LastChangedByUser I_PPM_ObjectLinkBasicData LastChangedByUser
LastChangeDateTime
ObjectLinkURL ObjectLinkURL
_Root _Root
_ProjObjRoot I_PPM_ProjectSummaryTask _ProjObjRoot
_AuthUser I_PPM_ProjectSummaryTask _AuthUser
_AuthSubst I_PPM_ProjectSummaryTask _AuthSubst
_AuthRole I_PPM_ProjectSummaryTask _AuthRole
_AuthGroup I_PPM_ProjectSummaryTask _AuthGroup
_ObjectLinkType _ObjectLinkType
_ObjectLinkTypeText _ObjectLinkTypeText
@AbapCatalog.sqlViewName: 'IPPMPROJOBJLINK'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE 
@ObjectModel.usageType:
{
//  representativeKey: 'ProjectObjectLinkUUID',

//  alternativeKey: [ { id : 'Project', uniqueness: #UNIQUE, element: [ 'ProjectUUID' ] } ],

  serviceQuality: #D,
  dataClass: #TRANSACTIONAL,
  sizeCategory: #L
}
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED 
@EndUserText.label: 'PPM Project Object Link'
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API 
define view I_PPM_ProjectObjectLink as select from I_PPM_ObjectLinkBasicData as ProjectObjectLink
    inner join I_PPM_ProjectSummaryTask as PST   on ProjectObjectLink.ProjectUUID = PST.ProjectSummaryTaskUUID //Authorization Check

//  left outer join /s4ppm/cds_dummy    as dummy on PST.ProjectUUID = dummy.dummy_key //workaround to get 'transient' string field

    

  // associations for fixed values and texts

  association [1 ] to I_PPM_ObjectLinkType       as _ObjectLinkType      on $projection.ObjectLinkType       = _ObjectLinkType.ObjectLinkType  
  // TODO TOASK [*] cardinality in Template area code (but cardinality defined differrently in StatusAreaCode view 

  association [1 ] to I_PPM_ObjectLinkTypeText   as _ObjectLinkTypeText  on $projection.ObjectLinkType       = _ObjectLinkTypeText.ObjectLinkType
                                                                        and _ObjectLinkTypeText.LanguageCode = $session.system_language   
  
  // BO composition associations 

  association [1..1] to I_PPM_Project as _Root on $projection.ProjectUUID = _Root.ProjectUUID   
{
  //@ObjectModel.text.element: ['ObjectLinkName']

  key cast( ProjectObjectLink.ObjectLinkUUID as /s4ppm/tv_entity_guid )  as ProjectObjectLinkUUID,
      @ObjectModel.readOnly: true
      PST.ProjectUUID,
// Needed for authorization - Association

      @ObjectModel.readOnly: true
      PST.ProjectSummaryTaskUUID,    
      @ObjectModel.readOnly: true
      PST.WBSElementInternalID,
      
     @ObjectModel.readOnly: true
     @ObjectModel.foreignKey.association: '_ObjectLinkType'
     @ObjectModel.text.association: '_ObjectLinkTypeText'
//   @Consumption.valueHelp: ''  // Not needed as field is readOnly.

      ProjectObjectLink.ObjectLinkType,
     @ObjectModel.readOnly: true
     _ObjectLinkType.ObjectLinkTypeGrouping,
     @ObjectModel.readOnly: true
     @Semantics.user.createdBy: true
      ProjectObjectLink.CreatedByUser,
     @ObjectModel.readOnly: true
     @Semantics.systemDateTime.createdAt: true
      cast( ProjectObjectLink.CreationDateTime as /s4ppm/tv_created_on )  as CreationDateTime,
     @ObjectModel.readOnly: true
     @Semantics.user.lastChangedBy: true
      ProjectObjectLink.LastChangedByUser,
     @ObjectModel.readOnly: true
     @Semantics.systemDateTime.lastChangedAt: true
      cast( ProjectObjectLink.LastChangeDateTime as /s4ppm/tv_changed_on ) as LastChangeDateTime,
//     @ObjectModel.readOnly: true

//    ObjectKey,

//   @ObjectModel.readOnly: true

//    ExternalId,

     //@ObjectModel.readOnly: true

     //ObjectLinkName,

      @ObjectModel.readOnly: true
      ObjectLinkURL,
      
      // BO Hierarchy related associations

      @ObjectModel.association.type:  [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ] 
      _Root,
      // Authorization association

      PST._ProjObjRoot,
      PST._AuthUser,
      PST._AuthSubst,
      PST._AuthRole,
      PST._AuthGroup,
   
      _ObjectLinkType,
      _ObjectLinkTypeText
} where _ObjectLinkType.ObjectLinkTypeGrouping = 'YIPD_COLLABORAT' 
     or _ObjectLinkType.ObjectLinkTypeGrouping = 'SPIN_COLLABORAT' ;
//      ProjectObjectLink.ObjectLinkType <> 'YPSROOTWBS'   //'YPSPROJDEF'

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_OBJECTLINKBASICDATA",
"I_PPM_OBJECTLINKTYPE",
"I_PPM_PROJECTSUMMARYTASK"
],
"ASSOCIATED":
[
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_OBJECTLINKTYPE",
"I_PPM_OBJECTLINKTYPETEXT",
"I_PPM_PROJECT",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/