A labour-capture sheet attached to a service order, created by the service order's Create Time Sheet action; one sheet is raised per invocation with a child ServiceOrderTimeSheetLine for every selected line whose Item is a Work Item (part lines are excluded). The sheet carries the work-stage flags WorkStarted/WorkPaused/WorkEnded and their dates, and its own server actions stamp the selected sheet lines and then raise the matching IsWorkStarted/IsWorkPaused/IsWorkEnded flag on the parent service order once every line has reached that stage. It does not price or bill anything — hours are read by resource-wise profitability reporting, while invoicing still comes from the service order lines.
Fields
| Field | Label | Type | Required | What it does |
ActualDurationHours | Actual Duration Hours | Calculated (calculated) | | Roll-up of the actual hours on the sheet's lines. It is a protected system field — the handler rejects direct edits — so change the underlying line hours instead. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
ExternalId | External | Text, unique | | |
Id | Id | Guid | Yes | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
RecordTypeId | Record Type | Guid, hidden | | |
RepairPauseReason | Work Pause Reason | PickList | | Values: Paused-Non Availability of Stock. |
ResourceId | Resource | Lookup → Resource | | The default technician for the sheet, copied from the parent service order's Resource when the sheet is created. A sheet line with its own resource overrides it for that line's hours. |
ServiceOrderId | Service Order | Lookup → ServiceOrder | Yes | |
ServiceOrderLineId | Service Order Line | Lookup → ServiceOrderLine | | An optional single service order line the whole sheet relates to. Profitability only falls back to it when the sheet has no lines of its own naming the work — normally attribution comes from the sheet lines. |
StandardDurationHours | Standard Duration Hours | Calculated (calculated) | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
WorkEndDate | Work End Date | DateAndTime | | |
WorkEnded | Work Ended | Boolean | Yes | Set when work on the sheet has finished; it raises the parent service order's IsWorkEnded flag, and only once every line of the sheet carries a work end date. |
WorkPaused | Work Paused | Boolean | Yes | |
WorkPauseDate | Work Pause Date | DateAndTime | | |
WorkRemarks | Work Remarks | Text | | |
WorkStartDate | Work Start Date | DateAndTime | | |
WorkStarted | Work Started | Boolean | Yes | Set when the sheet's work has begun, and mirrored up onto the parent service order's IsWorkStarted. It is raise-only at the order level, so clearing it here does not clear the order's flag. |
WorkStatus | Work Status | Calculated (calculated) | | Derived stage of the sheet: the service writes Started when work has begun, Paused when it is paused and Completed when it has ended. None of those three values are in this field's seeded picklist, which offers only two paused reasons, so filtering on the seeded values will not match what the engine writes. Values: Work Started, Work Paused, Work Ended. |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete |
Edit | Edit | Edit | Edit |
Edit1 | Edit | EditInline | Edit |
EditEntity | Edit | Edit | Edit Entity |
EditInLine | Edit | Edit | Edit |
EditInLineEntity | Edit | EditInline | EditInLine Entity |
End | End | ServerAction (PerformWorkEnd) | End Work |
New | New | New | New |
Pause | Pause | ServerAction (PerformWorkPause) | Pause Work |
Start | Start | ServerAction (PerformWorkStart) | Start Work |
Validations
| Validation | Applies to | Error message | Notes |
| Work Pause Reason Required | RepairPauseReason, Error | Work Pause Reason is required when the work is set to Paused. | Work Pause Reason is required when the work is set to Paused. |
| Work End Validation Rule | WorkStartDate, Error | Work End Date cannot be before Work Start Date | Work End Date cannot be before Work Start Date |
| Work Pause Validation Rule | WorkStartDate, Error | Work Pause Date cannot be before Work Start Date | Work Pause Date cannot be before Work Start Date |
| Work must be started before pause/end | WorkStarted, Error | Work cannot be paused or ended before it has been started. | Work cannot be paused or ended before it is started. |