Cập nhật các trường về xe giao hàng

Tài liệu này bao gồm các trường quan trọng về xe mà bạn có thể cập nhật khi tạo và quản lý phương tiện.

  • type: Loại xe giao hàng này. Điều này ảnh hưởng tuyến đường được tạo cho xe này.
  • attributes[]: Một mảng lựa chọn thuộc loại DeliveryVehicleAttribute. Sử dụng để xác định tiêu chí tuỳ chỉnh cho xe trong dịch vụ của bạn nhằm nâng cao hành vi lọc khi tìm kiếm hoặc đăng thông tin về xe.
 

Để xem danh sách đầy đủ các trường về xe, hãy xem:

Trường Thuộc tính xe

Sử dụng trường attributes xe để tạo tiêu chí tuỳ chỉnh nhằm cho phép người tiêu dùng hoặc nhà vận hành đội xe để tìm xe trong đội xe của bạn ở phạm vi rộng hơn nhiều tiêu chí tìm kiếm. Việc này giúp nâng cao khả năng của ứng dụng để cung cấp kết quả phù hợp hơn về xe so với kết quả tìm kiếm của bạn dựa trên tiêu chí tìm kiếm chỉ dựa vào các trường khác về xe. Mỗi chiếc xe có thể có tối đa 100 và mỗi thuộc tính phải có một khoá duy nhất. Giá trị có thể là chuỗi, boolean hoặc số.

Ví dụ: bạn có thể khai báo thuộc tính tuỳ chỉnh có tên là zone để hãy phân biệt bạn hoạt động ở khu vực nào của thành phố để xe giao hàng của bạn hoạt động. Bạn đã sử dụng các giá trị chuỗi, chẳng hạn như sau để biểu thị các vùng khác nhau: 1B, 2C3A. Sau đó, bạn có thể sử dụng bộ lọc trong Theo dõi đội phương tiện vận chuyển để chỉ hiển thị xe làm việc trong một khu vực cụ thể cho người vận hành chịu trách nhiệm về khu vực đó.

Tuy nhiên, các giá trị thuộc tính tuỳ chỉnh không nhất thiết phải loại trừ lẫn nhau. Bạn có thể sử dụng các tiêu chí như có hàng vào ban đêmcó-điều-kiện. Mỗi phương án trong số này có thể là một thuộc tính tuỳ chỉnh riêng biệt sử dụng các giá trị boolean. Một chiếc xe cụ thể có thể được gán cả ba trong số các thuộc tính tùy chỉnh này cùng với vùng được đặt thành giá trị chuỗi thích hợp.

Cập nhật các thuộc tính của xe

Mỗi khoá attributes chỉ được có một giá trị cho mỗi xe. Bạn khai báo thuộc tính xe tuỳ chỉnh bằng cách sử dụng attributes trong mặt nạ trường, sau đó cung cấp giá trị dựa trên phương pháp dưới đây.

API UpdateDeliveryVehicle này không cho phép chỉ cập nhật một . Khi sử dụng phương thức này, bất kỳ việc sử dụng trường attributes nào trong mặt nạ trường dẫn đến toàn bộ tập hợp thuộc tính xe được khai báo lại cho chiếc xe. Điều này dẫn đến việc ghi đè bất kỳ thuộc tính nào có sẵn không có trong mặt nạ trường. Nếu bạn sử dụng phương thức này để khai báo một Bạn cũng phải khai báo lại mọi thuộc tính tuỳ chỉnh mà bạn muốn xe cần giữ lại. Nếu bạn loại trừ attributes trong mặt nạ trường, thì điều này để nguyên các thuộc tính tuỳ chỉnh hiện có như đã xác định trước đó cho xe. Nếu bạn sử dụng attributes trong mặt nạ trường nhưng không đặt giá trị, thì tức là tương đương với việc xoá tất cả các thuộc tính tuỳ chỉnh khỏi xe.

Cập nhật ví dụ về các trường về xe

Phần này trình bày cách cập nhật các trường về xe bằng UpdateDeliveryVehicleRequest, bao gồm update_mask để cho biết trường nào cần cập nhật. Xem tài liệu về Vùng đệm giao thức trên trường mặt nạ để biết chi tiết.

Cần phải sử dụng Fleet Engine Delivery để cập nhật những trường không phải last_location Đặc quyền của quản trị viên.

Ví dụ: đặt thuộc tính tuỳ chỉnh

Ví dụ này chỉ định một thuộc tính mới: zone. Như đã nêu trong Cập nhật các thuộc tính xe sớm hơn, cập nhật trường attributes bằng cách sử dụng nên phương pháp này yêu cầu bạn chỉ rõ tất cả các thuộc tính tuỳ chỉnh mà bạn muốn giữ lại. Do đó, ví dụ này cho thấy một giá trị available-at-night được ghi để lưu giữ giá trị đó khỏi bị ghi đè trong hoạt động cập nhật chỉ định Trường attributes.

Hãy xem tài liệu tham khảo về 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;
  }

Kiến trúc chuyển trạng thái đại diện (REST)

  # 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

Các bước tiếp theo