I_WBSELEMENTDATA_2

CDS View

Appl interface for WBS Element Details

I_WBSELEMENTDATA_2 is a CDS View in S/4HANA. Appl interface for WBS Element Details. It contains 21 fields. 11 CDS views read from this table.

CDS Views using this table (11)

ViewTypeJoinVDMDescription
A_WBSElementStatus view_entity inner COMPOSITE WBS Element status
C_WBSElementDataStdByExtIDVH view from CONSUMPTION WBSElement By ExternalID
C_WBSElementForGraph view from CONSUMPTION WBS Element For Graph
I_EntAssetMgmtWBSElementVH view_entity from COMPOSITE Work Breakdown Structure Element
I_WBSElementChangeDocuments view from BASIC Change document for WBS Element data
I_WBSElementDataStdVH view from COMPOSITE WBSElement Data
I_WBSElementWithCodingMask view from COMPOSITE WBS Element Data
P_IncgOutgInvoiceWBSElementVH view from BASIC Value Help for WBS Element
P_ProjectActualCostLineItem view inner COMPOSITE Project Cost Line Items with Actual Costs
R_WBSElementTP view from TRANSACTIONAL TP view for WBSElement for Project API
R_WBSElementTP_2 view_entity from TRANSACTIONAL TP view for I WBSElementData 2

Fields (21)

KeyField CDS FieldsUsed in Views
KEY WBSElementInternalID WBSElementInternalID 2
_ControllingArea _ControllingArea 1
_ProfitCenter _ProfitCenter 1
_ResponsibleCostCenter _ResponsibleCostCenter 1
ApplicantCode ApplicantCode 1
ControllingArea ControllingArea 1
FreeDefinedAttribute01 FreeDefinedAttribute01 1
FreeDefinedAttribute02 FreeDefinedAttribute02 1
FreeDefinedAttribute03 FreeDefinedAttribute03 1
FreeDefinedAttribute04 FreeDefinedAttribute04 1
FreeDefinedIndicator1 FreeDefinedIndicator1 1
FreeDefinedIndicator2 FreeDefinedIndicator2 1
ProfitCenter ProfitCenter,ProjectObjectProfitCenter 2
ProjectInternalID ProjectInternalID 2
ProjectType ProjectType 2
RespCostCenterControllingArea RespCostCenterControllingArea 1
ResponsibleCostCenter ResponsibleCostCenter 2
ResponsiblePerson ResponsiblePerson 1
WBSDescription ProjectObjectDescription,WBSDescription 2
WBSElementExternalID ProjectObjectExternalID,WBSElementExternalID 2
WBSElementObject ProjectObjectNode 1
@AbapCatalog: {
  sqlViewName: 'IWBSELMNTDATA2',
  compiler.compareFilter: true
}
@Analytics: {
      dataCategory: #DIMENSION,
      internalName: #LOCAL,
      dataExtraction : {
        enabled: true,
        delta:{
          changeDataCapture: {
            mapping: [
                { table: 'PRPS',
                  role: #MAIN,
                  viewElement: 'WBSElementInternalID',
                  tableElement: 'PSPNR'
                 },
                {
                  table: 'PRTE',
                  role: #LEFT_OUTER_TO_ONE_JOIN,
                  viewElement:  'WBSElementInternalID',
                  tableElement: 'POSNR'
                }
             ]
           }
         }
       }
}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Appl interface for WBS Element Details'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@Metadata.ignorePropagatedAnnotations:true
// @AccessControl.personalData.blocking: #REQUIRED

@Metadata.allowExtensions: true

