Skip to main content

Source Types

Every record that flows between Business Central and Dime.Scheduler carries two strings: Source App and Source Type. Together they answer a single question that the integration cannot work without: when a planner schedules something on the board, which system and which table does that appointment belong back in? You've almost certainly set up Source App already, since it's required just to establish the connection between BC and Dime.Scheduler. Source Type is the field that does the actual routing, and this page is about how that routing works. First, a quick recap of what both fields mean.

Definitions

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 app field is a unique identifier that identifies a back-office 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.

Back officeERP · CRM · LoB
served bySource App
ConnectorBound to one Source App
creates
JobProject container
contains
TaskWork to do
scheduled as
AppointmentPlanning decision
Step 1 of 4Back office Connector

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 type represents a distinct entity such as a service order, production order, assembly order, etc.

The standard connectors 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 table, 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.

How it works

In the standard connector for Dime.Scheduler in Business Central, you don't create source types by hand. The FastTrack wizard or the Dime.Scheduler setup page does it for you: whenever you enable a module, a new entry appears in the Dime.Scheduler Source Types list.

Connector Setup

tip

Hit ALT + Q and look for Dime.Scheduler Source Types in the search bar to locate this table.

A source typeSource typeAn identifier that, together with the source app, tells Dime.Scheduler which back-office table a record belongs to. identifies a coherent area in Business Central. The standard connector defines the following types and associates each with the corresponding BC tables:

Source TypeTable(s) used
Resource156
Service5900, 5901
Job167, 1001, 1003
Assembly900
Production99000754, 99000758, 5405, 5409, 99000754, 99000758
Sales36, 37
HR5206, 5207

These types ship out of the box together with the code units that handle the appointment information coming back in. Note that a single source type can map to several tables: a 'Job', for instance, spans the job header, a job task, job planning lines, and any other level you need. You're free to add your own source types too and link them to a custom table. Underneath, a source type is just a string, and that string is what drives the routing the moment a new appointmentAppointmentA task scheduled to a resource for a specific period - the scheduled instance you see on the planning board. lands in the Dime.Scheduler Appointments table.

Every taskTaskA unit of work that belongs to a job. It appears in the open task list until it is scheduled to a resource. that needs planning is pinned down by four pieces of identity:

  • Source AppSource appAn identifier Dime.Scheduler attaches to data so it can route a change back to the correct back-office system.: a unique string describing which administration or system owns the record. Dime.Scheduler uses it to find the matching backoffice systems to send appointment information back to. A single source app can have multiple connectors. A common pattern is to write data back to BC and also invoke a webhook to send emails, run Power Automate flows, and so on.
  • Source Type: a unique string indicating which table the record came from. This is what prevents duplicate numbers from colliding. 'ORDER002' might exist in several tables; decorating a task with a source type lets the system tell them apart, so SALES ORDER002 and SERVICE ORDER002 can happily coexist.
  • Job No: typically the No. field at the header level of the order.
  • Task No: the No. field of the level the customer actually wants to plan. When planning at the header level, Task No is identical to Job No. in Dime.Scheduler.

To the planner, this is mostly invisible metadata, right up until the moment they schedule a task on the planning boardPlanning boardThe main graphical scheduling surface where dispatchers drag tasks onto resources across a timeline.. That's when it earns its keep: Dime.Scheduler reaches out to the systems that asked to be notified, specifically the connectors that match the job's 'Source App', and hands them the planning data.

Not every system cares about the 'Source Type'. The standard Exchange connector, for example, ignores it entirely, since the appointment only needs to land in the resource's Outlook calendar. The Business Central integration is the opposite case: without the source type it has no way of knowing which table to write back to. Consider a task tied to a...

  • ...service item line, which you may want to process as a resource allocation.
  • ...job task, which you may want to process as a job planning line.
  • ...cause of absence, which you may want to process as an employee absence registration.
  • ...custom table, which you'll probably want to process into a custom table as well.

The standard extension ships workflows for every supported source type listed above. For each entry in the source types table you specify a code unit to run for every incoming appointment with that source type; when Dime.Scheduler finds a match, it executes that code unit. That single hook is what leaves the door wide open for customization. You can override the handling logic while keeping the default source types, or replace both with your own source types and your own handling code units.

Connector Setup

In the example above, the incoming appointment is routed to code unit no. 2087646, which writes the appointment information back to the job using the default functionality shipped in our standard extension.

Source Types table

The table itself is small, but what you put in it decides exactly how planning data from Dime.Scheduler is processed in Business Central.

Field, tab or groupDescription
Source Table No.Enter the table number or select it from the list for each table that is sent to Dime.Scheduler (e.g., 5901, Service Item Line or 1001, Job Task).
Source TypeDefine the identifier of the source type. Use a concise and descriptive value (max. 10 characters) like 'SERVICE', 'JOB', 'TRANSPORT', etc.
Processing Codeunit No.Enter the number of the codeunit that processes planning data coming from Dime.Scheduler into Business Central.
Appointment Template CodeIn Dime.Scheduler, you can define custom fields on an appointment card. You can have different fields based on the type of task using an appointment template. Specify the appointment template code for the task, based on the source type. For more information about appointment templates refer to this doc.
Action Report No.The report to run when the user selects an action URI for this source type. Leave 0 (zero) to use the standard report DS Action Launch. The report parses the parameters passed by Dime.Scheduler as field filters and then launches the defined codeunit (see below)
Action New DescriptionAction new is the URI shown when the user opens the context menu in the planning board. The description or caption is shown to the user.
Action New Codeunit No.The codeunit executed by the report defined in Action Report No.
Action Edit DescriptionAction Edit is the URI shown when the user opens the context menu of an appointment with matching source app and source type fields. The description or caption is shown to the user.
Action Edit Codeunit No.The codeunit executed by the report defined in Action Report No.

The "Send Action URI" command button generates and sends the ActionURI to Dime.Scheduler for both 'Action New' and 'Action Edit', as long as a value is entered in the respective description field.

Diagram

The diagram below summarizes how the integration framework between Dime.Scheduler and Business Central fits together.

It starts in Business Central, where users create orders that need to be planned in Dime.Scheduler. Each record sent from BC carries a Source App and Source Type field. The Source App is always the same and comes from the configuration item in the FastTrack wizard, while the Source Type typically differs across the various tables in play.

When an appointment is planned, Dime.Scheduler sends that information back to whichever systems want to be notified, which you configure on the Connectors page in Dime.Scheduler. Once Dime.Scheduler has deposited the appointment info in the backoffice system, processing it is that system's job. You can lean on the standard connectors that Dime Software has developed, or supply your own logic.

The standard connector for Dime.Scheduler in Business Central supports multiple tables, and that's exactly where the Source Type comes in. Dime.Scheduler posts all planning lines to the Dime.Scheduler Appointments table in Business Central and triggers a workflow that looks up the matching source type and invokes the corresponding code unit to write back to the right table.

Dime.SchedulerPlanning board
BC: Dime.Scheduler Appointmentsstaging
SourceAppSourceTypeJobNoTaskNoResource
BC-USASERVICESO-00103410Tom Vance
Source-type router
Service Item LineTable 5901 · CU 2087645
Job Planning LineTable 1003 · CU 2087646
Prod. Order RoutingTable 5409 · CU 2087647
Appointment 1 of 4Source Type SERVICEService Item Line

A service appointment is routed to the Service Item Line

The appointment carries the SERVICE source type, so the workflow looks up the matching row in the Dime.Scheduler Source Types table and invokes the code unit configured there. The result lands on the service item line as a resource allocation.