Risposta dopo aver risolto un problema di ottimizzazione del tour contenente i percorsi seguiti da ciascun veicolo, le spedizioni saltate e il costo complessivo della soluzione.
Rappresentazione JSON |
---|
{ "routes": [ { object ( |
Campi | |
---|---|
routes[] |
Percorsi calcolati per ciascun veicolo; il percorso i-esima corrisponde al veicolo i-esima nel modello. |
requestLabel |
Copia del |
skippedShipments[] |
L'elenco di tutte le spedizioni saltate. |
validationErrors[] |
Elenco di tutti gli errori di convalida che siamo stati in grado di rilevare in modo indipendente. Vedi la spiegazione "PIÙ ERRORI" per il messaggio |
metrics |
Metriche relative a durata, distanza e utilizzo per questa soluzione. |
OptimizeToursValidationError
Descrive un errore riscontrato durante la convalida di un oggetto OptimizeToursRequest
.
Rappresentazione JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Campi | |
---|---|
code |
Un errore di convalida viene definito dalla coppia ( Altri campi (di seguito) forniscono maggiore contesto sull'errore. PIÙ ERRORI: quando sono presenti più errori, il processo di convalida cerca di riprodurne diversi. Proprio come un compilatore, questo è un processo imperfetto. Alcuni errori di convalida saranno "irreversibili", il che significa che interromperanno l'intero processo di convalida. Questo vale, ad esempio, per STABILITÀ: REFERENCE: un elenco di tutte le coppie (codice, nome):
|
displayName |
Il nome visualizzato dell'errore. |
fields[] |
Un contesto di errore può includere 0, 1 (la maggior parte delle volte) o più campi. Ad esempio, facendo riferimento al veicolo n. 4 e al primo ritiro della spedizione 2, puoi procedere come segue:
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 devi assolutamente farvi affidamento e utilizzarlo solo per il debug manuale dei modelli. |
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 n. 2 di startTimeWindows
del veicolo n. 5 utilizzando:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Tuttavia, omettiamo entità di primo livello come OptimizeToursRequest
o ShipmentModel
per evitare di sovraccaricare il messaggio.
Rappresentazione JSON |
---|
{ "name": string, "subField": { object ( |
Campi | |
---|---|
name |
Nome del campo, ad esempio "veicoli". |
subField |
Sottocampo nidificato in modo ricorsivo, se necessario. |
Campo di unione
|
|
index |
Indice del campo se ripetuto. |
key |
Chiave se il campo è una mappa. |
Metriche
Metriche complessive, aggregate per tutte le route.
Rappresentazione JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
Campi | |
---|---|
aggregatedRouteMetrics |
Dati aggregati lungo le route. 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 |
L'ora di inizio più vicina per un veicolo usato, calcolata come il valore minimo per tutti i veicoli usati del mese di Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: |
latestVehicleEndTime |
L'ora di fine più recente per un veicolo usato, calcolata come il valore massimo per tutti i veicoli usati pari a Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: |
costs |
Costo della soluzione, suddiviso in base ai campi di richiesta correlati ai costi. Le chiavi sono percorsi di proto relativi all'input OptimizeToursRequest, ad esempio "model.shipments.pickups.cost", mentre i valori sono il costo totale generato dal campo del costo corrispondente, aggregato per l'intera soluzione. In altre parole, i costi["model.shipments.pickups.cost"] è la somma di tutti i costi di ritiro rispetto alla soluzione. Tutti i costi definiti nel modello sono riportati in dettaglio qui, ad eccezione dei costi relativi a TransizioneAttributes che sono riportati solo in modo aggregato a partire dal 1° gennaio 2022. Un oggetto contenente un elenco di |
totalCost |
Costo totale della soluzione. La somma di tutti i valori nella mappa dei costi. |