@ObjectModel: {
    //Keys

    semanticKey: [ 'WBSElement' ],
    representativeKey: 'WBSElementInternalID',

    usageType: {
        serviceQuality: #B,
        sizeCategory : #XL,
        dataClass: #MASTER
    },

    supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION, #EXTRACTION_DATA_SOURCE ]
}
define view I_WBSElementData_2
  as select from           prps
    left outer to one join prte on  prps.pspnr = prte.posnr
                                and prps.psphi = prte.psphi

  association [1..1] to I_ProjectData_2            as _Project               on  $projection.ProjectInternalID = _Project.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
  association [0..*] to I_CostCenter               as _ResponsibleCostCenter on  $projection.ControllingArea       = _ResponsibleCostCenter.ControllingArea
                                                                             and $projection.ResponsibleCostCenter = _ResponsibleCostCenter.CostCenter
  association [0..1] to I_Plant                    as _Plant                 on  $projection.Plant = _Plant.Plant
  association [0..1] to I_FactoryCalendar          as _FactoryCalendar       on  $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar
  association [0..*] to I_CostCenter               as _CostCenter            on  $projection.ControllingArea = _CostCenter.ControllingArea
                                                                             and $projection.CostCenter      = _CostCenter.CostCenter
  association [1..1] to I_StatusObject             as _StatusObject          on  $projection.WBSElementObject = _StatusObject.StatusObject

  // DPP Changes

  // Person in Responsible for Project

  association [0..1] to I_ProjectResponsiblePerson as _ResponsiblePerson     on  $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson
  // Project Applicant

  association [0..1] to I_ProjectApplicant         as _ProjectApplicant      on  $projection.ApplicantCode = _ProjectApplicant.ApplicantCode

  ---Extension Association
  association [1..1] to E_WBSElement_2             as _Extension             on  $projection.WBSElementInternalID = _Extension.WBSElementInternalID
  // Multilanguage Short text

  association [0..1] to I_ProjectObjectShortText   as _WBSElementShortText   on  _WBSElementShortText.Language                     = $session.system_language
                                                                             and _WBSElementShortText.ProjectApplicationIdentifier = 'PS'
                                                                             and _WBSElementShortText.ProjectObjectType            = 'PR'
                                                                             and $projection.WBSElementObject                      = _WBSElementShortText.ProjectObjectNode

