Resposta após a solução de um problema de otimização de tours com as rotas seguidas por cada veículo, as remessas que foram ignoradas e o custo total da solução.
| Representação JSON | 
|---|
{ "routes": [ { object (  | 
            
| Campos | |
|---|---|
routes[] | 
              
                 
 Rotas computadas para cada veículo. A rota i corresponde ao veículo i no modelo.  | 
            
requestLabel | 
              
                 
 Cópia de   | 
            
skippedShipments[] | 
              
                 
 A lista de todas as remessas ignoradas.  | 
            
validationErrors[] | 
              
                 
 Lista de todos os erros de validação que conseguimos detectar de forma independente. Consulte a explicação com "VÁRIOS ERROS" para a mensagem   | 
            
metrics | 
              
                 
 Métricas de duração, distância e uso para esta solução.  | 
            
OptimizeToursValidationError
Descreve um erro ou aviso encontrado ao validar um OptimizeToursRequest.
| Representação JSON | 
|---|
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
              
| Campos | |
|---|---|
code | 
                
                   
 Um erro de validação é definido pelo par ( Outros campos (abaixo) fornecem mais contexto sobre o erro. VÁRIOS ERROS: quando há vários erros, o processo de validação tenta gerar vários deles. Assim como um compilador, esse é um processo imperfeito. Alguns erros de validação serão "fatais", o que significa que interrompem todo o processo de validação. Esse é o caso de erros  ESTABILIDADE:  REFERÊNCIA: uma lista de todos os pares (código, nome): 
  | 
              
displayName | 
                
                   
 O nome de exibição do erro.  | 
              
fields[] | 
                
                   
 Um contexto de erro pode envolver 0, 1 (na maioria das vezes) ou mais campos. Por exemplo, consultar o veículo 4 e a primeira retirada da remessa 2 pode ser feito da seguinte maneira: No entanto, a cardinalidade de   | 
              
errorMessage | 
                
                   
 String legível que descreve o erro. Há um mapeamento de um para um entre  ESTABILIDADE: não é estável: a mensagem de erro associada a um determinado   | 
              
offendingValues | 
                
                   
 Pode conter os valores dos campos. Nem sempre essa opção está disponível. Não confie nele e use apenas para depuração manual de modelos.  | 
              
FieldReference
Especifica um contexto para o erro de validação. Um FieldReference sempre se refere a um determinado campo neste arquivo e segue a mesma estrutura hierárquica. Por exemplo, podemos especificar o elemento 2 de startTimeWindows do veículo no 5 usando:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
No entanto, omitimos entidades de nível superior, como OptimizeToursRequest ou ShipmentModel, para evitar a aglomeração da mensagem.
| Representação JSON | 
|---|
{ "name": string, "subField": { object (  | 
              
| Campos | |
|---|---|
name | 
                
                   
 Nome do campo, por exemplo, "vehicles".  | 
              
subField | 
                
                   
 Subcampo anidado recursivamente, se necessário.  | 
              
Campo de união  
  | 
              |
index | 
                
                   
 Índice do campo, se repetido.  | 
              
key | 
                
                   
 Chave se o campo for um mapa.  | 
              
Métricas
Métricas gerais agregadas em todos os trajetos.
| Representação JSON | 
|---|
{
  "aggregatedRouteMetrics": {
    object ( | 
              
| Campos | |
|---|---|
aggregatedRouteMetrics | 
                
                   
 Agregado sobre as rotas. Cada métrica é a soma (ou máximo, para as cargas) de todos os campos   | 
              
skippedMandatoryShipmentCount | 
                
                   
 Número de remessas obrigatórias ignoradas.  | 
              
usedVehicleCount | 
                
                   
 Número de veículos usados. Observação: se uma rota de veículo estiver vazia e   | 
              
earliestVehicleStartTime | 
                
                   
 O horário de início mais cedo de um veículo usado, calculado como o mínimo de todos os veículos usados de  Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos:   | 
              
latestVehicleEndTime | 
                
                   
 O horário de término mais recente de um veículo usado, calculado como o máximo de  Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos:   | 
              
costs | 
                
                   
 Custo da solução, detalhado por campos de solicitação relacionados a custos. As chaves são caminhos proto, relativos à entrada OptimizeToursRequest, por exemplo, "model.shipments.pickups.cost", e os valores são o custo total gerado pelo campo de custo correspondente, agregado em toda a solução. Em outras palavras, costs["model.shipments.pickups.cost"] é a soma de todos os custos de retirada da solução. Todos os custos definidos no modelo são informados em detalhes aqui, com exceção dos custos relacionados a TransitionAttributes que só foram informados de maneira agregada a partir de 2022/01. Um objeto com uma lista de pares   | 
              
totalCost | 
                
                   
 Custo total da solução. A soma de todos os valores no mapa de custos.  |