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