C_EntProjDmndRsceAssignment
Project Demand Resource Assignment Data
C_EntProjDmndRsceAssignment is a Consumption CDS View that provides data about "Project Demand Resource Assignment Data" in SAP S/4HANA. It reads from 2 data sources (R_ProjDmndRsceAssgmtDistrTP, I_ProjDmndResourceAssignmentTP) and exposes 18 fields with key fields ProjectUUID, ProjectDemandUUID, ProjDmndRsceAssgmtUUID, ProjDmndRsceAssgmt. It has 4 associations to related views. It is exposed through 2 OData services (UI_ENPRJPFSRVSMNGPRJELMNT, UI_ENTPROJCTRLPROFNLSRVC). Part of development package ODATA_PPM_PRO_CTRL_PROFNL_SRVC.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| R_ProjDmndRsceAssgmtDistrTP | AssignmentDistr | inner |
| I_ProjDmndResourceAssignmentTP | AssignmentHdr | from |
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | C_EntProjSrvcOrgCntctCard | _SuppDeliveryOrganization | _SuppDeliveryOrganization.EnterpriseProjectServiceOrg = $projection.ProjectDemandSupplyDeliveryOrg |
| [1..1] | I_EngagementProjectSrvcOrgText | _SuppDeliveryOrganizationText | $projection.ProjectDemandSupplyDeliveryOrg = _SuppDeliveryOrganizationText.EngagementProjectServiceOrg |
| [0..1] | C_EntProjMemberContactCard | _WorkerContactCard | _WorkerContactCard.BusinessPartnerUUID = $projection.BusinessPartnerUUID |
| [1..1] | I_EnterpriseProject | _EnterpriseProject | _EnterpriseProject.ProjectUUID = $projection.ProjectUUID |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #MANDATORY | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| VDM.viewType | #CONSUMPTION | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| EndUserText.label | Project Demand Resource Assignment Data | view | |
| Metadata.allowExtensions | true | view |
OData Services (2)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_ENPRJPFSRVSMNGPRJELMNT | UI_ENPRJPFSRVSMNGPRJELMNT | V4 | C1 | NOT_RELEASED |
| UI_ENTPROJCTRLPROFNLSRVC | UI_ENTPROJCTRLPROFNLSRVC | V4 | C1 | NOT_TO_BE_RELEASED_STABLE |
Fields (18)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | I_ProjDmndResourceAssignmentTP | ProjectUUID | |
| KEY | ProjectDemandUUID | I_ProjDmndResourceAssignmentTP | ProjectDemandUUID | |
| KEY | ProjDmndRsceAssgmtUUID | I_ProjDmndResourceAssignmentTP | ProjDmndRsceAssgmtUUID | |
| KEY | ProjDmndRsceAssgmt | I_ProjDmndResourceAssignmentTP | ProjDmndRsceAssgmt | |
| BusinessPartnerUUID | Person | BusinessPartnerUUID | ||
| WorkforcePersonExternalID | Worker | WorkforcePersonExternalID | ||
| IsBlocked | Worker | IsBlocked | ||
| IsBusinessPurposeCompleted | Person | IsBusinessPurposeCompleted | ||
| PersonFullName | ||||
| ProjectDemandSupplyDeliveryOrg | I_ProjDmndResourceAssignmentTP | ProjectDemandSupplyDeliveryOrg | ||
| ProjDmndRsceAssgmtDistrQtyUnit | R_ProjDmndRsceAssgmtDistrTP | ProjDmndRsceAssgmtDistrQtyUnit | ||
| ProjDmndStaffedEffortQty | ||||
| ProjDmndRsceDistrPerdAmtCur | R_ProjDmndRsceAssgmtDistrTP | ProjDmndRsceDistrPerdAmtCur | ||
| PrjDmndStaffedEffortCostAmount | ||||
| _WorkerContactCard | _WorkerContactCard | |||
| _SuppDeliveryOrganization | _SuppDeliveryOrganization | |||
| _EnterpriseProject | _EnterpriseProject | |||
| _SuppDeliveryOrganizationText | _SuppDeliveryOrganizationText |
@AccessControl: {
authorizationCheck: #MANDATORY,
personalData.blocking: #REQUIRED
}
@VDM: {
viewType: #CONSUMPTION
}
@ObjectModel: {
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #L
}
}
@EndUserText.label: 'Project Demand Resource Assignment Data'
@Metadata.allowExtensions: true
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
define view entity C_EntProjDmndRsceAssignment
as select from I_ProjDmndResourceAssignmentTP as AssignmentHdr
inner join R_ProjDmndRsceAssgmtDistrTP as AssignmentDistr on AssignmentDistr.ProjDmndRsceAssgmtUUID = AssignmentHdr.ProjDmndRsceAssgmtUUID
and AssignmentDistr.ProjectUUID = AssignmentHdr.ProjectUUID
and AssignmentDistr.ProjectDemandUUID = AssignmentHdr.ProjectDemandUUID
left outer to one join R_WorkAssignmentKeyMap as Worker on Worker.WorkforceAssignment = AssignmentHdr.ProjDmndRsceAssgmt
left outer to one join I_BusinessPartner as Person on Person.BusinessPartner = Worker.BusinessPartner
association [1..1] to C_EntProjSrvcOrgCntctCard as _SuppDeliveryOrganization on _SuppDeliveryOrganization.EnterpriseProjectServiceOrg = $projection.ProjectDemandSupplyDeliveryOrg
association [1..1] to I_EngagementProjectSrvcOrgText as _SuppDeliveryOrganizationText on $projection.ProjectDemandSupplyDeliveryOrg = _SuppDeliveryOrganizationText.EngagementProjectServiceOrg
association [0..1] to C_EntProjMemberContactCard as _WorkerContactCard on _WorkerContactCard.BusinessPartnerUUID = $projection.BusinessPartnerUUID
association [1..1] to I_EnterpriseProject as _EnterpriseProject on _EnterpriseProject.ProjectUUID = $projection.ProjectUUID
{
key AssignmentHdr.ProjectUUID as ProjectUUID,
key AssignmentHdr.ProjectDemandUUID as ProjectDemandUUID,
key AssignmentHdr.ProjDmndRsceAssgmtUUID as ProjDmndRsceAssgmtUUID,
key AssignmentHdr.ProjDmndRsceAssgmt as ProjDmndRsceAssgmt,
@ObjectModel.text.element: [ 'PersonFullName' ]
@ObjectModel.foreignKey.association: '_WorkerContactCard'
Person.BusinessPartnerUUID as BusinessPartnerUUID,
Worker.WorkforcePersonExternalID as WorkforcePersonExternalID,
//For DCL
Worker.IsBlocked,
Person.IsBusinessPurposeCompleted,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast( '' as bu_name1tx ) as PersonFullName,
@ObjectModel:{
text.association: '_SuppDeliveryOrganizationText',
foreignKey.association: '_SuppDeliveryOrganization'
}
AssignmentHdr.ProjectDemandSupplyDeliveryOrg as ProjectDemandSupplyDeliveryOrg,
AssignmentDistr.ProjDmndRsceAssgmtDistrQtyUnit as ProjDmndRsceAssgmtDistrQtyUnit,
@Semantics.quantity.unitOfMeasure: 'ProjDmndRsceAssgmtDistrQtyUnit'
cast( sum(AssignmentDistr.ProjDmndRsceAssgmtDistrQty) as abap.quan(20,3) ) as ProjDmndStaffedEffortQty,
AssignmentDistr.ProjDmndRsceDistrPerdAmtCur as ProjDmndRsceDistrPerdAmtCur,
@Semantics.amount.currencyCode: 'ProjDmndRsceDistrPerdAmtCur'
cast( sum(AssignmentDistr.ProjDmndRsceDistrPerdAmt) as abap.curr(24,2) ) as PrjDmndStaffedEffortCostAmount,
_WorkerContactCard,
_SuppDeliveryOrganization,
_EnterpriseProject,
_SuppDeliveryOrganizationText
}
where
AssignmentHdr.ProjDmndRsceAssgmt is not initial
and AssignmentDistr.ProjDmndRsceDistrIsNotSupplied is initial //Where Clause to fetch data for Supplied lines of a 0ACT Demand
group by
AssignmentHdr.ProjDmndRsceAssgmtUUID,
AssignmentHdr.ProjectUUID,
AssignmentHdr.ProjectDemandUUID,
AssignmentHdr.ReferencedObjectUUID,
AssignmentHdr.ProjDmndRsceAssgmt,
Person.BusinessPartnerUUID,
Worker.WorkforcePersonExternalID,
Worker.IsBlocked,
Person.IsBusinessPurposeCompleted,
AssignmentHdr.ProjectDemandSupplyDeliveryOrg,
AssignmentDistr.ProjDmndRsceDistrPerdAmtCur,
AssignmentDistr.ProjDmndRsceAssgmtDistrQtyUnit
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