Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

São as operações que deverão ser resolvidas O parâmetro operations é um array de objetos, onde cada objeto representará uma operação a ser resolvida no planejamento logístico. Apresentam Cada objeto irá conter as características como atividades de entrega/coleta, horário da operação, como o tipo (entrega ou coleta), janela horária do cliente, peso /e volume da operaçãoentrega, entre outros.

É recomendado ter por requisição até no máximo 200 operações para um melhor desempenho da API.

Parâmetros obrigatórios

...

  • customerSite - texto Texto com o nome do site, local da operação.

  • customerTimeWindows - é a janela Janela de horário que o cliente poderá receber a operação. É possível definir mais de uma janela horária. Parâmetros obrigatórios:

    • start - Horário de início que o cliente atua na operação. Formato timestamp: 1511901826456.

    • end - Horário de fim que o cliente atua na operação. Formato timestamp: 1511904661038.

  • depotSite - depot Depot de origem para a operação. Usado para identificar de qual depot o produto será embarcado no veículo até a entrega. No caso de operação de coleta, será qual o depot deverá desembarcar onde será descarregado o produto.

  • id - texto Texto único com o identificador da operação. Normalmente é a ordem de serviço ou algum id de fácil identificação em outros sistemas.

  • product - texto Texto único com o nome do produto. Deve estar declarado em products.

  • type - tipo Tipo da operação, de entrega do produto ou coleta do produto. Deve ser um dos seguintes tipos: [COLLECTION, DELIVERY].

  • volume - número Número decimal com o volume do produto que será entregadoentregue/coletado na operação. É importante estar na mesma unidade em que foi utilizado em vehicleTypes. Por exemplo, metros cúbicos.

  • weight - número Número decimal com o peso do produto que será entregadoentregue/coletado na operação. É importante estar na mesma unidade em que foi utilizado em vehicleTypes. Por exemplo, kilogramasquilogramas.

Exemplo com parâmetros obrigatórios

...

Code Block
languagejson
"operations": [
    {
        "customerSite": "MERCADO02GLICERIO",
        "depotSite": "DEPOSITO01",
        "type": "DELIVERY",
        "customerTimeWindows": [
            {
                "start": 1583499600000.
                "end": 1583506800000                
            },
            {
                "start": 1583499600000 1583510400000.
                "end": 1583528400000
            }
        ],
        "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 opcionais

...

  • customerHandlingDuration - Número inteiro com o tempo em segundos que será gasto no cliente para realizar a operação. Conforme o tipo de atividade, se acumula ao tempo declarado nos parâmetros siteLoadingFixedTime e . Para operações de coleta (“COLLECTION”), utilizar o parâmetro siteLoadingFixedTime de LogisticConstraints.

  • depotHandlingDuration - Número inteiro com o tempo em segundos que será gasto no depósito para realizar a operação. Para operações de coleta (“COLLECTION”), utilizar o parâmetro siteUnloadingFixedTime de LogisticConstraints.

  • depotTimeWindows - é a janela Janela de horário do depósito em que a operação deve ocorrer. Por exemplo, se for uma operação com atividade de delivery, o produto será carregado no veículo dentro do depósito neste intervalo de horário (na resposta da API aparecerá como Loading). Se for uma operação com atividade de collection, o produto chegará no depósito neste intervalo de horário (na resposta da API aparecerá como Unloading):

    • start - Horário de início que o depot atua na operação. Formato timestamp: 1511901826456.

    • end - Horário de fim que o depot atua na operaçãooperação. Formato timestamp: 1511904661038.

  • depotHandlingDuration- Número inteiro com o tempo em segundos que será gasto no depot para realizar a operação. Conforme o tipo de atividade, se acumula ao tempo declarado nos parâmetros siteLoadingFixedTime e siteUnloadingFixedTime de LogisticConstraints.

  • group - Texto com o grupo de operações. Usado para agrupar operações de uma mesma localidade de forma manual. As operações que possuem possuírem o mesmo valor serão executados juntosexecutadas juntas. Por exemplo, operações em diferentes lojas que ficam em um mesmo shopping.

  • preAllocatedVehicleName - Texto com o nome do veículo que irá realizar a operação de forma pré-definida. Com isso, a Planning API irá alocar esse veículo associado para colocar a operação em sua rota. Utilize esse parâmetro para exemplos em que um motorista favorito deverá atender um cliente ou um veículo específico precisa realizar a operação.

  • priority - Número inteiro da prioridade da operação. A escala de prioridade pode ser crescente ou decrescente que deve ser configurado no parâmetro priorityManagementType com DECREASING_MANAGEMENT ou GROWING_MANAGEMENTdo Optimization ProfileUsado para definir a prioridade na carga, e não na sequência de entrega.

  • quantity - Número decimal com a quantidade da operação. Apenas para descrição, não interfere no peso ou volume da operação, ou no modo em que a operação é processada.

Exemplo com parâmetros opcionais

...

Este exemplo apresenta 2 operações de entrega para serem realizadas no intervalo das 10:00 até as 12:00 da manhã (customerTimeWindows). A operação no MERCADO01MOOCA possui o depotTimeWindows definido para realizar o carregamento no depósito entre 11:00 e 12:00 com duração de 10 minutos (depotHandlingDuration).

...

Ambas operações são do mesmo "group": "A" e serão atendidos pelo "preAllocatedVehicleName": "VUC01".

Code Block
languagejson
"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"
    }
],

 

