يتناول هذا المستند حقول المركبات المهمة التي يمكنك تعديلها عند إنشاء المركبات وإدارتها.
|
للحصول على قائمة كاملة بحقول المركبات، يُرجى الاطّلاع على: |
حقل سمات المركبات
استخدِم حقل المركبة 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