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 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. Leggi la spiegazione "MULTIPLI ERRORI" per il messaggio |
metrics |
Metriche di durata, distanza e utilizzo per questa soluzione. |
OptimizeToursValidationError
Descrive un errore riscontrato 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. ERRORI MULTIPLI: quando sono presenti più errori, la procedura di convalida tenta di generarne diversi. Come per un compilatore, si tratta di un processo imperfetto. Alcuni errori di convalida sono "fatali", il che significa che interrompono l'intera procedura di convalida. Questo è il caso, tra gli altri, di 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, il riferimento al primo ritiro del veicolo 4 e della spedizione 2 può essere effettuato 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 in 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 "veicoli". |
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 il valore |
earliestVehicleStartTime |
La prima ora di inizio per un veicolo usato, calcolata come minima tra tutti i veicoli usati di Un timestamp nel 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 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 per campi di richiesta correlati ai costi. Le chiavi sono percorsi di protocollo, rispetto all' valore OptimizeToursRequest di input, ad es. "model.shipments.pickups.cost", e i valori sono il costo totale generato dal campo di costo corrispondente, aggregato per l'intera soluzione. In altre parole, 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 TransitionAttributes, che vengono riportati solo in modo aggregato a partire da gennaio 2022. Un oggetto contenente un elenco di |
totalCost |
Costo totale della soluzione. La somma di tutti i valori nella mappa dei costi. |