Planning

Lista de parámetros

Los parámetros obligatorios se indican con *, los demás son opcionales. La lista de parámetros se describe por separado según los grupos a los que pertenecen:

startDate

El parámetro startDate indica la fecha y hora de inicio a considerar para cada cálculo del problema logístico.

Este parámetro es obligatorio y debe tener el formato de timestamp en milisegundos . Ejemplo:

"startDate": 1583492400000

depots*

El parámetro depots es una array de objetos, donde cada objeto representa un almacén o centro de distribución. También podría ser una tienda física desde la que se entregará el producto.

Los depots serán referenciados en las operaciones como origen del producto a entregar, o como destino si se trata de una operación de recogida.

En la solicitud puede definir uno o varios depósitos para realizar las operaciones.

A continuación se indican los parámetros disponibles en depots:

  • name – Texto único del nombre del depósito. Se utiliza para hacer referencia a operaciones e identificarla en el resultado.
  • coordinates – Coordenadas geográficas en grados decimales de latitud y longitud:
    • latitude – Valor numérico en grados decimales. Debe estar entre -90,0 y 90,0. Ejemplo: -23,6987.
    • longitude – Valor numérico en grados decimales. Debe estar entre -180,0 y 180,0. Ejemplo: -45,7347.
  • logisticConstraints – Texto con referencia al nombre de logisticConstraint .
  • logisticZones – (Opcional) Array con los nombres de las zonas logísticas a las que pertenece el depósito. Deben ser únicos y tener el mismo nombre declarado en logisticZones.
"depots": [
        {
            "name": "MG - BELO HORIZONTE DEPÓSITO",
            "coordinates": {
                "latitude": -19.9251768,
                "longitude": -43.9509008
            },
            "logisticConstraints": "DEFAULT",
            "logisticZones": ["bh"]
        },
        {
            "name": "BH - Loja 1",
            "coordinates": {
                "latitude": -19.8849981,
                "longitude": -44.0089124
            },
            "logisticConstraints": "DEFAULT",
            "logisticZones": ["bh"]
        }
]

logisticConstraints*

El parámetro logisticConstraints es un array de objetos, donde cada objeto representará un grupo de reglas logísticas a considerar en la planificación y optimización, como los tiempos de carga y descarga, por ejemplo.

Cada norma logística debe asociarse a los depósitos o centros a los que se aplica.

  • name – Texto del nombre de la regla logística. Se utiliza para hacer referencia en depots y sites.
  • siteLoadingFixedTime – (Opcional) Número entero con el tiempo de carga fijo en segundos.
  • siteUnloadingFixedTime – (Opcional) Número entero con el tiempo de descarga fijo en segundos.
  • loadingMaxSize – (Opcional) Número entero con el tamaño máximo del vehículo permitido para cargar en el sitio. Se utiliza para locais logisticos con restriccoes de acceso para veiculos grandes, por ejemplo. El tamaño del vehículo se define en el parámetro size en vehicleTypes.
  • unloadingMaxSize – (Opcional) Número entero con el tamaño máximo del vehículo permitido para descargar en el sitio. Se utiliza para locais logisticos con restriccoes de acceso para veiculos grandes, por ejemplo. El tamaño del vehículo se define en el parámetro size en vehicleTypes.
  • unloadingPositionInRoute – (Opcional) Posición en la ruta para la descarga. Valores posibles: [INDIFFERENT, FIRST, LAST, ALONE].
    • Ejemplo 1: Si un site tiene la regla "unloadingPositionInRoute": "FIRST", la operación de este sitio se ejecutará en primer lugar en la ruta para realizar la entrega.
    • Ejemplo 2: Si un site tiene la regla de "unloadingPositionInRoute"": "LAST", la operación de este sitio se ejecutará en último lugar en la ruta para hacer la entrega.
    • Ejemplo 3: Si un site tiene la regla "unloadingPositionInRoute"": "ALONE", la operación de este sitio se realizará en solitario, con una ruta exclusiva para realizar la entrega.
    • Ejemplo 4: Si un site tiene la regla de "unloadingPositionInRoute"": "INDIFFERENT", la operación de este sitio se llevará a cabo en cualquier posición de la ruta de entrega.
  • loadingPositionInRoute – (Opcional) Posición en la ruta para la carga. Valores posibles: [INDIFFERENT, FIRST, LAST, ALONE].
"logisticConstraints": [
        {
            "name": "Regras-Depot",
            "siteLoadingFixedTime": 1200,
            "loadingMaxSize": 30
        },
        {
            "name": "Regras-Entrega-Rápida",
            "siteUnloadingFixedTime": 300,
            "unloadingPositionInRoute": "FIRST",
            "unloadingMaxSize": 30
        }
],

vehicleTypes*

El parámetro vehicleTypes es una array de objetos, donde cada objeto representa un tipo de vehículo. Los tipos de vehículos son las características de los vehículos que se utilizarán en la planificación, como el peso y el volumen soportados, por ejemplo.

La API comprobará la capacidad de los vehículos para distribuir los pesos y volúmenes de los productos en cada operación para la mejor optimización logística.

Parámetros obligatorios

  • name – Texto único con el tipo de vehículo. Se utiliza como referencia en vehicles.
  • maxVolume – Valor numérico (double) con el volumen máximo soportado por el vehículo.
  • maxWeight – Valor numérico (double) con el peso máximo soportado por el vehículo.
  • size – Valor numérico (integer) con el tamaño del vehículo.

Ejemplo con parámetros obligatorios

"vehicleTypes": [
        {
            "name": "VUC",
            "maxVolume": 20,
            "maxWeight": 1200,
            "size": 1
        },
        {
            "name": "3/4",
            "maxVolume": 30,
            "maxWeight": 1500,
            "size": 1
        }
],

Parámetros opcionales

  • characteristics – Texto libre para describir las características del vehículo.
  • minAvaibleCapacityForCollection – Número entero entre 0 y 100, que indica el porcentaje mínimo de capacidad disponible que debe tener el vehículo para iniciar las actividades de recolección. Por ejemplo, si es 0, las recogidas se pueden realizar en cualquier momento de la ruta. Si es 100 las recogidas sólo se realizarán con el vehículo completamente vacío. El valor predeterminado es 100.
  • maxSitesNumber – Entero con el número máximo de sites que el vehículo visitará por ruta.
  • compartmentsAccessMode – Texto con la forma de acceder al compartimento de carga del vehículo. Valores permitidos:
    • ALL_COMPARTMENTS – Indica el posible acceso a todos los compartimentos;
    • REAR_ACCESS – Acceso sólo al compartimento trasero del vehículo;
  • compartmentConfigurations – Conjunto con las características del compartimento de carga.
    • name – (Obligatorio) Texto único con el nombre del compartimento;
    • loadingRule – (Obligatorio) Entero con la regla considerada para cargar el compartimento. Valores posibles:
      • NONE No hay reglas fijas;
      • IDENTICAL_PACKAGINGS El compartimento sólo aceptará productos del mismo package;
      • SINGLE_OPERATION – El compartimento sólo puede utilizarse para una operación por ruta;
      • IDENTICAL_PRODUCTS El compartimentosólo acepta un tipo de producto;
      • IDENTICAL_SITE_PRODUCTS – El compartimento sólo aceptará un tipo de producto y debe ser del mismo site;
    • maximumCapacity – (Obligatorio) Número decimal con la capacidad máxima del compartimento.
    • increment – Número decimal con incremento de capacidad del compartimento.
    • allowedPackagings – Array con los nombres de los paquetes que se pueden cargar en el compartimento. Debe ser único en un tipo de compartimento.
  • trip – Esto indica que, además de clasificar los puntos logísticos, también hay que devolver la ruta. Todos los parámetros aceptados por la Trip API se aceptan aquí.

Ejemplo con parámetros opcionales

Este ejemplo muestra cómo describir las características de dos vehículos diferentes: el primero una moto "Moto" y el segundo un coche "Carro". La "Moto" tiene una capacidad de carga menor y sólo puede transportar paquetes con el nombre "Carga_Resistente". "Carro" tiene una capacidad de carga mayor, pero sólo puede transportar paquetes con el nombre "Carga_fragil".

Así podremos detallar qué tipo de paquete/producto puede transportar un vehículo y el otro no.

"vehicleTypes": [
    {
        "name": "Moto",
        "maxWeight": 100,
        "maxVolume": 50,
        "size": 30,
        "maxSitesNumber": 24,
        "minAvaibleCapacityForCollection": 0, 
        "characteristics": null,
        "compartmentsAccessMode": "REAR_ACCESS",
        "compartmentConfigurations": [
            {
                "name": "compartimentoMoto",
                "compartments": [
                    {
                        "name": "bau_moto",                     
                        "maximumCapacity": 1000,
                        "loadingRule": "NONE",
                        "allowedPackagings": [
                            "Carga_Resistente"
                        ]
                    }
                ]
            }
        ],
        "trip": {
            "calculationMode": "THE_FASTEST",
            "toll": {
                "vehicleType": "MOTORCYCLE"
            }
        }
    },
    {
        "name": "Carro",
        "maxWeight": 400,
        "maxVolume": 100,
        "size": 30,
        "maxSitesNumber": 24,
        "minAvaibleCapacityForCollection": 0, 
        "characteristics": null,
        "compartmentsAccessMode": "REAR_ACCESS",
        "compartmentConfigurations": [
            {
                "name": "compartimentoCarro",
                "compartments": [
                    {
                        "name": "porta_malas",
                        "maximumCapacity": 1000,
                        "loadingRule": "NONE",
                        "allowedPackagings": [
                            "Carga_fragil"
                        ]
                    }
                ]
            }
        ],
        "trip": {
            "calculationMode": "THE_FASTEST",
            "toll": {
                "vehicleType": "MOTORCYCLE"
            }
        }
    }
],

vehicles*

El parámetro vehicles es un array de objetos, donde cada objeto representa un vehículo disponible para realizar actividades de operaciones, que conforman la flota para cumplir con la planificación logística.

Para cada objeto en vehicles , se definirá el lugar de origen y de retorno, así como el tiempo disponible para realizar las operaciones.

Parámetros obligatorios

  • name – Texto único con el nombre del vehículo. Se utiliza como referencia en operations e identificará el vehículo que recorrerá la ruta.
  • vehicleType – Texto con el tipo de vehículo declarado en vehicleTypes.
  • legislationProfile – Texto con el perfil de la legislación, recogido en legislationProfiles .
  • availablePeriods – Describe las características de las horas de trabajo disponibles del conductor del vehículo. Hay parámetros obligatorios y opcionales. Los obligatorios son:
    • start – Hora de inicio de la jornada laboral. Formato de timestampen milisegundos. Ejemplo: 1511901826456.
    • end – Hora de finalización de la jornada laboral. Formato de timestamp en milisegundos. Ejemplo: 1511904661038.

Ejemplo con parámetros obligatorios

"vehicles": [
    {
        "name": "VUC_1",
        "vehicleType": "VUC",
        "legislationProfile": "DEFAULT",
        "availablePeriods": [
            {
                "timeWindow": {
                    "start": 1513753200000,
                    "end": 1513796400000
                }
            }
        ]
    }


],

Parámetros opcionales

  • availablePeriods – Describe las características de las horas de trabajo disponibles del conductor del vehículo. Los parámetros opcionales son:
    • departureSite – Texto con el lugar de salida del vehículo al inicio de la ruta. Si no se declara, la API Planning decidirá el depósito de inicio.
    • arrivalSite – Texto con la ubicación de regreso del vehículo al final de la ruta. Si no se declara, la API Planning decidirá en el último sitio de la última operación para finalizar la ruta.
    • maxRoutesNumber – Entero con el número de rutas máximas para el periodo disponible. Por ejemplo, si "maxRoutesNumber": 1, el vehículo realizará todas las operaciones en la misma ruta.
  • legislationProfile – Texto con el perfil de la legislación, recogido en legislationProfiles .
  • logisticZones – Array con los nombres de las zonas logísticas en las que el vehículo puede realizar operaciones. Deben ser únicos y tener el mismo nombre declarado en logisticZones

Ejemplo con parámetros opcionales

Este ejemplo muestra dos productos del mismo tipo que están asociados a paquetes diferentes. Podemos utilizar el parámetro packagings para asociarlo posteriormente al tipo de vehículo que transportará el producto.

"vehicles": [
    {
        "name": "154",
        "vehicleType": "Moto",
        "legislationProfile": "DEFAULT",
        "availablePeriods": [
            {
                "timeWindow": {
                    "start": 1611057600000,
                    "end": 1611082800000
                },
                "departureSite": "maam2",
                "arrivalSite": "maam2",
                "maxRoutesNumber": 1
            }
        ]
        "logisticZones": ["CE - ZONA LESTE","CE - ZONA SUL"]
    },
    {
        "name": "150",
        "vehicleType": "Carro",
        "legislationProfile": "DEFAULT",
        "availablePeriods": [
            {
                "timeWindow": {
                    "start": 1611057600000,
                    "end": 1611082800000
                },
                "departureSite": "fkebvlkbvgrvg",
                "arrivalSite": "ufwevidevgre",
                "maxRoutesNumber": 1
            }
        ],
        "logisticZones": ["CE - ZONA NORTE","CE - ZONA OESTE"]
    }
]

products*

El parámetro products es una array de objetos, donde cada objeto representa un producto a transportar por los vehículos. Cada producto debe estar asociado a una operación.

También es posible definir paquetes, o embalajes, para asociar productos a un tipo específico de vehículo.

A continuación se indican los parámetros disponibles en products:

  • name – Texto único con el nombre del producto. Solía estar referenciado en operations.
  • type – (Opcional) Texto que describe el tipo de producto. Se utiliza para identificar grupos y categorías.
  • packagings – (Opcional) Array con los nombres de los paquetes asociados al producto.

Ejemplo

Este ejemplo muestra dos productos del mismo tipo que están asociados a paquetes diferentes. Podemos utilizar el parámetro packagings para asociarlo posteriormente al tipo de vehículo que transportará el producto.

"products": [
        {
            "name": "Vidro",
            "type": "Bebidas",
            "packagings": ["Carga_fragil"]
        },
        {
            "name": "Lata",
            "type": "Bebidas",
            "packagings": ["Carga_Resistente"]
        }
]

legislationProfiles*

El parámetro legislationProfiles es una array de objetos, donde cada objeto representa un perfil de legislación. Cada perfil legislativo definirá las características de la jornada laboral del conductor, como el tiempo de conducción continua y el tiempo para las pausas del almuerzo.

Se pueden crear uno o varios perfiles de legislación en función de las características de la operación, por ejemplo para trayectos de más de un día.

Se referencian en vehicles para definir qué perfil se aplica al vehículo/conductor.

A continuación figura la lista de parámetros disponibles en legislationProfiles:

  • name – Texto único con el nombre del perfil de legislación. Se utiliza como referencia en los vehículos.
  • maxContinuousDrivingTime – (Opcional) Número entero con el tiempo máximo en segundos de conducción continua.
  • drivingPauseDuration – (Opcional) Entero con el tiempo en segundos de pausa para la conducción. Se aplica una vez alcanzada la suma de maxContinuousDrivingTime. Puede utilizarse para crear pausas para comer o descansar. El resultado se presenta como una actividad denominada "PAUSE".
  • maxContinuousWorkingTime – (Opcional) Entero con el tiempo máximo en segundos de trabajo continuo. Se considera workingTime todo el tiempo dedicado a las actividades de "LOADING"; "DRIVING"; "DELIVERY"; "COLLECTION"; "WAITING".
  • workingPauseDuration – (Opcional) Número entero con el tiempo en segundos que se pausa el trabajo. Se consideran trabajo las siguientes actividades: "LOADING"; "DRIVING"; "DELIVERY"; "COLLECTION"; "WAITING". Este parámetro se utiliza para viajes de varios días en los que se aplica el tiempo que el conductor descansará al final del turno de trabajo.

Ejemplo

El ejemplo siguiente muestra un perfil de legislación para viajes de varios días.

  • El valor de 3 horas y 45 minutos de conducción continua está fijado en maxContinuousDrivingTime.
  • En drivingPauseDuration se establece 1 hora para la pausa del almuerzo.
  • En maxContinuousWorkingTime se define un turno de 8 horas.
  • En workingPauseDuration puedes tomarte 15 horas libres para empezar a trabajar al día siguiente.

Así, el conductor trabajará las horas de conducción y entregas, hará una pausa de 1 hora para comer, continuará las entregas por la tarde y, cuando haya trabajado un total de 8 horas, descansará 15 horas para iniciar la nueva jornada al día siguiente.

"legislationProfiles": [
    {
        "name": "perfil",
        "maxContinuousDrivingTime": 13500,
        "drivingPauseDuration": 3600,
        "maxContinuousWorkingTime": 28800,
        "workingPauseDuration": 54000
    }
]

sites*

El parámetro sites es una array de objetos, donde cada objeto representa una ubicación donde se va a realizar una operación de entrega o recogida. Deben referenciarse en las operations, para asociar la localización a la operación.

También pueden consultarse en vehicles para definir el lugar de partida y de regreso del conductor.

Cada objeto de sites también puede asociarse a una regla logística para definir, por ejemplo, el tiempo necesario para cargar y descargar en el sitio.

A continuación figuran los parámetros disponibles para los sitios:

  • name – Texto único del nombre del sitio. Se utiliza para hacer referencia en las operaciones e identificarlas en el resultado
  • coordinates – Coordenadas geográficas en grados decimales de latitud y longitud:
    • latitude – Valor numérico en grados decimales. Debe estar entre -90,0 y 90,0. Ejemplo: -23,6987.
    • longitude – Valor numérico en grados decimales. Debe estar entre -180,0 y 180,0. Ejemplo: -45,7347.
  • logisticConstraints – Texto con referencia al nombre de logisticConstraint .
  • logisticZones – (Opcional) Array con los nombres de las zonas logísticas a las que pertenece el sitio . Deben ser únicos y tener el mismo nombre declarado en logisticZones

Ejemplo

"sites": [
    {
        "name": "204498250",
        "coordinates": {
            "latitude": -26.2186024,
            "longitude": -48.6656953
        },
        "logisticConstraints": "DEFAULT",
        "logisticZones": ["joinville"]           
    },
    {
        "name": "616188578",
        "coordinates": {
            "latitude": -26.2408157,
            "longitude": -49.3971109
        },
        "logisticConstraints": "DEFAULT",
        "logisticZones": ["sbs"]  
    }
] 

operations*

El parámetro operations es un array de objetos, donde cada objeto representa una operación a resolver en la planificación logística. Cada objeto contendrá las características de la operación, como el tipo (entrega o recogida), franja horaria del cliente, peso y volumen de la entrega, entre otros.

Se recomienda tener un máximo de 200 operaciones por petición para un mejor rendimiento de la API.

