I_EntProjectPublicSectorTP
Project Extension fields for PSM
I_EntProjectPublicSectorTP is a Transactional CDS View that provides data about "Project Extension fields for PSM" in SAP S/4HANA. It reads from 2 data sources (I_EnterpriseProjectTP, I_PPM_ProjectPublicSector) and exposes 17 fields with key field ProjectUUID. It has 4 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_EnterpriseProjectTP | Project | inner |
| I_PPM_ProjectPublicSector | ProjectPSM | from |
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_PPM_AuthznByUsrH | _AuthUser | _AuthUser.ReferencedObjectUUID = $projection.ProjectUUID and _AuthUser.UserID = $session.user and ( _AuthUser.Activity = 'Admin' or _AuthUser.Activity = 'Write' or _AuthUser.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznBySubstitH | _AuthSubst | _AuthSubst.ReferencedObjectUUID = $projection.ProjectUUID and _AuthSubst.UserID = $session.user and ( _AuthSubst.Activity = 'Admin' or _AuthSubst.Activity = 'Write' or _AuthSubst.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUserRoleH | _AuthRole | _AuthRole.ReferencedObjectUUID = $projection.ProjectUUID and _AuthRole.UserID = $session.user and ( _AuthRole.Activity = 'Admin' or _AuthRole.Activity = 'Write' or _AuthRole.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUsrGrpH | _AuthGroup | _AuthGroup.ReferencedObjectUUID = $projection.ProjectUUID and _AuthGroup.UserID = $session.user and ( _AuthGroup.Activity = 'Admin' or _AuthGroup.Activity = 'Write' or _AuthGroup.Activity = 'Read' ) |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IENTPROJPSMTP | view | |
| VDM.viewType | #TRANSACTIONAL | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| feature | BF:PSM_BUDGET_ACCOUNTING_CONTROL, EPPM_PUBLIC_SECTOR | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.representativeKey | ProjectUUID | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| AbapCatalog.preserveKey | true | view | |
| EndUserText.label | Project Extension fields for PSM | view |
Fields (17)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | I_PPM_ProjectPublicSector | ProjectUUID | |
| ProjectSummaryTaskUUID | I_PPM_ProjectPublicSector | ProjectSummaryTaskUUID | ||
| ProjectInternalID | I_PPM_ProjectPublicSector | ProjectInternalID | ||
| Fund | Fund | |||
| FundIsFixAssigned | FundIsFixAssigned | |||
| FunctionalAreaIsFixAssigned | FunctionalAreaIsFixAssigned | |||
| GrantID | GrantID | |||
| GrantIsFixAssigned | GrantIsFixAssigned | |||
| SponsoredProgram | SponsoredProgram | |||
| ControllingArea | I_PPM_ProjectPublicSector | ControllingArea | ||
| ProfitCenter | I_PPM_ProjectPublicSector | ProfitCenter | ||
| ProjectLastChangedDateTime | I_EnterpriseProjectTP | LastChangeDateTime | ||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _EnterpriseProject | _EnterpriseProject |
@AbapCatalog.sqlViewName: 'IENTPROJPSMTP'
@VDM: {
viewType: #TRANSACTIONAL,
lifecycle.contract.type: #SAP_INTERNAL_API
}
@AbapCatalog.compiler.compareFilter: true
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL, EPPM_PUBLIC_SECTOR'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
representativeKey: 'ProjectUUID',
alternativeKey: [ { id : 'ProjectSummaryTaskUUID', element: ['ProjectSummaryTaskUUID'], uniqueness: #UNIQUE },
{ id : 'ProjectInternalID', element: ['ProjectInternalID'], uniqueness: #UNIQUE }],
usageType: {
dataClass: #MIXED,
serviceQuality: #C,
sizeCategory: #L
}
}
@AbapCatalog.preserveKey: true
@EndUserText.label: 'Project Extension fields for PSM'
define view I_EntProjectPublicSectorTP as select from I_PPM_ProjectPublicSector as ProjectPSM
inner join I_EnterpriseProjectTP as Project on ProjectPSM.ProjectUUID = Project.ProjectUUID
association to parent I_EnterpriseProjectTP as _EnterpriseProject on $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
// associations to authorization views
association [0..*] to I_PPM_AuthznByUsrH as _AuthUser on _AuthUser.ReferencedObjectUUID = $projection.ProjectUUID
and _AuthUser.UserID = $session.user
and (
_AuthUser.Activity = 'Admin'
or _AuthUser.Activity = 'Write'
or _AuthUser.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznBySubstitH as _AuthSubst on _AuthSubst.ReferencedObjectUUID = $projection.ProjectUUID
and _AuthSubst.UserID = $session.user
and (
_AuthSubst.Activity = 'Admin'
or _AuthSubst.Activity = 'Write'
or _AuthSubst.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznByUserRoleH as _AuthRole on _AuthRole.ReferencedObjectUUID = $projection.ProjectUUID
and _AuthRole.UserID = $session.user
and (
_AuthRole.Activity = 'Admin'
or _AuthRole.Activity = 'Write'
or _AuthRole.Activity = 'Read'
)
association [0..*] to I_PPM_AuthznByUsrGrpH as _AuthGroup on _AuthGroup.ReferencedObjectUUID = $projection.ProjectUUID
and _AuthGroup.UserID = $session.user
and (
_AuthGroup.Activity = 'Admin'
or _AuthGroup.Activity = 'Write'
or _AuthGroup.Activity = 'Read'
)
{
// @ObjectModel.readOnly: true -> now set in BDEF
key ProjectPSM.ProjectUUID as ProjectUUID,
// @ObjectModel.readOnly: true -> now set in BDEF
ProjectPSM.ProjectSummaryTaskUUID as ProjectSummaryTaskUUID,
// @ObjectModel.readOnly: true -> now set in BDEF
ProjectPSM.ProjectInternalID as ProjectInternalID,
Fund,
FundIsFixAssigned,
FunctionalAreaIsFixAssigned,
GrantID,
GrantIsFixAssigned,
//2008 Sponsored program
SponsoredProgram,
// @ObjectModel.readOnly: true -> now set in BDEF
@Consumption.hidden: true // only for auth check
ProjectPSM.ControllingArea as ControllingArea,
// @ObjectModel.readOnly: true -> now set in BDEF
@Consumption.hidden: true // only for auth check
ProjectPSM.ProfitCenter as ProfitCenter,
// JointVenture,
// JointVentureCostRecoveryCode,
// JointVentureEquityType,
// JntVntrProjectType,
// JntIntrstBillgClass,
// JntIntrstBillgSubClass,
Project.LastChangeDateTime as ProjectLastChangedDateTime,
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup,
_EnterpriseProject
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENTERPRISEPROJECTTP",
"I_PPM_PROJECTPUBLICSECTOR"
],
"ASSOCIATED":
[
"I_ENTERPRISEPROJECTTP",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH"
],
"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