Dynamic Resource Scheduler
Whats New!
User Experience Changes
Security and Authentication
Modules and Utilities
Cyclical Scheduling - Configuration Interface
Cyclical Scheduling - Now Bulk Scheduling
Resource Quotas Improvements - Percentages
Architecture and Scheduling
Configuration
User Guides and Help
Get to Know Dynamic Resource Scheduler
How Does Dynamic Resource Scheduling Work
Speaking the Language of Scheduling
Navigating Dynamic Resource Scheduler
How your Data Links Together
Managing your Organisation
Viewing your Data
Your Customer Data
Your Service Orders
Your Jobs
Your Workers and Resources
Manage Your Tasks
Actioning your Jobs and Tasks
Job Templates
Find A Jobs Possible Workers
Locking Your Jobs
Create a Follow On Task
User Queues and Organising Your Tasks
Schedule and Organise
How to Optimise Your Scheduling
How to Schedule Manually
Scheduling Mutliple Jobs at Once
Reassign and Reschedule your Tasks
Managing Your Time and Durations
Managing your Comments and Contacts
Using Bookmarks to Drive Efficiency
Managing Your Job Status
Visualising Your Planning
Workers and Resources
Advanced Data Management
Creating Unavailability in your Workforce
Adding an Unavailability to an Individual Worker
Creating Unavailabilities for Multiple Days or Workers
Maps And Journey
Using Maps to Visualise Your Data
Using Maps With Your Data
Learn about our Closest Function
Your Journeys
Meetings and Non-Productive Planning
Administer Your Scheduler
Managing Your Organisations and Agencies
Managing Your Custom Data
Managing your Contracts
Customising Your Experience
Managing Depots and Starting Locations
Managing Diary Bookmarks
Managing your External Chart Views
KPI Settings
Managing Your Priorities
Learn about Sectors
Managing Your Follow On Templates
Get To Know Your Working Time Calendar
Managing your SOR Templates
Managing your Job Templates
Managing Your Vocabulary
Managing Your Bookmarks
Manage Your Customer Templates
Get to Know Import and Export
Managing Your Tenant Code Rules
Managing your Order Templates
Managing Your Unavailability Reasons
Get To Know Your Working Time Calendars
Managing your Worker Templates
Releases and Readiness
DRS 6, DRS 5.7 and Job Manager
User Guides and Help
Get to Know DRS
Dynamic Scheduling - How does it work
Navigating DRS
Vocabulary and Concepts
Customers
Orders
Jobs
Scheduling Jobs
Job Functions
Workers
Views
Object Inheritance
Agencies
DRS Modules
Scenario Based Planning
Managing your SMS Service
5.7 Documentation
Technical Documentation
Release Notes
DRS 6.1 Release Notes
DRS 6.1.22 - February 20, 2026
DRS 6.1.21 - September 10, 2025
DRS 6.1.20 - April 20th, 2025
DRS 6.1.19 - 11th April, 2025
DRS 6.1.18 - 13 February 2025
DRS 6.1.17 - 20th December 2024
DRS 6.1.16 - November 8th, 2024
DRS 6.1.15 - October 10th, 2024
DRS 6.1.14 - 6th September 2024
DRS 6.1.13 - 9th August 2024
DRS 6.1.12 Release Notes
DRS 6.1.11 Release Notes
DRS 6.1.10 Release Notes
DRS 6.1.9 Release Notes
DRS 6.1.8 Release Notes
DRS 6.1.7 Release Notes
DRS 6.1.6 Release Notes
DRS 6.1.5 Release Notes
DRS 6.1.4 Release Notes
DRS 6.1.3 Release Notes
DRS 6.1.2 Release Notes
DRS 6.1.1 Release Notes
DRS 6.1.0 Release Notes
DRS 6.0 Release Notes
DRS 6.0.0.0 Release Notes
DRS 6.0.0.1 Release Notes
DRS 6.0.0.2 Release Notes
DRS 6.0.0.3 Release Notes
DRS 6.0.0.4 Release Notes
DRS 6.0.0.6 Release Notes
DRS 6.0.1.0 Release Notes
DRS 6.0.1.1 Release Notes
DRS 6.0.1.2 Release Notes
DRS 6.0.1.3 Release Notes
DRS 6.0.1.4 Release Notes
DRS 6.0.1.5 Release Notes
Kirona Housing
Job Manager 9
Job Manager 9.3.0 - October 2024
Job Manager 9.1.0 - December 2022
Job Manager 9.2.0 - November 2023
Release Notes Disclaimer
Administering your Field Service Products
Supported Versions Policies
Contents
- All categories
- DRS 6, DRS 5.7 and Job Manager
- Administering your Field Service Products
- Administering DRS
- Configuring your System
- Background Services Push API
Background Services Push API
Updated
by Andrew Dotto
Purpose
This article is written to provide support and understanding for the Background Services function which enables the following push notifications:
- Appointment Confirmation
- Appointment Cancellation
- Unavailabilities
What is the Background Service
The DRS Background Service provides an Outbound Push notification service for 3rd party API's to consume for various actions performed by both Users and Automated Services within DRS.
How does the Background Service work
The Background service is a timed function to deliver formatted XML data through the DRS WebService Gateway API. All output from the Background Service is logged within the DRS Database and managed by the Housekeeping service.
As actions are performed within the product, whether they be by User action or Automated Service, an entry is made into the Background Services activity table. When tasks are processed by the relative services, a log of the output is created within the database. The Background Services activity table is updated with the outcome and the entry is marked as Actioned.
A number of formatted outputs are available;
Booking Confirmations
When a job is created and scheduled, a row will be added to tblbackgroundTasks until the Appointment Confirmation Data Extract runs via Background or Utility Service.
When a confirmation is processed through the WebService or Flat File gateway, the entry is marked as actioned.
Booking Cancellations
When a user deletes a booking, DRS writes a notification row within logging tables that track object deletions. The Cancellelation service periodically extracts the data from logging tables and writes it into the two archiving tables to ensure that if the sync database needs to be re-built then booking cancellation details are not lost. The Service also writes a row into the Background Services activity table.
When a Cancellation is processed through the WebService or Flat File gateway, the entry is marked as actioned.
Booking Completions
A timed service runs which reviews all Job Objects which have been set to a status of 'Completed' since the last time the service was run. On each run, the service adds an entry into the Background Services activity table. Order and Job information is sent for each entry within the activity table for consumption by third party API's.
When a Completion is processed through the WebService or Flat File gateway, the entry is marked as processed.
Unavailabilities
DRS can send a formatted XML output for Unavailabilities each night. The output contains all Unavailabilities for the previous day for each resource. This service runs as a two part function. Data is intiially extrracted for processing in bulk, this is then transformed for output through the API. On completion of the output, the date of the logged last extract time is updated. This extract is then processed and trasformed for output through the API to the third party API.
Only Unavailabilities scheduled since the last known extraction are processed through this function.
Background Service API
The DRS background service uses a standard interface output for all third party API's. Each API function provides a fixed set of data points which are associated with the object in question. Some datapoints within this output can be supressed to limit the data transmission size.
Booking Confirmation
The Booking Confirmation output will, by default, include these fields;
Booking Information
Field Name | Data Type | Length | Description |
bookingId | Text |
| An integer containing the unique id for the Booking |
primaryOrderNumber | Text | 50 | Primary Order Number |
secondaryOrderNumber | Text | 50 | Secondary order number (optional) |
tertiaryOrderNumber | Text | 50 | Order number from third interfacing application (optional) |
tokenId | Text | 50 | The token Id originally assigned by Xmbrace for the booking |
planningWindowStart | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 01-JUN-2005 13:30 |
planningWindowEnd | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 03-JUN-2005 17:30 |
targetDate | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 03-JUN-2005 17:30 |
bookingReason | Text | 50 | Reason the planning window was changed. The reasons are held on a table and can be defined for each implementation. The first time an appointment is created this is set to ‘FIRST’. |
bookingSequence | Text | 50 | Indicates if this was the first or a follow on booking. For multi-day jobs where several bookings are created, each booking has a value of FIRST. ‘FIRST’ or ‘FOLLOW ON’ |
originalBookingId | Text | 50 | Where this is a FOLLOW ON, this is the unique id of the original booking for which it is a follow on. |
numberOfOperatives | Integer |
| The no of non-supplementary operatives required by the template associated with the booking |
userId | Text | 50 | User Id of the person scheduling the job or changing the planning window |
changedDate | DateTime |
| e.g. DD-MMM-YYYY 00:00 01-JUN-2005 13:30 |
contract | Text | 50 | Contract to which the appointment relates. Note: This may be used to hold the ’Programme of Work’ (in Housing terms) to which the work belongs, which is the code for the contractual arrangement. |
Booking Codes
Field Name | Data Type | Length | Description |
orderId | Integer |
| The unique id of the order within Opti-Time |
bookingId | Integer |
| The unique id of the booking within Opti-Time |
bookingCode (SOR code) | Text | 50 | The code value |
primaryOrderNumber | Text | 50 | The primary order number of the order which must be unique. This is the reference from the first application interfacing with Opti-Time. |
Quantity | Text | 50 | How many booking codes |
standardMinuteValue | Text | 50 | The number of minutes it will take to complete the booking code. |
itemNumber (within booking) | Text | 50 | A way to sequence booking codes within a booking. |
itemValue | Text | 50 | The value in monetary terms of the booking code. |
Trade | Text | 50 | The trade the booking code belongs to. |
bookingCodeDescription | Text | 250 | A description to override the stored description for this booking code. |
Comments | Text | 250 | Any comments about the booking code |
Reference | Text | 50 | A reference value that can be used by other applications to identify the booking code. |
Unavailability Notification
The Unavailability Notification will, by default, include these fields;
Field Name | Data Type | Length | Description |
Action | Text | 50 | The action |
ResourceId | Text | 50 | The DRS resource Id |
OperativeId | Text | 50 | The resource Id in the application communicating with Opti-Time |
PeriodStart | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 01-JUN-2005 13:30 |
PeriodEnd | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 03-JUN-2005 17:30 |
Reason | Text | 50 | Reason for the unavailability, e.g. absence |
Comments | Text | 50 | Comments about the unavailability, e.g. dentist |
Booking Cancellation
The Booking Cancellation Notification will, by default, include these fields;
Booking Information
Field Name | Data Type | Length | Description |
bookingId | Text |
| An integer containing the unique id for the Booking |
primaryOrderNumber | Text | 50 | Primary Order Number |
secondaryOrderNumber | Text | 50 | Secondary order number (optional) |
tertiaryOrderNumber | Text | 50 | Order number from third interfacing application (optional) |
tokenId | Text | 50 | The token Id originally assigned by Xmbrace for the booking |
planningWindowStart | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 01-JUN-2005 13:30 |
planningWindowEnd | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 03-JUN-2005 17:30 |
targetDate | DateTime |
| e.g. DD-MMM-YYYY 00:00:00 03-JUN-2005 17:30 |
userId | Text | 50 | User Id of the person cancelling the booking |
changedDate | DateTime |
| e.g. DD-MMM-YYYY 00:00 01-JUN-2005 13:30 |
contract | Text | 50 | Contract to which the booking relates. Note: This may be used to hold the ’Programme of Work’ (in Housing terms) to which the work belongs, which is the code for the contractual arrangement. |