OptimizeToursResponse

الاستجابة بعد حل مشكلة تحسين الجولة التي تحتوي على المسارات التي تتبعها كل مركبة، والشحنات التي تم تخطيها والتكلفة الإجمالية للحل.

تمثيل JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
الحقول
routes[]

object (ShipmentRoute)

المسارات المحسوبة لكل مركبة ويتجاوب المسار i-th مع المركبة i-th في النموذج.

requestLabel

string

نسخة من OptimizeToursRequest.label، إذا تم تحديد تصنيف في الطلب.

skippedShipments[]

object (SkippedShipment)

قائمة بكل الشحنات التي تم تخطّيها

validationErrors[]

object (OptimizeToursValidationError)

قائمة بجميع أخطاء التحقّق من الصحة التي تمكّنا من اكتشافها بشكلٍ مستقل. عرض "MULTIPLE ERRORS" شرح لرسالة OptimizeToursValidationError. بدلاً من الأخطاء، سيتضمّن ذلك تحذيرات في حالة solvingMode هي DEFAULT_SOLVE.

metrics

object (Metrics)

المدة والمسافة ومقاييس الاستخدام لهذا الحلّ

OptimizeToursValidationError

تصف هذه السمة خطأً أو تحذيرًا حدث عند التحقق من صحة OptimizeToursRequest.

تمثيل JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
الحقول
code

integer

يتم تحديد خطأ في عملية التحقّق من خلال الزوج (code وdisplayName) اللذَين متوفّران دائمًا.

توفّر الحقول الأخرى (أدناه) المزيد من السياق حول الخطأ.

أخطاء متعددة: عند حدوث أخطاء متعددة، تحاول عملية التحقق إخراج العديد منها. تمامًا مثل المحول البرمجي، هذه عملية غير كاملة. ستكون بعض أخطاء التحقّق "فادحة"، ما يعني أنّها توقِف عملية التحقّق بأكملها. ينطبق هذا الأمر على displayName="UNSPECIFIED" أخطاء من بين أخطاء أخرى. وقد يتسبب بعضها في تخطي عملية التحقق للأخطاء الأخرى.

الاستقرار: يجب أن يكون code وdisplayName ثابتَين جدًا. ومع ذلك، قد تظهر الرموز والأسماء المعروضة الجديدة بمرور الوقت، ما قد يتسبب في أن ينتج عن طلب معيّن (غير صالح) زوج مختلف (code وdisplayName) لأنّ الخطأ الجديد أخفى الرمز القديم (راجِع "أخطاء متعددة").

