SkippedShipment

Especifica detalhes de remessas não executadas em uma solução. Para casos triviais e/ou se conseguirmos identificar a causa da ação de pular, informamos o motivo aqui.

Representação JSON
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ]
}
Campos
index

integer

O índice corresponde ao índice do envio na origem ShipmentModel.

label

string

Cópia do Shipment.label correspondente, se especificado no Shipment.

reasons[]

object (Reason)

Uma lista de motivos que explicam por que o envio foi pulado. Ver comentário acima de Reason.

Motivo

Se pudermos explicar por que o envio foi pulado, os motivos serão listados aqui. Se o motivo não for o mesmo para todos os veículos, reason vai ter mais de um elemento. Um frete pulado não pode ter motivos duplicados, ou seja, todos os campos são iguais, exceto exampleVehicleIndex. Exemplo:

reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 1
  exampleExceededCapacityType: "Apples"
}
reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 3
  exampleExceededCapacityType: "Pears"
}
reasons {
  code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
  exampleVehicleIndex: 1
}

O frete pulado é incompatível com todos os veículos. Os motivos podem ser diferentes para todos os veículos, mas a capacidade de "Maçãs" de um veículo seria excedida (incluindo o veículo 1), a capacidade de "Peras" de um veículo seria excedida (incluindo o veículo 3) e o limite de distância de pelo menos um veículo seria excedido (incluindo o veículo 1).

Representação JSON
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
Campos
code

enum (Code)

Consulte os comentários do código.

exampleExceededCapacityType

string

Se o código de motivo for DEMAND_EXCEEDS_VEHICLE_CAPACITY, documenta um tipo de capacidade que foi excedida.

exampleVehicleIndex

integer

Se o motivo estiver relacionado a uma incompatibilidade entre remessa e veículo, esse campo fornecerá o índice de um veículo relevante.

Programar

Código que identifica o tipo de motivo. A ordem não faz sentido. Em particular, ele não indica se um motivo específico vai aparecer antes de outro na solução, caso ambos se apliquem.

Enums
CODE_UNSPECIFIED Nunca deve ser usado. Se não conseguirmos entender por que uma remessa foi pulada, vamos retornar um conjunto vazio de motivos.
NO_VEHICLE O modelo não inclui nenhum veículo, o que torna as remessas inviáveis.
DEMAND_EXCEEDS_VEHICLE_CAPACITY A demanda do frete excede a capacidade de um veículo para alguns tipos, como exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

A distância mínima necessária para realizar o envio, por exemplo, do startLocation do veículo até os locais de coleta e/ou entrega e até o local de chegada do veículo excede o routeDistanceLimit.

Para esse cálculo, usamos as distâncias geodésicas.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

O tempo mínimo necessário para realizar o envio, incluindo o tempo de viagem, de espera e de serviço, excede a routeDurationLimit do veículo.

Observação: o tempo de viagem é calculado no melhor cenário, ou seja, como distância geodésica x 36 m/s (aproximadamente 130 km/h).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT Igual ao exemplo acima, mas comparamos apenas o tempo mínimo de viagem e o travelDurationLimit do veículo.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS O veículo não pode realizar essa remessa no melhor cenário (consulte CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT para cálculo do tempo) se começar no horário de início mais cedo: o tempo total faria o veículo terminar após o horário de término mais recente.
VEHICLE_NOT_ALLOWED O campo allowedVehicleIndices do frete não está vazio e este veículo não pertence a ele.