|
يغطّي هذا المستند حقول المركبات المهمة التي يمكنك تعديلها عند إنشاء المركبات وإدارتها.
|
للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى الرجوع إلى: |
حقل سمات المركبة
استخدِم حقل attributes في المركبة لإنشاء معايير مخصّصة تتيح للمستهلكين أو مشغّلي أسطول المركبات العثور على المركبات في أسطولك استنادًا إلى مجموعة أوسع من معايير البحث. ويعزّز ذلك إمكانات تطبيقاتك لتوفير نتائج أفضل للمركبات مقارنةً بما يمكنك الحصول عليه من استخدام معايير البحث المستندة فقط إلى حقول المركبات الأخرى. يمكن أن تتضمّن كل مركبة 100 سمة على الأكثر، ويجب أن يكون لكل سمة مفتاح فريد. يمكن أن تكون القيم سلاسل أو قيمًا منطقية أو أرقامًا.
على سبيل المثال، يمكنك تحديد سمة مخصّصة باسم zone للتمييز بين المنطقة التي تعمل فيها مركبات التوصيل في المدينة. يمكنك استخدام قيم السلاسل، مثل 1B و2C و3A، لتمثيل مناطق مختلفة. بعد ذلك، يمكنك استخدام فلتر في Fleet Tracking لعرض المركبات التي تعمل في منطقة معيّنة فقط للمشغّل المسؤول عن هذه المنطقة.
ومع ذلك، لا يجب أن تكون قيم السمات المخصّصة غير متكرّرة. يمكنك استخدام معايير مثل available-at-night وhas-refrigeration. يمكن أن تكون كل من هاتَين السمتَين سمة مخصّصة منفصلة تستخدم قيمًا منطقية. يمكن تعيين كل هذه السمات المخصّصة الثلاث لمركبة معيّنة، بالإضافة إلى السمة المخصّصة zone التي تم ضبطها على قيمة السلسلة المناسبة.
تعديل سمات المركبة
لا يمكن أن يكون لكل مفتاح من مفاتيح attributes سوى قيمة واحدة لكل مركبة. يمكنك تحديد سمات المركبات المخصّصة باستخدام attributes في قناع الحقل، ثم تقديم القيم استنادًا إلى الطريقة أدناه.
لا تسمح واجهة برمجة التطبيقات UpdateDeliveryVehicle بتعديل سمة واحدة فقط. عند استخدام هذه الطريقة، يؤدي أي استخدام لحقل attributes في قناع الحقل إلى إعادة تحديد المجموعة الكاملة من سمات المركبة. ويؤدي ذلك إلى استبدال أي سمة سبق تحديدها ولم يتم تضمينها بشكل صريح في قناع الحقل. إذا كنت تستخدم هذه الطريقة للتعريف بسمة مخصّصة جديدة، يجب أيضًا إعادة التعريف بكل سمة مخصّصة تريد أن تحتفظ بها المركبة. إذا استبعدت attributes في قناع الحقل، ستترك هذه الطريقة السمات المخصّصة الحالية كما تم تحديدها سابقًا للمركبة.
إذا كنت تستخدم attributes في قناع الحقل، ولكن بدون ضبط القيم، يكون ذلك مكافئًا لإزالة جميع السمات المخصّصة من المركبة.
مثال على تعديل حقول المركبة
يوضّح هذا القسم كيفية تعديل حقول المركبة باستخدام UpdateDeliveryVehicleRequest، الذي يتضمّن update_mask للإشارة إلى الحقول التي سيتم تعديلها. لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات Protocol Buffers حول
أقنعة الحقول.
تتطلّب تعديلات الحقول الأخرى غير last_location امتيازات مشرف التوصيل في Fleet Engine.
مثال: ضبط سمة مخصّصة
يحدّد هذا المثال سمة جديدة: 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