इस दस्तावेज़ में यह माना गया है कि आपको टास्क बनाने और उन्हें इस्तेमाल करने का तरीका पता है. इसमें शिपमेंट टास्क को कॉन्फ़िगर करने के उदाहरण दिए गए हैं. इन्हें इन तरीकों से कॉन्फ़िगर किया जा सकता है:
शिपमेंट टास्क के लिए टारगेट समयावधि सेट करना: टास्क पूरा करने के लिए समयावधि सेट करें.
टास्क के दिखने की सेटिंग को पसंद के मुताबिक बनाना: टास्क की गतिविधियों के दिखने की सेटिंग को पसंद के मुताबिक बनाएं, ताकि ग्राहकों या फ़्लीट ऑपरेटर को टास्क की जानकारी दिख सके.
शिपमेंट टास्क के फ़ील्ड के बारे में जानने के लिए, शिपमेंट टास्क बनाना लेख पढ़ें. मौजूदा टास्क के बारे में अतिरिक्त जानकारी अपडेट करते समय, आपको टास्क के लिए काम का आइडेंटिफ़ायर भी शामिल करना होगा. इसके अलावा, आपको टास्क के लिए अपडेट किए जाने वाले फ़ील्ड भी शामिल करने होंगे.
टारगेट की समयसीमा सेट करना
टारगेट टाइम विंडो, वह 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
यहां <id>, टास्क के लिए एक यूनीक आइडेंटिफ़ायर है. अनुरोध के हेडर में, Authorization फ़ील्ड होना चाहिए. इसकी वैल्यू Bearer <token> होनी चाहिए. यहां <token> को आपका सर्वर, सेवा खाते की भूमिकाओं और 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 ऑब्जेक्ट में कई डेटा एलिमेंट होते हैं. इन्हें शिपमेंट ट्रैकिंग लाइब्रेरी का इस्तेमाल करके दिखाया जा सकता है. डिफ़ॉल्ट रूप से, ये फ़ील्ड तब दिखते हैं, जब वाहन को टास्क असाइन किया जाता है और जब वाहन, टास्क की जगह से पांच स्टॉप की दूरी पर होता है. टास्क पूरा होने या रद्द होने पर, यह जानकारी दिखनी बंद हो जाती है.
Fleet Engine में टास्क बनाते या अपडेट करते समय, टास्क पर TaskTrackingViewConfig को सेट करके, हर टास्क के हिसाब से, जानकारी दिखने के कॉन्फ़िगरेशन को पसंद के मुताबिक बनाया जा सकता है. इससे, अलग-अलग डेटा एलिमेंट के उपलब्ध होने के नियम बनते हैं.
नीचे दी गई टेबल में वे फ़ील्ड दिखाए गए हैं जिन पर दिखने से जुड़े नियम लागू किए जा सकते हैं.
| विज़िबिलिटी के नियमों के लिए, वाहन के टास्क से जुड़े फ़ील्ड |
|---|
|
इस टेबल में, ऊपर दिए गए फ़ील्ड के लिए उपलब्ध विज़िबिलिटी के विकल्प दिखाए गए हैं.
| विज़िबिलिटी के विकल्प |
|---|
|
रूट की पॉलीलाइन और वाहन की जगह की जानकारी दिखने से जुड़े नियम
ट्रैक किए जा रहे रास्ते के लिए, रास्ते की पॉलीलाइन की विज़िबिलिटी, वाहन की विज़िबिलिटी पर निर्भर करती है. अगर किसी चालू रास्ते पर रूट पॉलीलाइन दिख रही है, लेकिन वाहन नहीं दिख रहा है, तो वाहन की जगह की जानकारी का पता अब भी लगाया जा सकता है. इसके लिए, पॉलीलाइन के आखिरी हिस्से को देखें. इसलिए, रास्ते की पॉलीलाइन दिखने की सेटिंग, वाहन दिखने की सेटिंग जितनी या उससे ज़्यादा पाबंदी वाली होनी चाहिए.
मान्य रूट पॉलीलाइन / वाहन की जगह की जानकारी दिखाने के लिए, इन नियमों का पालन करें.
रूट की पॉलीलाइन और वाहन की जगह की जानकारी के लिए, विज़िबिलिटी के एक जैसे विकल्प तय करें
इस मामले में, पॉलीलाइन और वाहन की जगह की जानकारी, दोनों के लिए एक जैसे विकल्प सेट किए जाते हैं. इनमें ये शामिल हैं:
- बचे हुए स्टॉप की संख्या
- ईटीए तक की अवधि
- तय की जाने वाली बची हुई दूरी
नियमों का पालन करने के लिए, रास्ते की पॉलीलाइन दिखने की वैल्यू, वाहन दिखने के लिए सेट की गई वैल्यू से कम या उसके बराबर होनी चाहिए. इस उदाहरण में, पॉलीलाइन के लिए बचे हुए स्टॉप की थ्रेशोल्ड वैल्यू 3 पर सेट की गई है. यह वैल्यू, वाहन के लिए तय की गई वैल्यू 5 से कम है. इसका मतलब है कि जब ट्रैक की जा रही यात्रा, टास्क की जगह से पांच स्टॉप दूर होती है, तो वाहन दिखता है. हालांकि, उस वाहन का रास्ता तब तक नहीं दिखता, जब तक यात्रा तीन स्टॉप दूर न हो.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
रूट की पॉलीलाइन और वाहन की जगह की जानकारी, 'किसको दिखे' सेटिंग के अलग-अलग विकल्प तय करती है
जब रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी के लिए, दिखने के अलग-अलग विकल्प होते हैं, तब वाहन की जगह की जानकारी सिर्फ़ तब दिखती है, जब दिखने के दोनों विकल्प पूरे होते हैं. पॉलीलाइन के दिखने की सेटिंग, वाहन के दिखने की सेटिंग के नियमों के हिसाब से तय होती है:
- हमेशा दिखे: रास्ते की पॉलीलाइन के लिए, हमेशा दिखे विकल्प का इस्तेमाल करना चाहिए. ऐसा तब करना चाहिए, जब वाहन की जगह की जानकारी के लिए भी हमेशा दिखे विकल्प का इस्तेमाल किया गया हो.
- कभी न दिखे: अगर वाहन की जगह की जानकारी के लिए, कभी न दिखे विकल्प का इस्तेमाल किया जाता है, तो रास्ते की पॉलीलाइन के लिए भी कभी न दिखे विकल्प का इस्तेमाल किया जाना चाहिए.
इसका एक उदाहरण यहां दिया गया है:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
इस उदाहरण में, वाहन की जगह की जानकारी सिर्फ़ तब दिखेगी, जब बचे हुए स्टॉप की संख्या कम से कम तीन और बची हुई दूरी कम से कम 3,000 मीटर हो.
टास्क के दिखने की सेटिंग को पसंद के मुताबिक बनाने का उदाहरण
यहां दिए गए उदाहरणों में, टास्क को सेट करने का तरीका बताया गया है. साथ ही, यह भी बताया गया है कि टास्क को कौन देख सकता है:
- अगर वाहन तीन स्टॉप के अंदर है, तो रास्ते की पॉलीलाइन दिखाएं.
- अगर बची हुई दूरी 5,000 मीटर से कम है, तो ईटीए दिखाएं.
- बाकी बचे स्टॉप की संख्या कभी न दिखाएं.
- अन्य सभी फ़ील्ड, डिफ़ॉल्ट रूप से तब दिखते हैं, जब वाहन टास्क की जगह से पांच स्टॉप की दूरी पर होता है.
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