Risposta dopo aver risolto un problema di ottimizzazione del tour contenente i percorsi seguiti da ciascun veicolo, le spedizioni che sono state saltate e il costo complessivo della soluzione.
| Rappresentazione JSON | 
|---|
{ "routes": [ { object (  | 
            
| Campi | |
|---|---|
routes[] | 
              
                 
 Percorsi calcolati per ogni veicolo; il percorso i-esimo corrisponde al veicolo i-esimo nel modello.  | 
            
requestLabel | 
              
                 
 Copia di   | 
            
skippedShipments[] | 
              
                 
 L'elenco di tutte le spedizioni ignorate.  | 
            
validationErrors[] | 
              
                 
 Elenco di tutti gli errori di convalida che siamo stati in grado di rilevare in modo indipendente. Consulta la spiegazione "ERRORI MULTIPLI" per il messaggio   | 
            
metrics | 
              
                 
 Metriche relative a durata, distanza e utilizzo per questa soluzione.  | 
            
OptimizeToursValidationError
Descrive un errore o un avviso rilevato durante la convalida di un OptimizeToursRequest.
| Rappresentazione JSON | 
|---|
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
              
| Campi | |
|---|---|
code | 
                
                   
 Un errore di convalida viene definito dalla coppia ( Gli altri campi (di seguito) forniscono ulteriori informazioni sull'errore. DIVERSI ERRORI: quando sono presenti più errori, il processo di convalida prova a generarne diversi. Si tratta di un processo imperfetto, proprio come per un compilatore. Alcuni errori di convalida sono "fatali", il che significa che interrompono l'intera procedura di convalida. È il caso, ad esempio, degli errori  STABILITÀ:  RIFERIMENTO: un elenco di tutte le coppie (codice, nome): 
  | 
              
displayName | 
                
                   
 Il nome visualizzato dell'errore.  | 
              
fields[] | 
                
                   
 Un contesto di errore può coinvolgere 0, 1 (nella maggior parte dei casi) o più campi. Ad esempio, puoi fare riferimento al veicolo n. 4 e al primo ritiro della spedizione n. 2 nel seguente modo: Tuttavia, tieni presente che la cardinalità di   | 
              
errorMessage | 
                
                   
 Stringa leggibile che descrive l'errore. Esiste una mappatura 1:1 tra  STABILITÀ: non stabile: il messaggio di errore associato a un determinato   | 
              
offendingValues | 
                
                   
 Può contenere i valori dei campi. Questa opzione non è sempre disponibile. Non dovresti assolutamente fare affidamento su questo prodotto e utilizzarlo solo per il debug manuale del modello.  | 
              
FieldReference
Specifica un contesto per l'errore di convalida. Un FieldReference fa sempre riferimento a un determinato campo di questo file e segue la stessa struttura gerarchica. Ad esempio, potremmo specificare l'elemento 2 di startTimeWindows del veicolo 5 utilizzando:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Tuttavia, ometteremo le entità di primo livello come OptimizeToursRequest o ShipmentModel per evitare di appesantire il messaggio.
| Rappresentazione JSON | 
|---|
{ "name": string, "subField": { object (  | 
              
| Campi | |
|---|---|
name | 
                
                   
 Nome del campo, ad esempio "vehicles".  | 
              
subField | 
                
                   
 Se necessario, sottocampo nidificato in modo ricorsivo.  | 
              
Campo unione  
  | 
              |
index | 
                
                   
 Indice del campo se ripetuto.  | 
              
key | 
                
                   
 Chiave se il campo è una mappa.  | 
              
Metriche
Metriche complessive, aggregate per tutti i route.
| Rappresentazione JSON | 
|---|
{
  "aggregatedRouteMetrics": {
    object ( | 
              
| Campi | |
|---|---|
aggregatedRouteMetrics | 
                
                   
 Aggregato per i percorsi. Ogni metrica è la somma (o il valore massimo, per i caricamenti) di tutti i campi   | 
              
skippedMandatoryShipmentCount | 
                
                   
 Numero di spedizioni obbligatorie saltate.  | 
              
usedVehicleCount | 
                
                   
 Numero di veicoli utilizzati. Nota: se il percorso di un veicolo è vuoto e   | 
              
earliestVehicleStartTime | 
                
                   
 La prima ora di inizio per un veicolo usato, calcolata come minima tra tutti i veicoli usati di  Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione a livello di nanosecondo e fino a nove cifre frazionarie. Esempi:   | 
              
latestVehicleEndTime | 
                
                   
 L'ora di fine più recente per un veicolo usato, calcolata come valore massimo di  Un timestamp nel formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi:   | 
              
costs | 
                
                   
 Costo della soluzione, suddiviso in base ai campi delle richieste relativi al costo. Le chiavi sono percorsi proto, relativi all'input OptimizeToursRequest, ad esempio "model.shipments.pickups.cost", e i valori sono il costo totale generato dal campo del costo corrispondente, aggregato nell'intera soluzione. In altre parole, costs["model.shipments.pickups.cost"] è la somma di tutti i costi di ritiro della soluzione. Tutti i costi definiti nel modello sono riportati in dettaglio qui, ad eccezione dei costi relativi a TransitionAttributes che sono riportati solo in modo aggregato a partire dal 2022/01. Un oggetto contenente un elenco di coppie   | 
              
totalCost | 
                
                   
 Costo totale della soluzione. La somma di tutti i valori nella mappa dei costi.  |