Parámetros obligatorios

  • customerSite – Texto con el nombre del sitio, ubicación de la operación.
  • customerTimeWindows – Ventana de tiempo en la que el cliente puede recibir la operación:
    • start – Hora de inicio de la operación del cliente. Formato de timestamp en milisegundos: 1511901826456.
    • end – Hora de finalización en la que el cliente realiza la operación. Formato de timestamp en milisegundos: 1511904661038.
  • depotSiteAlmacén de origen de la operación. Se utiliza para identificar desde qué almacén se cargará el producto en el vehículo hasta su entrega. En el caso de una operación de recogida, el depósito donde se descargará el producto.
  • id – Texto único con el identificador de la operación.
  • product – Texto único con el nombre del producto. Debe indicarse en products.
  • type – Tipo de operación, entrega o recogida de productos. Debe ser uno de los siguientes tipos: [COLLECTION, DELIVERY].
  • volume – Número decimal con el volumen del producto que se entregará/recogerá en la operación. Es importante que esté en la misma unidad que se utilizó en vehicleTypes. Por ejemplo, metros cúbicos.
  • weight – Número decimal con el peso del producto que se entregará/recogerá en la operación. Es importante que esté en la misma unidad que se utilizó en vehicleTypes. Por ejemplo, kilogramos.

Ejemplo con parámetros obligatorios

"operations": [
    {
        "customerSite": "MERCADO02GLICERIO",
        "depotSite": "DEPOSITO01",
        "type": "DELIVERY",
        "customerTimeWindows": [
            {
                "end": 1583506800000,
                "start": 1583499600000
            }
        ],
        "id": "NUMORDEM30",
        "product": "HD_DIVERSOS",
        "volume": 1,
        "weight": 0.15
    },
    {
        "customerSite": "MERCADO10SCAETANO",
        "depotSite": "DEPOSITO01",
        "type": "DELIVERY",
        "customerTimeWindows": [
            {
                "end": 1583528400000,
                "start": 1583492400000
            }
        ],
        "id": "NUMORDEM27",
        "product": "HD_DIVERSOS",
        "volume": 1,
        "weight": 0.15
    }
]

Parámetros opcionales

  • customerHandlingDuration – Entero con el tiempo en segundos que se empleará en el cliente para realizar la operación. Para las operaciones de recogida ("COLLECTION"), utilice el parámetro siteLoadingFixedTime en logisticConstraints.
  • depotHandlingDuration – Entero con el tiempo en segundos que se pasará en el depósito para realizar la operación. Para las operaciones de recogida ("COLLECTION"), utilice el parámetro siteUnloadingFixedTime en logisticConstraints.
  • depotTimeWindows – Ventana horaria del almacén en la que se va a realizar la operación. Por ejemplo, si se trata de una operación con la actividad de "DELIVERY", el producto se cargará en el vehículo dentro del almacén en este intervalo de tiempo (en la respuesta de la API, la actividad aparecerá como "LOADING"). Si se trata de una operación con actividad desde "COLLECTION", el producto llegará al almacén en este intervalo de tiempo (en la respuesta de la API, la actividad aparecerá como "UNLOADING"):
    • start – Hora de inicio de la operación en depot. Formato de timestamp en milisegundos: 1511901826456.
    • end – Hora de finalización depot actúa en la operación. Formato de timestamp en milisegundos: 1511904661038.
  • group – Texto con el grupo de operaciones. Permite agrupar manualmente las operaciones de un mismo lugar. Las operaciones que tengan el mismo valor se ejecutarán juntas. Por ejemplo, operaciones en diferentes tiendas de un mismo centro comercial.
  • preAllocatedVehicleName – Texto con el nombre del vehículo que realizará la operación de forma predefinida. A continuación, la API Planning asignará este vehículo asociado para situar la operación en su ruta. Utilice este parámetro para ejemplos en los que un conductor favorito tenga que atender a un cliente o un vehículo específico tenga que realizar la operación.
  • priority – Entero de la prioridad de la operación. Se utiliza para priorizar la carga, no la secuencia de entrega. La escala de prioridades puede ser ascendente o descendente en función del optimizationProfile usado.
  • quantity – Número decimal con la cantidad de la operación. Sólo a título descriptivo, no interfiere en el tratamiento de la operación.

