Bu belgede, araç oluşturma ve yönetme sırasında güncelleyebileceğiniz önemli araç alanları ele alınmaktadır.
|
Araç alanlarının tam listesi için: |
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 özelleştirilmiş ölçütler oluşturmak üzere araç attributes
alanını kullanın. Bu, uygulamalarınızın yalnızca diğer araç alanlarına dayalı arama ölçütlerini kullanarak elde edeceğinizden daha iyi araç eşleşmeleri sağlamak için yeteneklerini geliştirir. Her araçta en fazla 100 özellik olabilir ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize, Boole veya sayı olabilir.
Örneğin, teslimat araçlarınızın şehrin hangi bölgesinde çalıştığını ayırt etmek için bölge adlı bir özel özellik bildirebilirsiniz. Farklı bölgeleri temsil etmek için aşağıdaki gibi dize değerlerini kullanırsınız: 1B
, 2C
ve 3A
. Daha sonra, belirli bir bölgede çalışan araçları yalnızca o bölgeden sorumlu operatöre göstermek için Filo Takibi'nde filtre kullanabilirsiniz.
Ancak özel özellik değerlerinin karşılıklı olarak birbirini dışlaması gerekmez. available-at-night ve has-refrigeration gibi ölçütleri kullanabilirsiniz. Bunların her biri, Boole değerleri kullanan ayrı bir özel özellik olabilir. Belirli bir araca, uygun dize değerine ayarlanmış bölge özel özelliğiyle birlikte bu üç özel özellik de atanabilir.
Araç özelliklerini güncelleme
Her attributes
anahtarının araç başına yalnızca bir değeri olabilir. Alan maskesinde attributes
kullanarak özel araç özelliklerini beyan edersiniz ve ardından aşağıdaki yönteme göre değerler sağlarsınız.
Bu UpdateDeliveryVehicle
API, yalnızca tek bir özelliğin güncellenmesine izin vermez. Bu yöntem kullanılırken alan maskesinde attributes
alanının herhangi bir kullanımı, araç özelliklerinin tamamının araç için yeniden bildirilmesine neden olur. Bu işlem, alan maskesine açıkça dahil edilmemiş önceden var olan tüm özelliklerin üzerine yazılmasına neden olur. Yeni bir özel özelliği bildirmek için bu yöntemi kullanırsanız aracın saklamasını istediğiniz her özel özelliği de yeniden bildirmeniz gerekir. Alan maskesinde attributes
karakterini hariç tutarsanız bu yöntem, mevcut özel özellikleri araç için daha önce tanımlandığı şekilde bırakır.
Alan maskesinde attributes
kullanırsanız ancak değerleri ayarlamazsanız bu, araçtan tüm özel özelliklerin kaldırılmasına eşdeğerdir.
Araç alanlarını güncelleme örneği
Bu bölümde, hangi alanların güncelleneceğini belirtmek için update_mask
içeren UpdateDeliveryVehicleRequest
kullanılarak araç alanlarının nasıl güncelleneceği gösterilmektedir. Ayrıntılar için alan maskeleri ile ilgili Protocol Buffers belgelerine bakın.
last_location
dışındaki alanlarda yapılan güncellemeler için Fleet Engine Delivery
Admin ayrıcalıkları gerekir.
Örnek: Özel özellik ayarlama
Bu örnekte yeni bir özellik belirtiliyor: zone
. Daha önce Araç özelliklerini güncelleme bölümünde belirtildiği gibi, attributes
alanını bu yaklaşımla güncellerken korumak istediğiniz tüm özel özellikleri belirtmeniz gerekir.
Bu nedenle, örnekte attributes
alanı belirtilen bir güncelleme işlemi sırasında üzerine yazılmasını önlemek için available-at-night
değeri yazılmıştır.
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