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