مرجع: قائمة بجميع الأزواج (الرمز، الاسم):

  • UNSPECIFIED = 0،
  • RealtimeATION_')}>_ERROR = 10، تعذّر إكمال عملية التحقّق قبل الموعد النهائي.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_preferences_SOLVING_mode = 1201؛
    • REQUEST_OPTIONS_مرح_MAX_REASONATION_ERRORS = 1203؛
    • REQUEST_OPTIONS_preferences_GEODESIC_METERS_PER_ثانوي = 1204؛
    • REQUEST_OPTIONS_GeoDESIC_METERS_PER_COUNTRY_TOO_SMALL = 1205؛
    • REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_COUNTRY = 1206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE = 1207؛
    • REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208;
    • REQUEST_OPTIONS_TRAVEL_mode_INCOMPATIBLE_WITH_TRAFFIC = 1211;
    • REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212;
    • REQUEST_OPTIONS_OPTIONS_TRAFFIC_FLAVOR = 1213;
    • REQUEST_OPTIONS_TRAFFIC_enabled_WITHOUT_GLOBAL_START_TIME = 1214،
    • REQUEST_OPTIONS_TRAFFIC_enabled_WITH_PRECEDENCES = 1215،
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_mode_غير = 1216؛
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_adwordspolicy_WITHOUT_TRAFFIC = 1217;
  • INJECTED_SOLUTION_ERROR = 20،
    • INJECTED_SOLUTION_MISSING_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002،
    • INJECTED_SOLUTION_INFEASIBLE_after_GETSITE_TRAVEL_TIMES = 2003؛
    • INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004;
    • INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005؛
    • INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006،
    • INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008؛
    • INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
  • SHIPMENT_MODEL_ERROR = 22،
    • SHIPMENT_MODEL_TOO_LARGE = 2200;
    • SHIPMENT_MODEL_TOO_MANY_CAPAcity_TYPES = 2201،
    • SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
    • SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203،
    • SHIPMENT_MODEL_GLOBAL_START_TIME_ بعد_GLOBAL_END_TIME = 2204،
    • SHIPMENT_MODEL_GLOBAL_DURATION_TOO_Long = 2205؛
    • SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
    • SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
  • INDEX_ERROR = 24،
  • TAG_ERROR = 26،
  • TIME_WINDOW_ERROR = 28،
    • TIME_WINDOW_ بهدف_START_TIME = 2800،
    • TIME_WINDOW_ACTIVE_END_TIME = 2801،
    • TIME_WINDOW_ مؤسسة_SOFT_START_TIME = 2802،
    • TIME_WINDOW_ACTIVE_SOFT_END_TIME = 2803،
    • TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804;
    • TIME_WINDOW_START_TIME_after_END_TIME = 2805،
    • TIME_WINDOW_TABLE_COST_PER_AREA_BEFORE_SOFT_START_TIME = 2806؛
    • TIME_WINDOW_KEY_COST_PER_hour_after_SOFT_END_TIME = 2807،
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808؛
    • TIME_WINDOW_COST_after_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809؛
    • TIME_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME = 2810؛
    • TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_after_SOFT_END_TIME = 2811؛
    • TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812؛
    • TIME_WINDOW_START_TIME_ بعد_SOFT_START_TIME = 2813؛
    • TIME_WINDOW_SOFT_START_TIME_OUTSIDE_GLOBAL_TIME_WINDOW = 2819;
    • TIME_WINDOW_SOFT_END_TIME_OUTSIDE_GLOBAL_TIME_WINDOW = 2820;
    • TIME_WINDOW_SOFT_END_TIME_after_END_TIME = 2816؛
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817؛
    • TIME_WINDOW_COST_after_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818؛
    • TRANSITION_ATTRIBUTES_ERROR = 30،
    • TRANSITION_ATTRIBUTES_TABLE_COST = 3000،
    • TRANSITION_ATTRIBUTES_الإعدادات_COST_PER_KILOMETER = 3001،
    • TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002،
    • TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_METERS_UNSUPPORTED = 3003،
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004،
    • TRANSITION_ATTRIBUTES_CONFLICTABLE_SOURCE_TAGS_FIELDS = 3005،
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_Destination_TAGS = 3006،
    • TRANSITION_ATTRIBUTES_CONFLICTABLE_Destination_TAGS_FIELDS = 3007،
    • TRANSITION_ATTRIBUTES_refresh_DURATION_NEGATIVE_OR_NAN = 3008،
    • TRANSITION_ATTRIBUTES_refresh_DURATION_EXCEEDS_GLOBAL_DURATION = 3009،
  • AMOUNT_ERROR = 31،
    • AMOUNT_NEGATIVE_VALUE = 3100،
  • LOAD_LIMIT_ERROR = 33،
    • LOAD_LIMIT_الإعدادات_COST_ABOVE_SOFT_MAX = 3303
    • LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304
    • LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305؛
    • LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306،
    • LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307؛
    • LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308،
    • LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3309،
  • INTERVAL_ERROR = 34،
    • INTERVAL_MIN_EXCEEDS_MAX = 3401،
    • INTERVAL_NEGATIVE_MIN = 3402;
    • INTERVAL_NEGATIVE_MAX = 3403،
    • INTERVAL_MIN_EXCEEDS_CAPAcity = 3404،
    • INTERVAL_MAX_EXCEEDS_CAPAcity = 3405،
  • DISTANCE_LIMIT_ERROR = 36،
    • DISTANCE_LIMIT_INDEX_COST_after_SOFT_MAX = 3601؛
    • DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_after_SOFT_MAX = 3602،
    • DISTANCE_LIMIT_COST_after_SOFT_MAX_WITHOUT_SOFT_MAX = 3603؛
    • DISTANCE_LIMIT_NEGATIVE_MAX = 3604،
    • DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605،
    • DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606؛
  • DURATION_LIMIT_ERROR = 38،
    • DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800،
    • DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801،
    • DURATION_LIMIT_CREDIT_COST_PER_AREA_ بعد_SOFT_MAX = 3802،
    • DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_after_SOFT_MAX = 3803؛
    • DURATION_LIMIT_COST_after_SOFT_MAX_WITHOUT_SOFT_MAX = 3804؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805،
    • DURATION_LIMIT_ACTIVE_COST_after_QUADRATIC_SOFT_MAX = 3806؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_AREA = 3807؛
    • DURATION_LIMIT_COST_PER_SQUARE_AREA_WITHOUT_QUADRATIC_SOFT_MAX = 3808؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809؛
    • DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811؛
    • DURATION_LIMIT_ توفّر_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3812؛
    • DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813؛
    • DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3815؛
  • SHIPMENT_ERROR = 40،
    • SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014،
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4001،
    • SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_مرح = 4015،
    • SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016،
    • SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002،
    • SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003؛
    • SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004،
    • SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005،
    • SHIPMENT_ACTIVE_PENALTY_COST = 4006؛
    • SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007،
    • SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008،
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_size_WITHOUT_INDEX = 4009،
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_size_WITH_INDEX = 4010،
    • SHIPMENT_INSERT_COST_FOR_VEHICLE = 4011،
    • SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012،
    • SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013،
  • VEHICLE_ERROR = 42،
    • VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200;
    • VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201؛
    • VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202،
    • VEHICLE_EMPTY_START_TAG = 4203،
    • VEHICLE_DUPLICATE_START_TAG = 4204،
    • VEHICLE_EMPTY_END_TAG = 4205،
    • VEHICLE_DUPLICATE_END_TAG = 4206،
    • VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207،
    • VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208؛
    • VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209؛
    • VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210،
    • VEHICLE_FIRST_SHIPMENT_IGNORED = 4211،
    • VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212،
    • VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213،
    • VEHICLE_LAST_SHIPMENT_IGNORED = 4214،
    • VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215،
    • VEHICLE_IGNORED_WITH_used_IF_ROUTE_IS_EMPTY = 4216;
    • VEHICLE_PURCHASE_COST_PER_KILOMETER = 4217،
    • VEHICLE_PURCHASE_COST_PER_hour = 4218،
    • VEHICLE_PURCHASE_COST_PER_TRAVELED_hour = 4219،
    • VEHICLE_مرح_FIXED_COST = 4220؛
    • VEHICLE_CUSTOM_TRAVEL_DURATION_MULTIPLE = 4221،
    • VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4223،
    • VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224،
    • VEHICLE_MIN_DURATION_LOWER_THAN_DURATION_LIMIT = 4222،
  • VISIT_REQUEST_ERROR = 44،
    • VISIT_REQUEST_EMPTY_TAG = 4400،
    • VISIT_REQUEST_DUPLICATE_TAG = 4401،
    • VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404،
    • VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405،
  • PRECEDENCE_ERROR = 46،
    • PRECEDENCE_القواعد_MISSING_FIRST_INDEX = 4600،
    • PRECEDENCE_القواعد_MISSING_COUNTRY_INDEX = 4601،
    • PRECEDENCE_القواعد_FIRST_INDEX_OUT_OF_BOUNDS = 4602،
    • PRECEDENCE_ ثلاثة_FIRST_OUT_OF_BOUNDS = 4603،
    • PRECEDENCE_القواعد_DUPLICATE_INDEX = 4604،
    • PRECEDENCE_القواعد_INEXISTENT_FIRST_VISIT_REQUEST = 4605،
    • PRECEDENCE_القواعد_INEXISTENT_COUNTRY_VISIT_REQUEST = 4606؛
  • BREAK_ERROR = 48،
    • BREAK_القواعد_EMPTY = 4800،
    • BREAK_REQUEST_UNSPECIFIED_DURATION = 4801،
    • BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802،
    • BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803،
    • BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804، = 4804،
    • BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805،
    • BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806،
    • BREAK_REQUEST_LATEST_END_TIME_after_GLOBAL_END_TIME = 4807،
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808،
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809،
    • BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
    • BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811،
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4812؛
    • BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813،
    • BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814،
    • BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815،
  • SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50،
    • SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002،
    • SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • SHIPMENT_TYPE_INCOMPATIBILITY_INDEX_INCOMPATIBILITY_mode = 5004،
    • SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005،
  • SHIPMENT_TYPE_REQUIREMENT_ERROR = 52،
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001،
    • SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002،
    • SHIPMENT_TYPE_REQUIREMENT_INDEX_REQUIREMENT_mode = 52003،
    • SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004،
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005،
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006،
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007،
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008،
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009،
    • SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010،
    • SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011،
  • VEHICLE_OPERATOR_ERROR = 54،
    • VEHICLE_OPERATOR_EMPTY_TYPE = 5400;
    • VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401،
    • VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402،
    • VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403،
    • VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404،
  • DURATION_SECONDS_MATRIX_ERROR = 56،
    • DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600;
    • DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601
  • تحذير = 9،
    • WARNING_INJECTED_FIRST_SOLUTION = 90;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_SHIPMENTS_Remove = 9000;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_ بعد_GET تجربة_TRAVEL_TIMES = 9001،
