I_PROJECTDATA_2

CDS View

Appl interface for Project details

I_PROJECTDATA_2 is a CDS View in S/4HANA. Appl interface for Project details. It contains 9 fields. 5 CDS views read from this table.

CDS Views using this table (5)

ViewTypeJoinVDMDescription
A_ProjectStatus view_entity inner COMPOSITE Project status
I_ProjectChangeDocuments view from BASIC Change document for Project data
P_ProjectActualCostLineItem view inner COMPOSITE
P_ProjectObject_2 view from COMPOSITE Project Object
R_ProjectTP_2 view_entity from TRANSACTIONAL TP for I view I ProjectData 2

Fields (9)

KeyField CDS FieldsUsed in Views
KEY ProjectInternalID ProjectInternalID 2
_ControllingArea _ControllingArea 1
_ProfitCenter _ProfitCenter 1
ApplicantCode ApplicantCode 1
ControllingArea ControllingArea 1
ProfitCenter ProfitCenter 1
ProjectDescription ProjectDescription 1
ProjectExternalID ProjectExternalID 1
ResponsiblePerson ResponsiblePerson 1
@AbapCatalog: {
  sqlViewName: 'IPROJECTDATA2',
  compiler.compareFilter: true
}
@Analytics: { dataCategory: #DIMENSION, dataExtraction: {enabled: true, delta.changeDataCapture: {automatic: true}} }
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Appl interface for Project details'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@Metadata.ignorePropagatedAnnotations:true
@Analytics.internalName: #LOCAL
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@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_2
  as select from proj
  association [0..*] to I_WBSElementData_2         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

  ---Extension Association
  association [1..1] to E_Project_2                as _Extension          on  $projection.ProjectInternalID = _Extension.ProjectInternalID
  // 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
  // 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
{
      //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,

      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 WBSElementMaskID,
      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 ( cast ( proj.usr06 * 10  as abap.curr(14,2) ) as abap.curr(13,2) ) as FreeDefinedAmount1,
      cast ( proj.use06 as use06prps preserving type )                         as FreeDefinedAmount1Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
      cast ( cast ( proj.usr07 * 10 as abap.curr(14,2) ) as abap.curr(13,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,

      proj.proj_status                                                         as StatusCombinationCode,
      cast ( proj.loevm as ps_s4_loevm )                                       as IsMarkedForDeletion,

      //Associations

      _WBSElement,
      _CompanyCode,
      _ControllingArea,
      _ProfitCenter,
      _BusinessArea,
      _Plant,
      _ProjectProfileCode,
      _FunctionalArea,
      _FactoryCalendar,

      @Consumption.hidden: true
      _ResponsiblePerson,
      @Consumption.hidden: true
      _ProjectApplicant,
      _ProjectShortText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"PROJ"
],
"ASSOCIATED":
[
"E_PROJECT_2",
"I_BUSINESSAREA",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_FACTORYCALENDAR",
"I_FUNCTIONALAREA",
"I_PLANT",
"I_PROFITCENTER",
"I_PROJECTAPPLICANT",
"I_PROJECTOBJECTSHORTTEXT",
"I_PROJECTPROFILECODE",
"I_PROJECTRESPONSIBLEPERSON",
"I_WBSELEMENTDATA_2"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/