Skip to main content

Job progress data

ARJobData

This is part of the payload for JOB_PROGRESS message or the payload for Asynchronous job progress , when the lastMessage is set to True.

This describes the progression and result of API calls to API-CARTO, API-MPT and API-MCDI.

It cant takes different values, depending on the message sent :

jobDataMPT

  • id : job Id
  • type : MPT
  • error : jobError
  • percent : job percentage
  • status : "ROUTE OPTIMIZATION SOLUTION AVAILABLE" when no error
  • problem : ProblemMPT the problem sent to API MPT
  • solution : Solution the solution calculated by API MPT
Example of a jobDataMPT
{
"id": "c1d08f73-8453-412e-bbe1-fbee8f967445",
"type": "MPT",
"error": {
"message": ""
},
"percent": 0,
"status": "ROUTE OPTIMIZATION SOLUTION AVAILABLE",
"problem": {
"action": {
"type": "OPTIMIZE_EXISTING_ROUTES",
"routes": [
"000ZYX1DH01"
]
},
"sites": [
{
"id": "AXIOROUTE",
"coordinates": {
"longitude": -0.561642,
"latitude": 47.462544
},
"isDepot": false
},
...
{
"id": "SINARI",
"coordinates": {
"longitude": -1.604869,
"latitude": 48.113197
},
"isDepot": true
}
],
"trucks": [
{
"id": "VEHICLE_01",
"availablePeriods": [
{
"id": "PERIOD_01",
"timeWindow": {
"start": "2022-11-01T04:30:00.000+01:00",
"end": "2022-11-02T12:00:00.000+01:00"
},
"departureSite": "SINARI",
"arrivalSite": "SINARI",
"maxRoutes": 2
}
]
}
],
"operations": [
{
"id": "OPERATION_01",
"type": "DELIVERY",
"idSiteDestination": "AXIOROUTE",
"splittable": false,
"fixedProduct": true
},
...
],
"referencePlanning": {
"vehicleRoutes": [
{
"truck": "VEHICLE_01",
"period": "PERIOD_01",
"routes": [
{
"id": "000ZYX1DH01",
{
"activity": "LOADING",
"site": "SINARI",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"operations": [
{
"id": "OPERATION_01",
"type": "LOADING"
},
...
],
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
{
"activity": "DELIVERY",
"site": "AXIOROUTE",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"operations": [
{
"id": "OPERATION_01",
"type": "DELIVERY"
}
],
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
...
{
"activity": "ROUTE_END",
"site": "SINARI",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"distance": 0,
"nominalDuration": 0,
"notWorked": false
}
],
"status": "FREE"
}
]
}
]
}
},
"solution": {
"id": "c1d08f73-8453-412e-bbe1-fbee8f967445",
"vehicleRoutes": [
{
"truck": "VEHICLE_01",
"period": "PERIOD_01",
"routes": [
{
"id": "000ZYX1DH01",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": "2022-11-01T04:30:00.000+01:00",
"end": "2022-11-01T04:30:00.000+01:00"
},
"site": "SINARI",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
{
"activity": "LOADING",
"timeWindow": {
"start": "2022-11-01T04:30:00.000+01:00",
"end": "2022-11-01T04:30:00.000+01:00"
},
"site": "SINARI",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"operations": [
{
"id": "OPERATION_01"
},
...
],
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
{
"activity": "DRIVING",
"timeWindow": {
"start": "2022-11-01T04:30:00.000+01:00",
"end": "2022-11-01T06:01:47.000+01:00"
},
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"departureSite": "SINARI",
"arrivalSite": "CJM",
"distance": 134366,
"nominalDuration": 5507,
"notWorked": false
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": "2022-11-01T06:01:47.000+01:00",
"end": "2022-11-01T06:01:47.000+01:00"
},
"site": "CJM",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"operations": [
{
"id": "OPERATION_03"
}
],
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
...
{
"activity": "DELIVERY",
"timeWindow": {
"start": "2022-11-01T19:00:20.000+01:00",
"end": "2022-11-01T19:00:20.000+01:00"
},
"site": "AXIOROUTE",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"operations": [
{
"id": "OPERATION_01"
}
],
"distance": 0,
"nominalDuration": 0,
"notWorked": false
},
{
"activity": "DRIVING",
"timeWindow": {
"start": "2022-11-01T19:00:20.000+01:00",
"end": "2022-11-01T20:32:10.000+01:00"
},
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"departureSite": "AXIOROUTE",
"arrivalSite": "SINARI",
"distance": 127428,
"nominalDuration": 5510,
"notWorked": false
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": "2022-11-01T20:32:10.000+01:00",
"end": "2022-11-01T20:32:10.000+01:00"
},
"site": "SINARI",
"fixedTimeSite": 0,
"volume": 0,
"weight": 0,
"distance": 0,
"nominalDuration": 0,
"notWorked": false
}
],
"status": "FREE"
}
]
}
]
}
}
  • routeId : contains the route Id
  • mciJob : contains a MciJob

