I_StandardProject_2
Standard Project Details
I_StandardProject_2 is a Basic CDS View (Dimension) that provides data about "Standard Project Details" in SAP S/4HANA. It reads from 1 data source (projs) and exposes 88 fields with key field StandardProjectInternalID. It has 10 associations to related views. Part of development package VDM_PS_STANDARD_PROJECT.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| projs | projs | from |
Associations (10)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ProjectObjectShortText | _ProjectShortText | _ProjectShortText.Language = $session.system_language and _ProjectShortText.ProjectApplicationIdentifier = 'PS' and _ProjectShortText.ProjectObjectType = 'PS' and $projection.StandardProjectObject = _ProjectShortText.ProjectObjectNode |
| [1..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [1..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [1..*] | I_StandardWBSElement_2 | _WBSElement | $projection.StandardProjectInternalID = _WBSElement.StandardProjectInternalID |
| [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_ControllingObjectClass | _ControllingObjectClass | $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass |
| [0..1] | I_ProjectResponsiblePerson | _ResponsiblePerson | $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson |
| [0..1] | I_ProjectApplicant | _ProjectApplicant | $projection.ApplicantCode = _ProjectApplicant.ApplicantCode |
Annotations (18)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | ISTDPROJ2 | view | |
| AbapCatalog.preserveKey | true | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| VDM.viewType | #BASIC | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| ObjectModel.representativeKey | StandardProjectInternalID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Standard Project Details | view | |
| Metadata.allowExtensions | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.internalName | #LOCAL | view | |
| Analytics.dataExtraction.enabled | true | view |
Fields (88)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | StandardProjectInternalID | |||
| StdProject | ||||
| StandardProjectWithCodingMask | projs | pspid_edit | ||
| StandardProjectObject | projs | objnr | ||
| CreatedByUser | projs | ernam | ||
| CreationDate | projs | erdat | ||
| LastChangedByUser | ||||
| LastChangeDate | ||||
| ResponsiblePerson | ||||
| ResponsiblePersonName | ||||
| ApplicantCode | ||||
| ApplicantName | projs | astna | ||
| CompanyCode | projs | vbukr | ||
| BusinessArea | projs | vgsbr | ||
| ControllingArea | projs | vkokr | ||
| ProfitCenter | projs | prctr | ||
| Currency | projs | pwhie | ||
| NetworkAssignmentType | projs | zuord | ||
| Plant | projs | werks | ||
| FactoryCalendar | ||||
| NetworkProfile | projs | vprof | ||
| ProjectProfileCode | projs | profl | ||
| BudgetProfile | projs | bprof | ||
| Language | projs | txtsp | ||
| ProjectHasOwnStock | ||||
| ControllingObjectClass | ||||
| WBSIsStatisticalWBSElement | projs | xstat | ||
| TaxJurisdiction | ||||
| ProjInterestCalcProfile | projs | zschm | ||
| InvestmentProfile | projs | imprf | ||
| ResultAnalysisInternalID | projs | abgsl | ||
| PlanningProfile | projs | pprof | ||
| WBSIsMarkedForIntegratedPlng | projs | plint | ||
| InventorySpecialStockValnType | projs | kzbws | ||
| WBSIsMarkedForAutomReqmtGrpg | projs | grtop | ||
| WorkCenterLocation | projs | stort | ||
| FunctionalArea | projs | func_area | ||
| SalesOrganization | projs | vkorg | ||
| DistributionChannel | projs | vtweg | ||
| Division | projs | spart | ||
| DynItemProcessorPrfl | projs | dppprof | ||
| JointVenture | projs | vname | ||
| JointVentureCostRecoveryCode | projs | recid | ||
| JointVentureEquityType | projs | etype | ||
| JointVentureObjectType | projs | otype | ||
| JointVentureClass | projs | jibcl | ||
| JointVentureSubClass | projs | jibsa | ||
| WBSElementMaskID | projs | kimsk | ||
| WBSHasAutomValueTransferToProj | projs | autod | ||
| StatusProfile | projs | stspd | ||
| WBSStatusProfile | projs | stspr | ||
| PlanningMethForProjBasicDate | ||||
| PlanningMethForProjFcstdDate | ||||
| SchedulingDurationUnit | ||||
| WBSSchedulingProfile | ||||
| SimulationProfile | projs | smprf | ||
| WBSIsMarkedForCalcWithActDates | projs | flgvrg | ||
| ProjHasWBSForSalesOrderItem | projs | flgsd | ||
| PartnerDeterminationProcedure | projs | pargr | ||
| SchedulingScenario | projs | schtyp | ||
| FreeDefinedTableFieldSemantic | projs | slwid | ||
| FreeDefinedAttribute01 | ||||
| FreeDefinedAttribute02 | ||||
| FreeDefinedAttribute03 | ||||
| FreeDefinedAttribute04 | ||||
| FreeDefinedQuantity1 | ||||
| FreeDefinedQuantity1Unit | ||||
| FreeDefinedQuantity2 | ||||
| FreeDefinedQuantity2Unit | ||||
| FreeDefinedAmount1 | ||||
| FreeDefinedAmount1Currency | ||||
| FreeDefinedAmount2 | ||||
| FreeDefinedAmount2Currency | ||||
| FreeDefinedDate1 | ||||
| FreeDefinedDate2 | ||||
| FreeDefinedIndicator1 | ||||
| FreeDefinedIndicator2 | ||||
| StatusCode | _StatusObjectStatus | StatusCode | ||
| _ControllingArea | _ControllingArea | |||
| _CompanyCode | _CompanyCode | |||
| _BusinessArea | _BusinessArea | |||
| _Plant | _Plant | |||
| _WBSElement | _WBSElement | |||
| _ProjectProfileCode | _ProjectProfileCode | |||
| _ControllingObjectClass | _ControllingObjectClass | |||
| _ResponsiblePerson | _ResponsiblePerson | |||
| _ProjectApplicant | _ProjectApplicant | |||
| _ProjectShortText | _ProjectShortText |
@AbapCatalog.sqlViewName: 'ISTDPROJ2'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@ObjectModel.representativeKey: 'StandardProjectInternalID'
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION, #EXTRACTION_DATA_SOURCE ]
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Standard Project Details'
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@Analytics: {
dataCategory: #DIMENSION,
internalName: #LOCAL,
dataExtraction : {
enabled: true,
delta:{
changeDataCapture: {
mapping: [
{ table: 'projs', role: #MAIN,
viewElement: ['StandardProjectInternalID'],
tableElement: ['pspnr']
},
{
table: 'JEST',
role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['StandardProjectObject', 'StatusCode'],
tableElement: ['objnr','stat']
}
]
}
}
}
}
define view I_StandardProject_2
as select from projs
left outer to one join I_StatusObjectStatusBasic as _StatusObjectStatus on _StatusObjectStatus.StatusObject = projs.objnr
and _StatusObjectStatus.StatusIsInactive = ' '
association [0..1] to I_ProjectObjectShortText as _ProjectShortText on _ProjectShortText.Language = $session.system_language
and _ProjectShortText.ProjectApplicationIdentifier = 'PS'
and _ProjectShortText.ProjectObjectType = 'PS'
and $projection.StandardProjectObject = _ProjectShortText.ProjectObjectNode
association [1..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [1..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
association [1..*] to I_StandardWBSElement_2 as _WBSElement on $projection.StandardProjectInternalID = _WBSElement.StandardProjectInternalID
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_ControllingObjectClass as _ControllingObjectClass on $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass
// 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
{
key cast ( projs.pspnr as ps_s4_ispsp preserving type ) as StandardProjectInternalID,
@ObjectModel.text.element: ['StandardProjectDescription']
cast ( projs.pspid as projk_bi ) as StdProject,
projs.pspid_edit as StandardProjectWithCodingMask,
@Semantics.text: true
case
when _ProjectShortText.LanguageBasedShortText is not initial
then _ProjectShortText.LanguageBasedShortText
else cast ( projs.post1 as ppe_proj_name preserving type )
end as StandardProjectDescription,
projs.objnr as StandardProjectObject,
@Semantics.user.createdBy: true
projs.ernam as CreatedByUser,
@Semantics.systemDate.createdAt: true
projs.erdat as CreationDate,
@Semantics.user.lastChangedBy: true
cast ( projs.aenam as ps_s4_aenam preserving type ) as LastChangedByUser,
@Semantics.systemDate.lastChangedAt: true
cast ( projs.aedat as ps_s4_updat preserving type ) as LastChangeDate,
@ObjectModel.text.element: ['ResponsiblePersonName']
cast ( projs.vernr as ps_s4_vernr preserving type ) as ResponsiblePerson,
@Semantics.text: true
cast ( projs.verna as ps_s4_verna preserving type ) as ResponsiblePersonName,
@ObjectModel.text.element: ['ApplicantCode']
cast ( projs.astnr as ps_s4_astnr preserving type ) as ApplicantCode,
@Semantics.text: true
projs.astna as ApplicantName,
@ObjectModel.foreignKey.association: '_CompanyCode'
projs.vbukr as CompanyCode,
@ObjectModel.foreignKey.association: '_BusinessArea'
projs.vgsbr as BusinessArea,
@ObjectModel.foreignKey.association: '_ControllingArea'
projs.vkokr as ControllingArea,
projs.prctr as ProfitCenter,
projs.pwhie as Currency,
projs.zuord as NetworkAssignmentType,
@ObjectModel.foreignKey.association: '_Plant'
projs.werks as Plant,
cast ( projs.kalid as appca preserving type ) as FactoryCalendar,
projs.vprof as NetworkProfile,
projs.profl as ProjectProfileCode,
projs.bprof as BudgetProfile,
@Semantics.language
projs.txtsp as Language,
@Semantics.booleanIndicator: true
cast ( projs.besta as psb_stock preserving type ) as ProjectHasOwnStock,
cast ( projs.scope as ps_s4_scope_cv preserving type ) as ControllingObjectClass,
@Semantics.booleanIndicator: true
projs.xstat as WBSIsStatisticalWBSElement,
cast ( projs.txjcd as wb2_txjcd_busvol preserving type ) as TaxJurisdiction,
projs.zschm as ProjInterestCalcProfile,
projs.imprf as InvestmentProfile,
projs.abgsl as ResultAnalysisInternalID,
projs.pprof as PlanningProfile,
@Semantics.booleanIndicator: true
projs.plint as WBSIsMarkedForIntegratedPlng,
projs.kzbws as InventorySpecialStockValnType,
@Semantics.booleanIndicator: true
projs.grtop as WBSIsMarkedForAutomReqmtGrpg,
projs.stort as WorkCenterLocation,
projs.func_area as FunctionalArea,
projs.vkorg as SalesOrganization,
projs.vtweg as DistributionChannel,
projs.spart as Division,
projs.dppprof as DynItemProcessorPrfl,
projs.vname as JointVenture,
projs.recid as JointVentureCostRecoveryCode,
projs.etype as JointVentureEquityType,
projs.otype as JointVentureObjectType,
projs.jibcl as JointVentureClass,
projs.jibsa as JointVentureSubClass,
projs.kimsk as WBSElementMaskID,
@Semantics.booleanIndicator: true
projs.autod as WBSHasAutomValueTransferToProj,
projs.stspd as StatusProfile,
projs.stspr as WBSStatusProfile,
cast ( projs.vgplf as ps_s4_vgplf preserving type ) as PlanningMethForProjBasicDate,
cast ( projs.ewplf as ps_s4_ewplf preserving type ) as PlanningMethForProjFcstdDate,
cast ( projs.zteht as cgpl_duration_unit preserving type ) as SchedulingDurationUnit,
cast ( projs.scprf as ps_s4_schdprf preserving type ) as WBSSchedulingProfile,
projs.smprf as SimulationProfile,
@Semantics.booleanIndicator: true
projs.flgvrg as WBSIsMarkedForCalcWithActDates,
@Semantics.booleanIndicator: true
projs.flgsd as ProjHasWBSForSalesOrderItem,
projs.pargr as PartnerDeterminationProcedure,
projs.schtyp as SchedulingScenario,
projs.slwid as FreeDefinedTableFieldSemantic,
cast ( projs.usr00 as usr00proj preserving type ) as FreeDefinedAttribute01,
cast ( projs.usr01 as usr01proj preserving type ) as FreeDefinedAttribute02,
cast ( projs.usr02 as usr02proj preserving type ) as FreeDefinedAttribute03,
cast ( projs.usr03 as usr03proj preserving type ) as FreeDefinedAttribute04,
@Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity1Unit'
cast ( projs.usr04 as usr04proj preserving type ) as FreeDefinedQuantity1,
cast ( projs.use04 as use04proj preserving type ) as FreeDefinedQuantity1Unit,
@Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity2Unit'
cast ( projs.usr05 as usr05proj preserving type ) as FreeDefinedQuantity2,
cast ( projs.use05 as use05proj preserving type ) as FreeDefinedQuantity2Unit,
@Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
cast ( projs.usr06 as usr06proj preserving type ) as FreeDefinedAmount1,
cast ( projs.use06 as use06proj preserving type ) as FreeDefinedAmount1Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
cast ( projs.usr07 as usr07proj preserving type ) as FreeDefinedAmount2,
cast ( projs.use07 as use07proj preserving type ) as FreeDefinedAmount2Currency,
cast ( projs.usr08 as usr08proj preserving type ) as FreeDefinedDate1,
cast ( projs.usr09 as usr09proj preserving type ) as FreeDefinedDate2,
cast ( projs.usr10 as usr10proj preserving type ) as FreeDefinedIndicator1,
cast ( projs.usr11 as usr11proj preserving type ) as FreeDefinedIndicator2,
//Status Fields
_StatusObjectStatus.StatusCode,
@Semantics.booleanIndicator: true
cast ( case _StatusObjectStatus.StatusCode
when 'I0133' then 'X' else '' end as ps_s4_statcreated preserving type ) as StandardProjectIsCreated,
@Semantics.booleanIndicator: true
cast ( case _StatusObjectStatus.StatusCode
when 'I0134' then 'X' else '' end as ps_s4_statreleased preserving type ) as StandardProjectIsReleased,
@Semantics.booleanIndicator: true
cast ( case _StatusObjectStatus.StatusCode
when 'I0135' then 'X' else '' end as ps_s4_statclosed preserving type ) as StandardProjectIsClosed,
_ControllingArea,
_CompanyCode,
_BusinessArea,
_Plant,
_WBSElement,
_ProjectProfileCode,
_ControllingObjectClass,
@UI.hidden: true
@Consumption.hidden: true
_ResponsiblePerson,
@UI.hidden: true
@Consumption.hidden: true
_ProjectApplicant,
_ProjectShortText
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA