Antwort nach der Lösung eines Problems zur Optimierung der Tour mit den Routen, denen jedes Fahrzeug folgt, den übersprungenen Sendungen und den Gesamtkosten der Lösung.
JSON-Darstellung |
---|
{ "routes": [ { object ( |
Felder | |
---|---|
routes[] |
Für jedes Fahrzeug berechnete Routen; die i-te Route entspricht dem i-ten Fahrzeug im Modell. |
requestLabel |
Kopie der |
skippedShipments[] |
Liste aller übersprungenen Sendungen. |
validationErrors[] |
Liste aller Validierungsfehler, die wir unabhängig voneinander erkennen konnten. Weitere Informationen erhalten Sie unter MEHRERE FEHLER zur |
metrics |
Messwerte für Dauer, Entfernung und Nutzung für diese Lösung. |
OptimizeToursValidationError
Beschreibt einen Fehler oder eine Warnung, die beim Validieren eines OptimizeToursRequest
aufgetreten ist.
JSON-Darstellung |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Felder | |
---|---|
code |
Ein Validierungsfehler wird durch das Paar ( Die Felder, die auf diesen Abschnitt folgen, liefern weiteren Kontext zum Fehler. MEHRERE FEHLER: Bei mehreren Fehlern wird während der Validierung versucht, mehrere davon auszugeben. Ähnlich wie ein Compiler ist dies ein nicht perfekter Prozess. Einige Validierungsfehler sind „fatal“, d. h., sie beenden den gesamten Validierungsprozess. Dies gilt unter anderem für Stabilität: |
displayName |
Der Fehleranzeigename. |
fields[] |
Ein Fehlerkontext kann 0, 1 (in den meisten Fällen) oder mehrere Felder umfassen. Für Fahrzeug 4 und die erste Abholung der Sendung 2 könnte das beispielsweise so aussehen:
Beachten Sie jedoch, dass sich die Kardinalität von |
errorMessage |
Für Menschen lesbarer String, der den Fehler beschreibt. Es gibt eine 1:1-Zuordnung zwischen Stabilität: Nicht stabil: Die Fehlermeldung für eine bestimmte |
offendingValues |
Kann die Werte der Felder enthalten. Diese Option ist nicht immer verfügbar. Sie sollten sich nicht darauf verlassen und sie nur für die manuelle Fehlerbehebung von Modellen verwenden. |
FieldReference
Gibt einen Kontext für den Validierungsfehler an. Ein FieldReference
bezieht sich immer auf ein bestimmtes Feld in dieser Datei und folgt derselben hierarchischen Struktur. So können wir beispielsweise Element 2 von startTimeWindows
von Fahrzeug 5 mit folgendem Code angeben:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Entitäten der obersten Ebene wie OptimizeToursRequest
oder ShipmentModel
werden jedoch weggelassen, um die Nachricht nicht zu überladen.
JSON-Darstellung |
---|
{ "name": string, "subField": { object ( |
Felder | |
---|---|
name |
Name des Felds, z. B. „vehicles“ |
subField |
Rekursiv verschachteltes Unterfeld, falls erforderlich. |
Union-Feld Für |
|
index |
Index des Felds, falls es wiederholt wird. |
key |
Key, wenn das Feld eine Zuordnung ist. |
Messwerte
Gesamtmesswerte, aggregiert über alle Routen.
JSON-Darstellung |
---|
{
"aggregatedRouteMetrics": {
object ( |
Felder | |
---|---|
aggregatedRouteMetrics |
Aggregiert über die Routen. Jeder Messwert ist die Summe (bzw. bei Ladevorgängen als Maximalwert) für alle |
skippedMandatoryShipmentCount |
Anzahl der obligatorischen Sendungen übersprungen. |
usedVehicleCount |
Anzahl der verwendeten Fahrzeuge. Hinweis: Wenn eine Fahrzeugroute leer ist und |
earliestVehicleStartTime |
Der früheste Startzeitpunkt für ein Gebrauchtfahrzeug, berechnet als Minimum aller Gebrauchtfahrzeuge von Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
latestVehicleEndTime |
Die letzte Endzeit für ein Gebrauchtfahrzeug, berechnet als Maximum aller Gebrauchtwagen in der Kategorie „ Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
costs |
Kosten der Lösung, aufgeschlüsselt nach kostenbezogenen Anfragefeldern. Die Schlüssel sind Proto-Pfade, bezogen auf die Eingabe OptimizeToursRequest, z. B. „model.shipments.pickups.cost“. Die Werte sind die Gesamtkosten, die durch das entsprechende Kostenfeld generiert wurden, aggregiert über die gesamte Lösung. Mit anderen Worten: „costs["model.shipments.pickups.cost"]“ ist die Summe aller Abholkosten für die Lösung. Alle im Modell definierten Kosten werden hier detailliert aufgeführt, mit Ausnahme von Kosten im Zusammenhang mit Übergangsattributen, die seit dem 1. Januar 2022 nur zusammengefasst dargestellt werden. |
totalCost |
Gesamtkosten der Lösung. Die Summe aller Werte in der Kostenzuordnung. |