תגובה לאחר פתרון בעיה באופטימיזציה של סיור, שמכילה את המסלולים שבהם כל רכב נוסע, את המשלוחים שנדחו ואת העלות הכוללת של הפתרון.
ייצוג JSON |
---|
{ "routes": [ { object ( |
שדות | |
---|---|
routes[] |
המסלולים שמחושבים לכל רכב. המסלול ה-i תואם לרכב ה-i במודל. |
requestLabel |
עותק של |
skippedShipments[] |
רשימת כל המשלוחים שדילגת עליה. |
validationErrors[] |
רשימה של כל שגיאות האימות שזיהינו באופן עצמאי. אפשר לעיין בהסבר לגבי 'שגיאות מרובות' לגבי ההודעה |
metrics |
מדדי משך זמן, מרחק ושימוש של הפתרון הזה. |
OptimizeToursValidationError
מיועד לתיאור שגיאה או אזהרה שהתרחשה במהלך האימות של OptimizeToursRequest
.
ייצוג JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
שדות | |
---|---|
code |
שגיאת אימות מוגדרת על ידי הצמד ( השדות שמופיעים אחרי הקטע הזה מספקים הקשר נוסף לגבי השגיאה. מספר שגיאות: כשיש כמה שגיאות, תהליך האימות מנסה לייצר פלט של כמה מהן. בדומה למהדר, זהו תהליך מושלם. חלק משגיאות האימות יהיו 'קריטיות', כלומר הן יעצרו את כל תהליך האימות. זה המצב, בין היתר, בשגיאות מסוג יציבות: |
displayName |
השם המוצג של השגיאה. |
fields[] |
הקשר של שגיאה עשוי לכלול 0, 1 (ברוב המקרים) או יותר שדות. לדוגמה, אפשר להפנות לכלי הרכב מס' 4 ולאיסוף הראשון של משלוח מס' 2 באופן הבא:
עם זאת, חשוב לשים לב שהעוצמה של |
errorMessage |
מחרוזת לתיאור השגיאה, שאנשים יכולים לקרוא. יש מיפוי של 1:1 בין יציבות: לא יציבה: הודעת השגיאה שמשויכת ל- |
offendingValues |
עשוי להכיל את הערכים של השדות. האפשרות הזו לא תמיד זמינה. אין להסתמך עליו בשום אופן, וצריך להשתמש בו רק לניפוי באגים ידני של מודלים. |
FieldReference
הקשר של שגיאת האימות. הערך FieldReference
תמיד מתייחס לשדה נתון בקובץ הזה, ופועל לפי אותו מבנה היררכי. לדוגמה, אפשר לציין את רכיב מס' 2 של startTimeWindows
ברכב מס' 5 באמצעות:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
עם זאת, אנחנו משמיטים ישויות ברמה עליונה כמו OptimizeToursRequest
או ShipmentModel
כדי למנוע צפיפות של ההודעה.
ייצוג JSON |
---|
{ "name": string, "subField": { object ( |
שדות | |
---|---|
name |
שם השדה, למשל "vehicles". |
subField |
שדה משנה בתצוגת עץ רפלקטיבית, אם יש צורך. |
שדה איחוד
|
|
index |
האינדקס של השדה אם הוא חוזר. |
key |
מפתח אם השדה הוא מפה. |
מדדים
מדדים כוללים, נצברים מכל המסלולים.
ייצוג ב-JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
שדות | |
---|---|
aggregatedRouteMetrics |
נתונים מצטברים לאורך המסלולים. כל מדד הוא הסכום (או המקסימלי, לטעינות) של כל |
skippedMandatoryShipmentCount |
מספר משלוחי החובה שהמערכת דילגה עליהם. |
usedVehicleCount |
מספר כלי הרכב שבשימוש. הערה: אם מסלול הרכב ריק והערך של |
earliestVehicleStartTime |
שעת ההתחלה המוקדמת ביותר של רכב משומש, המחושב כמינימום על כל כלי הרכב משומשים ( חותמת זמן בפורמט UTC 'Zulu' של RFC3339, עם רזולוציה של ננו-שנייה ועד תשע ספרות עשרוניות. דוגמאות: |
latestVehicleEndTime |
שעת הסיום האחרונה של רכב משומש, מחושבת בתור חותמת זמן בפורמט 'Zulu' בפורמט RFC3339 UTC, עם רזולוציה של ננו-שנייה ועד תשע ספרות אחרי הנקודה. דוגמאות: |
costs |
עלות הפתרון, לפי פירוט של שדות הבקשה שקשורים לעלויות. המפתחות הם נתיבים של פרוטו, ביחס לקלט OptimizeToursRequest, למשל 'model.shipments.pickups.cost', והערכים הם העלות הכוללת שנוצרה על ידי שדה העלות התואם, שנצברה לאורך כל הפתרון. במילים אחרות, costs["model.shipments.pickups.cost"] הוא הסכום של כל עלויות האיסוף בפתרון. כל העלויות שמוגדרות במודל מדווחות כאן בפירוט, למעט עלויות שקשורות ל-TransitionAttributes שמדווחות רק באופן מצטבר החל מינואר 2022. |
totalCost |
העלות הכוללת של הפתרון. הסכום של כל הערכים במפת העלויות. |