I_EngmntProjectRoleAssgmt
Role Assignment in Engagement Project
I_EngmntProjectRoleAssgmt is a Composite CDS View (Dimension) that provides data about "Role Assignment in Engagement Project" in SAP S/4HANA. It reads from 2 data sources (P_EngmntProjectRoleAssgmt, P_WFPersonIdentification) and exposes 23 fields with key fields EngagementProject, EngagementProjectTeamRole. It has 9 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| P_EngmntProjectRoleAssgmt | B | from |
| P_WFPersonIdentification | C | inner |
Associations (9)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_BusinessUserBasic | _BusinessUserBasic | $projection.BusinessPartner = _BusinessUserBasic.BusinessPartner |
| [0..1] | I_BusinessUser | _BusinessUser | $projection.BusinessPartner = _BusinessUser.BusinessPartner |
| [0..1] | I_BusinessPartner | _BusinessPartner | $projection.BusinessPartner = _BusinessPartner.BusinessPartner |
| [0..1] | I_WorkplaceAddress | _WorkplaceAddress | $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID |
| [0..1] | I_WorkforcePersonImageURL | _Image | _Image.Person = B.BusinessPartner |
| [0..1] | I_EnterpriseProjectRoleType | _ProjectRole | $projection.EngagementProjectTeamRole = _ProjectRole.ProjectRoleType |
| [1] | I_EngagementProject | _EngagementProject | $projection.EngagementProject = _EngagementProject.EngagementProject |
| [0..1] | I_PPM_ProjectRoleTypeText | _ProjectRoleText | _ProjectRoleText.LanguageCode = $session.system_language and _ProjectRoleText.ProjectRoleType = $projection.EngagementProjectTeamRole |
| [1..1] | I_EngmntProjWithUserInvlmnt | _UserInvlmnt | $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID |
Annotations (20)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.sqlViewName | IENGPRJROLASSGMT | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| AccessControl.personalData.blockingIndicator | IsBusinessPurposeCompleted | view | |
| ObjectModel.representativeKey | EngagementProjectTeamRole | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.modelingPattern | #ANALYTICAL_DIMENSION | view | |
| EndUserText.label | Role Assignment in Engagement Project | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.internalName | #LOCAL | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Metadata.allowExtensions | true | view |
Fields (23)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | EngagementProject | P_EngmntProjectRoleAssgmt | EngagementProject | Engagement Project ID |
| KEY | EngagementProjectTeamRole | P_EngmntProjectRoleAssgmt | EngagementProjectTeamRole | Project Role |
| CreationDateTime | P_EngmntProjectRoleAssgmt | CreationDateTime | Created On | |
| BusinessPartner | P_EngmntProjectRoleAssgmt | BusinessPartner | Business Partner ID | |
| ObjectName | _ProjectRoleText | ObjectName | Project Role Name | |
| EngagementProjectUUID | P_EngmntProjectRoleAssgmt | EngagementProjectUUID | ||
| EngagementProjectTeamRoleUUID | P_EngmntProjectRoleAssgmt | EngagementProjectTeamRoleUUID | ||
| EngmtProjTeamMemberUUID | P_EngmntProjectRoleAssgmt | EngmtProjTeamMemberUUID | ||
| EngagementProjectMemberUUID | P_EngmntProjectRoleAssgmt | EngagementProjectMemberUUID | ||
| BusinessPartnerUUID | P_EngmntProjectRoleAssgmt | BusinessPartnerUUID | ||
| BusinessPartnerFullName | P_EngmntProjectRoleAssgmt | BusinessPartnerFullName | Business Partner Name | |
| BusinessPartnerType | P_EngmntProjectRoleAssgmt | BusinessPartnerType | Business Partner Type | |
| BusinessUser | _BusinessUserBasic | UserID | Business User | |
| PersonExternalID | P_WFPersonIdentification | BPIdentificationNumber | User name | |
| _BusinessUserBasic | _BusinessUserBasic | |||
| _BusinessUser | _BusinessUser | |||
| _Image | _Image | |||
| _ProjectRole | _ProjectRole | |||
| _ProjectRoleText | _ProjectRoleText | |||
| _EngagementProject | _EngagementProject | |||
| _WorkplaceAddress | _WorkplaceAddress | |||
| _BusinessPartner | _BusinessPartner | |||
| _UserInvlmnt | _UserInvlmnt |
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
sqlViewName: 'IENGPRJROLASSGMT',
compiler.compareFilter: true,
preserveKey: true
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED,
personalData.blockingIndicator: 'IsBusinessPurposeCompleted'
}
@ObjectModel: {
representativeKey: 'EngagementProjectTeamRole',
usageType.serviceQuality: #D,
usageType.sizeCategory: #XL,
usageType.dataClass: #MIXED,
modelingPattern: #ANALYTICAL_DIMENSION,
supportedCapabilities: [#ANALYTICAL_DIMENSION,
#CDS_MODELING_ASSOCIATION_TARGET,
#CDS_MODELING_DATA_SOURCE,
#SQL_DATA_SOURCE]
}
@EndUserText.label: 'Role Assignment in Engagement Project'
@Analytics: {
dataExtraction.enabled: true,
dataCategory: #DIMENSION,
internalName: #LOCAL
}
@VDM: {
viewType: #COMPOSITE,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@Metadata: {
ignorePropagatedAnnotations: true,
allowExtensions:true
}
define view I_EngmntProjectRoleAssgmt
as select from P_EngmntProjectRoleAssgmt as B
inner join P_WFPersonIdentification as C on B.BusinessPartner = C.BusinessPartner
association [0..1] to I_BusinessUserBasic as _BusinessUserBasic on $projection.BusinessPartner = _BusinessUserBasic.BusinessPartner
// ***** I_BusinessUser is deprecated, It's successor view is I_BusinessUserBasic
association [0..1] to I_BusinessUser as _BusinessUser on $projection.BusinessPartner = _BusinessUser.BusinessPartner
// ***** I_BusinessPartner has DCL check for blocked employee. Do not remove this association.
association [0..1] to I_BusinessPartner as _BusinessPartner on $projection.BusinessPartner = _BusinessPartner.BusinessPartner
association [0..1] to I_WorkplaceAddress as _WorkplaceAddress on $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
association [0..1] to I_WorkforcePersonImageURL as _Image on _Image.Person = B.BusinessPartner
association [0..1] to I_EnterpriseProjectRoleType as _ProjectRole on $projection.EngagementProjectTeamRole = _ProjectRole.ProjectRoleType
association [1] to I_EngagementProject as _EngagementProject on $projection.EngagementProject = _EngagementProject.EngagementProject
association [0..1] to I_PPM_ProjectRoleTypeText as _ProjectRoleText on _ProjectRoleText.LanguageCode = $session.system_language
and _ProjectRoleText.ProjectRoleType = $projection.EngagementProjectTeamRole
association [1..1] to I_EngmntProjWithUserInvlmnt as _UserInvlmnt on $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID
{
@ObjectModel.foreignKey.association: '_EngagementProject'
@EndUserText.label: 'Engagement Project ID'
key B.EngagementProject,
@EndUserText.label: 'Project Role'
key B.EngagementProjectTeamRole,
@EndUserText.label: 'Created On'
B.CreationDateTime,
@ObjectModel.foreignKey.association: '_BusinessPartner'
@EndUserText.label: 'Business Partner ID'
B.BusinessPartner,
@EndUserText.label: 'Project Role Name'
@Semantics.name.jobTitle: true
_ProjectRoleText.ObjectName,
@Consumption.hidden: true
B.EngagementProjectUUID,
@Consumption.hidden: true
B.EngagementProjectTeamRoleUUID,
@Consumption.hidden: true
B.EngmtProjTeamMemberUUID,
@Consumption.hidden: true
B.EngagementProjectMemberUUID,
@Consumption.hidden: true
B.BusinessPartnerUUID,
@EndUserText.label: 'Business Partner Name'
B.BusinessPartnerFullName,
@EndUserText.label: 'Business Partner Type'
B.BusinessPartnerType,
@EndUserText.label: 'Business User'
_BusinessUserBasic.UserID as BusinessUser,
@EndUserText.label: 'User name'
C.BPIdentificationNumber as PersonExternalID,
_BusinessUserBasic,
@API.element: {
successor: '_BusinessUserBasic',
releaseState: #DEPRECATED
}
@VDM.lifecycle: {
successor: '_BusinessUserBasic',
status: #DEPRECATED
}
_BusinessUser,
_Image,
_ProjectRole,
_ProjectRoleText,
_EngagementProject,
_WorkplaceAddress,
_BusinessPartner,
@Consumption.hidden: true
_UserInvlmnt
}
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