I_ProjectByExternalID

DDL: I_PROJECTBYEXTERNALID SQL: IPROJBYEXTKEY Type: view BASIC

Project by formatted external ID

I_ProjectByExternalID (Basic)

Package: Explore, extend and adapt the SAP S/4HANA Cloud Private Edition with built-in and side-by-side extension capabilities.

R&D Engineering

I_ProjectByExternalID is a Basic CDS View (Dimension) that provides data about "Project by formatted external ID" in SAP S/4HANA. It reads from 1 data source (proj) and exposes 20 fields with key field ProjectExternalID. It has 6 associations to related views.

SAP Help Documentation

CategoryProject
Data CategoryDimension
StatusReleased
Purpose
This CDS view provides the prerequisites for answering the following business questions: For Professional Services or Financial related needs, what are the organizational details associated with a project? Note This view is specifically used in cubes and analytical queries to link Project dimension using the ProjectExternalID field. It is enabled for use in SAP S/4HANA cloud.

Structure
Measures and attributes Some important measures and attributes are: The ProjectID and ProjectExternalID , including other organizational data such as controlling area, company code, profit center and so on.

Constraints
The recommendation is to use this CDS view only in analytical views such as cube or consumption views, where foreign-key associations are required on the ProjectExternalID field.

Related Information
For more information, refer to 2730212

View on SAP Help Portal →

SAP API Hub

StateC1
Line of BusinessR&D Engineering
Application ComponentPS-ST
CapabilitiesAnalytical Dimension
PackageR&D Engineering for SAP S/4HANA Cloud Private Edition

Documentation

Data Sources (1)

SourceAliasJoin Type
proj proj from

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_WBSElementBasicData _RootWBSElement $projection.ProjectInternalID = _RootWBSElement.ProjectInternalID and $projection.ProjectExternalID = _RootWBSElement.WBSElementExternalID
[0..*] I_WBSElementBasicData _WBSElement $projection.ProjectInternalID = _WBSElement.ProjectInternalID
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[0..*] I_ProfitCenter _ProfitCenter $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
[0..1] I_AvailabilityCtrlProfile _AvailabilityCtrlProfile $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IPROJBYEXTKEY view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
Analytics.dataCategory #DIMENSION view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Project by formatted external ID view
VDM.viewType #BASIC view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.compositionRoot true view
ObjectModel.representativeKey ProjectExternalID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY ProjectExternalID proj pspid_edit Project Number (External) Edited
ProjectInternalID Project (internal)
ProjectProfileCode proj profl Project Profile
CompanyCode Company Code
ControllingArea Controlling Area
FunctionalArea Functional Area
ProfitCenter proj prctr Profit Centers
ProjectObject proj objnr Val. Obj. No.
PlannedStartDate proj plfaz Project planned start date
PlannedEndDate proj plsez Project planned finish date
AvailabilityControlProfile proj avc_profile Budget Availability Control: Profile
AvailabilityControlIsActive proj avc_active Availability control indicator(AVC)
JntIntrstBillgClass proj jibcl JIB/JIBE Class
JntIntrstBillgSubClass proj jibsa JIB/JIBE Subclass A
Plant proj werks Receiving Plant
_WBSElement _WBSElement
_CompanyCode _CompanyCode
_ControllingArea _ControllingArea
_ProfitCenter _ProfitCenter
_RootWBSElement _RootWBSElement

Derived SQL interpretation, reconstructed from the parsed view metadata (data sources, associations, and field mappings). SAP annotations are omitted and the structure is reformulated as SQL — this is a functional approximation, not the verbatim SAP source.

-- Derived SQL interpretation of CDS view I_ProjectByExternalID.
-- Reconstructed from parsed metadata (data sources, associations, fields).
-- SAP annotations are omitted and the structure is reformulated as SQL;
-- this is a functional approximation, not the verbatim SAP source. Some join
-- conditions may be unavailable and a few CDS constructs are kept as-is.
-- SQL view name: IPROJBYEXTKEY

CREATE VIEW I_ProjectByExternalID AS
SELECT
  proj.pspid_edit AS ProjectExternalID,
  cast ( proj.pspnr as ps_s4_proj_pspnr preserving type ) AS ProjectInternalID,
  proj.profl AS ProjectProfileCode,
  cast ( proj.vbukr as bukrs preserving type ) AS CompanyCode,
  cast ( proj.vkokr as kokrs preserving type ) AS ControllingArea,
  cast ( proj.func_area as fkber preserving type ) AS FunctionalArea,
  proj.prctr AS ProfitCenter,
  proj.objnr AS ProjectObject,
  proj.plfaz AS PlannedStartDate,
  proj.plsez AS PlannedEndDate,
  proj.avc_profile AS AvailabilityControlProfile,
  proj.avc_active AS AvailabilityControlIsActive,
  proj.jibcl AS JntIntrstBillgClass,
  proj.jibsa AS JntIntrstBillgSubClass,
  proj.werks AS Plant
FROM proj
LEFT OUTER JOIN I_WBSElementBasicData AS _RootWBSElement ON ProjectInternalID = _RootWBSElement.ProjectInternalID AND ProjectExternalID = _RootWBSElement.WBSElementExternalID  -- association [0..1]
LEFT OUTER JOIN I_WBSElementBasicData AS _WBSElement ON ProjectInternalID = _WBSElement.ProjectInternalID  -- association [0..*]
LEFT OUTER JOIN I_CompanyCode AS _CompanyCode ON CompanyCode = _CompanyCode.CompanyCode  -- association [0..1]
LEFT OUTER JOIN I_ControllingArea AS _ControllingArea ON ControllingArea = _ControllingArea.ControllingArea  -- association [0..1]
LEFT OUTER JOIN I_ProfitCenter AS _ProfitCenter ON ControllingArea = _ProfitCenter.ControllingArea AND ProfitCenter = _ProfitCenter.ProfitCenter  -- association [0..*]
LEFT OUTER JOIN I_AvailabilityCtrlProfile AS _AvailabilityCtrlProfile ON AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile  -- association [0..1]
;