displayName

string

الاسم المعروض للخطأ.

fields[]

object (FieldReference)

قد يشتمل سياق الخطأ على 0 أو 1 (في معظم الأوقات) أو أكثر من الحقول. على سبيل المثال، يمكن إجراء عملية الاستلام الأولى للمركبة رقم 4 والشحنة رقم 2 على النحو التالي:

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

مع ذلك، تجدر الإشارة إلى أنّ عدد القيم الفريدة للسمة fields يجب ألا يتغيّر لرمز خطأ معيّن.

errorMessage

string

سلسلة تصف الخطأ ويمكن لشخص عادي قراءتها هناك عملية ربط بنسبة 1:1 بين code وerrorMessage (عندما يكون الرمز != "UNSPECIFIED").

الاستقرار: غير ثابت: قد تتغير رسالة الخطأ المرتبطة بعلامة code معيّنة (نأمل أن يتم توضيحها) بمرور الوقت. يُرجى الاعتماد على displayName وcode بدلاً من ذلك.

offendingValues

string

قد يحتوي على قيمة (قيم) الحقول. لا تتوفّر هذه الميزة دائمًا. يجب ألا تعتمد عليها مطلقًا وأن تستخدمها فقط لتصحيح أخطاء النموذج اليدوي.

مرجع حقل

