Task
A taskTaskA unit of work that belongs to a job. It appears in the open task list until it is scheduled to a resource. is a child entity of a jobJobA high-level container, comparable to a project, that bundles related tasks together with common information such as customer, billing, and address., and a job is required before any task can be added. A task record for which no appointmentsAppointmentA task scheduled to a resource for a specific period - the scheduled instance you see on the planning board. exist is considered as an open taskOpen taskA task that has not been scheduled yet. It waits in the open task list to be placed on the planning board., and will therefore be displayed in the open tasks component.
The following entities are exposed through the API.
Task
Upsert
Inserts or updates a task record.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | The job's external identifier to assign this task to. | |
| TaskNo | nvarchar(50) | ✔️ | The task's external identifier. | |
| ShortDescription | nvarchar(50) | ✔️ | ||
| Description | nvarchar(MAX) | |||
| TaskType | int | 0 | See API reference | |
| Name | nvarchar(255) | |||
| Type | nvarchar(20) | |||
| Category | nvarchar(100) | See API reference | ||
| TimeMarker | nvarchar(100) | See API reference | ||
| Pin | nvarchar(100) | See API reference | ||
| Tags | nvarchar(1000) | See API reference | ||
| ServiceNo | nvarchar(50) | |||
| ServiceGroup | nvarchar(20) | |||
| ServiceClass | nvarchar(20) | |||
| ServiceSerialNo | nvarchar(50) | |||
| ServiceName | nvarchar(50) | |||
| IRISFault | nvarchar(10) | |||
| IRISSymptom | nvarchar(10) | |||
| IRISArea | nvarchar(10) | |||
| IRISReason | nvarchar(10) | |||
| IRISResolution | nvarchar(10) | |||
| Skill1 | nvarchar(10) | |||
| Skill2 | nvarchar(10) | |||
| Skill3 | nvarchar(10) | |||
| ContractNo | nvarchar(20) | |||
| ContractType | nvarchar(30) | |||
| ContractDescription | nvarchar(MAX) | |||
| ContractStartDate | date | |||
| ContractEndDate | date | |||
| PartsWarrantyStartDate | date | |||
| PartsWarrantyEndDate | date | |||
| LaborWarrantyStartDate | date | |||
| LaborWarrantyEndDate | date | |||
| Importance | int | 0 | See API reference | |
| Status | nvarchar(20) | |||
| ExpectedResponseDateTime | datetime | |||
| ActualResponseDateTime | datetime | |||
| RequestedStartDate | datetime | See API reference | ||
| RequestedEndDate | datetime | See API reference | ||
| RequestedStartTime | time | See API reference | ||
| RequestedEndTime | time | See API reference | ||
| ConfirmedStartDate | datetime | |||
| ConfirmedEndDate | datetime | |||
| ActualStartDate | datetime | |||
| ActualEndDate | datetime | |||
| LocationDescription | nvarchar(MAX) | |||
| Duration | time(7) | |||
| DurationInSeconds | bigint | The estimated duration of the task. Determines the initial length of the appointment when dropped on the planning board. | ||
| Subject | nvarchar(max) | See API reference | ||
| Body | nvarchar(max) | See API reference | ||
| InfiniteTask | bit | 0 | See API reference | |
| TaskOpenAsOf | datetime | |||
| TaskOpenTill | datetime | |||
| RequiredTotalDuration | time(7) | |||
| RequiredNoResources | int | |||
| AppointmentEarliestAllowed | datetime | See API reference | ||
| AppointmentLatestAllowed | datetime | See API reference | ||
| FreeText1 | nvarchar(100) | See API reference | ||
| FreeText2 | nvarchar(100) | See API reference | ||
| FreeText3 | nvarchar(100) | See API reference | ||
| FreeText4 | nvarchar(100) | See API reference | ||
| FreeText5 | nvarchar(100) | See API reference | ||
| FreeText6 | nvarchar(100) | See API reference | ||
| FreeText7 | nvarchar(100) | See API reference | ||
| FreeText8 | nvarchar(100) | See API reference | ||
| FreeText9 | nvarchar(100) | See API reference | ||
| FreeText10 | nvarchar(100) | See API reference | ||
| FreeText11 | nvarchar(100) | See API reference | ||
| FreeText12 | nvarchar(100) | See API reference | ||
| FreeText13 | nvarchar(100) | See API reference | ||
| FreeText14 | nvarchar(100) | See API reference | ||
| FreeText15 | nvarchar(100) | See API reference | ||
| FreeText16 | nvarchar(100) | See API reference | ||
| FreeText17 | nvarchar(100) | See API reference | ||
| FreeText18 | nvarchar(100) | See API reference | ||
| FreeText19 | nvarchar(100) | See API reference | ||
| FreeText20 | nvarchar(100) | See API reference | ||
| FreeDecimal1 | decimal(18, 6) | See API reference | ||
| FreeDecimal2 | decimal(18, 6) | See API reference | ||
| FreeDecimal3 | decimal(18, 6) | See API reference | ||
| FreeDecimal4 | decimal(18, 6) | See API reference | ||
| FreeDecimal5 | decimal(18, 6) | See API reference | ||
| FreeDate1 | datetime | See API reference | ||
| FreeDate2 | datetime | See API reference | ||
| FreeDate3 | datetime | See API reference | ||
| FreeDate4 | datetime | See API reference | ||
| FreeDate5 | datetime | See API reference | ||
| FreeBit1 | bit | 0 | See API reference | |
| FreeBit2 | bit | 0 | See API reference | |
| FreeBit3 | bit | 0 | See API reference | |
| FreeBit4 | bit | 0 | See API reference | |
| FreeBit5 | bit | 0 | See API reference | |
| url1 | nvarchar(1000) | |||
| urldesc1 | nvarchar(255) | |||
| url2 | nvarchar(1000) | |||
| urldesc2 | nvarchar(255) | |||
| url3 | nvarchar(1000) | |||
| urldesc3 | nvarchar(255) | |||
| CertificateNo | nvarchar(50) | |||
| RequiredTotalDurationInSeconds | bigint | |||
| DoNotCountAppointmentResource | bit | 0 | ||
| IsComplete | bit | 0 | ||
| PlanningUOM | nvarchar(20) | |||
| PlanningUOMConversion | decimal(18,6) | 0 | ||
| PlanningQty | decimal(18,6) | 0 | ||
| UseFixPlanningQty | bit | 0 | ||
| RoundToUOM | bit | 0 | ||
| AppointmentTemplate | nvarchar(100) | |||
| BulkPlanningQty | decimal(18, 6) | |||
| StartDate | datetime | |||
| EndDate | datetime | |||
| PercentDone | int | |||
| SchedulingMode | int | 0 | ||
| BaseLineStartDate | datetime | |||
| BaseLineEndDate | datetime | |||
| BaseLinePercentDone | int | |||
| DeadLine | datetime | |||
| Index | int | |||
| ConstraintType | int | 0 | ||
| ConstraintDate | datetime | |||
| ParentTaskNo | nvarchar(50) | |||
| CalendarCode | nvarchar(255) | |||
| PredecessorTaskNo | nvarchar(50) | |||
| PredecessorLag | int | |||
| ManuallyScheduled | bit | See API reference | ||
| PerpetuationInSeconds | bigint | See API reference | ||
| ReplaceUrls | bit | 0 | See API reference | |
| Note | nvarchar(max) | |||
| OverRuleGanttPlanning | bit | 0 | See API reference | |
| IgnoreCalendars | bit | 0 | ||
| ContainerName | nvarchar(255) | |||
| ContainerIndex | int |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTask. - Example body:
[{"StoredProcedureName": "mboc_upsertTask","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ShortDescription", "Description"],"ParameterValues": ["BC", "JOB", "JOB001", "TASK001", "Important work", "Important work, but in more words"]}]
See POST /task, PUT /task in the REST API reference.
Delete
Deletes a task record. The behavior of this procedure depends on the CheckAppointments flag:
- When
CheckAppointmentsis true: the task is not deleted when there are appointments for the task. - When
CheckAppointmentsis false: the task is deleted without further checks. When a task is deleted, all appointments attached to the task, if any, are also deleted.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| CheckAppointments | bit | ✔️ | ||
| SentFromBackOffice | bit | 1 |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteTask. - Example body:
[{"StoredProcedureName": "mboc_deleteTask","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "CheckAppointments"],"ParameterValues": ["BC", "JOB", "JOB001", "TASK001", "false"]}]
See DELETE /task in the REST API reference.
Upsert task URI
Inserts or updates a task uri record. A task link contains links to documents, web pages and the back-office system.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| url | nvarchar(1000) | |||
| urldesc | nvarchar(255) |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTaskUrl. - Example body:
[{"StoredProcedureName": "mboc_upsertTaskUrl","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "url", "urldesc"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "https://docs.dimescheduler.com", "Dime.Scheduler docs"]}]
See POST /taskUri, PUT /taskUri in the REST API reference.
Set lock
Locks or unlocks all appointments for the task. A locked appointmentLocked appointmentAn appointment that cannot be moved or edited. The lock is set in the back office, not in Dime.Scheduler, and locked appointments are drawn with shaded stripes. can not be modified nor deleted on the planning boardPlanning boardThe main graphical scheduling surface where dispatchers drag tasks onto resources across a timeline..
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| Locked | bit | 0 | ||
| SentFromBackOffice | bit | 1 |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_updateTaskLocked. - Example body:
[{"StoredProcedureName": "mboc_updateTaskLocked","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "Locked"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "true"]}]
See POST /taskLocked in the REST API reference.
Filter value
Upsert filter value
Inserts or updates a task value record. This assigns a filter valueFilter valueA single value inside a filter group, used as a qualification on a resource or a requirement on a task. to a task.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| FilterGroup | nvarchar(50) | ✔️ | ||
| FilterValue | nvarchar(100) | ✔️ | ||
| TransferToTemp | bit | 0 | See API reference |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTaskFilterValue. - Example body:
[{"StoredProcedureName": "mboc_upsertTaskFilterValue","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "FilterGroup", "FilterValue"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "Skill", "Yodeling"]}]
See POST /taskFilterValue, PUT /taskFilterValue in the REST API reference.
Delete filter value
Deletes a task filter value record. This removes a filter value from a task.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| FilterGroup | nvarchar(20) | ✔️ | ||
| FilterValue | nvarchar(20) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteTaskFilterValue. - Example body:
[{"StoredProcedureName": "mboc_deleteTaskFilterValue","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "FilterGroup", "FilterValue"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "Skill", "Yodeling"]}]
See DELETE /taskFilterValue in the REST API reference.
Clear filter value
Deletes all task filter value records. This removes all filter values from a task.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_clearTaskFilterValue. - Example body:
[{"StoredProcedureName": "mboc_clearTaskFilterValue","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001"]}]
This endpoint is not available yet.
Task container
Upsert task container
Inserts or updates a task container.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| ContainerName | nvarchar(255) | ✔️ | ||
| Index | int |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTaskContainer. - Example body:
[{"StoredProcedureName": "mboc_upsertTaskContainer","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ContainerName"],"ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "PROJECT_ABC"]}]
See POST /taskContainer, PUT /taskContainer in the REST API reference.
Delete task container
Removes the task container.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | See API reference | |
| SourceType | nvarchar(10) | ✔️ | See API reference | |
| JobNo | nvarchar(50) | ✔️ | ||
| TaskNo | nvarchar(50) | ✔️ | ||
| ContainerName | nvarchar(255) |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteTaskContainer. - Example body:
[{"StoredProcedureName": "mboc_deleteTaskContainer","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ContainerName"],"ParameterValues": ["BC", "JOB", "JOB001", "JOBTASK001", "PROJECT_ABC"]}]
See DELETE /taskContainer in the REST API reference.
Task dependency
A dependency says that one task cannot be scheduled freely because another task constrains it. The Gantt chartGantt chartA timeline view for long-term project planning, showing tasks, durations, dependencies and milestones. uses dependencies to work out the order of a projectProjectA job seen as a whole in project planning: a body of work with a budget, a team, dependencies and a deadline. Its tasks are still planned as ordinary appointments on the board. and to find its critical path.
Tasks carry PredecessorTaskNo and PredecessorLag, which express a single predecessor within the same job. A task dependency is the richer form: it links any two tasks, across jobs if needed, it lets one task have several predecessors, and it lets you choose which ends of the two tasks are tied together.
Use the fields on the task for the simple case, and this entity when a task has more than one predecessor or when the relationship is not a plain finish-to-start.
Upsert task dependency
Creates or updates the dependency between two tasks.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| FromJobNo | nvarchar(50) | ✔️ | |
| FromTaskNo | nvarchar(50) | ✔️ | |
| ToJobNo | nvarchar(50) | ✔️ | |
| ToTaskNo | nvarchar(50) | ✔️ | |
| Type | int | ||
| Lag | int | ||
| LagUnit | nvarchar(50) |
The dependency runs from the first task to the second: From is the predecessor, To is the task that depends on it. The four task identifiers together are the dependency's identity, so sending the same pair again updates the existing link rather than adding a second one.
Type selects which ends of the two tasks are tied together:
| Value | Type | Meaning |
|---|---|---|
0 | Start to start | The successor cannot start before the predecessor does. |
1 | Start to end | The successor cannot end before the predecessor starts. |
2 | End to start | The successor cannot start before the predecessor ends. |
3 | End to end | The successor cannot end before the predecessor does. |
Lag adds a delay to the relationship, and LagUnit is the unit it is expressed in. A task cannot depend on itself; that request is rejected with APP012.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTaskDependency. - Example body:
[{"StoredProcedureName": "mboc_upsertTaskDependency","ParameterNames": ["SourceApp", "SourceType", "FromJobNo", "FromTaskNo", "ToJobNo", "ToTaskNo", "Type"],"ParameterValues": ["BC1", "JOB", "JOB001", "1000", "JOB001", "1010", "2"]}]
See POST /taskDependency, PUT /taskDependency in the REST API reference.
Delete task dependency
Removes the dependency. Both tasks are left untouched.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| FromJobNo | nvarchar(50) | ✔️ | |
| FromTaskNo | nvarchar(50) | ✔️ | |
| ToJobNo | nvarchar(50) | ✔️ | |
| ToTaskNo | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteTaskDependency. - Example body:
[{"StoredProcedureName": "mboc_deleteTaskDependency","ParameterNames": ["SourceApp", "SourceType", "FromJobNo", "FromTaskNo", "ToJobNo", "ToTaskNo"],"ParameterValues": ["BC1", "JOB", "JOB001", "1000", "JOB001", "1010"]}]
See DELETE /taskDependency in the REST API reference.
Read
GET /task reads tasks back; there is no import procedure for reading. By default it returns only open tasks. Pass isOpen=false to include closed and fully planned tasks as well. That list is served in pages, so page (1-based) and pageSize (1 to 1000) are required with it and optional otherwise, and a page that comes back shorter than pageSize is the last one. See the REST API reference.
Task budget entry
A budget entryBudget entryA record of budget consumed by a task over a range of days, kept in an append-only ledger. A correction is a new entry that cancels an earlier one, so the history stays auditable. records a change to a task's budget: hours used, or hours added. Entries are the ledger behind the budget of a project, and the ledger is append-only. Nothing is ever edited; a mistake is corrected with a second entry that cancels the first, and a negative entry gives budget back.
The task's budget figure itself is set with RequiredTotalDurationInSeconds on the task. Use entries for what has been consumed against it, typically posted figures from the back office.
Upsert task budget entry
Appends an entry, or rewrites the one a previous call created.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| JobNo | nvarchar(50) | ✔️ | |
| TaskNo | nvarchar(50) | ✔️ | |
| DeltaInSeconds | bigint | ✔️ | |
| PeriodStart | date | ✔️ | |
| PeriodEnd | date | ✔️ | |
| Source | int | 2 | |
| Description | nvarchar(500) | ||
| ExternalId | uniqueidentifier |
DeltaInSeconds is the change: negative to use budget, positive to add to it. Zero is refused, and so is a PeriodEnd before PeriodStart.
Source says where the figure came from:
| Value | Source | Meaning |
|---|---|---|
0 | Planning | Written by the scheduled job, from the task's appointments. |
1 | Timesheet | Written by the scheduled job, from the task's time entries. |
2 | Manual | Recorded by hand. The default. |
3 | Budget | Written by the task import when the task's budget figure changes. |
4 | External | Supplied by another system, for example a posted figure from Business Central. |
Without ExternalId every call appends a new entry, which is what an append-only ledger expects, but it also means a retried import writes the figure twice. Send your own ExternalId and the call becomes safe to repeat: a second call with the same identity rewrites that entry instead of twinning it, and it is also the address the delete takes. An identity that already belongs to an entry on another task is refused with REQ003 rather than moved.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertTaskBudgetEntry. - Example body:
[{"StoredProcedureName": "mboc_upsertTaskBudgetEntry","ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "DeltaInSeconds", "PeriodStart", "PeriodEnd", "Source", "ExternalId"],"ParameterValues": ["BC1", "JOB", "JOB001", "1000", "-14400", "2026-03-16", "2026-03-16", "4", "6f1c2e8a-9b3d-4c7e-a1f0-2d5b8c9e7a11"]}]
See POST /taskBudgetEntry in the REST API reference.
Delete task budget entry
Removes the entry addressed by ExternalId. Only entries written with an identity can be deleted this way; one written without is corrected with a cancelling entry instead.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| JobNo | nvarchar(50) | ✔️ | |
| TaskNo | nvarchar(50) | ✔️ | |
| ExternalId | uniqueidentifier | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteTaskBudgetEntry.
See DELETE /taskBudgetEntry in the REST API reference.
API Reference
Requested dates
This set of fields are behavioral data. See requested dates for more info.
Requested times
This set of fields are behavioral data. See requested times for more info.
Source
Dime.Scheduler is a centralized planning application. One of its key tenets is the ability to accommodate data from different origins. For instance, it is perfectly acceptable to plan work orders from Business Central, CRM, imported Excel sheets, etc., and Dime.Scheduler won't break a sweat because of the existence of the Source App and Source Type fields in the data model.
Source App
When the planner creates an appointment for a resource or task, Dime.Scheduler knows which system to notify. Through the connector setup, Dime.Scheduler will find a matching SourceApp and subsequently send the appointment to the corresponding URI.
The source appSource appAn identifier Dime.Scheduler attaches to data so it can route a change back to the correct back-office system. field is a unique identifier that identifies a back-officeBack officeThe ERP or business system Dime.Scheduler plans for - most often Microsoft Dynamics 365 Business Central. It owns the master data and remains authoritative over what it receives. instance such as a tenant of Business Central, a test environment, an instance of CRM cloud, or any other application you wish to use to feed data into Dime.Scheduler.
The back office is bound to a connector
Each back-office instance - a Business Central tenant, a CRM environment, an Excel sheet - is identified by a Source App. The connector is configured for that one Source App and nothing else, so Dime.Scheduler always knows which system any record came from.
Source Type
The SourceType is used inside the back-office system itself. A source typeSource typeAn identifier that, together with the source app, tells Dime.Scheduler which back-office table a record belongs to. represents a distinct entity such as a service orderService orderA Business Central service management document. The service order solution plans it as one task or as one task per service item line, and writes the assignment back as a resource allocation., production orderProduction orderA Business Central manufacturing order with routing lines. The production routing solution puts those lines on the planning board against work and machine centers while BC’s own rules still hold., assembly orderAssembly orderA Business Central document that says what to build. The assembly order solution schedules the resources that build it and keeps the order’s dates in sync., etc.
The standard connectorsConnectorAn integration that links Dime.Scheduler to a back-office system, routing data in and scheduling decisions back out. that Dime Software provides make it possible to plan different types of resources and tasks. When Dime.Scheduler posts an appointment to a standard connector, it ends up in a staging tableStaging tableThe Dime.Scheduler Appointments table in Business Central where incoming appointments land first. Business Central processes rows from there, so a row can be received and still fail processing., which is then processed by the connector to ensure the appointment produced in Dime.Scheduler is traced back to the original record using the externally identifiable fields (JobNo, TaskNo, ResourceNo) that identify the record.
Infinite
When set to true, the task will always remain available in the open task list. Typical examples include holiday and sickness tasks.
Time windows
The earliest and latest allowed dates make it possible to define a date range in which the task has to be scheduled. See allowed date constraints for more information.
Task type
Planning can be done in two ways: through the planning board or through the Gantt chart. When the task type is the latter (value 1), drag and drop will be disabled in the open task list, and planning will need to be done through the Gantt chart.
Read more on task types.
Importance
Controls the visual indicator of the planned task in the planning board. Read more about importance.
Subject and body
Through the field template setup, the task's subject and body is set when imported in Dime.Scheduler.
Category
Controls the visual indicator of the planned task in the planning board. Read more about categories.
Time Marker
Controls the visual indicator of the planned task in the planning board. Read more about time markers.
Pin
Controls the visual indicator of the planned task in the map. Read more about marker colors.
Tags
Tags are currently in preview. Functionality and behavior may change between releases.
A semicolon-delimited list of tag codes, for example URGENT;NIGHTSHIFT. Unlike the category, which is a single value, a task can carry as many tags as fit within the 1000 characters. Codes that do not match a tag are stored but render as nothing.
Omitting the parameter and sending an empty value mean different things:
- Omitted (
NULL) means "not provided". The stored tags are kept. A connector that knows nothing about tags therefore never wipes the tags a planner set by hand. - Empty string means "no tags", and clears them.
When a task is planned on the board, the new appointment inherits the task's tags. From that point the two are independent: later updates to the task's tags do not reach the appointments that were already created. Read more about tags.
Gantt planning
An update to an existing task has to settle who owns its plan: the back office that sends the task, or the planner who moved it in the Gantt chartGantt chartA timeline view for long-term project planning, showing tasks, durations, dependencies and milestones.. OverRuleGanttPlanning decides that for the planning fields: StartDate, EndDate, PercentDone, PerpetuationInSeconds, RequiredTotalDurationInSeconds, SchedulingMode, the baseline fields, DeadLine, ConstraintType, ConstraintDate, CalendarCode, Note and ManuallyScheduled.
0(default) keeps the planning already stored in Dime.Scheduler. The values in the call only fill fields that are still empty, so a resync from the back office never undoes what a planner did in the Gantt chart.1writes the planning fields sent in the call over the stored ones. Fields left out of the call keep their stored value, so sending only new dates moves the bar without resetting the rest of the plan.
A new task always takes the values sent, whatever the flag. Use 1 when the back office owns the dates and should push them, for instance when the plan is made there and Dime.Scheduler only shows it.
Manually scheduled
A manually scheduled task keeps the dates you gave it. Dime.Scheduler will not move it when the Gantt recalculates the plan around it, which is what you want for a task pinned to a fixed date by a customer commitment or a permit.
The parameter has three states rather than two, and the difference matters for connectors:
- Omitted (
NULL) means "not provided", and the stored value is kept. 1makes the task manually scheduled.0hands scheduling back to the Gantt.
On an existing task, 1 and 0 only take effect together with OverRuleGanttPlanning set to 1. Without it the stored value wins, as for every other Gantt planning field.
This is a change in behaviour: the parameter used to default to 0, so a connector that never sent it was implicitly setting every task to automatically scheduled on each update. It now leaves the stored value alone, which means a planner's choice survives a resync. If your integration relied on the old behaviour, send 0 explicitly.
Perpetuation
Two different questions can be asked about how long a task takes: how much work it contains, and how long its bar should be on the Gantt chart. Usually the answer is the same, and RequiredTotalDurationInSeconds covers both: it is the effort the task expects, and it also sets the bar's duration.
They come apart when a task should stretch across more of the calendar than its effort implies, for instance four hours of work that has to be spread over three days. PerpetuationInSeconds is what sets the bar's duration in that case, independently of the effort.
Perpetuation is counted in seconds of working time on the task's calendar, not in wall-clock time, so a non-working day does not consume any of it.
Two cases to keep in mind:
- Omitting the parameter, or sending
0, keeps the stored value. To clear the effort budget instead, send0forRequiredTotalDurationInSeconds. - On an existing task, a supplied duration replaces the stored one only when
OverRuleGanttPlanningis1. Without it, the supplied duration is used only when the task has none stored yet. - Perpetuation is ignored for a manually scheduled task that has both a
StartDateand anEndDate, since the bar then simply spans its dates.
Replacing urls
By default, sending url parameters for a task that already has urls does nothing: the stored urls win. That protects urls a planner added by hand from being overwritten every time the back office resyncs the task.
Pass ReplaceUrls as 1 when the back office is the owner of the task's urls and should overwrite whatever is stored.
Free fields
Free fieldsFree fieldOne of the unmapped fields on jobs, tasks and appointments that a back office can fill with its own data, each with a localizable caption. are unmapped fields that you can link custom fields to.
The captionCaptionThe label shown for a field or entity in the interface, translatable per language. A tenant that calls jobs "projects" changes the caption, not the data model. can be changed through the captions localization system. Either use the GUI and look for the corresponding field of the corresponding source table for the 'DATABASEFIELD' context, or use the API.
Transfer to temp
The TransferToTemp field indicates whether the task filter value(s) are being sent to Dime.Scheduler before (value = 1 or True) or after (value = 0 or False) the task is sent.