Dependências do Optimization Profile:

Para o bom funcionamento do parâmetro priority, é necessário que o optimization profile tenha os seguintes parâmetros ativados e configurados conforme a necessidade do negócio:

1- Em "valorization" é possível utilizar "NB_REJECTS_PER_PRIORITIES" e "CRITICAL_PRIORITY_RESPECTED" como fator para valorizar as operações com prioridade. O "NB_REJECTS_PER_PRIORITIES" minimiza as operações rejeitadas conforme a prioridade. O "CRITICAL_PRIORITY_RESPECTED" minimiza a sobreposição da prioridade crítica cujo valor é definido nos parâmetros 1764 e 1959.

Code Block
        "valorization": [
            [
                "NB_REJECTS_PER_PRIORITIES"
            ],
            [
                "CRITICAL_PRIORITY_RESPECTED"
            ]
        ]  

 

2- Em LogisticFeatures é necessário ter preenchido priorityManagementType com DECREASING_MANAGEMENT ou GROWING_MANAGEMENT para definir a escala de prioridade para ser crescente ou decrescente:

Code Block
    "logisticFeatures":
{         "priorityManagementType": "DECREASING_MANAGEMENT"
    },

 

3-Em parâmetros do solver, seguintes parâmetros configuram como são utilizadas as prioridades. Vai variar conforme o valor da prioridade usada pelo usuário em Operations. Neste exemplo foi considerado o valor 100 para a operações de mais alta prioridade.

1763=100 - Brackets of priorities. This parameter specifies the way to group the similar priorities.
1764=100 - Level of the critical priority. When the solution's valorization is to minimize the overrun of the critical priority, this parameter specifies the level of the critical priority.
1787=100 - Highest priority level to assign to operations to meet a certification requirement in a problem with production constraints and priorities. In a production management context with prioritized operations, this parameter gives the highest priority level to assign to operations that meet a certification requirement.
1959=100 - Critical priority level for operations. This parameter specifies the level up to which operations are considered important in the context of rejected operations valorization by priority level.

Code Block
"parameters": {
        "1763": {
            "value": "100"
        },
        "1764": {
            "value": "100"
        },
        "1787": {
            "value": "100"
        },
		"1959": {
            "value": "100"
        }
}

 

Parâmetros não testados:

 

Ainda completar:

...

characteristics

...

]

...

status

string

Status of operation

...

,

...

depotTimeWindowBlocked

...

boolean

...

customerTimeWindowBlocked

...