इस दस्तावेज़ में यह मान लिया गया है कि आपको टास्क बनाने और उनका इस्तेमाल करने का तरीका पता है. इसमें शिपमेंट के टास्क को कॉन्फ़िगर करने के तरीके के बारे में खास उदाहरण दिए गए हैं. जैसे:
शिपमेंट के टास्क के लिए, टारगेट समयावधि सेट करना: टास्क पूरा करने के लिए, समयावधि सेट करें.
टास्क के दिखने की सेटिंग को पसंद के मुताबिक बनाएं: ग्राहकों या फ्लीट ऑपरेटर को दिखाने के लिए, टास्क की गतिविधियों के दिखने की सेटिंग को पसंद के मुताबिक बनाएं.
शिपमेंट टास्क के फ़ील्ड के बारे में जानकारी के लिए, शिपमेंट टास्क बनाना लेख पढ़ें. मौजूदा टास्क के बारे में अतिरिक्त जानकारी अपडेट करते समय, आपको टास्क के लिए काम का आइडेंटिफ़ायर भी शामिल करना होगा. इसके अलावा, आपको उन फ़ील्ड को भी शामिल करना होगा जिन्हें आपको टास्क के लिए अपडेट करना है.
टारगेट की गई समयावधि सेट करना
टारगेट टाइम विंडो, 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