I_ProjectDemandWorkPackageText

DDL: I_PROJECTDEMANDWORKPACKAGETEXT Type: view COMPOSITE

Textual information for work packages including project data

I_ProjectDemandWorkPackageText is a Composite CDS View that provides data about "Textual information for work packages including project data" in SAP S/4HANA. It reads from 1 data source (R_PPM_ProjectTask) and exposes 25 fields with key field ProjectElementUUID. It has 3 associations to related views.

Data Sources (1)

SourceAliasJoin Type
R_PPM_ProjectTask Element from

Associations (3)

CardinalityTargetAliasCondition
[1..1] I_EnterpriseProjectElement _ProjectElement $projection.ProjectElementUUID = _ProjectElement.ProjectElementUUID
[1..1] I_EnterpriseProject _Project $projection.ProjectUUID = _Project.ProjectUUID
[0..*] I_PPM_ProcessingStatusText _StatusText $projection.ProcessingStatus = _StatusText.ProcessingStatus

Annotations (15)

NameValueLevelField
EndUserText.label Textual information for work packages including project data view
AbapCatalog.sqlViewName IPRJDMNWPGTXT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.dataMaintenance #RESTRICTED view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.representativeKey ProjectElementUUID view
ObjectModel.dataCategory #TEXT view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view

Fields (25)

KeyFieldSource TableSource FieldDescription
KEY ProjectElementUUID R_PPM_ProjectTask ProjectElementUUID WBS Element
ProjectElement WBS Element
ProjectElementDescription R_PPM_ProjectTask ProjectElementDescription WBS Element Description
PlannedStartDate R_PPM_ProjectTask PlannedStartDate
PlannedEndDate R_PPM_ProjectTask PlannedEndDate
WBSElementInternalID R_PPM_ProjectTask WBSElementInternalID
ProjectUUID R_PPM_ProjectTask ProjectUUID ProjectUUID
Project
ProjectInternalID R_PPM_ProjectTask ProjectInternalID
ProjectDescription Project Description
ProjectStartDate
ProjectEndDate
ControllingArea R_PPM_ProjectTask ControllingArea
ProfitCenter R_PPM_ProjectTask ProfitCenter
CompanyCode R_PPM_ProjectTask CompanyCode
ResponsibleCostCenter R_PPM_ProjectTask ResponsibleCostCenter
Plant R_PPM_ProjectTask Plant
FunctionalArea R_PPM_ProjectTask FunctionalArea
ProcessingStatus R_PPM_ProjectTask ProcessingStatus
_Project _Project
_ProjectElement _ProjectElement
_ProcessingStatus _ProcessingStatus
_StatusText _StatusText
_ControllingArea R_PPM_ProjectTask _ControllingArea
_ProfitCenter R_PPM_ProjectTask _ProfitCenter
@EndUserText.label: 'Textual information for work packages including project data'
@AbapCatalog: { 
    sqlViewName: 'IPRJDMNWPGTXT',
    compiler.compareFilter: true,
    dataMaintenance: #RESTRICTED,
    preserveKey:true
}

@VDM: {
    viewType: #COMPOSITE,
    lifecycle.contract.type: #SAP_INTERNAL_API
}

@AccessControl: {
    authorizationCheck:     #CHECK,
    personalData.blocking:  #BLOCKED_DATA_EXCLUDED
}

@ClientHandling.algorithm: #SESSION_VARIABLE

@ObjectModel: {
   semanticKey:       [ 'ProjectElement' ],
   representativeKey: 'ProjectElementUUID',
   dataCategory: #TEXT,   
   usageType: {
     serviceQuality:  #C,
     dataClass:       #MIXED,
     sizeCategory:    #L
    }
} 

