By testing VRP service API, I've stumbled upon a small problem.
To submit a optimization job to VRP service you need to provide some order parameters and among those parameters there's parameter named 'AssignmentRule'.
As per API description after mentioned parameter:
So as example, we have two orders in same route:
Order 1 - has delivery times from 10:00 to 12:00 and it's sequence no.: 3
Order 2 - has delivery times from 06:00 to 08:00 and it's sequence no.:10
(All route and depot parameters are correct in this case)
So by logic, if we supply for both of these orders with AssigmentRule parameter, which equals 1 (Preserve route and relative sequence) - VRP service in return will fail as Order 2 cannot be delivered after Order 1, because it's delivery interval is less than Order 1 delivery interval. VRP service will optimize route only when we swap sequence numbers of orders or otherwise make Order 2 sequence number lesser than Order 1 (in example - 2).
And there's problem I've stumbled upon. We can use same example as before, but let's change AssigmentRule parameter to '2'. As I can understand by description in API, VRP service should return result in which, Order 2 should be delivered before Order 1. It does't matter by what sequence orders were supplied, service will take and rearrange them by how it deems necessary, without paying attention to supplied sequence numbers as with AssigmentRule parameter '2'. But the problem is - VRP service optimization fails and orders are optimized only when Order 2 has lower sequence number than Order 1.
Is it bug, can someone check? Or is it something that I just don't understand ?
Help would be appreciated.