वाहन की डिलीवरी से जुड़े टास्क अपडेट करें

इस दस्तावेज़ को इनके बारे में जानकारी है:

असल में डिलीवरी की स्थिति में, कारोबार डिलीवरी शिपमेंट के टास्क पूरे करते हैं ड्राइवर, जो तय समय पर वाहन का इस्तेमाल करके, डिलीवरी पाने वाले व्यक्ति तक उसे पहुंचाते हैं पता, जैसे कि किसी बिल्डिंग कॉम्प्लेक्स में रहने वाला घर या डिलीवरी रूम. आपने लोगों तक पहुंचाया मुफ़्त में एक टास्क बनाकर और डिलीवरी व्हीकल जारी करके, Fleet Engine में इसका मॉडल बनाएं अपडेट करने का अनुरोध. इससे वाहन की इकाई, स्टॉप की सूची के साथ अपडेट हो जाती है यात्रा. आप हर स्टॉप को स्टॉप पर पूरे किए जाने वाले टास्क की सूची असाइन करते हैं.

वाहन के टास्क कभी भी अपडेट किए जा सकते हैं. हालांकि, आम तौर पर ऐसा ये मकसद:

  • कोई वाहन पूरा करने के लिए, टास्क शेड्यूल करें. ऐसा करने के लिए, इनमें से कोई भी विकल्प चुनें अपडेट के अनुरोध के साथ वाहन में नया स्टॉप जोड़ता है या अपडेट के साथ अनुरोध है, जो मौजूदा स्टॉप में कोई नया टास्क जोड़ देता है.
  • वाहन के दिए गए स्टॉप से जुड़े मौजूदा टास्क का क्रम अपडेट करें.
  • टास्क पूरा होने की जगह बदलें. डिफ़ॉल्ट रूप से, फ़्लीट इंजन टास्क पूरा होने की जगह पर वाहन को स्टॉप वाली जगह मार्क होना चाहिए टास्क से जुड़ा हो. आपके पास अपनी ज़रूरत के हिसाब से जगहों को चुनने का भी विकल्प है का इस्तेमाल किया जा सकता है. उदाहरण के लिए, हो सकता है कि आपके वाहन का कोई स्टॉप कई पैकेज डिलीवर करना मुश्किल होता है. हर पैकेज को खास मेल डिलीवरी रूम पर कॉल कर सकते हैं.
  • पहले असाइन किए गए किसी भी टास्क को बंद करें, ताकि उन्हें अपडेट किए जाने से रोका जा सके ऑर्डर करने के लिए. ज़्यादा जानकारी के लिए, टास्क पूरा करना देखें.

डिलीवरी के टास्क शेड्यूल करना या उनमें बदलाव करना

किसी सर्वर का इस्तेमाल करके, वाहन को असाइन किए गए टास्क शेड्यूल किए जा सकते हैं या उनमें बदलाव किया जा सकता है या ड्राइवर SDK टूल का इस्तेमाल करके भरोसेमंद डिवाइस से टास्क मैनेज करें. सिर्फ़ एक तरीका इस्तेमाल करें, ताकि आप दौड़ से बच सकें और सच्चाई का एक स्रोत बनाए रखें.

शिपमेंट को एक वाहन से दूसरे वाहन में बदलने के लिए, मूल टास्क बंद करें और इसे किसी अन्य वाहन को असाइन करने से पहले फिर से बनाएं. अगर आप डिलीवरी वाहन में कोई ऐसा टास्क शामिल करना जिसे पहले ही किसी दूसरे उपयोगकर्ता को असाइन किया जा चुका हो वाहन है, तो आपको एक गड़बड़ी का मैसेज मिला है.

टास्क अपडेट करने के लिए ज़रूरी फ़ील्ड

यह सेक्शन, वाहन. कोई वैकल्पिक फ़ील्ड नहीं दिया गया है. फ़्लीट इंजन अन्य सभी फ़ील्ड को अनदेखा करता है इकाई में डालें.

