इस दस्तावेज़ में, वाहन के उन अहम फ़ील्ड के बारे में बताया गया है जिन्हें वाहन बनाते और मैनेज करते समय अपडेट किया जा सकता है.
|
वाहन के फ़ील्ड की पूरी सूची देखने के लिए, यहां जाएं: |
वाहन के एट्रिब्यूट फ़ील्ड
वाहन attributes
फ़ील्ड का इस्तेमाल करके, अपनी पसंद के मुताबिक मानदंड बनाएं. इससे आपके उपभोक्ताओं या फ्लीट ऑपरेटर को, खोज के अलग-अलग मानदंडों के आधार पर आपकी फ्लीट में मौजूद वाहन ढूंढने में मदद मिलेगी. इससे आपके ऐप्लिकेशन की क्षमताएं बेहतर होती हैं. इससे, सिर्फ़ वाहन के अन्य फ़ील्ड के आधार पर खोज के मानदंड का इस्तेमाल करने के मुकाबले, बेहतर तरीके से वाहन मैच किए जा सकते हैं. हर वाहन के लिए ज़्यादा से ज़्यादा 100 एट्रिब्यूट हो सकते हैं. साथ ही, हर एट्रिब्यूट की एक यूनीक कुंजी होनी चाहिए. वैल्यू, स्ट्रिंग, बूलियन या संख्याएं हो सकती हैं.
उदाहरण के लिए, ज़ोन नाम का कस्टम एट्रिब्यूट तय किया जा सकता है. इससे यह पता चलेगा कि शहर के किस ज़ोन में आपके डिलीवरी वाहन काम करते हैं. अलग-अलग ज़ोन को दिखाने के लिए, आपको यहां दी गई स्ट्रिंग वैल्यू का इस्तेमाल करना होगा: 1B
, 2C
, और 3A
. इसके बाद, फ़्लीट ट्रैकिंग में फ़िल्टर का इस्तेमाल करके, ऑपरेटर को सिर्फ़ उस ज़ोन में काम करने वाले वाहन दिखाए जा सकते हैं.
हालांकि, कस्टम एट्रिब्यूट की वैल्यू यूनीक होना ज़रूरी नहीं है. available-at-night और has-refrigeration जैसे मानदंड इस्तेमाल किए जा सकते हैं. इनमें से हर एक को अलग-अलग कस्टम एट्रिब्यूट के तौर पर इस्तेमाल किया जा सकता है. इनमें बूलियन वैल्यू का इस्तेमाल किया जाता है. किसी वाहन के लिए, इन तीनों कस्टम एट्रिब्यूट को असाइन किया जा सकता है. साथ ही, ज़ोन कस्टम एट्रिब्यूट को सही स्ट्रिंग वैल्यू पर सेट किया जा सकता है.
वाहन की विशेषताएं अपडेट करना
हर attributes
कुंजी की सिर्फ़ एक वैल्यू हो सकती है हर वाहन के लिए. फ़ील्ड मास्क में attributes
का इस्तेमाल करके, वाहन के कस्टम एट्रिब्यूट घोषित करें. इसके बाद, नीचे दिए गए तरीके के आधार पर वैल्यू दें.
UpdateDeliveryVehicle
एपीआई की मदद से, सिर्फ़ एक एट्रिब्यूट को अपडेट नहीं किया जा सकता. इस तरीके का इस्तेमाल करने पर, फ़ील्ड मास्क में attributes
फ़ील्ड का इस्तेमाल करने से, वाहन के लिए एट्रिब्यूट का पूरा सेट फिर से तय किया जाता है. इससे, पहले से मौजूद ऐसे एट्रिब्यूट ओवरराइट हो जाते हैं जिन्हें फ़ील्ड मास्क में साफ़ तौर पर शामिल नहीं किया गया है. अगर आपको इस तरीके का इस्तेमाल करके नया कस्टम एट्रिब्यूट जोड़ना है, तो आपको हर उस कस्टम एट्रिब्यूट को फिर से जोड़ना होगा जिसे आपको वाहन के लिए बनाए रखना है. अगर फ़ील्ड मास्क में attributes
को शामिल नहीं किया जाता है, तो यह तरीका वाहन के लिए पहले से तय किए गए कस्टम एट्रिब्यूट को पहले जैसा ही छोड़ देता है.
अगर फ़ील्ड मास्क में attributes
का इस्तेमाल किया जाता है, लेकिन वैल्यू सेट नहीं की जाती हैं, तो इसका मतलब है कि वाहन से सभी कस्टम एट्रिब्यूट हटा दिए गए हैं.
वाहन के फ़ील्ड अपडेट करने का उदाहरण
इस सेक्शन में, UpdateDeliveryVehicleRequest
का इस्तेमाल करके वाहन के फ़ील्ड अपडेट करने का तरीका बताया गया है. इसमें update_mask
भी शामिल है, ताकि यह पता चल सके कि किन फ़ील्ड को अपडेट करना है. ज़्यादा जानकारी के लिए, फ़ील्ड मास्क के बारे में प्रोटोकॉल बफ़र का दस्तावेज़ देखें.
last_location
के अलावा अन्य फ़ील्ड अपडेट करने के लिए, Fleet Engine Delivery Admin के अधिकार होने चाहिए.
उदाहरण: कस्टम एट्रिब्यूट सेट करना
इस उदाहरण में, एक नया एट्रिब्यूट 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