Minimum Version Required: 25.09
Pre-Conditions
You must have the InvoiceEdit permission to run this EDBL
The source and destination LoadSheets must not be in "Loaded" status or beyond
Routes should already exist in the system, though the routine can create routes if needed
Steps
EDBL Routines Disclaimer: This EDBL routine represents advanced functionality primarily intended for use by Encompass technical staff. While technically proficient customers may utilize these routines, please be aware that they fall outside the scope of standard support. Assistance with EDBL routines is not covered under standard support agreements and may require billable services from our Professional Services team. Please ensure you thoroughly understand this routine before implementation in your production environment
The OrderRouting EDBL is designed to move invoices between routes. It allows you to:
Reassign invoices to different routes
Update delivery sequences of invoices
Update planned start and end times for deliveries
Organize deliveries by trip numbers
The system will identify invoices by matching on InvoiceNum, InvoiceID, or by CustomerID and Date combination if invoice identifiers are not provided. The routine then locates the appropriate LoadSheets and moves the invoices between them, updating sequences as specified.
If a route specified in your import does not exist, the system will create it automatically.
If a load sheet already has a "Loaded" status, the system will not move invoices to or from it, and will generate a warning message.
For events with times, the system updates both the Events table and fixes the timing of related events when applicable.
Fields And Definitions
Date - The delivery date for the invoice
RouteID - Identifier for the route; can be used to match existing routes
RouteNum - The route number; can be used to match existing routes or create new ones
CustomerID - The customer identifier for the invoice
CustomerID_Translation - Alternative identifier for matching customers
InvoiceID - Primary identifier for the invoice
InvoiceNum - The invoice number as an alternative way to identify invoices
DeliverySequence - The order in which deliveries should be made on a route
MoveCustomersInvoices - Controls whether all invoices for a customer should be moved (1) or just the specified invoice (0)
TripNumber - Organizes deliveries by trip; helps when multiple trips occur on the same route/day
StartTimePlanned - The planned start time for the delivery
EndTimePlanned - The planned end time for the delivery
RouteID_Translation - Alternative identifier for matching routes
DeliveryRepUserID - Updates the delivery rep on the load sheet by matching the UserID.
DeliveryRepUserID_Translation - Updates the delivery rep on the load sheet by matching an alternate identifier on the user.
VehicleID - Updates the vehicle on the load sheet by matching the VehicleID.
VehicleID_Translation - Updates the vehicle on the load sheet by matching an alternate identifier on the vehicle.
Best Practices
Provide at least one way to identify invoices - either InvoiceID, InvoiceNum, or CustomerID + Date
Ensure routes in your import file have unique identifiers that match your system
Check that all customers referenced exist in the system before importing
For sequence-critical operations, always include the DeliverySequence field
When moving multiple invoices:
Set MoveCustomersInvoices to 1 to move all invoices for the customer
Set MoveCustomersInvoices to 0 to move only the specified invoice
If timing is important, include both StartTimePlanned and EndTimePlanned
For multi-trip routes, use the TripNumber field to organize deliveries properly
Run the import when users aren't actively working with the affected routes to avoid conflicts