टास्क कॉन्फ़िगर करें

इस दस्तावेज़ में माना गया है कि आपको टास्क बनाने और उन्हें इस्तेमाल करने का तरीका पता है. यह आपको शिपमेंट के टास्क को कॉन्फ़िगर करने के खास उदाहरण:

  • शिपिंग टास्क के लिए, टारगेट समय की विंडो सेट करना: समय की विंडो सेट करना टास्क पूरा करने के लिए.

  • टास्क किसको दिखे: टास्क की गतिविधियों के दिखने की सेटिंग को इस तरह सेट करें कि ग्राहकों या फ़्लीट ऑपरेटर को दिखाने के लिए.

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

टारगेट समय की विंडो सेट करना

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

टारगेट समय की विंडो में, शुरू होने और खत्म होने का समय होता है और इसे सेट किया जा सकता है का इस्तेमाल किया जा सकता है. टारगेट समय की विंडो, रूटिंग पर असर नहीं डालती है व्यवहार.

नीचे दिए गए उदाहरणों में, Java gRPC लाइब्रेरी या UpdateTask को एचटीटीपी REST अनुरोध करने का तरीका बताया गया है. आप साथ ही, टास्क बनाते समय इस फ़ील्ड को सेट करें.

gRPC

  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String TASK_ID = "task-8241890";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
  Task task = Task.newBuilder()
    .setName(taskName)
    .setTargetTimeWindow(
      TimeWindow.newBuilder()
        .setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
        .setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
    .build();

  // Task request
  UpdateTaskRequest updateTaskRequest =
    UpdateTaskRequest.newBuilder()  // No need for the header
        .setTask(task)
        .setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
        .build();

  try {
    Task updatedTask = deliveryService.updateTask(updateTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

आराम

एचटीटीपी का इस्तेमाल करके टास्क टाइम विंडो सेट करने के लिए, PATCH पर कॉल करें और targetTimeWindow पैरामीटर को अपडेट करने के लिए, updateMask का इस्तेमाल करें:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow

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

# Set JWT, PROJECT_ID, and TASK_ID in the local environment
  curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
    --data-binary @- << EOM
  {
    "targetTimeWindow": {
      "startTime": "2023-03-29T21:00:00Z",
      "endTime": "2023-03-29T23:00:00Z"
    }
  }
  EOM

टास्क किसको दिखे, इसे पसंद के मुताबिक बनाएं

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

इस सेक्शन में, मैप पर ट्रैक किए गए ऑब्जेक्ट के दिखने से जुड़े नियमों के बारे में बताया गया है. ये नियम, ऑब्जेक्ट की दो कैटगरी पर लागू होते हैं:

  • जगह के मार्कर की विज़िबिलिटी
  • वाहन के चालू टास्क के लिए, टास्क का डेटा किसे दिखे. जैसे, पॉलीलाइन और ईटीए

स्थान मार्कर के लिए दृश्यता नियम

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

टास्क का डेटा किसको दिखे, इससे जुड़े नियम

इस सेक्शन में, टास्क के डेटा पर लागू होने वाले डिफ़ॉल्ट नियमों के बारे में बताया गया है. वाहन के चालू टास्क को सिर्फ़ पसंद के मुताबिक बनाया जा सकता है. इसका मतलब है कि सिर्फ़ पिकअप और ड्रॉप-ऑफ़ टास्क, 'किसको दिखे' सेटिंग में अपने हिसाब से बदलाव लागू कर सकते हैं.

हो सकता है कि इन टास्क को पसंद के मुताबिक न बनाया जा सके:

  • शेड्यूल किए गए स्टॉप
  • टास्क उपलब्ध न होने से जुड़े टास्क
  • वाहन से जुड़े ऐसे टास्क जो चालू नहीं हैं

उपलब्ध न होने से जुड़े टास्क के दिखने के नियम

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

गाड़ी से जुड़े टास्क देखने की सुविधा

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

हर टास्क के हिसाब से, 'किसको दिखे' कॉन्फ़िगरेशन सेटिंग को अपनी पसंद के मुताबिक बनाया जा सकता है टास्क बनाते या अपडेट करते समय, उसमें मौजूद TaskTrackingViewConfig फ़्लीट इंजन के अंदर. इससे अलग-अलग डेटा एलिमेंट के लिए नियम बन जाते हैं उपलब्ध हैं.

इस टेबल में वे फ़ील्ड दिए गए हैं जिन पर 'किसको दिखे' के नियम लागू किए जा सकते हैं.

'प्रॉडक्ट किसको दिखे' सेटिंग के लिए, वाहन के टास्क फ़ील्ड
  • रूट पॉलीलाइन
  • पहुंचने का अनुमानित समय
  • टास्क को पूरा करने में लगने वाला अनुमानित समय
  • टास्क तक गाड़ी से जाने की बची हुई दूरी
  • शेष स्टॉप की संख्या
  • वाहन की जगह की जानकारी

यह टेबल ऊपर दी गई फ़ील्ड के लिए उपलब्ध 'किसको दिखे' विकल्प दिखाती है.

'किसको दिखे' सेटिंग के विकल्प
  • शेष स्टॉप की संख्या
  • पहुंचने का अनुमानित समय तक का कुल समय
  • ड्राइविंग के लिए बची हुई दूरी
  • मैसेज हमेशा दिखता है
  • कभी नहीं दिखेगा

रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी दिखाने के नियम

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

इन नियमों का पालन करके, रास्ते की सही पॉलीलाइन / वाहन की जगह की जानकारी दें विज़िबिलिटी कॉम्बिनेशन.

रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी के लिए, एक ही विकल्प दिखाएं

इस स्थिति में, पॉलीलाइन और वाहन की जगह, दोनों एक ही सेट करते हैं विकल्प शामिल हैं, जिनमें ये शामिल हैं:

  • बचे हुए स्टॉप की संख्या
  • ETA तक का कुल समय
  • ड्राइविंग के लिए बची हुई दूरी

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

```js
"taskTrackingViewConfig": {
  "routePolylinePointsVisibility": {
    "remainingStopCountThreshold": 3
  },
  "vehicleLocationVisibility": {
    "remainingStopCountThreshold": 5
  },
}
```

रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी, अलग-अलग विकल्प के बारे में बताती है

जब रास्ते की पॉलीलाइन और वाहन की जगह पर दिखने के अलग-अलग विकल्प हों, तो वाहन की जगह की जानकारी सिर्फ़ तब दिखती है, जब उनके दिखने के दोनों विकल्प संतुष्ट. साथ ही, पॉलीलाइन की विज़िबिलिटी, 'किसको दिखे' सेटिंग के नियमों पर निर्भर करती है गाड़ी का:

  • हमेशा दिखे: रूट की पॉलीलाइन में हमेशा दिखती है का इस्तेमाल होना चाहिए विज़िबिलिटी का विकल्प, जब वाहन की जगह की जानकारी के साथ-साथ, हमेशा एक ही वैल्यू दिखती हो के लिए उपलब्धता का विकल्प.
  • कभी नहीं दिखता: रास्ते की पॉलीलाइन में कभी नहीं दिखेगा का इस्तेमाल होना चाहिए जब वाहन की जगह की जानकारी के लिए, कभी नहीं दिखेगा विकल्प का इस्तेमाल किया जाता है.

इसका एक उदाहरण इस प्रकार है:

  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "vehicleLocationVisibility": {
      "remainingDrivingDistanceMetersThreshold": 3000
    },
  }

इस उदाहरण में, वाहन की जगह की जानकारी सिर्फ़ तब दिख रही है, जब बचा हुआ स्टॉप कम से कम 3 और ड्राइविंग के लिए बाकी दूरी कम से कम 3,000 है मीटर.

टास्क के दिखने की सेटिंग को पसंद के मुताबिक बनाने का उदाहरण

नीचे दिए गए उदाहरणों में, इनके साथ टास्क सेट करने का तरीका बताया गया है विज़िबिलिटी के नियम:

  • अगर वाहन तीन स्टॉप में है, तो रास्ते की पॉलीलाइन दिखाएं.
  • अगर ड्राइविंग के लिए बची हुई दूरी 5,000 मीटर से कम है, तो ETA दिखाएं.
  • बची हुई स्टॉप की संख्या कभी न दिखाएं.
  • हर दूसरे फ़ील्ड में दिखाए जाने की डिफ़ॉल्ट दृश्यता बनी रहती है, जब वाहन, टास्क से पांच स्टॉप के अंदर हो.

gRPC या REST के लिए TaskTrackingViewConfig देखें.

gRPC

static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";

DeliveryServiceBlockingStub deliveryService =
  DeliveryServiceGrpc.newBlockingStub(channel);

// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
  .setName(taskName)
  .setTaskTrackingViewConfig(
    TaskTrackingViewConfig.newBuilder()
      .setRoutePolylinePointsVisibility(
        VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
      .setEstimatedArrivalTimeVisibility(
        VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
      .setRemainingStopCountVisibility(
        VisibilityOption.newBuilder().setNever(true)))
  .build();

// Task request
UpdateTaskRequest updateTaskRequest =
  UpdateTaskRequest.newBuilder()  // No need for the header
      .setTask(task)
      .setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
      .build();

try {
  Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
      case NOT_FOUND:
        break;
      case PERMISSION_DENIED:
        break;
  }
  return;
}

आराम

एचटीटीपी का इस्तेमाल करके टास्क ट्रैकिंग व्यू कॉन्फ़िगरेशन विंडो सेट करने के लिए, PATCH पर कॉल करें और taskTrackingViewConfig पैरामीटर को अपडेट करने के लिए, updateMask का इस्तेमाल करें:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig

उदाहरण के लिए:

# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
  -H "Content-type: application/json" \
  -H "Authorization: Bearer ${JWT}" \
  --data-binary @- << EOM
{
  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "estimatedArrivalTimeVisibility": {
      "remainingDrivingDistanceMetersThreshold": 5000
    },
    "remainingStopCountVisibility": {
      "never": true
    }
  }
}
EOM

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