Teslimat aracı alanlarını güncelle

Bu dokümanda, kampanyalarınızda kullanabileceğiniz önemli araç alanları araç oluştururken ve yönetirken güncellememiz gerekir.

  • type: Bu teslimat aracının türü. Bu durum, bu araç için oluşturulan rotaları etkiler.
  • attributes[]: DeliveryVehicleAttribute türüne sahip bir seçenek dizisi. Tekliflerinizi otomatikleştirmek ve optimize etmek için hizmetinizdeki araçlar için özel ölçütler tanımlamak amacıyla araç arama veya listelemede filtreleme davranışını.
 

Araç alanlarının tam listesi için bkz:

Araç özellikleri alanı

Tüketicilerinizin veya filo operatörlerinizin filonuzdaki araçları daha geniş bir arama ölçütü yelpazesinde bulmasını sağlamak için özel ölçütler oluşturmak üzere araç attributes alanını kullanın. Bu da uygulamalarınızın aşağıdakileri yapma kapasitesini geliştirir: arama ölçütlerini kullanarak elde edeceğinize kıyasla daha iyi araç eşleşmeleri sağlar araç seti bulunuyor. Her araçta en fazla 100 özellikleri olmalı ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize olabilir, booleler veya sayılar.

Örneğin, zone adlı özel bir özellik tanımlayarak Teslimat aracınızın şehrin hangi bölgesinde faaliyet gösterdiğini ayırt edin. farklı alt bölgeleri temsil etmek için aşağıdakiler gibi dize değerleri kullanın: 1B, 2C ve 3A. Daha sonra, Filo İzleme'de bulunan filtre kullanarak yalnızca o bölgeden sorumlu operatöre belirli bir bölgede çalışan araçlar.

Bununla birlikte, özel özellik değerlerinin birbirini dışlamasına gerek yoktur. En son haberleri sunan, gece müsait ve has-soğutucu gibi ölçütleri kullanın. Bunların her biri boole değerlerini kullanan ayrı bir özel özellik olabilir. Belirli bir araç alt bölge ile birlikte bu özel özelliklerin üçü de atanabilir özel özellik, uygun dize değerine ayarlanmış olmalıdır.

Araç özelliklerini güncelleyin

Her attributes anahtarı, araç başına yalnızca bir değere sahip olabilir. Beyan ettiğiniz sahada attributes kullanan özel araç özelliklerini ve ardından aşağıdaki yönteme göre değerler sağlayarak.

Bu UpdateDeliveryVehicle API yalnızca tek bir özelliğini gönderin. Bu yöntem kullanılırken attributes alanının alan maskesi, araç özelliklerinin tamamının yeniden bildirilmesine neden olur. araçtan bahsediyoruz. Bu, mevcut olmayan herhangi bir özelliğin üzerine yazılmasına neden olur. alan maskesine açık bir şekilde dahil edilir. Yeni bir özel özellik tanımlamak için bu yöntemi kullanırsanız aracın korumasını istediğiniz her özel özelliği de yeniden tanımlamanız gerekir. Alan maskesinde attributes öğesini hariç tutarsanız yönteminde mevcut özel özellikler araç için önceden tanımlanmış olduğu gibi kalır. Alan maskesinde attributes kullanırsanız ancak değerleri ayarlamadan kullanırsanız araçtan tüm özel özelliklerin kaldırılmasıyla eşdeğerdir.

Araç alanlarını güncelleme örneği

Bu bölümde, UpdateDeliveryVehicleRequest (Bu, belirten bir update_mask içerir) hangi alanların güncelleneceği. Protokol Arabellekleri belgelerinde alan maskelerini inceleyin.

last_location dışındaki alanlarda yapılan güncellemeler için Fleet Engine Delivery Yöneticisi ayrıcalıkları gerekir.

Örnek: özel özellik ayarlama

Bu örnekte yeni bir özellik belirtilmektedir: zone. Şurada belirtildiği gibi: attributes alanını güncellemek için araç özelliklerini daha önce güncelleyin. Bu yaklaşım, saklamak istediğiniz tüm özel özellikleri belirtmenizi gerektirir. Bu nedenle örnekte, attributes alanını belirten bir güncelleme işlemi sırasında üzerine yazılmasını önlemek için yazılmış bir available-at-night değeri gösterilmektedir.

providers.deliveryVehicles.patch referansına bakın.

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;
  }

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

Sırada ne var?