Bu dokümanda, kampanyalarınızda kullanabileceğiniz önemli araç alanları araç oluştururken ve yönetirken güncellememiz gerekir.
|
Araç alanlarının tam listesi için bkz: |
Araç özellikleri alanı
Araç attributes
alanını kullanarak
müşterilerin veya filo operatörlerinin filonuzda bulunan araçları daha geniş bir
yardımcı olabilir. 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. Bu yöntemi kullanarak yeni bir
özel özellik olarak kullanmak istiyorsanız,
kolay bir yöntem olacaktır. 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 Fleet Engine Delivery'yi gerektirir
Yönetici ayrıcalıkları.
Ö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, bu değeri korumak için yazılmış bir available-at-night
değeri gösterilmektedir
işlemini belirten bir güncelleme işlemi sırasında
attributes
alanı.
providers.deliveryVehicles.patch referansına göz atı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