Here are the latest updates that will be released in August 2022. They are currently available on your SANDBOX environment and we suggest you check them out before release at the end of August. This is your first notification and we will follow up with further knowledgebase tutorials and videos before release.
Front end features:
1) Dynamic Reoptimization (DR):
You can now re-optimize groups of routes and zones directly from a full optimization job. Use this when you are happy with certain routes or zones, but want to combine or change parameters on other routes and zones without re-optimizing the entire dataset.
2) Consumption Reports:
Your user profile menu now has a consumption reports page that shows you the API usage for your organization.
3) User can now cancel route re-sequencing (TSP) while it's in process. You can also cancel Dynamic Reoptimization.
4) Add route on VRPHD now creates real vehicles and lets you select from unused vehicles from input payload.
API changes:
To support the Dynamic Reoptimization features, some additional optional data has been added to the JSON structure for the endpoints.
Please review these changes to ensure that the additional data does not break anything in your system.
1) A job now has the field "level" to indicate if it is a main job or a sub job.
Main job: the one that is subitted via the endpoint vrphd/jobs/submit
Sub job: the one that submitted when doing DR on the Adiona's command web app.
2) For the endpoint vrphd/jobs/:jobId, the field "level" is nested inside the "job" object.
If the job is a main job, it also carries a list of its sub jobs and their respective model as follows.
{
"success": true,
"jobId": "5597431236395008",
"job": {
"customers": [...],
"vehicles": [...],
"shifts": [...],
"depots": [...],
"meta_parameters": {...},
"level": "main",
"subJobs": [
{
"id": "5721777753817088",
"model": "VRPHD"
},
{
"model": "VRPHD",
"id": "6585813236187136"
}
]
}
}
If the job is a sub job, it has the field "mainJob" to indicate which main job it is belonged to.
The main job's model is also provided.
{
"success": true,
"jobId": "5721777753817088",
"job": {
"customers": [...],
"vehicles": [...],
"shifts": [...],
"depots": [...],
"meta_parameters": {...},
"level": "sub",
"mainJob": {
"model": "VRPHD",
"id": "5597431236395008"
}
}
}
3) For the endpoint vrphd/results/:jobId, the fields "level" is nested inside the root object.
There are also the fields "subJobs" and "mainJob" respectively.
The result of a main job
{
"shifts": [...],
"customers": [...],
"scenario": {...},
"success": true,
"scenarioId": "5597431236395008",
"model": "VRPHD",
"status": "Saved",
"version": "save",
"detail": "",
"timestamp": 1714192157000,
"level": "main",
"subJobs": [
{
"id": "5721777753817088",
"model": "VRPHD"
},
{
"id": "6585813236187136",
"model": "VRPHD"
}
]
}
The result of a sub job
{
"shifts": [...],
"customers": [...],
"scenario": {...},
"success": true,
"scenarioId": "5721777753817088",
"model": "VRPHD",
"status": "Optimized",
"version": "original",
"detail": "",
"timestamp": 1651663460240,
"tier": "enterprise",
"level": "sub",
"mainJob": {
"id": "5597431236395008",
"model": "VRPHD"
}
}
4) For the endpoint vrphd/jobs?limit=20, the information of 20 main jobs and their respective
sub jobs are returned. The info of the sub jobs are nested inside their main job.
{
"success": true,
"jobs": [
{
"jobId": "5764589929103360",
"timestamp_submit": 4617226686001,
"timestamp": 4617226686001,
"status": "Synced",
...,
"model": "VRPHD",
"subJobs": []
},
{
"jobId": "5597431236395008",
"timestamp_submit": 1648532463840,
"timestamp": 1714192157000,
"status": "Saved",
...,
"model": "VRPHD",
"subJobs": [
{
"jobId": "5719490415296512",
"timestamp_submit": 1653321350403,
"timestamp": 1653321432188,
"status": "Optimized",
...,
"model": "VRPHD"
},
{
"jobId": "6257760010240000",
"timestamp_submit": 1653321227053,
"timestamp": 1653321305058,
"status": "Optimized",
...,
"model": "VRPHD"
}
]
}
]
}