I_PROJECTDATA_2
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)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| 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)
| Key | Field | CDS Fields | Used 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":""
}
}*/