R_WorkAssignmentProject
Work Assignment Project Factsheet
R_WorkAssignmentProject is a Composite CDS View that provides data about "Work Assignment Project Factsheet" in SAP S/4HANA. It reads from 2 data sources (R_WorkAssignmentBP, I_EngmntProjectSupplyData) and exposes 13 fields with key fields WorkAssignmentUUID, CustomerProject, ResourceID. It has 3 associations to related views. Part of development package WFD_WORKER_FACTSHEET_BL.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| R_WorkAssignmentBP | _BuPaIdentification | inner |
| I_EngmntProjectSupplyData | _ProjectSupply | inner |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_BusinessPartner | _WorkAssignmentBP | _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner |
| [0..*] | I_CostCenterActivityTypeText | _ActivityTypeText | $projection.ResourceID = _ActivityTypeText.CostCtrActivityType and _ActivityTypeText.Language = $session.system_language |
| [0..1] | I_EngagementProject | _EngagementProject | _ProjectSupply.EngagementProjectUUID = _EngagementProject.EngagementProjectUUID |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| EndUserText.label | Work Assignment Project Factsheet | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #X | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (13)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | WorkAssignmentUUID | _WorkAssignmentBP | BusinessPartnerUUID | |
| KEY | CustomerProject | _EngagementProject | EngagementProject | |
| KEY | ResourceID | I_EngmntProjectSupplyData | EngagementProjectResource | |
| WorkforceAssignmentID | _AssignmentKeyMap | WorkforceAssignment | ||
| ProjectName | _EngagementProject | EngagementProjectName | ||
| CustomerURLTxt | ||||
| CustomerName | ||||
| CostCtrActivityTypeName | _ActivityTypeText | CostCtrActivityTypeName | ||
| CustomerProjectType | _EngagementProject | EngagementProjectType | ||
| CustomerProjectServiceOrg | _EngagementProject | EngagementProjectServiceOrg | ||
| CustomerProjectManagerName | ||||
| Manager | ||||
| _WorkAssignment | _WorkAssignment |
@AbapCatalog.viewEnhancementCategory: [#NONE]
//@VDM.viewType: #COMPOSITE
@VDM: {
viewType: #COMPOSITE,
lifecycle.contract.type: #SAP_INTERNAL_API
}
//@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Work Assignment Project Factsheet'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
// sizeCategory: #S,
sizeCategory: #XL,
dataClass: #MIXED
}
define view entity R_WorkAssignmentProject
as select distinct from R_WorkAssignmentKeyMap as _AssignmentKeyMap
inner join R_WorkAssignmentBP as _BuPaIdentification on _BuPaIdentification.WorkforceAssignment = _AssignmentKeyMap.WorkforceAssignment
// inner join I_BuPaIdentification as _BuPaIdentification on _BuPaIdentification.BPIdentificationNumber = _AssignmentKeyMap.WorkforceAssignment
// and _BuPaIdentification.BPIdentificationType = 'HCM033'
inner join I_EngmntProjectSupplyData as _ProjectSupply on _AssignmentKeyMap.WorkforceAssignment = _ProjectSupply.EmploymentInternalID
and _ProjectSupply.EngmtProjEmployeeIsStaffed = 'X'
association [1..1] to I_BusinessPartner as _WorkAssignmentBP on _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner
association [0..*] to I_CostCenterActivityTypeText as _ActivityTypeText on $projection.ResourceID = _ActivityTypeText.CostCtrActivityType
and _ActivityTypeText.Language = $session.system_language
association [0..1] to I_EngagementProject as _EngagementProject on _ProjectSupply.EngagementProjectUUID = _EngagementProject.EngagementProjectUUID
association to parent R_WorkAssignment as _WorkAssignment on $projection.WorkAssignmentUUID = _WorkAssignment.WorkAssignmentUUID
and $projection.WorkforceAssignmentID = _WorkAssignment.WorkAssignment
// pernr addition
{
// @UI.hidden: true
key _WorkAssignmentBP.BusinessPartnerUUID as WorkAssignmentUUID,
// @UI.hidden: true
// key _AssignmentKeyMap.BusinessPartner as Person,
// @UI.hidden: true
// @UI.lineItem:[{ position: 30, importance: #HIGH}]
// @EndUserText.label: 'Project ID' -- (Includes both Customer and Internal Project IDs)
// @EndUserText.quickInfo: 'Project ID'
key _EngagementProject.EngagementProject as CustomerProject,
// @UI.lineItem:[{ position: 50, importance: #HIGH}]
key _ProjectSupply.EngagementProjectResource as ResourceID,
_AssignmentKeyMap.WorkforceAssignment as WorkforceAssignmentID,
// @UI.lineItem:[ { value: 'ProjectName', label: 'Project', position: 10, importance: #HIGH, type: #WITH_URL, url: 'CustomerProjectResourceText' } ]
// @EndUserText.quickInfo: 'Project Name'
_EngagementProject.EngagementProjectName as ProjectName,
// @UI.hidden: true
case _EngagementProject.EngagementProjectCategory
// when 'C' then concat( '#CustomerProject-displayFactSheet?CustomerProject=', _EngagementProject.EngagementProject)
// when 'I' then concat( '#InternalProject-displayFactSheet?InternalProject=', _EngagementProject.EngagementProject)
when 'C' then 'CustomerProject'
when 'I' then 'InternalProject'
else ' '
end as CustomerProjectResourceText,
// @UI.hidden: true
concat( '#Customer-displayFactSheet?Customer=', _EngagementProject._Customer.Customer ) as CustomerURLTxt,
// @UI.lineItem: [ { label: 'Customer', position: 40, importance: #HIGH, type: #WITH_URL, url: 'CustomerURLTxt' } ]
_EngagementProject._Customer.CustomerName as CustomerName,
// @EndUserText.label: 'Role Name'
// @EndUserText.quickInfo: 'Role Name'
// @UI.lineItem:[{ position: 60, importance: #HIGH}]
_ActivityTypeText.CostCtrActivityTypeName,
// @UI.hidden: true
_EngagementProject.EngagementProjectType as CustomerProjectType, //TO BE CHECKED
// @UI.hidden: true
_EngagementProject.EngagementProjectServiceOrg as CustomerProjectServiceOrg, //TO BE CHECKED
// @UI.hidden: true
// concat( '#WorkforcePerson-displayFactSheet?PersonExternalID=', _EngagementProject._PersonWorkAgreement_1._WorkforcePerson.PersonExternalID ) as CustomerProjectManagerName,
concat( '#Worker-displayFactSheet?PersonExternalID=', _EngagementProject._PersonWorkAgreement_1._WorkforcePerson.PersonExternalID ) as CustomerProjectManagerName,
// @UI.lineItem:[ { value: 'Manager', label: 'Manager', position: 20, importance: #HIGH, type: #WITH_URL, url: 'CustomerProjectManagerName' } ]
cast ( _EngagementProject._PersonWorkAgreement_1._WorkforcePerson.PersonFullName as wfd_manager_name ) as Manager,
_WorkAssignment
}
where
_EngagementProject.EngagementProject <> ''
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