{
  key cast ( prps.pspnr as ps_s4_pspnr preserving type )                       as WBSElementInternalID,
      @ObjectModel.text.element: 'WBSDescription'
      prps.posid_edit                                                          as WBSElementExternalID,
      @ObjectModel.text.element: 'WBSDescription'
      cast ( prps.posid as ps_posid_edit preserving type )                     as WBSElement,
      prps.poski                                                               as WBSElementShortID,
      @Semantics.text: true
      cast ( prps.post1 as ps_s4_post1 preserving type )                       as WBSDescription,

      cast ( prps.vernr as ps_s4_vernr preserving type )                       as ResponsiblePerson,
      cast ( prps.verna as ps_s4_verna preserving type )                       as ResponsiblePersonName,
      cast ( prps.astnr as ps_s4_astnr preserving type )                       as ApplicantCode,
      prps.astna                                                               as ApplicantName,

      @ObjectModel.foreignKey.association: '_CompanyCode'
      cast ( prps.pbukr as bukrs preserving type )                             as CompanyCode,
      cast ( prps.pgsbr as gsber preserving type )                             as BusinessArea,

      @ObjectModel.foreignKey.association: '_ControllingArea'
      cast ( prps.pkokr as ps_s4_kokrs preserving type )                       as ControllingArea,

      @ObjectModel.foreignKey.association: '_FunctionalArea'
      cast ( prps.func_area as fkber preserving type )                         as FunctionalArea,

      @ObjectModel.foreignKey.association: '_ProfitCenter'
      prps.prctr                                                               as ProfitCenter,

      @ObjectModel.foreignKey.association: '_ResponsibleCostCenter'
      cast ( prps.fkstl as ps_s4_fkstl preserving type )                       as ResponsibleCostCenter,

      @ObjectModel.foreignKey.association: '_Plant'
      prps.werks                                                               as Plant,
      prps.slwid                                                               as FreeDefinedTableFieldSemantic,

      @ObjectModel.foreignKey.association: '_FactoryCalendar'
      cast ( prps.fabkl as stkal preserving type )                             as FactoryCalendar,
      cast ( prps.pspri as nw_prio preserving type )                           as PriorityCode,
      cast ( prps.pwpos as ps_pwpos preserving type )                          as Currency,

      prps.kalsm                                                               as CostingSheet,

      @ObjectModel.foreignKey.association: '_CostCenter'
      cast ( prps.kostl as ps_kostl preserving type )                          as CostCenter,
      cast ( prps.akstl as ps_s4_akstl preserving type )                       as RequestingCostCenter,

      @ObjectModel.foreignKey.association: '_Project'
      cast ( prps.psphi as ps_s4_proj_pspnr preserving type )                  as ProjectInternalID,
      cast ( prps.fakkz as ps_fakkz preserving type )                          as WBSElementIsBillingElement,
      prps.objnr                                                               as WBSElementObject,
      prps.imprf                                                               as InvestmentProfile,
      prps.xstat                                                               as WBSIsStatisticalWBSElement,
      cast ( prps.belkz as ps_s4_belkz preserving type )                       as WBSIsAccountAssignmentElement,
      prps.prart                                                               as ProjectType,
      cast ( prps.plakz as ps_plakz preserving type )                          as WBSElementIsPlanningElement,
      prps.stort                                                               as WorkCenterLocation,
      prps.abgsl                                                               as ResultAnalysisInternalID,
      //Tax Jurisdiction, Functional Location fields

      prps.txjcd                                                               as TaxJurisdiction,
      cast ( prps.tplnr as tplnr_unconverted  preserving type )                as FunctionalLocation,
      @Semantics.user.createdBy: true
      prps.ernam                                                               as CreatedByUser,
      @Semantics.systemDate.createdAt: true
      prps.erdat                                                               as CreationDate,
      @Semantics.user.lastChangedBy: true
      prps.aenam                                                               as LastChangedByUser,
      @Semantics.systemDate.lastChangedAt: true
      prps.aedat                                                               as LastChangeDate,

      prps.fkokr                                                               as RespCostCenterControllingArea,

      cast ( prps.plint as plint_t preserving type )                           as WBSIsMarkedForIntegratedPlng,
      prps.equnr                                                               as Equipment,
      prps.aennr                                                               as ProjectObjectChangeNumber,
      prps.stufe                                                               as WBSElementHierarchyLevel,
      cast ( prps.zschl as fin_ovhkey preserving type )                        as OverheadCode,
      cast ( prps.adpsp as ps_s4_addcompare_core preserving type )             as ReferenceElement,
      prps.zschm                                                               as ProjInterestCalcProfile,
      cast ( prps.evgew as ev_weightd preserving type )                        as ProgressAnlysAggregationWeight,

      prps.akokr                                                               as ReqgCostCenterControllingArea,
      prps.txtsp                                                               as Language,
      cast( prps.loevm as ps_s4_loevm )                                        as IsMarkedForDeletion,
      @Semantics.booleanIndicator: true
      prps.grpkz                                                               as WBSElementIsGroupingWBSElement,
      prps.clasf                                                               as WBSElementIsUsedInProjSmmry,
      prps.klvar                                                               as CostingVariant,

      cast ( prte.pstrt as ps_s4_pstrt preserving type )                       as BasicStartDate,
      cast ( prte.estrt as ps_s4_estrt preserving type )                       as ForecastedStartDate,
      cast ( prte.istrt as ps_s4_istrt preserving type )                       as ActualStartDate,
      cast ( prte.pende as ps_s4_pende preserving type )                       as BasicEndDate,
      cast ( prte.eende as ps_s4_eende preserving type )                       as ForecastedEndDate,
      cast ( prte.iende as ps_s4_iende preserving type )                       as ActualEndDate,
      prps.tadat                                                               as TechnicalCompletionDate,

      @Semantics.quantity.unitOfMeasure: 'BasicDurationUnit'
      cast ( prte.pdaur as ps_s4_pdaur preserving type )                       as BasicDuration,
      @Semantics.unitOfMeasure: true
      cast ( prte.peinh as ps_s4_peinh preserving type )                       as BasicDurationUnit,
      @Semantics.quantity.unitOfMeasure: 'ForecastedDurationUnit'
      cast( prte.edaur as ps_s4_edaur preserving type )                        as ForecastedDuration,
      @Semantics.unitOfMeasure: true
      cast ( prte.eeinh as ps_s4_eeinh preserving type )                       as ForecastedDurationUnit,
      @Semantics.quantity.unitOfMeasure: 'ActualDurationUnit'
      cast ( prte.idaur as ps_s4_idaur preserving type )                       as ActualDuration,
      @Semantics.unitOfMeasure: true
      cast ( prte.ieinh as ps_ieinh preserving type )                          as ActualDurationUnit,

      cast ( prte.pstrm as ps_gstrs preserving type )                          as SchedldBasicEarliestStartDate,
      cast ( prte.petrm as ps_s4_gltrs preserving type )                       as ScheduledBasicLatestEndDate,
      cast ( prte.estrm as ps_s4_gstpp preserving type )                       as SchedldFcstdEarliestStartDate,
      cast ( prte.eetrm as ps_s4_gltpp preserving type )                       as LatestSchedldFcstdEndDate,
      cast ( prte.vistr as ps_s4_istvorl preserving type )                     as TentativeActualStartDate,
      cast ( prte.viend as ps_s4_ienvorl preserving type )                     as TentativeActualEndDate,

      //Joint venture fields

      prps.vname                                                               as JointVenture,
      prps.recid                                                               as JointVentureCostRecoveryCode,
      prps.etype                                                               as JointVentureEquityType,
      prps.otype                                                               as JntVntrProjectType,
      prps.jibcl                                                               as JntIntrstBillgClass,
      prps.jibsa                                                               as JntIntrstBillgSubClass,

      prps.subpr                                                               as SubProject,
      prps.izwek                                                               as InvestmentReason,
      prps.isize                                                               as InvestmentScale,
      prps.iumkz                                                               as EnvironmentalInvestmentReason,

      prps.abukr                                                               as RequestingCompanyCode,
      prps.zuord                                                               as NetworkAssignmentType,
      prps.ktrg                                                                as CostObject,
      prps.fplnr                                                               as BillingPlan,
      cast ( prps.scope as ps_s4_scope_cv )                                    as ControllingObjectClass,

      cast ( prps.usr00 as usr00prps preserving type )                         as FreeDefinedAttribute01,
      cast ( prps.usr01 as usr01prps preserving type )                         as FreeDefinedAttribute02,
      cast ( prps.usr02 as usr02prps preserving type )                         as FreeDefinedAttribute03,
      cast ( prps.usr03 as usr03prps preserving type )                         as FreeDefinedAttribute04,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity1Unit'
      cast ( prps.usr04 as usr04prps preserving type )                         as FreeDefinedQuantity1,
      cast ( prps.use04 as use04prps preserving type )                         as FreeDefinedQuantity1Unit,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity2Unit'
      cast ( prps.usr05 as usr05prps preserving type )                         as FreeDefinedQuantity2,
      cast ( prps.use05 as use05prps preserving type )                         as FreeDefinedQuantity2Unit,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
      cast( cast ( prps.usr06 * 10  as abap.curr(14,2) )  as abap.curr(13,2) ) as FreeDefinedAmount1,
      cast ( prps.use06 as use06prps preserving type )                         as FreeDefinedAmount1Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
      cast( cast ( prps.usr07 * 10  as abap.curr(14,2) )  as abap.curr(13,2) ) as FreeDefinedAmount2,
      cast ( prps.use07 as use07prps preserving type )                         as FreeDefinedAmount2Currency,
      cast ( prps.usr08 as usr08prps preserving type )                         as FreeDefinedDate1,
      cast ( prps.usr09 as usr09prps preserving type )                         as FreeDefinedDate2,
      cast ( prps.usr10 as usr10prps preserving type )                         as FreeDefinedIndicator1,
      cast ( prps.usr11 as usr11prps preserving type )                         as FreeDefinedIndicator2,

      _StatusObject.StatusProfile                                              as StatusProfile,
      prps.pgprf                                                               as DistributionProfile,
      cast( prte.petrf as ps_getre preserving type )                           as SchedldBasicEarliestEndDate,
      cast( prte.pstrs as ps_gstre preserving type )                           as SchedldBasicLatestStartDate,
      cast( prte.eetrf as ps_gltrp preserving type )                           as SchedldFcstdEarliestEndDate,
      cast( prte.estrs as ps_gstrp preserving type )                           as LatestSchedldFcstdStartDate,
      
      prps.prps_status                                                         as StatusCombinationCode,

      //Associations

      _Project,
      _CompanyCode,
      _ControllingArea,
      _FunctionalArea,
      _ProfitCenter,
      _ResponsibleCostCenter,
      _Plant,
      _FactoryCalendar,
      _CostCenter,
      _StatusObject,
      @Consumption.hidden: true
      _ResponsiblePerson,
      @Consumption.hidden: true
      _ProjectApplicant,
      // Multilanguage Short text

      _WBSElementShortText


}