R_TIMESHEET
Time Sheet
R_TIMESHEET is a CDS View in S/4HANA. Time Sheet. It contains 7 fields. 3 CDS views read from this table.
CDS Views using this table (3)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| I_TimeSheet | view_entity | from | BASIC | Time Sheet |
| R_EnterpriseProjectTimeSheet | view_entity | from | COMPOSITE | Enterprise Project Time Sheet |
| R_TimeSheetTP | view_entity | from | TRANSACTIONAL | Time Sheet - TP |
Fields (7)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | ActivityType | ActivityType | 1 |
| KEY | BillableControl | BillableControl | 1 |
| KEY | ProjectUUID | ProjectUUID | 1 |
| KEY | WBSElementInternalID | WBSElementInternalID | 1 |
| KEY | WorkAssignment | WorkAssignment | 1 |
| KEY | WorkItem | WorkItem | 1 |
| HoursUnitOfMeasure | HoursUnitOfMeasure | 1 |
@AccessControl.authorizationCheck: #MANDATORY
@VDM.viewType: #BASIC
@EndUserText.label: 'Time Sheet'
@ObjectModel: {
usageType: {
serviceQuality: #A,
sizeCategory: #XL,
dataClass: #TRANSACTIONAL
}
}
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
define view entity R_TimeSheet
as select from catsdbext
// The following association is removed as part of RAP BO clean up activity since the SDM execution is completed in 2308, We can delete the CDS P_TimeSheetSDMStatus later.
// association [0..1] to P_TimeSheetSDMStatus as _TimeSheetSDMStatus on _TimeSheetSDMStatus.MigrationClass = 'CL_SDM_CATSDB_2308'
association [1..1] to I_TimeSheetRecord as _TimeSheetRecord on $projection.TimeSheetRecord = _TimeSheetRecord.TimeSheetRecord
// ---------------- Following associations would be required beyond CE 2402 ++ -------------------------------------------------
// association [1..1] to I_PersonWorkAgreement_1 as _PersonWorkAgreement_1 on $projection.WorkAssignment = _PersonWorkAgreement_1.PersonWorkAgreement
// association [1..*] to I_EnterpriseProject as _EnterpriseProject on $projection.WBSElementInternalID = _EnterpriseProject.WBSElementInternalID
// association [1..*] to I_CostCenterActivityType as _CostCenterActivityType on $projection.ActivityType = _CostCenterActivityType.CostCtrActivityType
// association [1..*] to I_CostCenter as _CostCenter on $projection.SenderCostCenter = _CostCenter.CostCenter
// or $projection.ReceiverCostCenter = _CostCenter.CostCenter
// association [1..1] to I_WorkItem as _WorkItem on $projection.WorkItem = _WorkItem.WorkItem
// association [1..1] to I_TimeSheetTaskType as _TimeSheetTaskType on $projection.TimeSheetTaskType = _TimeSheetTaskType.TimeSheetTaskType
// association [1..*] to I_TimeSheetWrkLoc as _TimeSheetWrkLoc on $projection.TimeSheetWrkLocCode = _TimeSheetWrkLoc.TimeSheetWrkLocCode
// association [1..*] to I_TimeSheetOvertimeCatText as _TimeSheetOvertimeCatText on $projection.TimeSheetOvertimeCategory = _TimeSheetOvertimeCatText.TimeSheetOvertimeCategory
// association [1..*] to I_TimeSheetRejectionReasonText as _TimeSheetRejectionReasonText on $projection.TimeSheetRejectionReason = _TimeSheetRejectionReasonText.TimeSheetRejectionReason
// association [1..*] to I_TimeSheetStatusText as _TimeSheetStatusText on $projection.TimeSheetStatus = _TimeSheetStatusText.TimeSheetStatus
// association [1..1] to I_PurchaseOrder as _PurchaseOrder on $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
// association [1..*] to I_PurchaseOrderItem as _PurchaseOrderItem on $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem
// association [1..*] to I_Fund as _Fund on $projection.SenderPubSecFund = _Fund.Fund
// or $projection.ReceiverPubSecFund = _Fund.Fund
// association [1..*] to I_FundsMgmtFunctionalArea as _FundsMgmtFunctionalArea on $projection.SendingPubSecFunctionalArea = _FundsMgmtFunctionalArea.FunctionalAreaSubdivisionID
// or $projection.ReceiverPubSecFuncnlArea = _FundsMgmtFunctionalArea.FunctionalAreaSubdivisionID
// association [1..*] to I_Grant as _Grant on $projection.SenderPubSecGrant = _Grant.GrantID
// or $projection.ReceiverPubSecGrant = _Grant.GrantID
// association [1..*] to I_BudgetPeriod as _BudgetPeriod on $projection.SenderPubSecBudgetPeriod = _BudgetPeriod.BudgetPeriod
// or $projection.ReceiverPubSecBudgetPeriod = _BudgetPeriod.BudgetPeriod
//
// association [1..1] to I_BillingControlCategoryToAccInd as _BillgControlCategoryToAccInd on $projection.AccountingIndicatorCode = _BillgControlCategoryToAccInd.AccountingIndicatorCode
{
// Key fields
key catsdbext.timesheetrecorduuid as TimeSheetRecordUUID,
catsdbext.timesheetrecord as TimeSheetRecord,
// Basic Info for timesheet
_TimeSheetRecord.PersonWorkAgreement as WorkAssignment,
_TimeSheetRecord.TimeSheetDate,
@Semantics.quantity.unitOfMeasure: 'HoursUnitOfMeasure'
_TimeSheetRecord.RecordedHours,
_TimeSheetRecord.HoursUnitOfMeasure,
catsdbext.timesheetrecordlongtext as TimeSheetRecordLongText,
// Acc. Obj -> Project
catsdbext.projectuuid as ProjectUUID,
_TimeSheetRecord.WBSElementInternalID,
_TimeSheetRecord.ActivityType,
_TimeSheetRecord.WorkItem,
_TimeSheetRecord.AccountingIndicatorCode as BillableControl,
// _TimeSheetRecord.TimeSheetOvertimeCategory,
// _TimeSheetRecord.TimeSheetWrkLocCode,
//
// // Acc. Obj -> StatKeyFig --Non-Project related tasks
// _TimeSheetRecord.TimeSheetTaskType,
// _TimeSheetRecord.TimeSheetTaskLevel,
// _TimeSheetRecord.TimeSheetTaskComponent,
//
// // Acc. Obj -> Cost Center
// _TimeSheetRecord.SenderCostCenter,
// _TimeSheetRecord.ReceiverCostCenter,
//
// // Acc. Obj -> Purchase Order
// _TimeSheetRecord.PurchaseOrder,
// _TimeSheetRecord.PurchaseOrderItem,
//
// // Acc. Obj -> Service Mgmt.
// _TimeSheetRecord.ServiceDocumentType,
// _TimeSheetRecord.ServiceDocument,
// _TimeSheetRecord.ServiceDocumentItem,
//
// // Acc. Obj -> PSM
// _TimeSheetRecord.SenderPubSecFund,
// _TimeSheetRecord.SendingPubSecFunctionalArea,
// _TimeSheetRecord.SenderPubSecGrant,
// _TimeSheetRecord.SenderPubSecBudgetPeriod,
// _TimeSheetRecord.ReceiverPubSecFund,
// _TimeSheetRecord.ReceiverPubSecFuncnlArea,
// _TimeSheetRecord.ReceiverPubSecGrant,
// _TimeSheetRecord.ReceiverPubSecBudgetPeriod,
// TimeSheet Derived attributes
_TimeSheetRecord.TimeSheetStatus,
_TimeSheetRecord.RejectionReason as TimeSheetRejectionReason,
_TimeSheetRecord.TimeSheetPredecessorRecord,
_TimeSheetRecord.TimeSheetAccountingDocument,
_TimeSheetRecord.WorkflowTaskInternalID,
//cast ( _TimeSheetRecord.WorkflowTaskInternalID as /cpd/pfp_workitem_id ) as WorkflowTaskInternalID,
// Administrative and change log fields
_TimeSheetRecord.CreatedByUser,
_TimeSheetRecord.LastChangedByUser,
_TimeSheetRecord.TimeSheetApprovedByUser,
_TimeSheetRecord.TimeSheetApprovedDate,
_TimeSheetRecord.TimeSheetCreationDate,
_TimeSheetRecord.TimeSheetEntryTime,
_TimeSheetRecord.TimeSheetLastChangedDate,
_TimeSheetRecord.TimeSheetLastChangedTime,
catsdbext.lastchangedatetime as LastChangeDateTime,
catsdbext.timesheetlastchangedatetime as TimeSheetLastChangeDateTime
//Association
//_TimeSheetRecord
// Associations
// _PersonWorkAgreement_1,
// _EnterpriseProject,
// _CostCenterActivityType,
// _CostCenter,
// _WorkItem,
// _TimeSheetTaskType,
// _TimeSheetOvertimeCatText,
// _TimeSheetRejectionReasonText,
// _TimeSheetStatusText,
// _PurchaseOrder,
// _PurchaseOrderItem,
// _Fund,
// _FundsMgmtFunctionalArea,
// _Grant,
// _BudgetPeriod
}
//where
// _TimeSheetSDMStatus.MigrationStatus = 'F' //Finished
// or _TimeSheetSDMStatus.MigrationStatus = 'N' //Not required.