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

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

  • 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

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