במסמך הזה מפורטים שדות חשובים של כלי רכב שאפשר לעדכן כשיוצרים כלי רכב ומנהלים אותם.
|
לרשימה מלאה של שדות הרכב: |
שדה מאפייני הרכב
יש להשתמש בשדה attributes
של הרכב כדי ליצור קריטריונים מותאמים אישית להפעלת
לצרכנים או למפעילי צי רכבים כדי למצוא כלי רכב בצי שלך
מגוון קריטריונים לחיפוש. הפעולה הזו משפרת את היכולות של האפליקציות
לספק התאמות טובות יותר למכירת רכב בהשוואה למה שהייתם מקבלים אם אתם משתמשים בקריטריונים של חיפוש
על סמך שדות אחרים בכלי רכב בלבד. בכל רכב אפשר להזין עד 100
ולכל אחד מהם צריך להיות מפתח ייחודי. הערכים יכולים להיות מחרוזות,
בוליאני או מספרים.
לדוגמה, אפשר להצהיר על מאפיין מותאם אישית שנקרא zone כדי
עליכם להבחין באיזה אזור של העיר שבו פועלים רכבי המשלוחים שלכם. כדי לייצג תחומים שונים, משתמשים בערכים של מחרוזות כמו 1B
, 2C
ו-3A
. לאחר מכן תוכלו להשתמש במסנן במעקב אחרי צי כלי הרכב כדי להציג רק את כלי הרכב שפועלים באזור ספציפי למפעיל שאחראי על האזור הזה.
עם זאת, ערכי המאפיינים המותאמים אישית לא חייבים להיות ייחודיים. אפשר להשתמש בקריטריונים כמו available-at-night ו-has-refrigeration. כל אחד מהם יכול להיות מאפיין מותאם אישית נפרד שמשתמש בערכים בוליאניים. רכב נתון אפשר להקצות את כל שלושת המאפיינים המותאמים אישית יחד עם התחום (zone). מוגדר לערך המחרוזת המתאים.
עדכון מאפייני הרכב
לכל מפתח attributes
יכול להיות רק ערך אחד לכל רכב. את/ה מצהיר/ה
מאפייני רכב מותאמים אישית באמצעות המאפיין attributes
במסכת השדות, ואז
ומציינים ערכים על סמך השיטה שלמטה.
ה-API הזה של UpdateDeliveryVehicle
לא מאפשר לעדכן רק גרסה אחת
. כשמשתמשים בשיטה הזו, כל שימוש בשדה attributes
במסכת השדות גורם להצהרה מחדש על הקבוצה המלאה של מאפייני הרכב. כתוצאה מכך, כל מאפיין קיים שלא נכלל במסכת השדה באופן מפורש יימחק. אם אתם משתמשים בשיטה הזו כדי להצהיר (declare) על
מאפיין מותאם אישית, צריך גם להצהיר מחדש על כל מאפיין מותאם אישית שרוצים
את הרכב שצריך להחזיק. אם לא כוללים את attributes
במסכת השדות,
משאירה מאפיינים מותאמים אישית קיימים כפי שהוגדרו קודם לכן עבור הרכב.
אם משתמשים ב-attributes
במסכת השדה, אבל בלי להגדיר ערכים, זה שווה ערך להסרת כל המאפיינים המותאמים אישית מהרכב.
דוגמה לעדכון שדות של כלי רכב
בקטע הזה מוסבר איך לעדכן את שדות הרכב באמצעות UpdateDeliveryVehicleRequest
, שכולל את update_mask
כדי לציין אילו שדות לעדכן. צפייה בתיעוד של מאגרי אחסון לפרוטוקולים ב-
מסכות שטח לפרטים נוספים.
כדי לעדכן שדות שאינם last_location
, נדרשות הרשאות אדמין של Fleet Engine Delivery.
דוגמה: הגדרת מאפיין מותאם אישית
בדוגמה הזו מצוין מאפיין חדש: 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;
}
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