تحدد هذه السمة سياق خطأ التحقق من الصحة. يشير FieldReference دائمًا إلى حقل معيّن في هذا الملف ويتبع البنية الهرمية نفسها. على سبيل المثال، قد نحدِّد العنصر رقم 2 من startTimeWindows للمركبة رقم 5 باستخدام:

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

ومع ذلك، نحذف كيانات المستوى الأعلى، مثل OptimizeToursRequest أو ShipmentModel لتجنُّب ازدحام الرسالة.

تمثيل JSON
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
الحقول
name

string

اسم الحقل، مثلاً "المركبات".

subField

object (FieldReference)

حقل فرعي متداخل بشكل متكرر، إذا لزم الأمر.

حقل الاتحاد index_or_key.

يمكن أن يكون index_or_key واحدًا فقط مما يلي:

index

integer

فهرس الحقل في حال التكرار.

key

string

مفتاح إذا كان الحقل خريطة.

المقاييس

المقاييس العامة، المجمّعة من كل المسارات

تمثيل JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
الحقول
aggregatedRouteMetrics

object (AggregatedMetrics)

وهي مجمّعة فوق المسارات. يمثّل كل مقياس المجموع (أو الحد الأقصى لعمليات التحميل) في جميع حقول ShipmentRoute.metrics التي تحمل الاسم نفسه.

skippedMandatoryShipmentCount

integer

عدد الشحنات الإلزامية التي تم تخطّيها

usedVehicleCount

integer

عدد المركبات المستخدَمة ملاحظة: إذا كان مسار المركبة فارغًا وكانت السمة Vehicle.used_if_route_is_empty صحيحة، تُعتبر المركبة مستعمَلة.

earliestVehicleStartTime

string (Timestamp format)

أقرب وقت بدء لمركبة مستعمَلة، ويتم احتسابه للحد الأدنى من جميع المركبات المستعمَلة من ShipmentRoute.vehicle_start_time

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

latestVehicleEndTime

string (Timestamp format)

آخر وقت انتهاء لمركبة مستعمَلة، ويتم احتسابه على أنّه الحد الأقصى لجميع المركبات المستعمَلة من ShipmentRoute.vehicle_end_time

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

costs

map (key: string, value: number)

تكلفة الحل مقسَّمة حسب حقول الطلب المتعلقة بالتكلفة. وتمثل المفاتيح مسارات أولية بالنسبة إلى إدخال OptimizeToursRequest، على سبيل المثال: "model.shipments.pickups.cost"، والقيم هي إجمالي التكلفة الناتجة عن حقل التكلفة المقابل، والتي يتم تجميعها على مستوى الحلّ بالكامل. بمعنى آخر، تكون التكاليف ["model.shipments.pickups.cost"] هي مجموع كل تكاليف الاستلام بدلاً من الحلّ. يتم الإبلاغ عن جميع التكاليف المحدّدة في النموذج هنا بالتفصيل، باستثناء التكاليف المرتبطة بسمات TransitionAttributes التي يتم الإبلاغ عنها بطريقة مجمّعة فقط اعتبارًا من 2022/2022.

عنصر يحتوي على قائمة بأزواج "key": value مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }

totalCost

number

التكلفة الإجمالية للحلّ مجموع كل القيم في خريطة التكاليف.