jobDataIndependantJob

jobDataAvailableRoadMaps

(see GET /roadmaps on Carto API swagger)

  • default : String indicating which is the default roadmap
  • available : String list with the available roadmaps
Example of available roadmaps
{
"default": "FRABELUX_202309",
"available": [
"FRABELUX_202309",
"ITA_202209"
]
}

jobDataReverseGeocode

(see POST /roads/positions on API Carto swagger)

List of objects

  • id : object id to geocode
  • longitude : longitude to geocode
  • latitude : latitude to geocode
  • road : roadGeocode, road description (for internal use)
  • position : positionGeocode position on the map (for internal use)
  • address : addressGeocode geocode address

Secondary objects definition

jobError

  • message : String displaying the error message
Example of jobError
{
"message": "A displayable error message"
}

addressGeocode

  • number : street number (if available)
  • streetname : street name
  • suburb : suburban area ("Arrondissement" or "Commune déléguée" for France; can be empty)
  • zipcode : postal code
  • cityname : city name ("Commune" or "Commune nouvelle" for France)
  • region : administrative area ("Département" for France, can be empty depending on countries)
  • subcountry : higher administrative area ("Région" for France, can be empty depending on countries)
  • country : country ISO code
Example of addressGeocode
{
"number": 10,
"streetname": "Rue Fulton",
"suburb": "",
"zipcode": "49000",
"cityname": "Angers",
"region": "Maine-et-Loire",
"subcountry": "Pays de la Loire",
"country": "FRA"
}

roadGeocode

  • id : road Id (internal use)
  • arcab : arc Id from A to B (internal use)
  • arcba : arc Id from B to A (internal use)
  • roadtype : internal use (type of road)
  • name : road name
  • distance : arc distance (meters)
  • speedcat : speed category (internal use)
  • roadlevel : road level (from 0 to 5, internal use)
  • geometries : List of coordinates describing the road geometry
Example of roadGeocode
"road": {
"id": "14734175",
"arcab": 0,
"arcba": 27540190,
"roadtype": 0,
"name": "Rue Fulton",
"distance": 90,
"speedcat": 1,
"roadlevel": 5,
"geometries": [
[
-0.562081,
47.462442
],
[
-0.560987,
47.462767
]
]
}

positionGeocode

  • arc_index : internal arc index on the roadMap
  • percentage : percentage on the arc
  • nodeid : internal node id
  • longitude : longitude on the road
  • latitude : latitude on the road
  • distfromroad : distance of the point to the road
  • sideofroad : side on the road (-1 = left side, 0 = on the road, 1 = right side)
Example of positionGeocode
{
"arc_index": 25995277,
"percentage": 37,
"nodeid": 12343460,
"longitude": -0.56168,
"latitude": 47.462561,
"distfromroad": 4,
"sideofroad": 1
}