The CST process will select from the CST queue. Each eligible load active in CST will have only one corresponding entry in the CST queue. Once a queue entry is picked, it will not be available until it is ready for the next step, so multiple services/horizontal scaling is possible on the CST server. Each service will just read from the queue for eligible entries that have not been picked by other services.
The following describes the process flow of the queue based CST when Global CST is enabled:
Whenever a load is eligible to enter CST, for example, via Set to Planned, manual start CST or resume CST, an entry will be created/reactivated in the CST Queue Table with Scheduled Start Date/Time equal to the current system date/time, and Queue Entry Status equal to Waiting.
A queue entry will be eligible for processing when its Scheduled Start Date/Time is equal or earlier than the current system date/time and its Queue Entry Status is Waiting. Once the queue entry is picked for processing, its Queue Entry Status will be updated to Processing.
When the queue entry is processed (i.e. the load is tendered), the Tender Response Required By Date/Time (expressed in time zone of the system) for the current carrier will be used to update the Scheduled Start Date/Time for the current queue entry. When global CST Auto Cancel Tender is enabled, then the Queue Entry Status will be updated back to Waiting after the Load is tendered. That means without carrier response or employee intervention, this queue entry will not be processed until the new Scheduled Start Date/Time is reached, i.e. the current tender has expired. When CST Auto Cancel Tender is disabled, the Queue Entry Status will be updated to Hold, which means that even when Tender Response Required By Date/Time has been reached, the queue entry will not be processed until carrier responds or employee cancels the tender. For each subsequent tender, the Tender Response Required By Date/Time for the current carrier will be used to update the Scheduled Start Date/Time for the corresponding queue entry.
When an employee updates the load’s Tender Response Required By Date/Time, the queue entry’s Scheduled Start Date/Time will be set to equal to the new Tender Response Required By Date/Time.
When a carrier accepts the tender, the CST Status for the load will be set to Completed and the Queue Entry Status will also be set to Completed.
When a carrier rejects the tender or an employee cancels the tender, the queue entry’s Scheduled Start Date/Time and status will be set to be equal to the current system date/time and Waiting. This will cause the CST server to either tender the Load to the next carrier or end CST when carrier list has exhausted.
When an employee stops the CST process for a load, the queue entry’s Scheduled Start Date/Time will be set to equal to the current system date/time and the an employee cancels the tender will be set to Canceled.
When the load’s CST status is updated to Carrier List Exhausted, the Queue Entry Status will be updated to Completed with Error. When CST status is updated to Routing/Rating Failed, Queue Entry Status will be updated to Failed. When CST status is updated to User Cancelation, Queue Entry Status will be updated to Canceled. When CST status is updated to Stopped – Load Suspended or Stopped - Unexpected Error, Queue Entry Status will be updated to Hold.
When CST is disabled globally, CST will allow the current step to finish but will not start a new tender to the next carrier on the carrier list. Users will be allowed to manually terminate the current step before it finishes.
When the global CST Enabled flag is changed from True to False, the CST server will continue reading from the CST Queue table and pick entries with eligible Scheduled Start Date/Time and Queue Entry Status. When the global CST Enabled flag is False, the CST processes will do one of the following:
When a load’s CST status is Waiting, existing logic that tenders the Load to the first carrier will still apply.
When a Load’s CST status is In Processing, the load’s CST status will be updated from In Processing to User Canceled, the corresponding CST queue entry will be in status Canceled, but the loads’ operational status will not be updated. That means if a load is tendered to a carrier and the carrier has not responded, it remains in Tendered operational status; if the carrier has rejected, it remains in Tender Rejected status, if the tender is canceled, it remains in Planned status; the load will not be automatically tendered to the next carrier. Loads with User Canceled CST status can be manually processed.
The Stop CST operation will be allowed as long as the load’s current CST Status is Waiting or In Processing. The operation will update the load’s CST status to User Canceled and the corresponding CST Queue Entry Status to Canceled. This will prevent a load from becoming “stuck” in CST while CST is disabled.
When the global CST Enabled flag is set to True again, users will be expected to manually re-start or resume CST for applicable loads with CST status User Canceled. If disabling CST is temporary, and some of the CST queue entries have not been processed during the disabled time, that is, they have not been updated to Canceled CST status, they will automatically be processed when CST is enabled again and selection criteria based on Scheduled Start Date/Time is satisfied.
When global CST Auto Cancel Tender is changed from disabled to enabled, previously expired CST tenders will not be automatically tendered to the next carrier on the CST list. Users will be expected to manually cancel tender all expired tenders so that CST can resume.
When CST server is unavailable, all qualified loads and CST queue entries will not be processed until the service is available again.
The CST Queue table will be purged as part of the Load Purge.
For historical reasons, the CST Server uses the server name AUTOTDRSRV.