{"id":1857,"date":"2023-12-12T17:33:00","date_gmt":"2023-12-12T17:33:00","guid":{"rendered":"https:\/\/developers.maplink.global\/lista-de-parametros\/"},"modified":"2026-02-04T17:35:13","modified_gmt":"2026-02-04T17:35:13","slug":"lista-de-parametros-planning","status":"publish","type":"post","link":"https:\/\/developers.maplink.global\/es\/lista-de-parametros-planning\/","title":{"rendered":"Lista de par\u00e1metros"},"content":{"rendered":"\n<p>Los par\u00e1metros obligatorios se indican con <strong>*<\/strong>, los dem\u00e1s son opcionales. La lista de par\u00e1metros se describe por separado seg\u00fan los grupos a los que pertenecen: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#startDate\">startDate*<\/a><\/li>\n\n\n\n<li><a href=\"#depots\" data-type=\"internal\" data-id=\"#depots\">depots*<\/a><\/li>\n\n\n\n<li><a href=\"#logisticConstraints\" data-type=\"internal\" data-id=\"#logisticConstraints\">logisticConstraints*<\/a><\/li>\n\n\n\n<li><a href=\"#vehicleTypes\" data-type=\"internal\" data-id=\"#vehicleTypes\">vehicleTypes*<\/a><\/li>\n\n\n\n<li><a href=\"#vehicles\">vehicles*<\/a><\/li>\n\n\n\n<li><a href=\"#products\" data-type=\"internal\" data-id=\"#products\">products*<\/a><\/li>\n\n\n\n<li><a href=\"#legislationProfiles\" data-type=\"internal\" data-id=\"#legislationProfiles\">legislationProfiles*<\/a><\/li>\n\n\n\n<li><a href=\"#sites\">sites*<\/a><\/li>\n\n\n\n<li><a href=\"#operations\" data-type=\"internal\" data-id=\"#operations\">operations*<\/a><\/li>\n\n\n\n<li><a href=\"#logisticZones\">logisticZones<\/a><\/li>\n\n\n\n<li><a href=\"#callback\">callback<\/a><\/li>\n\n\n\n<li><a href=\"#optimizationProfile\">optimizationProfile*<\/a><\/li>\n\n\n\n<li><a href=\"#tripsProfile\" data-type=\"internal\" data-id=\"#tripsProfile\">tripsProfile*<\/a><\/li>\n\n\n\n<li><a href=\"#trip\" data-type=\"internal\" data-id=\"#trip\">trip<\/a><\/li>\n\n\n\n<li><a href=\"#linearThreshold\" data-type=\"internal\" data-id=\"#linearThreshold\">linearThreshold<\/a><\/li>\n\n\n\n<li><a href=\"#calculationMode\">calculationMode<\/a><\/li>\n\n\n\n<li><a href=\"#restrictionZones\">restrictionZones<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"startDate\">startDate<\/h2>\n\n\n\n<p>El par\u00e1metro <code>startDate<\/code><strong> <\/strong> indica la <strong>fecha y hora de inicio<\/strong> a considerar para cada c\u00e1lculo del problema log\u00edstico.  <\/p>\n\n\n\n<p>Este par\u00e1metro es obligatorio y debe tener el formato de <em>timestamp<\/em> en milisegundos . Ejemplo:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"startDate\": 1583492400000<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"depots\">depots*<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>depots<\/code><strong> <\/strong>es una <strong>array de objetos<\/strong>, donde cada objeto representa un almac\u00e9n o centro de distribuci\u00f3n. Tambi\u00e9n podr\u00eda ser una tienda f\u00edsica desde la que se entregar\u00e1 el producto.<\/p>\n\n\n\n<p>Los<em> depots<\/em> ser\u00e1n referenciados en las operaciones como origen del producto a entregar, o como destino si se trata de una operaci\u00f3n de recogida.<\/p>\n\n\n\n<p>En la solicitud puede definir uno o varios <em>dep\u00f3sitos <\/em>para realizar las operaciones.  <\/p>\n\n\n\n<p>A continuaci\u00f3n se indican los par\u00e1metros disponibles en depots:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto \u00fanico del nombre del dep\u00f3sito. Se utiliza para hacer referencia a <em>operaciones <\/em>e identificarla en el resultado.<\/li>\n\n\n\n<li><code>coordinates<\/code> &#8211; Coordenadas geogr\u00e1ficas en grados decimales de latitud y longitud:\n<ul class=\"wp-block-list\">\n<li><code>latitude<\/code> &#8211; Valor num\u00e9rico en grados decimales. Debe estar entre -90,0 y 90,0. Ejemplo: -23,6987.<\/li>\n\n\n\n<li><code>longitude<\/code> &#8211; Valor num\u00e9rico en grados decimales. Debe estar entre -180,0 y 180,0. Ejemplo: -45,7347.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>logisticConstraints<\/code>  &#8211; Texto con referencia al nombre de <a href=\"#logisticConstraint\" data-type=\"internal\" data-id=\"#logisticConstraint\">\n  <code>logisticConstraint<\/code>\n<\/a>.<\/li>\n\n\n\n<li><code>logisticZones<\/code> &#8211; (Opcional) Array con los nombres de las zonas log\u00edsticas a las que pertenece el <em>dep\u00f3sito<\/em>. Deben ser \u00fanicos y tener el mismo nombre declarado en <a href=\"#logisticZones\"><code>logisticZones<\/code>.<\/a><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"depots\": [\n        {\n            \"name\": \"MG - BELO HORIZONTE DEP\u00d3SITO\",\n            \"coordinates\": {\n                \"latitude\": -19.9251768,\n                \"longitude\": -43.9509008\n            },\n            \"logisticConstraints\": \"DEFAULT\",\n            \"logisticZones\": [\"bh\"]\n        },\n        {\n            \"name\": \"BH - Loja 1\",\n            \"coordinates\": {\n                \"latitude\": -19.8849981,\n                \"longitude\": -44.0089124\n            },\n            \"logisticConstraints\": \"DEFAULT\",\n            \"logisticZones\": [\"bh\"]\n        }\n]<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"logisticConstraints\">logisticConstraints*<\/h2>\n\n\n\n<p>El par\u00e1metro <code>logisticConstraints<\/code><strong> <\/strong> es un <strong>array de objetos<\/strong>, donde cada objeto representar\u00e1 un grupo de <strong>reglas log\u00edsticas<\/strong> a considerar en la planificaci\u00f3n y optimizaci\u00f3n, como los tiempos de carga y descarga, por ejemplo.<\/p>\n\n\n\n<p>Cada norma log\u00edstica debe asociarse a los <em>dep\u00f3sitos <\/em>o <em>centros <\/em>a los que se aplica.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto del nombre de la regla log\u00edstica. Se utiliza para hacer referencia en <em><a href=\"#depots\" data-type=\"internal\" data-id=\"#depots\">depots<\/a><\/em> y <em><a href=\"#sites\">sites<\/a><\/em>.<\/li>\n\n\n\n<li><code>siteLoadingFixedTime<\/code> &#8211; (Opcional) N\u00famero entero con el tiempo de carga fijo en segundos. Para las operaciones de <code>DELIVERY<\/code>, este tiempo se a\u00f1adir\u00e1 a la actividad de <code>LOADING<\/code>, y para las de <code>COLLECTION<\/code>, a la de <code>COLLECTION<\/code>.<\/li>\n\n\n\n<li><code>siteUnloadingFixedTime<\/code> &#8211; (Opcional) N\u00famero entero con el tiempo de descarga fijo en segundos. Para operaciones de tipo <code>DELIVERY<\/code> este tiempo se agregar\u00e1 en la actividad de <code>DELIVERY<\/code> y para operaciones de tipo <code>COLLECTION<\/code> este tiempo se agregar\u00e1 en la actividad de <code>UNLOADING<\/code>.<\/li>\n\n\n\n<li><code>loadingMaxSize<\/code>&nbsp;&#8211; (Opcional) N\u00famero entero con el tama\u00f1o m\u00e1ximo del veh\u00edculo permitido para cargar en el sitio. Se utiliza para locais logisticos con restriccoes de acceso para veiculos grandes, por ejemplo. El tama\u00f1o del veh\u00edculo se define en el par\u00e1metro <code>size<\/code>&nbsp;en <a href=\"#vehicleTypes\"><em>vehicleTypes<\/em><\/a>.<\/li>\n\n\n\n<li><code>unloadingMaxSize<\/code>&nbsp;&#8211; (Opcional) N\u00famero entero con el tama\u00f1o m\u00e1ximo del veh\u00edculo permitido para descargar en el sitio. Se utiliza para locais logisticos con restriccoes de acceso para veiculos grandes, por ejemplo. El tama\u00f1o del veh\u00edculo se define en el par\u00e1metro <code>size<\/code>&nbsp;en <a href=\"#vehicleTypes\"><em>vehicleTypes<\/em><\/a>.<\/li>\n\n\n\n<li><code>unloadingPositionInRoute<\/code> &#8211; (Opcional) Posici\u00f3n en la ruta para la descarga<em>.<\/em> Valores posibles: <strong>[<code>INDIFFERENT, FIRST, LAST, ALONE<\/code>]<\/strong>.\n<ul class=\"wp-block-list\">\n<li>Ejemplo 1: Si un <em>site <\/em>tiene la regla <code>\"unloadingPositionInRoute\": \"FIRST\"<\/code>, la operaci\u00f3n de este sitio se ejecutar\u00e1 en primer lugar en la ruta para realizar la entrega.<\/li>\n\n\n\n<li>Ejemplo 2: Si un <em>site <\/em>tiene la regla de <code>\"unloadingPositionInRoute\"\": \"LAST\"<\/code>, la operaci\u00f3n de este sitio se ejecutar\u00e1 en \u00faltimo lugar en la ruta para hacer la entrega.<\/li>\n\n\n\n<li>Ejemplo 3: Si un <em>site <\/em>tiene la regla <code>\"unloadingPositionInRoute\"\": \"ALONE\"<\/code>, la operaci\u00f3n de este sitio se realizar\u00e1 en solitario, con una ruta exclusiva para realizar la entrega.<\/li>\n\n\n\n<li>Ejemplo 4: Si un <em>site<\/em> tiene la regla de <code>\"unloadingPositionInRoute\"\": \"INDIFFERENT\"<\/code>, la operaci\u00f3n de este sitio se llevar\u00e1 a cabo en cualquier posici\u00f3n de la ruta de entrega.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>loadingPositionInRoute<\/code> &#8211; (Opcional) Posici\u00f3n en la ruta para la carga<em>.<\/em> Valores posibles: <strong>[<code>INDIFFERENT, FIRST, LAST, ALONE<\/code>].<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"logisticConstraints\": [\n        {\n            \"name\": \"Regras-Depot\",\n            \"siteLoadingFixedTime\": 1200,\n            \"loadingMaxSize\": 30\n        },\n        {\n            \"name\": \"Regras-Entrega-R\u00e1pida\",\n            \"siteUnloadingFixedTime\": 300,\n            \"unloadingPositionInRoute\": \"FIRST\",\n            \"unloadingMaxSize\": 30\n        }\n],\n<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vehicleTypes\">vehicleTypes*<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>vehicleTypes<\/code><strong> <\/strong>es una <strong>array de objetos<\/strong>, donde cada objeto representa un <strong>tipo de veh\u00edculo<\/strong>. Los tipos de veh\u00edculos son las caracter\u00edsticas de los veh\u00edculos que se utilizar\u00e1n en la planificaci\u00f3n, como el peso y el volumen soportados, por ejemplo.<\/p>\n\n\n\n<p>La API comprobar\u00e1 la capacidad de los veh\u00edculos para distribuir los pesos y vol\u00famenes de los productos en cada operaci\u00f3n para la mejor optimizaci\u00f3n log\u00edstica.<\/p>\n\n\n\n<p><strong>Par\u00e1metros obligatorios<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code> &#8211; Texto \u00fanico con el tipo de veh\u00edculo. Se utiliza como referencia en  <code><a href=\"#vehicles\" data-type=\"internal\" data-id=\"#vehicles\">vehicles<\/a><\/code><em>.<\/em><\/li>\n\n\n\n<li><code>maxVolume<\/code> &#8211; Valor num\u00e9rico (double) con el volumen m\u00e1ximo soportado por el veh\u00edculo<em>.<\/em><\/li>\n\n\n\n<li><code>maxWeight<\/code> &#8211; Valor num\u00e9rico (double) con el peso m\u00e1ximo soportado por el veh\u00edculo<em>.<\/em><\/li>\n\n\n\n<li><code>size<\/code> &#8211; Valor num\u00e9rico (integer) con el tama\u00f1o del veh\u00edculo<em>.<br><\/em><\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros obligatorios<\/em><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"vehicleTypes\": [\n        {\n            \"name\": \"VUC\",\n            \"maxVolume\": 20,\n            \"maxWeight\": 1200,\n            \"size\": 1\n        },\n        {\n            \"name\": \"3\/4\",\n            \"maxVolume\": 30,\n            \"maxWeight\": 1500,\n            \"size\": 1\n        }\n],\n<\/pre>\n\n\n\n<p><strong>Par\u00e1metros opcionales<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>characteristics<\/code> &#8211; Array de <em>strings<\/em> que define las caracter\u00edsticas del veh\u00edculo. Esta informaci\u00f3n se utiliza para validar la compatibilidad entre operaciones y veh\u00edculos. Por ejemplo, si una operaci\u00f3n tiene <code>\"Refrigerado\"<\/code> en <code>characteristics<\/code>, solo podr\u00e1n atenderla los veh\u00edculos que tambi\u00e9n posean <code>\"Refrigerado\"<\/code> en sus caracter\u00edsticas.<\/li>\n\n\n\n<li><code>minAvaibleCapacityForCollection<\/code>&nbsp;&#8211; N\u00famero entero entre 0 y 100, que indica el porcentaje m\u00ednimo de capacidad disponible que debe tener el veh\u00edculo para iniciar las actividades de recolecci\u00f3n. Por ejemplo, si es 0, las recogidas se pueden realizar en cualquier momento de la ruta. Si es 100 las recogidas s\u00f3lo se realizar\u00e1n con el veh\u00edculo completamente vac\u00edo. El valor predeterminado es 100.<\/li>\n\n\n\n<li><code>maxSitesNumber<\/code> &#8211; Entero con el n\u00famero m\u00e1ximo de <em>sites<\/em> que el veh\u00edculo visitar\u00e1 por ruta.<\/li>\n\n\n\n<li><code>compartmentsAccessMode<\/code>  &#8211; Texto con la forma de acceder al compartimento de carga del veh\u00edculo. Valores permitidos:\n<ul class=\"wp-block-list\">\n<li> <strong><code>ALL_COMPARTMENTS<\/code><\/strong>  &#8211; Indica el posible acceso a todos los compartimentos;<\/li>\n\n\n\n<li><strong> <code>REAR_ACCESS<\/code><\/strong>  &#8211; Acceso s\u00f3lo al compartimento trasero del veh\u00edculo;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>compartmentConfigurations<\/code>  &#8211; Conjunto con las caracter\u00edsticas del compartimento de carga.\n<ul class=\"wp-block-list\">\n<li><code>name<\/code> &#8211; (Obligatorio) Texto \u00fanico con el nombre del compartimento;<\/li>\n\n\n\n<li><code>loadingRule<\/code>  &#8211; (Obligatorio) Entero con la regla considerada para cargar el compartimento. Valores posibles:\n<ul class=\"wp-block-list\">\n<li> <strong><code>NONE<\/code> &#8211;<\/strong> No hay reglas fijas;<\/li>\n\n\n\n<li> <strong><code>IDENTICAL_PACKAGINGS<\/code> &#8211;<\/strong> El compartimento s\u00f3lo aceptar\u00e1 productos del mismo <em>package;<\/em><\/li>\n\n\n\n<li><strong><code>SINGLE_OPERATION<\/code> <\/strong>&#8211; El compartimento s\u00f3lo puede utilizarse para una operaci\u00f3n por ruta;<\/li>\n\n\n\n<li> <strong><code>IDENTICAL_PRODUCTS<\/code> &#8211;<\/strong> El compartimentos\u00f3lo acepta un tipo de producto;<\/li>\n\n\n\n<li><strong><code>IDENTICAL_SITE_PRODUCTS<\/code> <\/strong>&#8211; El compartimento s\u00f3lo aceptar\u00e1 un tipo de producto y debe ser del mismo <em>site<\/em>;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>maximumCapacity<\/code> &#8211; (Obligatorio) N\u00famero decimal con la capacidad m\u00e1xima del compartimento.<\/li>\n\n\n\n<li><code>increment<\/code> &#8211; N\u00famero decimal con incremento de capacidad del compartimento.<\/li>\n\n\n\n<li><code>allowedPackagings<\/code> &#8211; Array con los nombres de los paquetes que se pueden cargar en el compartimento. Debe ser \u00fanico en un tipo de compartimento.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>trip<\/code>  &#8211; Esto indica que, adem\u00e1s de clasificar los puntos log\u00edsticos, tambi\u00e9n hay que devolver la ruta. Todos los par\u00e1metros aceptados por la <strong><a href=\"https:\/\/developers.maplink.global\/es\/creacion-de-solicitudes-para-la-api-trip\/\" data-type=\"post\" data-id=\"1074\">Trip API<\/a><\/strong> se aceptan aqu\u00ed.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros opcionales<\/em><\/strong><\/p>\n\n\n\n<p>Este ejemplo muestra c\u00f3mo describir las caracter\u00edsticas de dos veh\u00edculos diferentes: el primero una moto <code>\"Moto\"<\/code> y el segundo un coche <code>\"Carro\"<\/code>. La <code>\"Moto\"<\/code> tiene una capacidad de carga menor y s\u00f3lo puede transportar paquetes con el nombre <code>\"Carga_Resistente\"<\/code>. <code>\"Carro\"<\/code> tiene una capacidad de carga mayor, pero s\u00f3lo puede transportar paquetes con el nombre <code>\"Carga_fragil\"<\/code>.<\/p>\n\n\n\n<p>As\u00ed podremos detallar qu\u00e9 tipo de paquete\/producto puede transportar un veh\u00edculo y el otro no.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"vehicleTypes\": [\n    {\n        \"name\": \"Moto\",\n        \"maxWeight\": 100,\n        \"maxVolume\": 50,\n        \"size\": 30,\n        \"maxSitesNumber\": 24,\n        \"minAvaibleCapacityForCollection\": 0, \n        \"characteristics\": [\"El\u00e9trica\", \"Bagageiro traseiro\"],\n        \"compartmentsAccessMode\": \"REAR_ACCESS\",\n        \"compartmentConfigurations\": [\n            {\n                \"name\": \"compartimentoMoto\",\n                \"compartments\": [\n                    {\n                        \"name\": \"bau_moto\",        \n                        \"maximumCapacity\": 1000,\n                        \"loadingRule\": \"NONE\",\n                        \"allowedPackagings\": [\n                            \"Carga_Resistente\"\n                        ]\n                    }\n                ]\n            }\n        ],\n        \"trip\": {\n            \"calculationMode\": \"THE_FASTEST\",\n            \"toll\": {\n                \"vehicleType\": \"MOTORCYCLE\"\n            }\n        }\n    },\n    {\n        \"name\": \"Carro\",\n        \"maxWeight\": 400,\n        \"maxVolume\": 100,\n        \"size\": 30,\n        \"maxSitesNumber\": 24,\n        \"minAvaibleCapacityForCollection\": 0, \n        \"characteristics\": [\"Ar-condicionado\", \"Porta-malas grande\"],\n        \"compartmentsAccessMode\": \"REAR_ACCESS\",\n        \"compartmentConfigurations\": [\n            {\n                \"name\": \"compartimentoCarro\",\n                \"compartments\": [\n                    {\n                        \"name\": \"porta_malas\",                       \n                        \"maximumCapacity\": 1000,\n                        \"loadingRule\": \"NONE\",\n                        \"allowedPackagings\": [\n                            \"Carga_fragil\"\n                        ]\n                    }\n                ]\n            }\n        ],\n        \"trip\": {\n            \"calculationMode\": \"THE_FASTEST\",\n            \"toll\": {\n                \"vehicleType\": \"MOTORCYCLE\"\n            }\n        }\n    }\n],<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vehicles\">vehicles*<\/h2>\n\n\n\n<p>El par\u00e1metro <code>vehicles<\/code><strong> <\/strong> es un <strong>array de objetos<\/strong>, donde cada objeto representa un <strong>veh\u00edculo disponible<\/strong> para realizar actividades de operaciones, que conforman la flota para cumplir con la planificaci\u00f3n log\u00edstica<em>.<\/em><\/p>\n\n\n\n<p>Para cada objeto en <code>vehicles<\/code><strong> <\/strong> , se definir\u00e1 el lugar de origen y de retorno, as\u00ed como el tiempo disponible para realizar las operaciones.<\/p>\n\n\n\n<p><strong>Par\u00e1metros obligatorios<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto \u00fanico con el nombre del veh\u00edculo. Se utiliza como referencia en  <a href=\"#operations\"><code>operations<\/code><\/a> e identificar\u00e1 el veh\u00edculo que recorrer\u00e1 la ruta.<\/li>\n\n\n\n<li><code>vehicleType<\/code> &#8211; Texto con el tipo de veh\u00edculo declarado en <a href=\"#vehicleTypes\"><code>vehicleTypes<\/code><\/a>.<\/li>\n\n\n\n<li><code>legislationProfile<\/code> &#8211; Texto con el perfil de la legislaci\u00f3n, recogido en <a href=\"#legislationProfiles\"><code>legislationProfiles<\/code><\/a>.<\/li>\n\n\n\n<li><code>availablePeriods<\/code> &#8211; Describe las caracter\u00edsticas de las horas de trabajo disponibles del conductor del veh\u00edculo. Hay par\u00e1metros obligatorios y opcionales. Los obligatorios son:\n<ul class=\"wp-block-list\">\n<li><code>start<\/code>  &#8211; Hora de inicio de la jornada laboral. Formato de <em>timestamp<\/em>en milisegundos. Ejemplo: <code>1511901826456<\/code>.<\/li>\n\n\n\n<li><code>end<\/code>  &#8211; Hora de finalizaci\u00f3n de la jornada laboral. Formato de <em>timestamp<\/em> en milisegundos. Ejemplo:  <code>1511904661038<\/code><em>.<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros obligatorios<\/em><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"vehicles\": [\n    {\n        \"name\": \"VUC_1\",\n        \"vehicleType\": \"VUC\",\n        \"legislationProfile\": \"DEFAULT\",\n        \"availablePeriods\": [\n            {\n                \"timeWindow\": {\n                    \"start\": 1513753200000,\n                    \"end\": 1513796400000\n                }\n            }\n        ]\n    }\n\n\n],<\/pre>\n\n\n\n<p><strong>Par\u00e1metros opcionales<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>availablePeriods<\/code> &#8211; Describe las caracter\u00edsticas de las horas de trabajo disponibles del conductor del veh\u00edculo. Los par\u00e1metros opcionales son:\n<ul class=\"wp-block-list\">\n<li><code>departureSite<\/code>  &#8211; Texto con el lugar de salida del veh\u00edculo al inicio de la ruta. Si no se declara, la API Planning decidir\u00e1 el <em>dep\u00f3sito de <\/em>inicio.<\/li>\n\n\n\n<li><code>arrivalSite<\/code>  &#8211; Texto con la ubicaci\u00f3n de regreso del veh\u00edculo al final de la ruta. Si no se declara, la API Planning decidir\u00e1 en el \u00faltimo <em>sitio de <\/em>la \u00faltima operaci\u00f3n para finalizar la ruta.<\/li>\n\n\n\n<li><code>maxRoutesNumber<\/code>  &#8211; Entero con el n\u00famero de rutas m\u00e1ximas para el periodo disponible. Por ejemplo, si <code>\"maxRoutesNumber\": 1<\/code>, el veh\u00edculo realizar\u00e1 todas las operaciones en la misma ruta.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>logisticZones<\/code> &#8211; Array con los nombres de las zonas log\u00edsticas en las que el veh\u00edculo puede realizar operaciones. Deben ser \u00fanicos y tener el mismo nombre declarado en <a href=\"#logisticZones\" data-type=\"internal\" data-id=\"#logisticZones\"><code>logisticZones<\/code><\/a>.<\/li>\n\n\n\n<li><code>priority<\/code>&nbsp;\u2013 N\u00famero entero que indica el nivel de prioridad del veh\u00edculo, en orden descendente. Los veh\u00edculos con una prioridad igual a 1 se utilizar\u00e1n primero, mientras que los valores m\u00e1s altos se utilizar\u00e1n en secuencia y los veh\u00edculos sin la prioridad informada se utilizar\u00e1n en \u00faltimo lugar.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros opcionales<\/em><\/strong><\/p>\n\n\n\n<p>Este ejemplo muestra dos productos del mismo tipo que est\u00e1n asociados a paquetes diferentes. Podemos utilizar el par\u00e1metro <code>packagings<\/code> para asociarlo posteriormente al tipo de veh\u00edculo que transportar\u00e1 el producto.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"vehicles\": [\n    {\n        \"name\": \"154\",\n        \"vehicleType\": \"Moto\",\n        \"legislationProfile\": \"DEFAULT\",\n        \"priority\": 1,\n        \"availablePeriods\": [\n            {\n                \"timeWindow\": {\n                    \"start\": 1611057600000,\n                    \"end\": 1611082800000\n                },\n                \"departureSite\": \"maam2\",\n                \"arrivalSite\": \"maam2\",\n                \"maxRoutesNumber\": 1\n            }\n        ]\n        \"logisticZones\": [\"CE - ZONA LESTE\",\"CE - ZONA SUL\"]\n    },\n    {\n        \"name\": \"150\",\n        \"vehicleType\": \"Carro\",\n        \"legislationProfile\": \"DEFAULT\",\n        \"priority\": 1,\n        \"availablePeriods\": [\n            {\n                \"timeWindow\": {\n                    \"start\": 1611057600000,\n                    \"end\": 1611082800000\n                },\n                \"departureSite\": \"fkebvlkbvgrvg\",\n                \"arrivalSite\": \"ufwevidevgre\",\n                \"maxRoutesNumber\": 1\n            }\n        ],\n        \"logisticZones\": [\"CE - ZONA NORTE\",\"CE - ZONA OESTE\"]\n    }\n]<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"products\">products*<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>products<\/code><strong> <\/strong>es una <strong>array de objetos<\/strong>, donde cada objeto representa un <strong>producto <\/strong>a transportar por los veh\u00edculos. Cada producto debe estar asociado a una operaci\u00f3n.<\/p>\n\n\n\n<p>Tambi\u00e9n es posible definir <em>paquetes<\/em>, o <em>embalajes<\/em>, para asociar productos a un tipo espec\u00edfico de veh\u00edculo.<\/p>\n\n\n\n<p>A continuaci\u00f3n se indican los par\u00e1metros disponibles en <code>products<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto \u00fanico con el nombre del producto. Sol\u00eda estar referenciado en <code><a href=\"#operations\" data-type=\"internal\" data-id=\"#operations\">operations<\/a><\/code>.<\/li>\n\n\n\n<li><code>type<\/code>  &#8211; (Opcional) Texto que describe el tipo de producto. Se utiliza para identificar grupos y categor\u00edas.<\/li>\n\n\n\n<li><code>packagings<\/code> &#8211; (Opcional) Array con los nombres de los paquetes asociados al producto. <\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<p>Este ejemplo muestra dos productos del mismo tipo que est\u00e1n asociados a paquetes diferentes. Podemos utilizar el par\u00e1metro <code>packagings<\/code> para asociarlo posteriormente al tipo de veh\u00edculo que transportar\u00e1 el producto.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"products\": [\n        {\n            \"name\": \"Vidro\",\n            \"type\": \"Bebidas\",\n            \"packagings\": [\"Carga_fragil\"]\n        },\n        {\n            \"name\": \"Lata\",\n            \"type\": \"Bebidas\",\n            \"packagings\": [\"Carga_Resistente\"]\n        }\n]<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"legislationProfiles\">legislationProfiles*<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>legislationProfiles<\/code><strong> <\/strong>es una <strong>array de objetos<\/strong>, donde cada objeto representa un <strong>perfil de legislaci\u00f3n<\/strong>. Cada perfil legislativo definir\u00e1 las caracter\u00edsticas de la jornada laboral del conductor, como el tiempo de conducci\u00f3n continua y el tiempo para las pausas del almuerzo<em>.<\/em><\/p>\n\n\n\n<p>Se pueden crear uno o varios perfiles de legislaci\u00f3n en funci\u00f3n de las caracter\u00edsticas de la operaci\u00f3n, por ejemplo para trayectos de m\u00e1s de un d\u00eda.<\/p>\n\n\n\n<p>Se referencian en <code><a href=\"#vehicles\">vehicles<\/a><\/code> para definir qu\u00e9 perfil se aplica al veh\u00edculo\/conductor.<\/p>\n\n\n\n<p>A continuaci\u00f3n figura la lista de par\u00e1metros disponibles en legislationProfiles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto \u00fanico con el nombre del perfil de legislaci\u00f3n. Se utiliza como referencia en los veh\u00edculos.<\/li>\n\n\n\n<li><code>maxContinuousDrivingTime<\/code> &#8211; (Opcional) N\u00famero entero con el tiempo m\u00e1ximo en segundos de conducci\u00f3n continua.<\/li>\n\n\n\n<li><code>drivingPauseDuration<\/code> &#8211; (Opcional) Entero con el tiempo en segundos de pausa para la conducci\u00f3n. Se aplica una vez alcanzada la suma de <code>maxContinuousDrivingTime<\/code>. Puede utilizarse para crear pausas para comer o descansar. El resultado se presenta como una actividad denominada <code>\"PAUSE\"<\/code>.<\/li>\n\n\n\n<li><code>maxContinuousWorkingTime<\/code>  &#8211; (Opcional) Entero con el tiempo m\u00e1ximo en segundos de trabajo continuo. Se considera workingTime todo el tiempo dedicado a las actividades de <code>\"LOADING\"<\/code>; <code>\"DRIVING\"<\/code>; <code>\"DELIVERY\"<\/code>; <code>\"COLLECTION\"<\/code>; <code>\"WAITING\"<\/code>.<\/li>\n\n\n\n<li><code>workingPauseDuration<\/code>  &#8211; (Opcional) N\u00famero entero con el tiempo en segundos que se pausa el trabajo. Se consideran trabajo las siguientes actividades: <code>\"LOADING\"<\/code>; <code>\"DRIVING\"<\/code>; <code>\"DELIVERY\"<\/code>; <code>\"COLLECTION\"<\/code>; <code>\"WAITING\"<\/code>. Este par\u00e1metro se utiliza para viajes de varios d\u00edas en los que se aplica el tiempo que el conductor descansar\u00e1 al final del turno de trabajo.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<p>El ejemplo siguiente muestra un perfil de legislaci\u00f3n para viajes de varios d\u00edas.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El valor de 3 horas y 45 minutos de conducci\u00f3n continua est\u00e1 fijado en <code>maxContinuousDrivingTime<\/code>.<\/li>\n\n\n\n<li>En <code>drivingPauseDuration<\/code> se establece 1 hora para la pausa del almuerzo.<\/li>\n\n\n\n<li>En <code>maxContinuousWorkingTime<\/code> se define un turno de 8 horas.<\/li>\n\n\n\n<li>En <code>workingPauseDuration<\/code> puedes tomarte 15 horas libres para empezar a trabajar al d\u00eda siguiente.<\/li>\n<\/ul>\n\n\n\n<p>As\u00ed, el conductor trabajar\u00e1 las horas de conducci\u00f3n y entregas, har\u00e1 una pausa de 1 hora para comer, continuar\u00e1 las entregas por la tarde y, cuando haya trabajado un total de 8 horas, descansar\u00e1 15 horas para iniciar la nueva jornada al d\u00eda siguiente.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"legislationProfiles\": [\n    {\n        \"name\": \"perfil\",\n        \"maxContinuousDrivingTime\": 13500,\n        \"drivingPauseDuration\": 3600,\n        \"maxContinuousWorkingTime\": 28800,\n        \"workingPauseDuration\": 54000\n    }\n]<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sites\">sites*<\/h2>\n\n\n\n<p>El par\u00e1metro <code>sites<\/code> es una <strong>array de objetos<\/strong>, donde cada objeto representa una <strong>ubicaci\u00f3n donde se va a realizar una operaci\u00f3n de entrega o recogida<\/strong>. Deben referenciarse en las operations, para asociar la localizaci\u00f3n a la operaci\u00f3n.<\/p>\n\n\n\n<p>Tambi\u00e9n pueden consultarse en <code><a href=\"#vehicles\">vehicles<\/a><\/code> para definir el lugar de partida y de regreso del conductor.<\/p>\n\n\n\n<p>Cada objeto de <code>sites<\/code> tambi\u00e9n puede asociarse a una regla log\u00edstica para definir, por ejemplo, el tiempo necesario para cargar y descargar en el sitio.<\/p>\n\n\n\n<p>A continuaci\u00f3n figuran los par\u00e1metros disponibles para los sitios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code> &#8211; Texto \u00fanico del nombre del sitio. Se utiliza para hacer referencia en las <em>operaciones <\/em>e identificarlas en el resultado<\/li>\n\n\n\n<li><code>coordinates<\/code> &#8211; Coordenadas geogr\u00e1ficas en grados decimales de latitud y longitud:\n<ul class=\"wp-block-list\">\n<li><code>latitude<\/code> &#8211; Valor num\u00e9rico en grados decimales. Debe estar entre -90,0 y 90,0. Ejemplo: -23,6987.<\/li>\n\n\n\n<li><code>longitude<\/code> &#8211; Valor num\u00e9rico en grados decimales. Debe estar entre -180,0 y 180,0. Ejemplo: -45,7347.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>logisticConstraints<\/code>  &#8211; Texto con referencia al nombre de <a href=\"#logisticConstraints\">\n  <code>logisticConstraint<\/code>\n<\/a>.<\/li>\n\n\n\n<li><code>logisticZones<\/code> &#8211; (Opcional) Array con los nombres de las zonas log\u00edsticas a las que pertenece el <em>sitio <\/em>. Deben ser \u00fanicos y tener el mismo nombre declarado en  <a href=\"#logisticZones\"><code>logisticZones<\/code><\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"sites\": [\n    {\n        \"name\": \"204498250\",\n        \"coordinates\": {\n            \"latitude\": -26.2186024,\n            \"longitude\": -48.6656953\n        },\n        \"logisticConstraints\": \"DEFAULT\",\n        \"logisticZones\": [\"joinville\"]           \n    },\n    {\n        \"name\": \"616188578\",\n        \"coordinates\": {\n            \"latitude\": -26.2408157,\n            \"longitude\": -49.3971109\n        },\n        \"logisticConstraints\": \"DEFAULT\",\n        \"logisticZones\": [\"sbs\"]  \n    }\n] <\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"operations\">operations*<\/h2>\n\n\n\n<p>El par\u00e1metro <code>operations<\/code><strong> <\/strong> es un <strong>array de objetos<\/strong>, donde cada objeto representa una<strong> operaci\u00f3n a resolver en la planificaci\u00f3n log\u00edstica. <\/strong>Cada objeto contendr\u00e1 las caracter\u00edsticas de la operaci\u00f3n, como el tipo (entrega o recogida), franja horaria del cliente, peso y volumen de la entrega, entre otros.<\/p>\n\n\n\n<p>Se recomienda tener un m\u00e1ximo de 200 operaciones por petici\u00f3n para un mejor rendimiento de la API.<\/p>\n\n\n\n<p><strong>Par\u00e1metros obligatorios<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>customerSite<\/code>  &#8211; Texto con el nombre del <em>sitio<\/em>, ubicaci\u00f3n de la operaci\u00f3n.<\/li>\n\n\n\n<li><code>customerTimeWindows<\/code>  &#8211; Ventana de tiempo en la que el cliente puede recibir la operaci\u00f3n:\n<ul class=\"wp-block-list\">\n<li><code>start<\/code>  &#8211; Hora de inicio de la operaci\u00f3n del cliente. Formato de <em>timestamp <\/em>en milisegundos: <code>1511901826456<\/code>.<\/li>\n\n\n\n<li><code>end<\/code> &#8211; Hora de finalizaci\u00f3n en la que el cliente realiza la operaci\u00f3n. Formato de <em>timestamp <\/em>en milisegundos: <code>1511904661038<\/code><em>.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>depotSite<\/code>  &#8211; <em>Almac\u00e9n<\/em> de origen de la operaci\u00f3n<em>. <\/em>Se utiliza para identificar desde qu\u00e9 <em>almac\u00e9n<\/em> se cargar\u00e1 el producto en el veh\u00edculo hasta su entrega. En el caso de una operaci\u00f3n de recogida, el <em>dep\u00f3sito <\/em>donde se descargar\u00e1 el producto.<\/li>\n\n\n\n<li><code>id<\/code>  &#8211; Texto \u00fanico con el identificador de la operaci\u00f3n.<\/li>\n\n\n\n<li><code>product<\/code>  &#8211; Texto \u00fanico con el nombre del producto. Debe indicarse en <code><a href=\"#products\">products<\/a><\/code>.<\/li>\n\n\n\n<li><code>type<\/code>  &#8211; Tipo de operaci\u00f3n, entrega o recogida de productos. Debe ser uno de los siguientes tipos: <strong>[<code>COLLECTION, DELIVERY<\/code>].<\/strong><\/li>\n\n\n\n<li><code>volume<\/code>  &#8211; N\u00famero decimal con el volumen del producto que se entregar\u00e1\/recoger\u00e1 en la operaci\u00f3n. Es importante que est\u00e9 en la misma unidad que se utiliz\u00f3 en  <code><a href=\"#vehicleTypes\">vehicleTypes<\/a><\/code><em>. <\/em>Por ejemplo, metros c\u00fabicos.<\/li>\n\n\n\n<li><code>weight<\/code>  &#8211; N\u00famero decimal con el peso del producto que se entregar\u00e1\/recoger\u00e1 en la operaci\u00f3n. Es importante que est\u00e9 en la misma unidad que se utiliz\u00f3 en <code><a href=\"#vehicleTypes\">vehicleTypes<\/a><\/code>. Por ejemplo, kilogramos.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros obligatorios<\/em><\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"operations\": [\n    {\n        \"customerSite\": \"MERCADO02GLICERIO\",\n        \"depotSite\": \"DEPOSITO01\",\n        \"type\": \"DELIVERY\",\n        \"customerTimeWindows\": [\n            {\n                \"end\": 1583506800000,\n                \"start\": 1583499600000\n            }\n        ],\n        \"id\": \"NUMORDEM30\",\n        \"product\": \"HD_DIVERSOS\",\n        \"volume\": 1,\n        \"weight\": 0.15\n    },\n    {\n        \"customerSite\": \"MERCADO10SCAETANO\",\n        \"depotSite\": \"DEPOSITO01\",\n        \"type\": \"DELIVERY\",\n        \"customerTimeWindows\": [\n            {\n                \"end\": 1583528400000,\n                \"start\": 1583492400000\n            }\n        ],\n        \"id\": \"NUMORDEM27\",\n        \"product\": \"HD_DIVERSOS\",\n        \"volume\": 1,\n        \"weight\": 0.15\n    }\n]<\/pre>\n\n\n\n<p><strong>Par\u00e1metros opcionales<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>customerHandlingDuration<\/code> &#8211; Entero con el tiempo en segundos que se emplear\u00e1 en el cliente para realizar la operaci\u00f3n<em>.<\/em> Para operaciones de tipo <code>DELIVERY<\/code>, este tiempo se agregar\u00e1 a la actividad de <code>DELIVERY<\/code> y para operaciones de tipo <code>COLLECTION<\/code>, este tiempo se agregar\u00e1 a la actividad de <code>COLLECTION<\/code>.<\/li>\n\n\n\n<li><code>depotHandlingDuration<\/code> &#8211; Entero con el tiempo en segundos que se pasar\u00e1 en el <em>depot <\/em>para realizar la operaci\u00f3n<em>. <\/em>Para operaciones de tipo <code>DELIVERY<\/code> este tiempo se agregar\u00e1 en la actividad de <code>LOADING<\/code> y para operaciones de tipo <code>COLLECTION<\/code> este tiempo se agregar\u00e1 en la actividad de <code>UNLOADING<\/code>.<\/li>\n\n\n\n<li><code>depotTimeWindows<\/code>  &#8211; Ventana horaria del almac\u00e9n en la que se va a realizar la operaci\u00f3n. Por ejemplo, si se trata de una operaci\u00f3n con la actividad de <code>\"DELIVERY\"<\/code>, el producto se cargar\u00e1 en el veh\u00edculo dentro del almac\u00e9n en este intervalo de tiempo (en la respuesta de la API, la actividad aparecer\u00e1 como  <code>\"LOADING\"<\/code><em>)<\/em>. Si se trata de una operaci\u00f3n con actividad desde <code>\"COLLECTION\"<\/code>, el producto llegar\u00e1 al almac\u00e9n en este intervalo de tiempo (en la respuesta de la API, la actividad aparecer\u00e1 como <code>\"UNLOADING\"<\/code>):\n<ul class=\"wp-block-list\">\n<li><code>start<\/code>  &#8211; Hora de inicio de la operaci\u00f3n en <code>depot<\/code>. Formato de <em>timestamp <\/em>en milisegundos: <code>1511901826456<\/code>.<\/li>\n\n\n\n<li><code>end<\/code>  &#8211; Hora de finalizaci\u00f3n  <code>depot<\/code><em> <\/em>act\u00faa en la operaci\u00f3n. Formato de <em>timestamp <\/em>en milisegundos: <code>1511904661038<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>group<\/code>  &#8211; Texto con el grupo de operaciones. Permite agrupar manualmente las operaciones de un mismo lugar. Las operaciones que tengan el mismo valor se ejecutar\u00e1n juntas. Por ejemplo, operaciones en diferentes tiendas de un mismo centro comercial.<\/li>\n\n\n\n<li><code>preAllocatedVehicleName<\/code>  &#8211; Texto con el nombre del veh\u00edculo que realizar\u00e1 la operaci\u00f3n de forma predefinida. A continuaci\u00f3n, la API Planning asignar\u00e1 este veh\u00edculo asociado para situar la operaci\u00f3n en su ruta. Utilice este par\u00e1metro para ejemplos en los que un conductor favorito tenga que atender a un cliente o un veh\u00edculo espec\u00edfico tenga que realizar la operaci\u00f3n.<\/li>\n\n\n\n<li><code>priority<\/code>  &#8211; Entero de la prioridad de la operaci\u00f3n. Se utiliza para priorizar la carga, no la secuencia de entrega. La escala de prioridades puede ser ascendente o descendente en funci\u00f3n del  <a href=\"#optimizationProfile\"><code>optimizationProfile<\/code><\/a><em> <\/em>usado<em>.<\/em><\/li>\n\n\n\n<li><code>characteristics<\/code> \u2013 Array de <em>strings<\/em> que define las caracter\u00edsticas que un veh\u00edculo debe tener para atender esta operaci\u00f3n. Esta informaci\u00f3n se utiliza para validar la compatibilidad entre operaciones y veh\u00edculos. Por ejemplo, si la operaci\u00f3n tiene <code>\"Refrigerado\"<\/code> en <code>characteristics<\/code>, solo los veh\u00edculos que tambi\u00e9n tengan <code>\"Refrigerado\"<\/code> en sus caracter\u00edsticas podr\u00e1n atenderla.<\/li>\n\n\n\n<li><code>quantity<\/code>  &#8211; N\u00famero decimal con la cantidad de la operaci\u00f3n. S\u00f3lo a t\u00edtulo descriptivo, no interfiere en el tratamiento de la operaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>Ejemplo con par\u00e1metros opcionales<\/em><\/strong><\/p>\n\n\n\n<p>Este ejemplo muestra 2 operaciones de entrega a realizar entre las 10:00 y las 12:00 (<code>customerTimeWindows<\/code>). La operaci\u00f3n en <code>MERCADO01MOOCA<\/code> tiene <code>depotTimeWindows<\/code> configurado para cargar en el dep\u00f3sito entre las 11:00 y las 12:00 con una duraci\u00f3n de 10 minutos (<code>depotHandlingDuration<\/code>).<\/p>\n\n\n\n<p>Por este motivo, el cami\u00f3n no saldr\u00e1 del dep\u00f3sito hasta las 11:10 para realizar las dos operaciones y tendr\u00e1 hasta las 12:00 para llevarlas a cabo.<\/p>\n\n\n\n<p>Ambas operaciones proceden de la misma <code>\"group\": \"A\"<\/code> y ser\u00e1n atendidas por <code>\"preAllocatedVehicleName\": \"VUC01\"<\/code>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"operations\": [\n    {\n        \"customerSite\": \"MERCADO01MOOCA\",\n        \"depotSite\": \"DEPOSITO01\",\n        \"preAllocatedVehicleName\":\"VUC01\" ,\n        \"characteristics\": [\"Refrigerado\"],\n        \"type\": \"DELIVERY\",\n        \"customerTimeWindows\": [\n            {\n                \"start\": 1583499600000,\n                \"end\": 1583506800000\n            }\n        ],\n        \"depotTimeWindows\": [\n            {\n                \"start\": 1583503200000,\n                \"end\": 1583506800000\n            }\n        ],\n        \"depotHandlingDuration\": 600,\n        \"id\": \"NUMORDEM25\",\n        \"product\": \"HD_DIVERSOS\",\n        \"volume\": 12,\n        \"weight\": 1,\n        \"quantity\": 10,\n        \"group\": \"A\"\n    },\n    {\n        \"customerSite\": \"MERCADO02GLICERIO\",\n        \"depotSite\": \"DEPOSITO01\",\n        \"preAllocatedVehicleName\": \"VUC01\",\n        \"characteristics\": [\"Refrigerado\"],\n        \"type\": \"DELIVERY\",\n        \"customerTimeWindows\": [\n            {\n                \"start\": 1583499600000,\n                \"end\": 1583506800000\n            }\n        ],\n        \"customerHandlingDuration\": 300,\n        \"id\": \"NUMORDEM30\",\n        \"product\": \"HD_DIVERSOS\",\n        \"volume\": 1,\n        \"weight\": 0.15,\n        \"group\": \"A\"\n    }\n],<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"logisticZones\">logisticZones<\/h2>\n\n\n\n<p>El par\u00e1metro <code>logisticZones<\/code><strong> <\/strong> es una <strong>array de objetos<\/strong>, donde cada objeto representa una<strong> zona log\u00edstica<\/strong> que puede asociarse a <code>depots<\/code>, <code>sites<\/code> y <code>vehicles<\/code> para definir la relaci\u00f3n entre ellos.<\/p>\n\n\n\n<p>Por ejemplo, si define una zona log\u00edstica para un veh\u00edculo, \u00e9ste s\u00f3lo servir\u00e1 a los <em>sitios <\/em>que pertenezcan a la misma zona log\u00edstica.<\/p>\n\n\n\n<p>A continuaci\u00f3n se indican los par\u00e1metros disponibles en logisticZones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>  &#8211; Texto del nombre de la zona log\u00edstica. Se utiliza para referenciar en  <a href=\"#depots\" data-type=\"internal\" data-id=\"#depots\"><code>depots<\/code><\/a><em>,  <\/em><code><a href=\"#vehicles\">vehicles<\/a><\/code><em> <\/em>e  <a href=\"#sites\" data-type=\"internal\" data-id=\"#sites\"><code>sites<\/code><\/a><em>.<\/em><\/li>\n\n\n\n<li><code>zonePriority<\/code>&#8211; Prioridad de zona. Influir\u00e1 en qu\u00e9 zona log\u00edstica se atiende primero. Valores posibles: <strong>[<code>PRIORITARY, SECUNDARY<\/code>]<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"logisticZones\": [\n        {\n            \"name\": \"blumenau\",\n            \"zonePriority\": \"PRIORITARY\"\n        },\n        {\n            \"name\": \"jaragua\",\n            \"zonePriority\": \"PRIORITARY\"\n        },\n        {\n            \"name\": \"joinville\",\n            \"zonePriority\": \"PRIORITARY\"\n        }\n    ]<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"callback\">callback<\/h2>\n\n\n\n<p>El par\u00e1metro <code>callback<\/code><strong> <\/strong> es un objeto que contiene los datos <em>del webhook <\/em>que se utilizar\u00e1n para recibir los eventos de c\u00e1lculo de problemas.<\/p>\n\n\n\n<p>As\u00ed no tendr\u00e1 que comprobar el estado del problema para ver si se ha tramitado. La API notificar\u00e1 al <em>webhook <\/em>cuando la soluci\u00f3n est\u00e9 disponible para su consulta.<\/p>\n\n\n\n<p>Se requieren los siguientes par\u00e1metros:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>url<\/code> &#8211; URL con la direcci\u00f3n que recibir\u00e1 lo <em>callback<\/em>.<\/li>\n\n\n\n<li><code>user<\/code>  &#8211; (Opcional) Texto con el nombre del usuario si el endpoint requiere autenticaci\u00f3n<em>.<\/em><\/li>\n\n\n\n<li><code>password<\/code>  &#8211; (Opcional) Texto de la contrase\u00f1a si el endpoint requiere autenticaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"callback\": {\n    \"password\": \"nome_usuario\",\n    \"url\": \"https:\/\/enqkbfcos3dhgchuikd.webhook.net\",\n    \"user\": \"senha\"\n},<\/pre>\n\n\n\n<p>Para m\u00e1s detalles, consulte: <a href=\"https:\/\/developers.maplink.global\/es\/como-recibir-el-estado-actual-del-problema-a-traves-de-webhook\/\" data-type=\"post\" data-id=\"1037\">\u00bfC\u00f3mo recibir el estado actual del problema a trav\u00e9s de webhook?<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"optimizationProfile\">optimizationProfile*<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>optimizationProfile<\/code><strong> <\/strong>indica qu\u00e9 perfil de optimizaci\u00f3n utilizar\u00e1 la API Planning para procesar los datos. Cada perfil de optimizaci\u00f3n tiene <strong>unas caracter\u00edsticas que se tendr\u00e1n en cuenta para optimizar el problema log\u00edstico<\/strong>, y cada perfil es adecuado para un escenario espec\u00edfico.<\/p>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"optimizationProfile\": \"BRAZIL46\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Perfiles de optimizaci\u00f3n disponibles<\/strong><\/h3>\n\n\n\n<p><strong>BRASIL37<\/strong>: Perfil para grandes problemas, distribuyendo rutas entre veh\u00edculos en lugar de crear m\u00e1s de una ruta por veh\u00edculo. Comienza la asignaci\u00f3n de veh\u00edculos con mayor capacidad.<\/p>\n\n\n\n<p><strong>BRASIL46<\/strong>: Perfil para problemas menores, construcci\u00f3n inicial con m\u00e1s de 10 ubicaciones por ruta y manejo de varias ventanas de servicio diferentes.<\/p>\n\n\n\n<p><strong>BRAZIL_AVG_LOAD_RATE<\/strong>: Este perfil se utiliza para <strong>problemas de encaminamiento de veh\u00edculos m\u00faltiples<\/strong> (VRP) y tiene la caracter\u00edstica de atender a las prioridades de las operaciones y con los criterios de valoraci\u00f3n que enfatizan la capacidad media de carga en volumen\/peso para los veh\u00edculos.<\/p>\n\n\n\n<p><strong>BRAZIL_VRP_PICKUP<\/strong>: Perfil utilizado para el <strong>problema de enrutamiento de veh\u00edculos m\u00faltiples<\/strong> (VRP). Para los casos en que sea necesario realizar rutas, permitiendo recoger productos del <em>almac\u00e9n <\/em>y de otras tiendas durante la ruta para realizar las entregas. \u00datil en casos de uso de <em lang=\"es-EN\">\u00faltima milla<\/em>, en los que el veh\u00edculo saldr\u00e1 del centro de distribuci\u00f3n y recoger\u00e1 en tiendas a lo largo del camino.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tripsProfile\">tripsProfile*<\/h2>\n\n\n\n<p><code>tripsProfile<\/code> es un par\u00e1metro obligatorio en la solicitud de la API Planning para que el c\u00e1lculo de la planificaci\u00f3n log\u00edstica tenga en cuenta las caracter\u00edsticas del sistema de carreteras que influir\u00e1n en el camino.<\/p>\n\n\n\n<p>Os valores poss\u00edveis s\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>MAPLINKBR<\/code>&nbsp;\u2013 El c\u00e1lculo de la distancia se realizar\u00e1 considerando las rutas, pero s\u00f3lo para rutas ubicadas en Brasil.<\/li>\n\n\n\n<li><code>MAPLINK<\/code>&nbsp;\u2013 El c\u00e1lculo de distancia se realizar\u00e1 considerando las rutas, pero s\u00f3lo para rutas ubicadas en Am\u00e9rica Latina.<\/li>\n\n\n\n<li><code>FAST<\/code>&nbsp;\u2013 El c\u00e1lculo de la distancia se realizar\u00e1 considerando las carreteras; sin embargo, los puntos que superen un l\u00edmite de kilometraje se calcular\u00e1n linealmente. Este l\u00edmite est\u00e1 configurado por el par\u00e1metro <code>linearThreshold<\/code>.<\/li>\n\n\n\n<li><code>LINEAR<\/code>&nbsp;\u2013 El c\u00e1lculo se realizar\u00e1 de forma completamente lineal. El procesamiento es significativamente m\u00e1s r\u00e1pido, pero se pierde precisi\u00f3n. Recomendado s\u00f3lo para problemas con puntos distantes entre s\u00ed.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"tripsProfile\": \"FAST\"<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trip\">trip<\/h2>\n\n\n\n<p>El par\u00e1metro <strong><code>trip<\/code> <\/strong>es un <strong>objeto <\/strong>e indica que, adem\u00e1s de ordenar los puntos log\u00edsticos, se<strong>devuelvan las coordenadas que componen la ruta<\/strong>. Todos los par\u00e1metros aceptados por la <strong><a href=\"https:\/\/developers.maplink.global\/es\/lista-de-parametros-2\/\" data-type=\"post\" data-id=\"1076\">API Trip<\/a><\/strong> se aceptan aqu\u00ed.<br>Si el par\u00e1metro ya ha sido declarado en <a href=\"#vehicleTypes\"><code>vehicleTypes<\/code><\/a> se tendr\u00e1n en cuenta los par\u00e1metros all\u00ed definidos para cada tipo de veh\u00edculo.<\/p>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"trip\": {\n    \"calculationMode\": \"THE_FASTEST\",\n    \"crossedBorders\": {\n        \"level\": \"CITY\"\n    },\n    \"toll\": {\n        \"vehicleType\": \"TRUCK_WITH_TWO_DOUBLE_AXLES\"\n    }\n}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"calculationMode\">calculationMode<\/h2>\n\n\n\n<p>El par\u00e1metro  <code>calculationMode<\/code><strong> <\/strong>indica el m\u00e9todo de c\u00e1lculo que debe tenerse en cuenta para la planificaci\u00f3n de la ruta. Hay dos opciones disponibles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>THE_FASTEST<\/code>  &#8211; Devuelve la planificaci\u00f3n a la ruta m\u00e1s r\u00e1pida. (Mayor velocidad media)<\/li>\n\n\n\n<li><code>THE_SHORTEST<\/code>  &#8211; Devuelve la planificaci\u00f3n a la ruta con menor kilometraje.<\/li>\n<\/ul>\n\n\n\n<p>Si no se introduce el par\u00e1metro, se tendr\u00e1 en cuenta el valor <code>THE_FASTEST<\/code>.<\/p>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"calculationMode\": \"THE_FASTEST\",<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"linearThreshold\">linearThreshold<\/h2>\n\n\n\n<p>Valor num\u00e9rico. Se utiliza junto con <code>\"tripsProfile\": \"FAST\"<\/code>. Indica el l\u00edmite de distancia, en kil\u00f3metros, para que los c\u00e1lculos de distancia se puedan realizar considerando carreteras, en lugar de linealmente.<\/p>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"linearThreshold\": 500<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"restrictionZones\">restrictionZones<\/h2>\n\n\n\n<p>El par\u00e1metro <code>restrictionZones<\/code> es una <strong>array <\/strong>que contiene las <strong>\u00e1reas de restricci\u00f3n que deben tenerse en cuenta al resolver el problema log\u00edstico<\/strong>.<\/p>\n\n\n\n<p>Las zonas de restricci\u00f3n deben registrarse previamente a trav\u00e9s de la <a href=\"https:\/\/developers.maplink.global\/es\/creacion-de-solicitudes-para-la-restriction-zone-api\/\" data-type=\"post\" data-id=\"1321\">API Restriction Zone<\/a> y utilizarse como argumento en el par\u00e1metro <code>restrictionZones<\/code>. As\u00ed que las rutas se desviar\u00e1n de estas zonas.<\/p>\n\n\n\n<p>Si hay un punto de parada dentro del \u00e1rea de restricci\u00f3n, la API de planificaci\u00f3n servir\u00e1 el punto de parada a trav\u00e9s de la ruta con el menor solapamiento con el \u00e1rea de restricci\u00f3n.<\/p>\n\n\n\n<p><strong>Ejemplo<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"restrictionZones\": [\n        \"SP_BR381_90_km_Alt_Esq_5_3_Cen_5_45_Dir_5_6\",\n        \"SP_BR381_87_km_Alt_Esq_6_7_Cen_6_7_Dir_6_7\"\n]<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Los par\u00e1metros obligatorios se indican con *, los dem\u00e1s son opcionales. La lista de par\u00e1metros se describe por separado seg\u00fan los grupos a los que pertenecen: startDate El par\u00e1metro startDate indica la fecha y hora de inicio a considerar para cada c\u00e1lculo del problema log\u00edstico. Este par\u00e1metro es obligatorio y debe tener el formato de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[147],"tags":[],"class_list":["post-1857","post","type-post","status-publish","format-standard","hentry","category-planning-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/comments?post=1857"}],"version-history":[{"count":32,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1857\/revisions"}],"predecessor-version":[{"id":3658,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1857\/revisions\/3658"}],"wp:attachment":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/media?parent=1857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/categories?post=1857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/tags?post=1857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}