Ejemplo con parámetros opcionales

Este ejemplo muestra 2 operaciones de entrega a realizar entre las 10:00 y las 12:00 (customerTimeWindows). La operación en MERCADO01MOOCA tiene depotTimeWindows configurado para cargar en el depósito entre las 11:00 y las 12:00 con una duración de 10 minutos (depotHandlingDuration).

Por este motivo, el camión no saldrá del depósito hasta las 11:10 para realizar las dos operaciones y tendrá hasta las 12:00 para llevarlas a cabo.

Ambas operaciones proceden de la misma "group": "A" y serán atendidas por "preAllocatedVehicleName": "VUC01".

"operations": [
    {
        "customerSite": "MERCADO01MOOCA",
        "depotSite": "DEPOSITO01",
        "preAllocatedVehicleName": "VUC01",
        "priority": 20,
        "type": "DELIVERY",
        "customerTimeWindows": [
            {
                "start": 1583499600000,
                "end": 1583506800000
            }
        ],
        "depotTimeWindows": [
            {
                "start": 1583503200000,
                "end": 1583506800000
            }
        ],
        "depotHandlingDuration": 600,
        "id": "NUMORDEM25",
        "product": "HD_DIVERSOS",
        "volume": 12,
        "weight": 1,
        "quantity": 10,
        "group": "A"
    },
    {
        "customerSite": "MERCADO02GLICERIO",
        "depotSite": "DEPOSITO01",
        "preAllocatedVehicleName": "VUC01",
        "type": "DELIVERY",
        "customerTimeWindows": [
            {
                "start": 1583499600000,
                "end": 1583506800000
            }
        ],
        "customerHandlingDuration": 300,
        "id": "NUMORDEM30",
        "product": "HD_DIVERSOS",
        "volume": 1,
        "weight": 0.15,
        "group": "A"
    }
],

logisticZones

El parámetro logisticZones es una array de objetos, donde cada objeto representa una zona logística que puede asociarse a depots, sites y vehicles para definir la relación entre ellos.

Por ejemplo, si define una zona logística para un vehículo, éste sólo servirá a los sitios que pertenezcan a la misma zona logística.

A continuación se indican los parámetros disponibles en logisticZones:

  • name – Texto del nombre de la zona logística. Se utiliza para referenciar en depots, vehicles e sites.
  • zonePriority– Prioridad de zona. Influirá en qué zona logística se atiende primero. Valores posibles: [PRIORITARY, SECUNDARY]

Ejemplo

"logisticZones": [
        {
            "name": "blumenau",
            "zonePriority": "PRIORITARY"
        },
        {
            "name": "jaragua",
            "zonePriority": "PRIORITARY"
        },
        {
            "name": "joinville",
            "zonePriority": "PRIORITARY"
        }
    ]
}

callback

El parámetro callback es un objeto que contiene los datos del webhook que se utilizarán para recibir los eventos de cálculo de problemas.

Así no tendrá que comprobar el estado del problema para ver si se ha tramitado. La API notificará al webhook cuando la solución esté disponible para su consulta.

Se requieren los siguientes parámetros:

  • url – URL con la dirección que recibirá lo callback.
  • user – (Opcional) Texto con el nombre del usuario si el endpoint requiere autenticación.
  • password – (Opcional) Texto de la contraseña si el endpoint requiere autenticación.

Ejemplo

"callback": {
    "password": "nome_usuario",
    "url": "https://enqkbfcos3dhgchuikd.webhook.net",
    "user": "senha"
},

Para más detalles, consulte: ¿Cómo recibir el estado actual del problema a través de webhook?


optimizationProfile*

