I_ProjectData

DDL: I_PROJECTDATA Type: view BASIC Package: VDM_PS_ST

Project Data

I_ProjectData is a Basic CDS View (Dimension) that provides data about "Project Data" in SAP S/4HANA. It reads from 1 data source (proj) and exposes 90 fields with key field ProjectInternalID. It has 11 associations to related views. Part of development package VDM_PS_ST.

Data Sources (1)

SourceAliasJoin Type
proj proj from

Associations (11)

CardinalityTargetAliasCondition
[0..*] I_WBSElementData _WBSElement $projection.ProjectInternalID = _WBSElement.ProjectInternalID
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[0..*] I_ProfitCenter _ProfitCenter $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
[1..1] I_BusinessArea _BusinessArea $projection.BusinessArea = _BusinessArea.BusinessArea
[1..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[1..1] I_ProjectProfileCode _ProjectProfileCode $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode
[1..1] I_FunctionalArea _FunctionalArea $projection.FunctionalArea = _FunctionalArea.FunctionalArea
[0..1] I_FactoryCalendar _FactoryCalendar $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar
[0..1] I_ProjectObjectShortText _ProjectShortText _ProjectShortText.Language = $session.system_language and _ProjectShortText.ProjectApplicationIdentifier = 'PS' and _ProjectShortText.ProjectObjectType = 'PD' and $projection.ProjectObject = _ProjectShortText.ProjectObjectNode ---Extension
[1..1] E_Project_2 _Extension $projection.ProjectInternalID = _Extension.ProjectInternalID

Annotations (21)

NameValueLevelField
AbapCatalog.sqlViewName IPROJECTDATA view
AbapCatalog.compiler.compareFilter true view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled true view
Analytics.dataExtraction.delta.changeDataCapture.automatic true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Project Data view
VDM.viewType #BASIC view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.preserveKey true view
Metadata.ignorePropagatedAnnotations true view
Analytics.internalName #LOCAL view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
VDM.lifecycle.status #DEPRECATED view
VDM.lifecycle.successor I_ProjectData_2 view
Metadata.allowExtensions true view
ObjectModel.compositionRoot true view
ObjectModel.representativeKey ProjectInternalID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view

Fields (90)

KeyFieldSource TableSource FieldDescription
KEY ProjectInternalID
ProjectExternalID proj pspid_edit
Project
ProjectDescription
ProjectProfileCode proj profl
CompanyCode
ControllingArea
FunctionalArea
ProfitCenter proj prctr
ProjectObject proj objnr
PlannedStartDate proj plfaz
PlannedEndDate proj plsez
WorkCenterLocation proj stort
TaxJurisdiction proj txjcd
ResponsiblePerson proj vernr
ResponsiblePersonName
ApplicantCode
ApplicantName proj astna
CreatedByUser proj ernam
CreationDate proj erdat
LastChangedByUser proj aenam
LastChangeDate
BasicDatesLastScheduledDate proj aedte
FcstdDatesLastScheduledDate
FactoryCalendar
SchedulingDurationUnit
BusinessArea
Plant proj werks
Currency
BudgetProfile proj bprof
PlanningProfile proj pprof
InvestmentProfile proj imprf
ProjInterestCalcProfile
ResultAnalysisInternalID proj abgsl
PartnerDeterminationProcedure proj pargr
ControllingObjectClass
NetworkProfile proj vprof
WBSSchedulingProfile
PlanningMethForProjBasicDate
PlanningMethForProjFcstdDate
NetworkAssignmentType proj zuord
WBSIsStatisticalWBSElement proj xstat
WBSIsMarkedForIntegratedPlng proj plint
ProjectHasOwnStock
InventorySpecialStockValnType proj kzbws
WBSIsMarkedForAutomReqmtGrpg proj grtop
SalesOrganization proj vkorg
DistributionChannel proj vtweg
Language proj txtsp
WBSElementExternalID proj kimsk
Division proj spart
DynItemProcessorPrfl proj dppprof
StatusProfile proj stspd
WBSStatusProfile proj stspr
SimulationProfile proj smprf
SchedulingScenario proj schtyp
DistributionProfile proj pgprf
JointVenture proj vname
JointVentureCostRecoveryCode proj recid
JointVentureEquityType proj etype
JointVentureObjectType proj otype
JntIntrstBillgClass proj jibcl
JntIntrstBillgSubClass proj jibsa
FreeDefinedTableFieldSemantic proj slwid
FreeDefinedAttribute01
FreeDefinedAttribute02
FreeDefinedAttribute03
FreeDefinedAttribute04
FreeDefinedQuantity1
FreeDefinedQuantity1Unit
FreeDefinedQuantity2
FreeDefinedQuantity2Unit
FreeDefinedAmount1
FreeDefinedAmount1Currency
FreeDefinedAmount2
FreeDefinedAmount2Currency
FreeDefinedDate1
FreeDefinedDate2
FreeDefinedIndicator1
FreeDefinedIndicator2
_WBSElement _WBSElement
_CompanyCode _CompanyCode
_ControllingArea _ControllingArea
_ProfitCenter _ProfitCenter
_BusinessArea _BusinessArea
_Plant _Plant
_ProjectProfileCode _ProjectProfileCode
_FunctionalArea _FunctionalArea
_FactoryCalendar _FactoryCalendar
_ProjectShortText _ProjectShortText
@AbapCatalog: {
  sqlViewName: 'IPROJECTDATA',
  compiler.compareFilter: true
}
@Analytics: { dataCategory: #DIMENSION, dataExtraction: {enabled: true, delta.changeDataCapture: {automatic: true}} }
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Project Data'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@Metadata.ignorePropagatedAnnotations:true
@Analytics.internalName: #LOCAL
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_ProjectData_2'

@Metadata.allowExtensions: true

@ObjectModel: {
    compositionRoot: true,
    //Keys

    representativeKey: 'ProjectInternalID',
    semanticKey: [ 'Project' ],

    usageType: {
        serviceQuality: #B,
        sizeCategory : #L,
        dataClass: #MASTER
    },
    
    supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION, #EXTRACTION_DATA_SOURCE ]
}


define view I_ProjectData 
  as select from proj

  association [0..*] to I_WBSElementData             as _WBSElement                 on  $projection.ProjectInternalID = _WBSElement.ProjectInternalID
  association [0..1] to I_CompanyCode                as _CompanyCode                on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [0..1] to I_ControllingArea            as _ControllingArea            on  $projection.ControllingArea = _ControllingArea.ControllingArea                                                                            
  association [0..*] to I_ProfitCenter               as _ProfitCenter               on  $projection.ControllingArea  =  _ProfitCenter.ControllingArea
                                                                                    and $projection.ProfitCenter     =  _ProfitCenter.ProfitCenter
  association [1..1] to I_BusinessArea               as _BusinessArea               on  $projection.BusinessArea = _BusinessArea.BusinessArea
  association [1..1] to I_Plant                      as _Plant                      on  $projection.Plant = _Plant.Plant
  association [1..1] to I_ProjectProfileCode         as _ProjectProfileCode         on  $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode
  association [1..1] to I_FunctionalArea             as _FunctionalArea             on  $projection.FunctionalArea = _FunctionalArea.FunctionalArea
  association [0..1] to I_FactoryCalendar            as _FactoryCalendar            on  $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar  
  // Multilanguage Short text 

  association [0..1] to I_ProjectObjectShortText     as _ProjectShortText          on  _ProjectShortText.Language   = $session.system_language
                                                                                   and _ProjectShortText.ProjectApplicationIdentifier = 'PS'
                                                                                   and _ProjectShortText.ProjectObjectType = 'PD'
                                                                                   and $projection.ProjectObject = _ProjectShortText.ProjectObjectNode
  ---Extension Association
  association [1..1] to E_Project_2 as _Extension on $projection.ProjectInternalID = _Extension.ProjectInternalID                                                                            
{

      //Entity description fields

  key cast ( proj.pspnr as ps_s4_proj_pspnr preserving type )               as ProjectInternalID,
      @ObjectModel.text.element: 'ProjectDescription'
      proj.pspid_edit                                                       as ProjectExternalID,
      cast ( proj.pspid as ps_p_pspid preserving type )                     as Project,
      @Semantics.text: true
      cast ( proj.post1 as ps_s4_proj_post1_v1 preserving type)             as ProjectDescription,
      
      @ObjectModel.foreignKey.association: '_ProjectProfileCode' 
      proj.profl                                                            as ProjectProfileCode,

      //Organizational fields

      @ObjectModel.foreignKey.association: '_CompanyCode'
      cast ( proj.vbukr as bukrs preserving type )                          as CompanyCode,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      cast ( proj.vkokr as kokrs preserving type )                          as ControllingArea,
      @ObjectModel.foreignKey.association: '_FunctionalArea'
      cast ( proj.func_area as fkber preserving type )                      as FunctionalArea,
      @ObjectModel.foreignKey.association: '_ProfitCenter'
      proj.prctr                                                            as ProfitCenter,

      //Dimensions

      proj.objnr                                                            as ProjectObject,

      //Dates

      @Semantics.calendar.dayOfMonth: true
      proj.plfaz                                                            as PlannedStartDate,
      @Semantics.calendar.dayOfMonth: true
      proj.plsez                                                            as PlannedEndDate,
        
      proj.stort                                                            as WorkCenterLocation,
      // Tax Jurisdiction Code

      proj.txjcd                                                            as TaxJurisdiction,
      
      proj.vernr                                                            as ResponsiblePerson,                                                                                                                                                    
      @Semantics.text: true
      cast ( proj.verna as ps_s4_verna )                                    as ResponsiblePersonName,                                                                                                                                   
      cast ( proj.astnr as ps_s4_astnr )                                    as ApplicantCode,                                                                                                                                    
      @Semantics.text: true
      proj.astna                                                            as ApplicantName,
      @Semantics.user.createdBy: true
      proj.ernam                                                            as CreatedByUser, 
      @Semantics.systemDate.createdAt: true      
      proj.erdat                                                            as CreationDate,
      @Semantics.user.lastChangedBy: true       
      proj.aenam                                                            as LastChangedByUser,   
      @Semantics.systemDate.lastChangedAt: true
      cast ( proj.aedat as ps_s4_aedat )                                    as LastChangeDate,    
        
      @Semantics.calendar.dayOfMonth: true
      proj.aedte                                                            as BasicDatesLastScheduledDate,       
      @Semantics.calendar.dayOfMonth: true
      cast ( proj.aedtp as ps_aedtp )                                       as FcstdDatesLastScheduledDate, 
      
      @ObjectModel.foreignKey.association: '_FactoryCalendar'
      cast ( proj.kalid as appca )                                          as FactoryCalendar,
      cast ( proj.zteht as cgpl_duration_unit )                             as SchedulingDurationUnit,
      @Semantics.calendar.dayOfMonth: true
      cast ( proj.sprog as pshlp_forecast_start_de )                        as ForecastedStartDate,
      @Semantics.calendar.dayOfMonth: true
      cast ( proj.eprog as ps_s4_forecast_finish )                          as ForecastedEndDate,
      @ObjectModel.foreignKey.association: '_BusinessArea'
      cast ( proj.vgsbr as gsber )                                          as BusinessArea,
      @ObjectModel.foreignKey.association: '_Plant'
      proj.werks                                                            as Plant,
      cast ( proj.pwhie as ps_pwhie )                                       as Currency,      
      proj.bprof                                                            as BudgetProfile,
      proj.pprof                                                            as PlanningProfile,
      proj.imprf                                                            as InvestmentProfile,
                                            
      cast ( proj.zschm as ps_zschm )                                       as ProjInterestCalcProfile,
      proj.abgsl                                                            as ResultAnalysisInternalID,
      proj.pargr                                                            as PartnerDeterminationProcedure,
      
      cast ( proj.scope as ps_s4_scope_cv )                                 as ControllingObjectClass,
                                            
      proj.vprof                                                            as NetworkProfile,
      cast  ( proj.scprf as ps_s4_schdprf )                                 as WBSSchedulingProfile,     
      
      cast ( proj.vgplf as ps_s4_vgplf preserving type )                    as PlanningMethForProjBasicDate,
      cast  ( proj.ewplf as ps_s4_ewplf preserving type )                   as PlanningMethForProjFcstdDate,
      
      proj.zuord                                                            as NetworkAssignmentType,
      proj.xstat                                                            as WBSIsStatisticalWBSElement,
      proj.plint                                                            as WBSIsMarkedForIntegratedPlng,
      @Semantics.booleanIndicator: true                                                                        
      cast ( proj.besta as psb_stock )                                      as ProjectHasOwnStock,
      proj.kzbws                                                            as InventorySpecialStockValnType,
      proj.grtop                                                            as WBSIsMarkedForAutomReqmtGrpg,
      proj.vkorg                                                            as SalesOrganization,
      proj.vtweg                                                            as DistributionChannel,
      
      @Semantics.language
      proj.txtsp                                                            as Language,
      proj.kimsk                                                            as WBSElementExternalID,   
      proj.spart                                                            as Division,
      proj.dppprof                                                          as DynItemProcessorPrfl,
      proj.stspd                                                            as StatusProfile,  
      proj.stspr                                                            as WBSStatusProfile,
      proj.smprf                                                            as SimulationProfile, 
      proj.schtyp                                                           as SchedulingScenario,  
      proj.pgprf                                                            as DistributionProfile, 
      
      //joint venture fields 

      proj.vname                                                            as JointVenture,
      proj.recid                                                            as JointVentureCostRecoveryCode,
      proj.etype                                                            as JointVentureEquityType,
      proj.otype                                                            as JointVentureObjectType, 
      proj.jibcl                                                            as JntIntrstBillgClass,
      proj.jibsa                                                            as JntIntrstBillgSubClass, 
      
      proj.slwid                                                            as FreeDefinedTableFieldSemantic,
      cast ( proj.usr00 as usr00prps preserving type )                      as FreeDefinedAttribute01,
      cast ( proj.usr01 as usr01prps preserving type )                      as FreeDefinedAttribute02,
      cast ( proj.usr02 as usr02prps preserving type )                      as FreeDefinedAttribute03,
      cast ( proj.usr03 as usr03prps preserving type )                      as FreeDefinedAttribute04,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity1Unit'
      cast ( proj.usr04 as usr04prps preserving type )                      as FreeDefinedQuantity1,
      cast ( proj.use04 as use04prps preserving type )                      as FreeDefinedQuantity1Unit,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity2Unit'
      cast ( proj.usr05 as usr05prps preserving type )                      as FreeDefinedQuantity2,
      cast ( proj.use05 as use05prps preserving type )                      as FreeDefinedQuantity2Unit,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
      cast ( proj.usr06 as abap.curr( 10, 2 ) )                             as FreeDefinedAmount1,
      cast ( proj.use06 as use06prps preserving type )                      as FreeDefinedAmount1Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
      cast ( proj.usr07 as abap.curr( 10, 2 ) )                             as FreeDefinedAmount2,
      cast ( proj.use07 as use07prps preserving type )                      as FreeDefinedAmount2Currency,
      cast ( proj.usr08 as usr08prps preserving type )                      as FreeDefinedDate1,
      cast ( proj.usr09 as usr09prps preserving type )                      as FreeDefinedDate2,
      cast ( proj.usr10 as usr10prps preserving type )                      as FreeDefinedIndicator1,
      cast ( proj.usr11 as usr11prps preserving type )                      as FreeDefinedIndicator2,

      //Associations

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _WBSElement,
      _CompanyCode,
      _ControllingArea,
      _ProfitCenter,
      _BusinessArea,
      _Plant,
      _ProjectProfileCode,
      _FunctionalArea,
      _FactoryCalendar,
      //Multi Language Short text

      _ProjectShortText
}