Skip to main content

General

The FastTrack wizard gets a connection running fast, but it deliberately leaves two switches off the happy path. Both live on the 'Dime.Scheduler Setup' page, and both decide how Business Central behaves when planning data and order data fall out of sync:

  • Check appointments on delete
  • Notify appointment errors

This page explains what each one does and when you want it on.

tip

You can find the wizard by looking for Dime.Scheduler Setup in the search bar.

Connector Setup

Check appointments on delete

Picture the everyday slip: someone removes an order from Business Central that still has planning sitting in Dime.Scheduler. Delete it blindly and that planning is gone with it. With this switch on, Business Central stops you instead:

The specified job JOB12345 cannot be deleted because it is associated with existing appointments. Please remove the appointments first, or retry this command with CheckAppointments set to 0.

The message already names the lever. Behind it, Dime.Scheduler's API exposes a CheckAppointments flag on both the job and task delete endpoints, which decides whether to confirm it is safe to remove the record before any planning data is lost:

  • When set to true, the message above is thrown and the job is not removed from Dime.Scheduler.
  • When switched off, the job is removed along with all underlying tasks and planned appointments.

The global Check appointments on delete setting is what the Dime.Scheduler extension in BC reads, then passes along with every request to remove tasks and jobs. It applies globally, so you set the safe default once. When a particular flow needs to behave differently, you can override it with custom extensions built on top of Dime.Scheduler's extension in Business Central.

Notify appointment errors

Dime.Scheduler keeps a trail of every interaction it initiates with connected backoffice systems like Business Central, Exchange, and webhook connections. This audit trail is available inside Dime.Scheduler itself, and it is where you go to confirm that a piece of planning actually made it across.

There is a subtlety in what "made it across" means. When Dime.Scheduler posts data to the connected system, it marks that transaction as successful the moment the data is written to the Dime.Scheduler Appointments table, the staging table on the BC side. From there a routing table, the Dime.Scheduler Source Types list, invokes a code unit whenever a new item is added to the list. That happens on every insert, update, or removal of an appointment in Dime.Scheduler, and the code unit processes the planning information Dime.Scheduler provided.

The catch is that landing in the staging table is not the same as being processed, and processing can fail for many reasons. In the image below the assigned resource is missing a 'Unit of Measure':

DS Appointments

So the appointment carries the status Error in BC, even though Dime.Scheduler considers it sent successfully. Without any feedback, the planner is left wondering why the appointment never showed up in the expected tables. The staging table is there for diagnostics, but reading it is a developer's job, not a planner's.

That is the gap this switch closes. With 'Notify appointment errors' set to true, any error produced in BC is sent back to Dime.Scheduler as a 'Notification':

DS Appointments

The failure now surfaces where the planner is already working, instead of going silent until someone digs through the staging table. Turning the switch on trades that confusion for a clear signal.

Here is how the transaction system works in Dime.Scheduler in tandem with Business Central. Step through the happy path on the USA tenant and then the failure case on the Canadian tenant:

BC: USA tenantBusiness Central
BC: Canada tenantBusiness Central
USA orders
Dime.SchedulerPlanning board
Inbound · USAStep 1 of 8

USA tenant sends work

The USA Business Central tenant pushes its jobs, tasks, and resources into Dime.Scheduler. Every record is tagged with a Source App so it can be routed back to the right tenant later.