R_EnterpriseProject
Enterprise Project Internal
R_EnterpriseProject is a Basic CDS View that provides data about "Enterprise Project Internal" in SAP S/4HANA. It reads from 4 data sources (proj, /s4ppm/project, prps, /s4ppm/task) and exposes 80 fields with key field ProjectUUID. It has 27 associations to related views.
Data Sources (4)
| Source | Alias | Join Type |
|---|---|---|
| proj | proj | inner |
| /s4ppm/project | project | from |
| prps | prps | inner |
| /s4ppm/task | task | inner |
Associations (27)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ProjectProfileCode | _ProjectProfileCode | $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode |
| [0..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..*] | I_CostCenter | _ResponsibleCostCenter | $projection.ControllingArea = _ResponsibleCostCenter.ControllingArea and $projection.ResponsibleCostCenter = _ResponsibleCostCenter.CostCenter |
| [0..*] | I_ProfitCenter | _ProfitCenter | $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter |
| [0..1] | I_FunctionalArea | _FunctionalArea | $projection.FunctionalArea = _FunctionalArea.FunctionalArea |
| [0..1] | I_AvailabilityCtrlProfile | _AvailabilityCtrlProfile | $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile |
| [0..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [0..*] | I_InvestmentProfileText | _InvestmentProfileText | $projection.InvestmentProfile = _InvestmentProfileText.InvestmentProfile |
| [0..1] | I_Location | _Location | $projection.Location = _Location.Location and $projection.Plant = _Location.Plant |
| [0..1] | I_CostingSheetProcedure | _CostingSheetProcedure | _CostingSheetProcedure.CostingSheetProcedure = $projection.CostingSheet -- text associations |
| [0..*] | I_PPM_ProcessingStatusText | _ProcessingStatusText | $projection.ProcessingStatus = _ProcessingStatusText.ProcessingStatus |
| [0..*] | I_ProjectProfileCodeText | _ProjectProfileText | $projection.ProjectProfileCode = _ProjectProfileText.ProjectProfileCode |
| [0..*] | I_EngagementProjectSrvcOrgText | _EnterpriseProjectSrvcOrgText | $projection.EnterpriseProjectServiceOrg = _EnterpriseProjectSrvcOrgText.EngagementProjectServiceOrg |
| [0..*] | I_EntProjProfnlSrvcProjStgeTxt | _EntProjProfnlSrvcProjStgeTxt | $projection.ProcessingStatus = _EntProjProfnlSrvcProjStgeTxt.ProcessingStatus |
| [0..*] | I_CostCenter | _CostCenter | $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea |
| [0..*] | I_FunctionalLocationText | _FunctionalLocationText | $projection.FunctionalLocation = _FunctionalLocationText.FunctionalLocation |
| [0..*] | I_PPM_PriorityText | _PriorityText | $projection.PriorityCode = _PriorityText.PriorityCode |
| [0..1] | I_UserContactCard | _CreatedByUser | $projection.CreatedByUser = _CreatedByUser.ContactCardID |
| [0..*] | I_AvailabilityCtrlProfileText | _AvailabilityCtrlProfileText | $projection.AvailabilityControlProfile = _AvailabilityCtrlProfileText.AvailabilityControlProfile |
| [0..*] | I_Projecttypetext | _EnterpriseProjectTypeText | _EnterpriseProjectTypeText.ProjectType = $projection.EnterpriseProjectType |
| [0..*] | I_FunctionalAreaText | _FunctionalAreaText | $projection.FunctionalArea = _FunctionalAreaText.FunctionalArea |
| [0..*] | I_EntProjectSettlementTypeText | _EntProjectSettlementTypeText | $projection.EntProjectSettlementType = _EntProjectSettlementTypeText.EntProjectSettlementType |
| [0..1] | I_EnterpriseProjectForUser | _EnterpriseProjectForUser | _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID -- workflow |
| [0..1] | I_EntProjWorkflowOverview | _EntProjWorkflowOverview | _EntProjWorkflowOverview.ProjectUUID = $projection.ProjectUUID |
| [0..1] | I_CustomerToBusinessPartner | _CustomerToBusinessPartner | $projection.CustomerUUID = _CustomerToBusinessPartner.BusinessPartnerUUID ---Extension |
| [1..1] | E_PPM_Project | _ProjectExtension | $projection.ProjectUUID = _ProjectExtension.ProjectUUID |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.viewType | #BASIC | view | |
| EndUserText.label | Enterprise Project Internal | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ObjectModel.representativeKey | ProjectUUID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| UI.headerInfo.typeName | Project | view | |
| UI.headerInfo.typeNamePlural | Projects | view | |
| Metadata.allowExtensions | true | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view |
Fields (80)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | /s4ppm/project | guid | |
| ProjectInternalID | ||||
| CustomerUUID | /s4ppm/project | customer | ||
| EnterpriseProjectServiceOrg | /s4ppm/project | org_id | ||
| EntProjectIsConfidential | /s4ppm/project | confidential | ||
| RestrictedTimePosting | /s4ppm/project | restrict_time_posting | ||
| ProjectCategory | /s4ppm/project | pro_category | ||
| ProjectSummaryTaskUUID | /s4ppm/task | guid | ||
| Project | ||||
| ProjectDescription | /s4ppm/task | name | ||
| ProcessingStatus | /s4ppm/task | proc_status_own | ||
| PlannedStartDate | /s4ppm/task | planstart_date | ||
| PlannedEndDate | /s4ppm/task | planfinish_date | ||
| ActualStartDate | /s4ppm/task | actualstart_date | ||
| ActualFinishDate | /s4ppm/task | actualfinish_date | ||
| PriorityCode | /s4ppm/task | priority | ||
| EntProjIsMultiSlsOrdItmsEnbld | /s4ppm/task | multi_soi_enabled | ||
| ProjectStartDate | /s4ppm/task | latest_start_date | ||
| ProjectEndDate | /s4ppm/task | latest_finish_date | ||
| WBSElementInternalID | ||||
| ProjectProfileCode | proj | profl | ||
| ProfitCenter | proj | prctr | ||
| CompanyCode | proj | vbukr | ||
| ControllingArea | proj | vkokr | ||
| FunctionalArea | proj | func_area | ||
| Location | proj | stort | ||
| Plant | proj | werks | ||
| Currency | proj | cpcurr | ||
| AvailabilityControlProfile | proj | avc_profile | ||
| AvailabilityControlIsActive | proj | avc_active | ||
| InvestmentProfile | proj | imprf | ||
| TaxJurisdiction | proj | txjcd | ||
| EnterpriseProjectType | prps | prart | ||
| ResponsibleCostCenter | prps | fkstl | ||
| FunctionalLocation | prps | tplnr | ||
| IsBillingRelevant | prps | fakkz | ||
| ResultAnalysisInternalID | prps | abgsl | ||
| LeadingSalesOrder | prps | vbeln_prps | ||
| LeadingSalesOrderItem | prps | posnr_prps | ||
| CreatedByUser | /s4ppm/task | created_by | ||
| CreationDateTime | /s4ppm/task | created_on | ||
| LastChangedByUser | /s4ppm/task | changed_by | ||
| LastChangeDateTime | /s4ppm/task | changed_on | ||
| ProjectLastChangedByUser | /s4ppm/project | last_changed_by | ||
| ProjectLastChangedDateTime | ||||
| FactoryCalendar | ||||
| WBSElementObject | prps | objnr | ||
| ProjectObject | proj | objnr | ||
| CostingSheet | prps | kalsm | ||
| CostCenter | ||||
| WBSIsStatisticalWBSElement | prps | xstat | ||
| ProjectTemplateUUID | /s4ppm/project | template_guid | ||
| EntProjHasProjectStockEnabled | proj | besta | ||
| EntProjectSettlementType | proj | settlementtype | ||
| EntProjectSettlementElement | prps | settlementelement | ||
| _ProcessingStatusText | _ProcessingStatusText | |||
| _ProjectProfileText | _ProjectProfileText | |||
| _AvailabilityCtrlProfileText | _AvailabilityCtrlProfileText | |||
| _FunctionalLocationText | _FunctionalLocationText | |||
| _PriorityText | _PriorityText | |||
| _EnterpriseProjectTypeText | _EnterpriseProjectTypeText | |||
| _InvestmentProfileText | _InvestmentProfileText | |||
| _FunctionalAreaText | _FunctionalAreaText | |||
| _EntProjectSettlementTypeText | _EntProjectSettlementTypeText | |||
| _ProjectProfileCode | _ProjectProfileCode | |||
| _CompanyCode | _CompanyCode | |||
| _ControllingArea | _ControllingArea | |||
| _FunctionalArea | _FunctionalArea | |||
| _ProfitCenter | _ProfitCenter | |||
| _CostCenter | _CostCenter | |||
| _Plant | _Plant | |||
| _Location | _Location | |||
| _CreatedByUser | _CreatedByUser | |||
| _ResponsibleCostCenter | _ResponsibleCostCenter | |||
| _EntProjWorkflowOverview | _EntProjWorkflowOverview | |||
| _CostingSheetProcedure | _CostingSheetProcedure | |||
| _CustomerToBusinessPartner | _CustomerToBusinessPartner | |||
| _EnterpriseProjectSrvcOrgText | _EnterpriseProjectSrvcOrgText | |||
| _EntProjProfnlSrvcProjStgeTxt | _EntProjProfnlSrvcProjStgeTxt | |||
| _EnterpriseProjectForUser | _EnterpriseProjectForUser |
@VDM.viewType: #BASIC
@EndUserText.label: 'Enterprise Project Internal'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel: {
semanticKey: [ 'Project' ],
representativeKey: 'ProjectUUID',
supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET ],
usageType: {
serviceQuality: #B,
dataClass: #MASTER,
sizeCategory: #L
}
}
@UI.headerInfo: {
typeName: 'Project',
typeNamePlural: 'Projects'
}
//@Metadata.ignorePropagatedAnnotations: true
//@Analytics.dataExtraction: {
// enabled: true
//}
//@Analytics.internalName:#LOCAL
//@Analytics.dataCategory: #DIMENSION
@Metadata.allowExtensions:true
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
define view entity R_EnterpriseProject
as select from /s4ppm/project as project
inner join /s4ppm/task as task on task.project_guid = project.guid
and task.object_type = 'DPO'
inner join proj as proj on proj.pspnr = project.pspnr
inner join prps as prps on prps.pspnr = task.pspnr
-- foreign key associations
association [0..1] to I_ProjectProfileCode as _ProjectProfileCode on $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode
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_CostCenter as _ResponsibleCostCenter on $projection.ControllingArea = _ResponsibleCostCenter.ControllingArea
and $projection.ResponsibleCostCenter = _ResponsibleCostCenter.CostCenter
association [0..*] to I_ProfitCenter as _ProfitCenter on $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
association [0..1] to I_FunctionalArea as _FunctionalArea on $projection.FunctionalArea = _FunctionalArea.FunctionalArea
association [0..1] to I_AvailabilityCtrlProfile as _AvailabilityCtrlProfile on $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [0..*] to I_InvestmentProfileText as _InvestmentProfileText on $projection.InvestmentProfile = _InvestmentProfileText.InvestmentProfile
association [0..1] to I_Location as _Location on $projection.Location = _Location.Location
and $projection.Plant = _Location.Plant
association [0..1] to I_CostingSheetProcedure as _CostingSheetProcedure on _CostingSheetProcedure.CostingSheetProcedure = $projection.CostingSheet
-- text associations
association [0..*] to I_PPM_ProcessingStatusText as _ProcessingStatusText on $projection.ProcessingStatus = _ProcessingStatusText.ProcessingStatus
association [0..*] to I_ProjectProfileCodeText as _ProjectProfileText on $projection.ProjectProfileCode = _ProjectProfileText.ProjectProfileCode
association [0..*] to I_EngagementProjectSrvcOrgText as _EnterpriseProjectSrvcOrgText on $projection.EnterpriseProjectServiceOrg = _EnterpriseProjectSrvcOrgText.EngagementProjectServiceOrg
association [0..*] to I_EntProjProfnlSrvcProjStgeTxt as _EntProjProfnlSrvcProjStgeTxt on $projection.ProcessingStatus = _EntProjProfnlSrvcProjStgeTxt.ProcessingStatus
association [0..*] to I_CostCenter as _CostCenter on $projection.CostCenter = _CostCenter.CostCenter
and $projection.ControllingArea = _CostCenter.ControllingArea
association [0..*] to I_FunctionalLocationText as _FunctionalLocationText on $projection.FunctionalLocation = _FunctionalLocationText.FunctionalLocation
association [0..*] to I_PPM_PriorityText as _PriorityText on $projection.PriorityCode = _PriorityText.PriorityCode
association [0..1] to I_UserContactCard as _CreatedByUser on $projection.CreatedByUser = _CreatedByUser.ContactCardID
association [0..*] to I_AvailabilityCtrlProfileText as _AvailabilityCtrlProfileText on $projection.AvailabilityControlProfile = _AvailabilityCtrlProfileText.AvailabilityControlProfile
association [0..*] to I_Projecttypetext as _EnterpriseProjectTypeText on _EnterpriseProjectTypeText.ProjectType = $projection.EnterpriseProjectType
association [0..*] to I_FunctionalAreaText as _FunctionalAreaText on $projection.FunctionalArea = _FunctionalAreaText.FunctionalArea
association [0..*] to I_EntProjectSettlementTypeText as _EntProjectSettlementTypeText on $projection.EntProjectSettlementType = _EntProjectSettlementTypeText.EntProjectSettlementType
association [0..1] to I_EnterpriseProjectForUser as _EnterpriseProjectForUser on _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID
-- workflow association
association [0..1] to I_EntProjWorkflowOverview as _EntProjWorkflowOverview on _EntProjWorkflowOverview.ProjectUUID = $projection.ProjectUUID
association [0..1] to I_CustomerToBusinessPartner as _CustomerToBusinessPartner on $projection.CustomerUUID = _CustomerToBusinessPartner.BusinessPartnerUUID
---Extension Association
association [1..1] to E_PPM_Project as _ProjectExtension on $projection.ProjectUUID = _ProjectExtension.ProjectUUID
{
key project.guid as ProjectUUID,
cast ( project.pspnr as ps_s4_proj_pspnr preserving type ) as ProjectInternalID,
//2008 C4P Harmonization Start
project.customer as CustomerUUID,
project.org_id as EnterpriseProjectServiceOrg,
@Semantics.booleanIndicator
project.confidential as EntProjectIsConfidential,
project.restrict_time_posting as RestrictedTimePosting,
@Consumption.hidden: true
project.pro_category as ProjectCategory,
//2008 C4P Harmonization End
task.guid as ProjectSummaryTaskUUID,
@ObjectModel.text.element: ['ProjectDescription']
cast ( task.external_id as /s4ppm/project_id preserving type ) as Project,
@Semantics.text: true
task.name as ProjectDescription,
task.proc_status_own as ProcessingStatus,
@EndUserText:
{ quickInfo : 'Earliest Planned Start',
label : 'Earliest Planned Start'}
task.planstart_date as PlannedStartDate,
@EndUserText:
{ quickInfo : 'Earliest Planned Finish',
label : 'Earliest Planned Finish' }
task.planfinish_date as PlannedEndDate,
task.actualstart_date as ActualStartDate,
task.actualfinish_date as ActualFinishDate,
task.priority as PriorityCode,
//2102 SD eppm N:1 indicator
task.multi_soi_enabled as EntProjIsMultiSlsOrdItmsEnbld,
//2008 C4P Harmonization Start
@EndUserText:
{ quickInfo : 'Latest Planned Start',
label : 'Latest Planned Start' }
task.latest_start_date as ProjectStartDate,
@EndUserText:
{ quickInfo : 'Latest Planned Finish',
label : 'Latest Planned Finish' }
task.latest_finish_date as ProjectEndDate,
//2105 EPPM-BW integration
cast ( prps.pspnr as ps_s4_pspnr preserving type ) as WBSElementInternalID,
// prps.pspnr as ProjectObjectReferenceElement,
//2008 C4P Harmonization End
@ObjectModel.foreignKey.association: '_ProjectProfileCode'
proj.profl as ProjectProfileCode,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ProfitCenterStdVH',
element: 'ProfitCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' }]
}]
@ObjectModel.foreignKey.association: '_ProfitCenter'
proj.prctr as ProfitCenter,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CompanyCodeStdVH',
element: 'CompanyCode' }
}]
@ObjectModel.foreignKey.association: '_CompanyCode'
proj.vbukr as CompanyCode,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ControllingAreaStdVH',
element: 'ControllingArea' }
}]
@ObjectModel.foreignKey.association: '_ControllingArea'
proj.vkokr as ControllingArea,
@ObjectModel.foreignKey.association: '_FunctionalArea'
proj.func_area as FunctionalArea,
proj.stort as Location,
proj.werks as Plant,
proj.cpcurr as Currency,
//2008 C4P Harmonization Start
proj.avc_profile as AvailabilityControlProfile,
proj.avc_active as AvailabilityControlIsActive,
proj.imprf as InvestmentProfile,
proj.txjcd as TaxJurisdiction,
//2008 C4P Harmonization End
prps.prart as EnterpriseProjectType,
@ObjectModel.foreignKey.association: '_ResponsibleCostCenter'
prps.fkstl as ResponsibleCostCenter,
prps.tplnr as FunctionalLocation,
prps.fakkz as IsBillingRelevant,
//SO Integration
prps.abgsl as ResultAnalysisInternalID,
prps.vbeln_prps as LeadingSalesOrder,
prps.posnr_prps as LeadingSalesOrderItem,
@Semantics.user.createdBy: true
task.created_by as CreatedByUser,
@Semantics.systemDateTime.createdAt: true
task.created_on as CreationDateTime,
@Semantics.user.localInstanceLastChangedBy: true
task.changed_by as LastChangedByUser,
@Semantics.systemDateTime.localInstanceLastChangedAt: true
task.changed_on as LastChangeDateTime,
project.last_changed_by as ProjectLastChangedByUser,
cast ( project.last_changed_on as /s4ppm/tv_proj_changed_on preserving type ) as ProjectLastChangedDateTime,
cast ( prps.fabkl as stkal preserving type ) as FactoryCalendar,
prps.objnr as WBSElementObject,
proj.objnr as ProjectObject,
prps.kalsm as CostingSheet,
cast ( prps.kostl as ps_kostl preserving type ) as CostCenter,
prps.xstat as WBSIsStatisticalWBSElement,
project.template_guid as ProjectTemplateUUID,
proj.besta as EntProjHasProjectStockEnabled,
proj.settlementtype as EntProjectSettlementType,
prps.settlementelement as EntProjectSettlementElement,
_ProcessingStatusText,
_ProjectProfileText,
_AvailabilityCtrlProfileText,
_FunctionalLocationText,
_PriorityText,
_EnterpriseProjectTypeText,
_InvestmentProfileText,
_FunctionalAreaText,
_EntProjectSettlementTypeText,
_ProjectProfileCode,
_CompanyCode,
_ControllingArea,
_FunctionalArea,
@Consumption.filter.businessDate.at : true
_ProfitCenter,
_CostCenter,
_Plant,
_Location,
_CreatedByUser,
_ResponsibleCostCenter,
_EntProjWorkflowOverview,
_CostingSheetProcedure,
_CustomerToBusinessPartner,
_EnterpriseProjectSrvcOrgText,
_EntProjProfnlSrvcProjStgeTxt,
_EnterpriseProjectForUser
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"/S4PPM/PROJECT",
"/S4PPM/TASK",
"PROJ",
"PRPS"
],
"ASSOCIATED":
[
"I_AVAILABILITYCTRLPROFILETEXT",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_COSTINGSHEETPROCEDURE",
"I_CUSTOMERTOBUSINESSPARTNER",
"I_ENGAGEMENTPROJECTSRVCORGTEXT",
"I_ENTERPRISEPROJECTFORUSER",
"I_ENTPROJECTSETTLEMENTTYPETEXT",
"I_ENTPROJPROFNLSRVCPROJSTGETXT",
"I_ENTPROJWORKFLOWOVERVIEW",
"I_FUNCTIONALAREA",
"I_FUNCTIONALAREATEXT",
"I_FUNCTIONALLOCATIONTEXT",
"I_INVESTMENTPROFILETEXT",
"I_LOCATION",
"I_PLANT",
"I_PPM_PRIORITYTEXT",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PROFITCENTER",
"I_PROJECTPROFILECODE",
"I_PROJECTPROFILECODETEXT",
"I_PROJECTTYPETEXT",
"I_USERCONTACTCARD"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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