R_ENTERPRISEPROJECTTIMESHEET
Enterprise Project Time Sheet
R_ENTERPRISEPROJECTTIMESHEET is a CDS View in S/4HANA. Enterprise Project Time Sheet. It contains 11 fields. 1 CDS views read from this table.
CDS Views using this table (1)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_EntProjProfnlSrvcTimeRecg | view_entity | from | CONSUMPTION | Enterprise Project Time Recording |
Fields (11)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | ActivityType | ActivityType | 1 |
| KEY | BillableControl | BillableControl | 1 |
| KEY | ProjectUUID | ProjectUUID | 1 |
| KEY | ReferencedObjectUUID | ReferencedObjectUUID | 1 |
| KEY | WBSElementInternalID | WBSElementInternalID | 1 |
| KEY | WorkAssignment | WorkAssignment | 1 |
| KEY | WorkItem | WorkItem | 1 |
| _EnterpriseProject | _EnterpriseProject | 1 | |
| HoursUnitOfMeasure | HoursUnitOfMeasure | 1 | |
| ProjectElement | ProjectElement | 1 | |
| ProjectElementDescription | ProjectElementDescription | 1 |
@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Enterprise Project Time Sheet'
@AccessControl: {
authorizationCheck: #MANDATORY,
personalData.blocking: #REQUIRED
}
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #C,
sizeCategory: #XL,
dataClass: #TRANSACTIONAL
}
@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
// This CDS is designed to provide unique combination of WBS, Activity, Worker, Work item and Billable control
// Will provide the resources for which time is recorded (Unstaffed and Confirmed resources)
define view entity R_EnterpriseProjectTimeSheet
as select from R_TimeSheet as TimeSheet
inner join R_EnterpriseProjectElement as ProjectElement on TimeSheet.WBSElementInternalID = ProjectElement.WBSElementInternalID
association [1] to I_EnterpriseProject as _EnterpriseProject on _EnterpriseProject.ProjectUUID = $projection.ProjectUUID
{
key TimeSheet.ProjectUUID,
key ProjectElement.ProjectElementUUID as ReferencedObjectUUID,
key TimeSheet.WBSElementInternalID,
key TimeSheet.ActivityType,
key TimeSheet.WorkAssignment,
key TimeSheet.WorkItem,
key TimeSheet.BillableControl,
TimeSheet.HoursUnitOfMeasure,
ProjectElement.ProjectElement,
ProjectElement.ProjectElementDescription,
ProjectElement.LeadingSalesOrder,
ProjectElement.LeadingSalesOrderItem,
// Association
_EnterpriseProject
}
where
ProjectElement.WBSElementIsBillingElement = ''
and(
TimeSheet.TimeSheetStatus = '10' // In process
or TimeSheet.TimeSheetStatus = '20' // Sent for approval
or TimeSheet.TimeSheetStatus = '30' // Approved
)
group by
TimeSheet.WBSElementInternalID,
TimeSheet.ActivityType,
TimeSheet.WorkAssignment,
TimeSheet.WorkItem,
TimeSheet.BillableControl,
TimeSheet.HoursUnitOfMeasure,
TimeSheet.ProjectUUID,
ProjectElement.ProjectElementUUID,
ProjectElement.ProjectElement,
ProjectElement.ProjectElementDescription,
ProjectElement.LeadingSalesOrder,
ProjectElement.LeadingSalesOrderItem
union
// Will provide the resources which are confirmed but time is not yet recorded
select from R_ProjectDemandWork as Work
inner join R_ProjectDemand as Demand on Demand.ProjectUUID = Work.ProjectUUID
and Demand.ReferencedObjectUUID = Work.ReferencedObjectUUID
and Demand.ProjectDemandUUID = Work.ProjectDemandUUID
inner join R_ProjDmndResourceAssignment as Assignment on Assignment.ProjectUUID = Work.ProjectUUID
and Assignment.ReferencedObjectUUID = Work.ReferencedObjectUUID
and Assignment.ProjectDemandWorkUUID = Work.ProjectDemandWorkUUID
inner join R_EnterpriseProjectElement as ProjectElement on ProjectElement.ProjectUUID = Work.ProjectUUID
and ProjectElement.ProjectElementUUID = Work.ReferencedObjectUUID
association [1] to I_EnterpriseProject as _EnterpriseProject on _EnterpriseProject.ProjectUUID = $projection.ProjectUUID
{
key Work.ProjectUUID,
key Work.ReferencedObjectUUID,
key ProjectElement.WBSElementInternalID,
key Work.ActivityType,
key Assignment.ProjDmndRsceAssgmt as WorkAssignment,
key Work.ProjectElementWorkItem as WorkItem,
key case Work.ProjDmndBillingControlCategory
when 'NON_BILL' then 'S1' else '' end as BillableControl,
cast( 'H' as meinh ) as HoursUnitOfMeasure,
ProjectElement.ProjectElement,
ProjectElement.ProjectElementDescription,
ProjectElement.LeadingSalesOrder,
ProjectElement.LeadingSalesOrderItem,
// Association
_EnterpriseProject
}
where
ProjectElement.WBSElementIsBillingElement = ''
and Assignment.ProjDmndRsceAssgmt <> '00000000'
and Demand.ProjectDemandCategory = '03'
and Demand.ProjectDemandType = 'S302'
group by
ProjectElement.WBSElementInternalID,
Work.ActivityType,
Assignment.ProjDmndRsceAssgmt,
Work.ProjectElementWorkItem,
Work.ProjDmndBillingControlCategory,
Work.ProjectUUID,
Work.ReferencedObjectUUID,
ProjectElement.ProjectElement,
ProjectElement.ProjectElementDescription,
ProjectElement.LeadingSalesOrder,
ProjectElement.LeadingSalesOrderItem