I_ProjectUnformattedID

DDL: I_PROJECTUNFORMATTEDID SQL: IPROJBYEXTKEYUNF Type: view_entity BASIC Package: FINS_COPA_REPORTING

Project by unformatted external ID

I_ProjectUnformattedID is a Basic CDS View (Dimension) that provides data about "Project by unformatted external ID" in SAP S/4HANA. It reads from 1 data source (proj) and exposes 20 fields with key field ProjectExternalID. It has 6 associations to related views. Part of development package FINS_COPA_REPORTING.

Data Sources (1)

SourceAliasJoin Type
proj proj from

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_WBSElementBasicData _RootWBSElement $projection.ProjectInternalID = _RootWBSElement.ProjectInternalID and $projection.ProjectExternalID = _RootWBSElement.WBSElementExternalID
[0..*] I_WBSElementBasicData _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
[0..1] I_AvailabilityCtrlProfile _AvailabilityCtrlProfile $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile

Annotations (12)

NameValueLevelField
Analytics.internalName #LOCAL view
AccessControl.authorizationCheck #MANDATORY view
Analytics.dataCategory #DIMENSION view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Project by unformatted external ID view
VDM.viewType #BASIC view
ObjectModel.compositionRoot true view
ObjectModel.representativeKey ProjectExternalID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY ProjectExternalID
ProjectInternalID
ProjectProfileCode proj profl
CompanyCode
ControllingArea
FunctionalArea
ProfitCenter proj prctr
ProjectObject proj objnr
PlannedStartDate proj plfaz
PlannedEndDate proj plsez
AvailabilityControlProfile proj avc_profile
AvailabilityControlIsActive proj avc_active
JntIntrstBillgClass proj jibcl
JntIntrstBillgSubClass proj jibsa
Plant proj werks
_WBSElement _WBSElement
_CompanyCode _CompanyCode
_ControllingArea _ControllingArea
_ProfitCenter _ProfitCenter
_RootWBSElement _RootWBSElement
//@AbapCatalog.sqlViewName: 'IPROJBYEXTKEYUNF'

//@AbapCatalog.compiler.compareFilter: true

@Analytics.internalName:#LOCAL
@AccessControl.authorizationCheck: #MANDATORY
@Analytics: { dataCategory: #DIMENSION }
@Metadata.allowExtensions:true
@Metadata.ignorePropagatedAnnotations:true 
@EndUserText.label: 'Project by unformatted external ID'
@VDM.viewType: #BASIC
//@ClientHandling.algorithm: #SESSION_VARIABLE


@ObjectModel: {
    compositionRoot: true,
    //Keys

    representativeKey: 'ProjectExternalID',
    //semanticKey: [ 'Project' ],

    
    usageType: {
        serviceQuality: #B,
        sizeCategory : #L,
        dataClass: #TRANSACTIONAL
    },
    
    supportedCapabilities: [ #ANALYTICAL_DIMENSION,#CDS_MODELING_ASSOCIATION_TARGET]
}
define view entity I_ProjectUnformattedID as select from proj
  association [0..1] to I_WBSElementBasicData     as _RootWBSElement          on  $projection.ProjectInternalID = _RootWBSElement.ProjectInternalID 
                                                                                  and $projection.ProjectExternalID = _RootWBSElement.WBSElementExternalID    
                                                                                  
  association [0..*] to I_WBSElementBasicData 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..1] to I_FunctionalArea as _FunctionalArea on $projection.FunctionalArea = _FunctionalArea.FunctionalArea

  association [0..*] to I_ProfitCenter        as _ProfitCenter    on  $projection.ControllingArea  =  _ProfitCenter.ControllingArea
                                                                  and $projection.ProfitCenter     =  _ProfitCenter.ProfitCenter
                                                                  //and $projection.PlannedStartDate <= _ProfitCenter.ValidityEndDate

                                                                  //and $projection.PlannedStartDate >= _ProfitCenter.ValidityStartDate

  association [0..1] to I_AvailabilityCtrlProfile as _AvailabilityCtrlProfile     on  $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile                     
//I_ProjectBasicData

{
      @ObjectModel.text.element: ['ProjectDescription']
  key cast ( proj.pspid as fis_rep_project preserving type ) as ProjectExternalID,
  cast ( proj.pspnr as ps_s4_proj_pspnr preserving type )        as ProjectInternalID,
      @Semantics.text: true
      cast ( proj.post1 as ps_s4_proj_post1_v1 preserving type  )as ProjectDescription,
      proj.profl                                                 as ProjectProfileCode,

      //Organisational 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.avc_profile                                       as AvailabilityControlProfile,
      proj.avc_active                                        as AvailabilityControlIsActive,
      proj.jibcl                                             as JntIntrstBillgClass,
      proj.jibsa                                             as JntIntrstBillgSubClass,
      @Consumption.hidden: true
      proj.werks                                             as Plant, 

      //Associations

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _WBSElement,
      _CompanyCode,
      _ControllingArea,
      //_FunctionalArea,

      @Consumption.filter.businessDate.at : true
      _ProfitCenter,
      @Consumption.hidden: true
      _RootWBSElement
}