تعديل حقول مركبات التوصيل

يتناول هذا المستند حقول المركبات المهمة التي يمكنك عند إنشاء المركبات وإدارتها.

  • type: نوع مركبة التسليم هذه يؤثر ذلك في المسارات التي تم إنشاؤها لهذه المركبة.
  • attributes[]: مصفوفة خيارات من النوع DeliveryVehicleAttribute استخدام لتحديد معايير مخصصة للمركبات في خدمتك من أجل تعزيز سلوك التصفية عند البحث عن المركبات أو إدراجها.
 

للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى الاطّلاع على ما يلي:

حقل سمات المركبة

استخدِم حقل المركبة attributes لإنشاء معايير مخصّصة من أجل تفعيل مستهلكين أو مشغلي أسطول للعثور على مركبات في أسطولك عبر معايير البحث المتنوعة. يعزز هذا إمكانات تطبيقاتك تقديم مطابقات أفضل للمركبات مقارنةً بما يمكنك البحث عنه باستخدام معايير البحث فقط بالاستناد إلى حقول المركبات الأخرى. لا يمكن أن يزيد عدد مركبات كل مركبة عن 100 السمات، ويجب أن يكون لكل واحدة مفتاح فريد. يمكن أن تكون القيم سلاسل، أو القيم المنطقية أو الأرقام.

على سبيل المثال، يمكنك الإفصاح عن سمة مخصّصة اسمها zone التمييز بين منطقة المدينة التي تعمل فيها مركبات التسليم. يمكنك يمكنك استخدام قيم سلسلة مثل ما يلي لتمثيل مناطق مختلفة: 1B، 2C و3A ويمكنك بعد ذلك استخدام فلتر في تتبع الأسطول لعرض المركبات التي تعمل في منطقة معيّنة إلى المشغّل المسؤول عن تلك المنطقة

ومع ذلك، ليس من الضروري أن تكون قيم السمات المخصّصة حصرية بشكل متبادل. قد تريد تستخدِم معايير مثل "متوفّر في الليل" و"مزوّد بالتبريد". كل من هذه يمكن أن يكون سمة مخصصة منفصلة تستخدم قيمًا منطقية. مركبة معيّنة جميع هذه السمات المخصصة الثلاث جنبًا إلى جنب مع المنطقة تم تعيين السمة المخصصة إلى قيمة السلسلة المناسبة.

تعديل سمات المركبة

ويمكن لكل مفتاح attributes أن يتضمّن قيمة واحدة فقط لكل مركبة. أنت تعلن لسمات المركبة المخصصة باستخدام attributes في قناع الحقل، ثم تقديم قيم بناءً على الطريقة أدناه.

لا تتيح واجهة برمجة تطبيقات UpdateDeliveryVehicle هذه تحديث إصدار واحد فقط . عند استخدام هذه الطريقة، أي استخدام للحقل attributes في ينتج عن كمامات الحقل المجموعة الكاملة لسمات المركبة التي تتم إعادة تعريفها للمركبة. يؤدي هذا إلى استبدال أي سمة موجودة مسبقًا لم يتم بشكل صريح في قناع الحقل. في حال استخدام هذه الطريقة للإعلان عن نشاط تجاري جديد يجب إعادة تعريف كل سمة مخصصة تريد مركبة للاحتفاظ بها. إذا استبعدت attributes في قناع الحقل، فإن هذا السمات المخصّصة الحالية كما هو محدّد سابقًا للمركبة. إذا كنت تستخدم attributes في قناع الحقل، ولكن بدون قيم، فهذا يعني أي ما يعادل إزالة جميع السمات المخصّصة من المركبة

مثال على تعديل حقول المركبات

يعرض هذا القسم كيفية تعديل حقول المركبات باستخدام UpdateDeliveryVehicleRequest، الذي يتضمّن update_mask للإشارة إلى الحقول التي يجب تحديثها. اطلع على وثائق البروتوكولات المؤقتة على أقنعة الحقل للاطّلاع على التفاصيل.

تتطلّب التعديلات على الحقول الأخرى غير "last_location" إرسال مجموعة المحرّكات. امتيازات المشرف.

مثال: ضبط سمة مخصّصة

يحدّد هذا المثال سمة جديدة: zone. كما هو موضح في تعديل سمات المركبة سابقًا، مع تعديل حقل attributes باستخدام يتطلب منك هذا الأسلوب تحديد جميع السمات المخصصة التي تريد الاحتفاظ بها. بالتالي، يعرض المثال قيمة available-at-night مكتوبة للحفاظ عليها. أن يتم استبداله أثناء عملية تحديث تحدد حقل attributes.

يُرجى الاطّلاع على المرجع providers.deliveryVehicles.patch.

gRPC

  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Vehicle settings
  String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
  DeliveryVehicle myDeliveryVehicle = DeliveryVehicle.newBuilder()
      .addAllAttributes(ImmutableList.of(
          DeliveryVehicleAttribute.newBuilder().setKey("zone").setValue("1B").build(),
          DeliveryVehicleAttribute.newBuilder().setKey("available-at-night").setValue("true").build()))
      .build();

  // DeliveryVehicle request
  UpdateDeliveryVehicleRequest updateDeliveryVehicleRequest =
    UpdateDeliveryVehicleRequest.newBuilder()  // No need for the header
        .setName(vehicleName)
        .setDeliveryVehicle(myDeliveryVehicle)
        .setUpdateMask(FieldMask.newBuilder()
            .addPaths("attributes"))
        .build();

  try {
    DeliveryVehicle updatedDeliveryVehicle =
        deliveryService.updateDeliveryVehicle(updateDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

راحة

  # Set JWT, PROJECT_ID, VEHICLE_ID, TASK1_ID, and TASK2_ID in the local
  # environment
  curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}?updateMask=attributes" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
    --data-binary @- << EOM
  {
      "attributes": [
        {"key": "zone", "value": "1B"},
        {"key": "available-at-night", "value": "true"}
      ]
  }
  EOM

الخطوات التالية