फ़ील्ड भरना ज़रूरी हैमान
remainingVehicleJourneySegments टास्क के लिए, यात्रा वाले सेगमेंट की सूची. इस सूची में, टास्क को उस क्रम में किया जाता है जिस क्रम में उन्हें एक्ज़ीक्यूट किया जाना चाहिए. सूची में मौजूद पहला टास्क सबसे पहले चलाया जाता है.
remainingVehicleJourneySegments[i].stop सूची में i टास्क का स्टॉप.
remainingVehicleJourneySegments[i].stop.plannedLocation स्टॉप के लिए तय की गई जगह.
remainingVehicleJourneySegments[i].stop.tasks वाहन के इस स्टॉप पर किए जाने वाले कामों की सूची.
remainingVehicleJourneySegments[i].stop.state State.NEW

टास्क असाइन करने का उदाहरण

नीचे दिए गए उदाहरण में, Java gRPC लाइब्रेरी और एचटीटीपी को इस्तेमाल करने का तरीका बताया गया है कार के लिए दो नए टास्क जोड़ने के लिए, UpdateDeliveryVehicle पर REST कॉल करें.

gRPC

 static final String PROJECT_ID = "my-delivery-co-gcp-project";
 static final String VEHICLE_ID = "vehicle-8241890";
 static final String TASK1_ID = "task-756390";
 static final String TASK2_ID = "task-849263";

 DeliveryServiceBlockingStub deliveryService =
   DeliveryServiceGrpc.newBlockingStub(channel);

 // Vehicle settings
 String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
 DeliveryVehicle deliveryVehicle = DeliveryVehicle.newBuilder()
     .addRemainingVehicleJourneySegments(VehicleJourneySegment.newBuilder()  // 1st stop
        .setStop(VehicleStop.newBuilder()
            .setPlannedLocation(LocationInfo.newBuilder()
                .setPoint(LatLng.newBuilder()
                    .setLatitude(37.7749)
                    .setLongitude(122.4194)))
            .addTasks(TaskInfo.newBuilder().setTaskId(TASK1_ID))
            .setState(VehicleStop.State.NEW)))
     .addRemainingVehicleJourneySegments(VehicleJourneySegment.newBuilder()  // 2nd stop
        .setStop(VehicleStop.newBuilder()
            .setPlannedLocation(LocationInfo.newBuilder()
                .setPoint(LatLng.newBuilder()
                    .setLatitude(37.3382)
                    .setLongitude(121.8863)))
            .addTasks(TaskInfo.newBuilder().setTaskId(TASK2_ID))
            .setState(VehicleStop.State.NEW)))
     .build();

 // DeliveryVehicle request
 UpdateDeliveryVehicleRequest updateDeliveryRequest =
   UpdateDeliveryVehicleRequest.newBuilder()  // No need for the header
       .setName(vehicleName)
       .setDeliveryVehicle(deliveryVehicle)
       .setUpdateMask(FieldMask.newBuilder().addPaths("remaining_vehicle_journey_segments"))
       .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;
 }

आराम

 PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<id>?updateMask=remainingVehicleJourneySegments`
  • &lt;id&gt; आपके बेड़े में डिलीवरी वाहन के लिए यूनीक आइडेंटिफ़ायर है जिसके लिए आपको टास्क का क्रम अपडेट करना है. यह ऐसा आइडेंटिफ़ायर है जो जो आपने वाहन बनाते समय तय किया था.

  • अनुरोध के हेडर में वैल्यू के साथ Authorization फ़ील्ड होना ज़रूरी है Bearer <token>, जहां आपके सर्वर ने <token> जारी किया है सेवा खाते की भूमिकाओं में बताए गए दिशा-निर्देशों के मुताबिक होना चाहिए और JSON वेब टोकन.

  • अनुरोध के मुख्य हिस्से में DeliveryVehicle इकाई होनी चाहिए

curl कमांड का उदाहरण:

  # 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=remainingVehicleJourneySegments" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
    --data-binary @- << EOM
  {
    "remainingVehicleJourneySegments": [
      {
        "stop": {
          "state": "NEW",
          "plannedLocation": {
            "point": {
              "latitude": 37.7749,
              "longitude": -122.084061
            }
          },
          "tasks": [
            {
              "taskId": "${TASK1_ID}"
            }
          ]
        }
      },
      {
        "stop": {
          "state": "NEW",
          "plannedLocation": {
            "point": {
              "latitude": 37.3382,
              "longitude": 121.8863
            }
          },
          "tasks": [
            {
              "taskId": "${TASK2_ID}"
            }
          ]
        }
      }
    ]
  }
  EOM

आगे क्या करना है