الرد بعد حل مشكلة تحسين الجولة التي تحتوي على المسارات التي تتبعها كل مركبة، والشحنات التي تم تخطيها والتكلفة الإجمالية للحل.
تمثيل JSON |
---|
{ "routes": [ { object ( |
الحقول | |
---|---|
routes[] |
المسارات المحسوبة لكل مركبة؛ يتجاوب المسار i مع المركبة i في النموذج. |
requestLabel |
نسخة من |
skippedShipments[] |
قائمة بجميع الشحنات التي تم تخطّيها |
validationErrors[] |
قائمة بجميع أخطاء التحقق من الصحة التي تمكنا من اكتشافها بشكل مستقل. يمكنك الاطلاع على شرح "MULTIPLE ERRORS" للرسالة |
metrics |
مقاييس المدة والمسافة والاستخدام لهذا الحلّ |
OptimizeToursValidationError
تصف هذه السمة الخطأ الذي حدث عند التحقّق من صحة OptimizeToursRequest
.
تمثيل JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
الحقول | |
---|---|
code |
ويتم تحديد خطأ التحقّق من الصحة من خلال الزوج ( توفّر الحقول الأخرى (أدناه) مزيدًا من السياق حول الخطأ. أخطاء متعددة: عند وجود عدة أخطاء، تحاول عملية التحقق عرض العديد منها. وهذه عملية غير كاملة، مثلها مثل المحول البرمجي. ستكون بعض أخطاء التحقق من الصحة "فادحة"، مما يعني أنها توقف عملية التحقق بأكملها. وينطبق ذلك على أخطاء الثبات: يجب أن يكون المرجع: قائمة بكل الأزواج (الرمز والاسم):
|
displayName |
الاسم المعروض للخطأ |
fields[] |
قد يتضمّن سياق الخطأ 0 أو 1 (في معظم الأوقات) أو أكثر من الحقول. على سبيل المثال، يمكن الإشارة إلى المركبة رقم 4 وأول عملية استلام للمركبة رقم 2 على النحو التالي:
ومع ذلك، تجدر الإشارة إلى أنّه يجب ألّا يتغيّر عدد القيم الفريدة للسمة |
errorMessage |
سلسلة تصف الخطأ ويمكن لشخص عادي قراءتها هناك ربط بين الثبات: غير مستقرة: قد تتغيّر رسالة الخطأ المرتبطة بحقل |
offendingValues |
قد يحتوي على قيم الحقول. ولا تكون هذه الميزة متاحة أحيانًا. يجب عدم الاعتماد عليها إطلاقًا، وعدم استخدامها إلا لتصحيح أخطاء النماذج اليدوية. |
FieldReference
تحدّد سياقًا لخطأ التحقّق من الصحة. تشير السمة FieldReference
دائمًا إلى حقل معيّن في هذا الملف وتتّبع البنية الهرمية نفسها. على سبيل المثال، قد نحدِّد العنصر رقم 2 في startTimeWindows
للمركبة رقم 5 باستخدام:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
في المقابل، نحذف الكيانات ذات المستوى الأعلى، مثل OptimizeToursRequest
أو ShipmentModel
، لتجنُّب تكدس الرسائل.
تمثيل JSON |
---|
{ "name": string, "subField": { object ( |
الحقول | |
---|---|
name |
اسم الحقل، على سبيل المثال "المركبات". |
subField |
حقل فرعي متداخل على نحو متكرر، إذا لزم الأمر. |
حقل الاتحاد يمكن أن يكون الحقل " |
|
index |
فهرس الحقل في حال تكراره. |
key |
مفتاح إذا كان الحقل عبارة عن خريطة. |
المقاييس
المقاييس العامة، مجمّعة على جميع المسارات
تمثيل JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
الحقول | |
---|---|
aggregatedRouteMetrics |
مجمّعة على المسارات. يمثّل كل مقياس مجموع (أو الحد الأقصى لعمليات التحميل) في جميع الحقول التي تحمل الاسم نفسه والبالغ عددها |
skippedMandatoryShipmentCount |
عدد الشحنات الإلزامية التي تم تخطّيها |
usedVehicleCount |
عدد المركبات المستخدَمة ملاحظة: إذا كان مسار المركبة فارغًا وكانت قيمة |
earliestVehicleStartTime |
أقرب وقت لبدء مركبة مستعمَلة، ويُحتسب كحد أدنى على جميع المركبات المستعمَلة في طابع زمني بتنسيق RFC3339 UTC "Zulu" ، مع دقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: |
latestVehicleEndTime |
آخر وقت انتهاء لمركبة مستعمَلة يُحتسَب على أنّه الحد الأقصى لجميع المركبات المستعمَلة في طابع زمني بتنسيق RFC3339 UTC "Zulu" ، مع دقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: |
costs |
تكلفة الحلّ، مقسَّمة حسب حقول الطلب المتعلّقة بالتكلفة. المفاتيح هي مسارات أولية، بالنسبة إلى الإدخال OptimizeToursRequest، مثل "model.shipments.pickups.cost"، والقيم هي إجمالي التكلفة الناتجة عن حقل التكلفة المطابِق، ويتم تجميعها على الحل بأكمله. بمعنى آخر، إنّ التكاليف["model.shipments.pickups.cost"] هي مجموع تكاليف الاستلام التي تفوق الحلّ. يتم هنا الإبلاغ بالتفصيل عن جميع التكاليف المحدّدة في النموذج، باستثناء التكاليف المتعلّقة بسمات TransitionAttributes التي يتم إعداد تقارير عنها بطريقة مجمّعة اعتبارًا من 2022/2021. عنصر يحتوي على قائمة من أزواج |
totalCost |
تمثّل هذه السمة التكلفة الإجمالية للحلّ. مجموع كل القيم في خريطة التكاليف. |