define view I_ProjectDemandWorkPackageText as 
        select from R_PPM_ProjectTask as Element                 
        
    association [1..1] to I_EnterpriseProjectElement  as _ProjectElement    on $projection.ProjectElementUUID = _ProjectElement.ProjectElementUUID
    association [1..1] to I_EnterpriseProject         as _Project           on $projection.ProjectUUID = _Project.ProjectUUID 
    association [0..*] to I_PPM_ProcessingStatusText  as _StatusText        on $projection.ProcessingStatus = _StatusText.ProcessingStatus
    
{
  @UI.facet: [
   {
     purpose: #QUICK_VIEW,
     type: #FIELDGROUP_REFERENCE,
     targetQualifier: 'WPPOPOVER'
   }
]
//    @UI.hidden: true  

    @UI.textArrangement: #TEXT_ONLY
    @ObjectModel.text.element: 'ProjectElementDescription'
    @EndUserText.label: 'WBS Element'
    key Element.ProjectElementUUID,   

    @UI.textArrangement: #TEXT_FIRST
    @ObjectModel.text.element: 'ProjectElementDescription'
    
    @EndUserText.label: 'WBS Element'
     @UI: {
      fieldGroup:     [{ qualifier:'WPPOPOVER', position: 10}]
  }
    cast( Element.ProjectElement as tv_proj_dmnd_wrkpkg preserving type )   as ProjectElement,
    
    @Semantics.text: true
    @EndUserText.label: 'WBS Element Description'
    @EndUserText.quickInfo: 'WBS Element Description'
      @UI: {
      fieldGroup:     [{ qualifier:'WPPOPOVER', position: 20}]
  }
    Element.ProjectElementDescription,
    @UI: {
      fieldGroup:     [{ qualifier:'WPPOPOVER', position: 30}]
  }
    Element.PlannedStartDate,
  @UI: {
      fieldGroup:     [{ qualifier:'WPPOPOVER', position: 40}]
  }
    Element.PlannedEndDate,
    
    Element.WBSElementInternalID,
    
 
     @EndUserText.label: 'ProjectUUID' 
    Element.ProjectUUID as ProjectUUID,
       
    
    cast( Element._EnterpriseProject.Project as tv_proj_dmnd_project preserving type )     as Project,
    
    Element.ProjectInternalID,
    
    @Semantics.text: true
    @EndUserText.label: 'Project Description'
    Element._EnterpriseProject.ProjectDescription as ProjectDescription,

    Element._EnterpriseProject.ProjectStartDate,

    Element._EnterpriseProject.ProjectEndDate,
        
    // Only for auth check    

    @Consumption.hidden: true
    Element.ControllingArea,
    @Consumption.hidden: true
      @UI: {
      fieldGroup:     [{ qualifier:'WPPOPOVER', position: 50}]
  }
    Element.ProfitCenter,
    
    //CE2308 - Further fields added for auth check

    @Consumption.hidden: true
    Element.CompanyCode,
    
    @Consumption.hidden: true
    Element.ResponsibleCostCenter,
    
    @Consumption.hidden: true
    Element.Plant,
    
    @Consumption.hidden: true
    Element.FunctionalArea,
    
    // Used in value help for object selecton only    

    @Consumption.hidden: true    
    @ObjectModel.foreignKey.association: '_ProcessingStatus'
    @ObjectModel.text.association: '_StatusText'
    Element.ProcessingStatus,
    
    _Project,
    _ProjectElement,
    _ProcessingStatus,
    _StatusText,
    
    Element._ControllingArea,
    Element._ProfitCenter

    
} where Element._EnterpriseProject.ProjectCategory = '6' 
  and   Element.WBSElementInternalID <> '00000000' // not a milestone

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"R_ENTERPRISEPROJECT",
"R_PPM_PROJECTTASK"
],
"ASSOCIATED":
[
"I_CONTROLLINGAREA",
"I_ENTERPRISEPROJECT",
"I_ENTERPRISEPROJECTELEMENT",
"I_PPM_PROCESSINGSTATUS",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PROFITCENTER"
],
"BASE":
[
"R_PPM_PROJECTTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/