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