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

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

  • 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

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