El parámetro optimizationProfile indica qué perfil de optimización utilizará la API Planning para procesar los datos. Cada perfil de optimización tiene unas características que se tendrán en cuenta para optimizar el problema logístico, y cada perfil es adecuado para un escenario específico.

Ejemplo

"optimizationProfile": "BRAZIL46"

Perfiles de optimización disponibles

BRASIL37: Perfil para grandes problemas, distribuyendo rutas entre vehículos en lugar de crear más de una ruta por vehículo. Comienza la asignación de vehículos con mayor capacidad.

BRASIL46: Perfil para problemas menores, construcción inicial con más de 10 ubicaciones por ruta y manejo de varias ventanas de servicio diferentes.

BRAZIL_AVG_LOAD_RATE: Este perfil se utiliza para problemas de encaminamiento de vehículos múltiples (VRP) y tiene la característica de atender a las prioridades de las operaciones y con los criterios de valoración que enfatizan la capacidad media de carga en volumen/peso para los vehículos.

BRAZIL_VRP_PICKUP: Perfil utilizado para el problema de enrutamiento de vehículos múltiples (VRP). Para los casos en que sea necesario realizar rutas, permitiendo recoger productos del almacén y de otras tiendas durante la ruta para realizar las entregas. Útil en casos de uso de última milla, en los que el vehículo saldrá del centro de distribución y recogerá en tiendas a lo largo del camino.


tripsProfile*

tripsProfile es un parámetro obligatorio en la solicitud de la API Planning para que el cálculo de la planificación logística tenga en cuenta las características del sistema de carreteras que influirán en el camino.

Os valores possíveis são:

  • MAPLINK – Para rutas ubicadas en toda América Latina;
  • MAPLINKBR – Para rutas ubicadas en Brasil;
  • LINEAR – Con este perfil el procesamiento es notablemente más rápido, pero se pierde precisión, ya que el cálculo se basará en la distancia lineal (euclidiana) entre puntos, sin considerar las rutas. Recomendado sólo para problemas con puntos distantes entre sí.

Ejemplo

"tripsProfile": "MAPLINK"

trip

El parámetro trip es un objeto e indica que, además de ordenar los puntos logísticos, se devuelvan las coordenadas que componen la ruta. Todos los parámetros aceptados por la API Trip se aceptan aquí.
Si el parámetro ya ha sido declarado en vehicleTypesse tendrán en cuenta los parámetros allí definidos para cada tipo de vehículo.

Ejemplo

"trip": {
    "calculationMode": "THE_FASTEST",
    "crossedBorders": {
        "level": "CITY"
    },
    "toll": {
        "vehicleType": "TRUCK_WITH_TWO_DOUBLE_AXLES"
    }
}

calculationMode

El parámetro calculationMode indica el método de cálculo que debe tenerse en cuenta para la planificación de la ruta. Hay dos opciones disponibles:

  • THE_FASTEST – Devuelve la planificación a la ruta más rápida. (Mayor velocidad media)
  • THE_SHORTEST – Devuelve la planificación a la ruta con menor kilometraje.

Si no se introduce el parámetro, se tendrá en cuenta el valor THE_FASTEST.

Ejemplo

"calculationMode": "THE_FASTEST",

restrictionZones

El parámetro restrictionZones es una array que contiene las áreas de restricción que deben tenerse en cuenta al resolver el problema logístico.

Las zonas de restricción deben registrarse previamente a través de la API Restriction Zone y utilizarse como argumento en el parámetro restrictionZones. Así que las rutas se desviarán de estas zonas.

Si hay un punto de parada dentro del área de restricción, la API de planificación servirá el punto de parada a través de la ruta con el menor solapamiento con el área de restricción.

Ejemplo

"restrictionZones": [
        "SP_BR381_90_km_Alt_Esq_5_3_Cen_5_45_Dir_5_6",
        "SP_BR381_87_km_Alt_Esq_6_7_Cen_6_7_Dir_6_7"
]