R_ENTERPRISEPROJECTTIMESHEET

CDS View

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)

ViewTypeJoinVDMDescription
C_EntProjProfnlSrvcTimeRecg view_entity from CONSUMPTION Enterprise Project Time Recording

Fields (11)

KeyField CDS FieldsUsed 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