Bu dokümanda, görevleri nasıl oluşturacağınızı ve kullanacağınızı bildiğiniz varsayılmaktadır. Sağlar Gönderim görevlerinin aşağıdaki şekillerde nasıl yapılandırılacağına dair belirli örnekler:
Gönderim görevi için hedef zaman aralığını ayarlama: Görevin tamamlanacağı zaman aralığını ayarlayın.
Görev görünürlüğünü özelleştirme: Görev etkinliklerinin görünürlüğünü müşterilere veya filo operatörlerine gösterilecek şekilde özelleştirin.
Kargo görevleri alanları hakkında ayrıntılı bilgi için Kargo görevleri oluşturma başlıklı makaleyi inceleyin. Mevcut görevlerle ilgili ek bilgileri güncellediğinizde, Girdiğiniz alanlara ek olarak görevle ilgili tanımlayıcıyı görevler için güncelleme yapabilirsiniz.
Hedef zaman aralığını ayarlama
Hedef zaman aralığı, görevin tamamlanması gereken TimeWindow'dır. Örneğin, teslimat alıcılarına bir teslimat süresi aralığı bildirirseniz bu zaman aralığını yakalamak ve uyarı oluşturmak için görev hedefi zaman aralığını kullanabilir veya geçmiş gezi performansını analiz etmek için bu özelliği kullanabilirsiniz.
Hedef zaman aralığı, bir başlangıç ve bitiş zamanından oluşur ve daima tetikte olursunuz. Hedef zaman aralığı, yönlendirmeyi etkilemez gösterir.
Aşağıdaki örnekler, Java gRPC
kitaplığını veya UpdateTask
için HTTP REST isteği oluşturmayı öğrenin. Bu alanı görev oluştururken de ayarlayabilirsiniz.
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
HTTP kullanarak görev zaman aralığı ayarlamak için PATCH
işlevini çağırın ve
targetTimeWindow
parametresini güncellemek için updateMask
kullanın:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Burada <id>, görev için benzersiz bir tanımlayıcıdır. İstek başlığı Bearer <token> değerine sahip bir Yetkilendirme alanı içermelidir. Burada <token>, yönergelere uygun şekilde sunucunuz tarafından verilir Hizmet hesabı rolleri ve JSON Web jetonları konularında açıklanmıştır.
# 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
Görev görünürlüğünü özelleştirme
Fleet Engine, varsayılan olarak görev etkinlikleri için görünürlük sağlar. Bu sayede hem gönderi alan müşterilere hem de filo operatörlerine gösterilmelidir hakkında da bilgi edindiniz. Müşteriye paket teslimat durumuyla ilgili bildirim göndermeden önce durak sayısını belirtme gibi bilgiler buna dahildir. Bu bilgileri her görev için ayrı ayrı özelleştirip size daha uygun hale getirebilirsiniz. en iyi uygulamaları paylaşacağız.
Bu bölümde, haritada izlenen nesnelerin görünürlük kuralları açıklanmaktadır. Bu kurallar iki nesne kategorisi için geçerlidir:
- Konum işaretçisi görünürlüğü
- Poli çizgiler ve tahmini varış zamanı gibi etkin araç görevleri için görev verileri görünürlüğü
Konum işaretçisi görünürlük kuralları
Fleet Engine, gönderim durumuna bakılmaksızın haritada gösterilen gönderim teslimat konumu için konum işaretçileri gösterir.
Görev verisi görünürlük kuralları
Bu bölümde, görev verilerine uygulanan varsayılan görünürlük kuralları açıklanmaktadır. Yalnızca etkin araç görevlerini özelleştirebilirsiniz. Bu nedenle özelleştirilmiş görünürlük kuralları uygulayabilir.
Aşağıdaki görevler özelleştirilemez:
- Planlanmış duraklar
- Kullanılamazlık görevleri
- Etkin olmayan araç görevleri
Kullanılabilir olmayan görevler görünürlük kuralları
İzlenen göreve en az bir "Kullanılamıyor" görevi atanmışsa araç varsayılan olarak haritada görünmez. Örneğin, sürücü mola veriyorsa veya izlenen gönderinin rotasında araca yakıt dolduruluyorsa. Tahmini varış zamanı ve tahmini görev tamamlama zamanı yine de kullanılabilir. Bu kuralı özelleştiremezsiniz.
Etkin araç görevlerinin görünürlüğü
TaskTrackingInfo
nesnesi, Gönderi Takip Kitaplığı'nı kullanarak görünür hale getirebileceğiniz çeşitli veri öğeleri sağlar. Varsayılan olarak bu alanlar
görev araca atandığında ve araç şu anda görünür olduğunda
en fazla 5 durak bulunur. Görünürlük, görev tamamlandığında veya
iptal edildi.
Görünürlük yapılandırmasını şu ayarları yaparak görev bazında özelleştirebilirsiniz:
Görev oluştururken veya güncellerken görevdeki TaskTrackingViewConfig
bir ekiple çalışıyor. Bu işlem, bağımsız veri öğelerinin kullanılabilir olması için kurallar oluşturur.
Aşağıdaki tabloda, görünürlük kuralları uygulayabileceğiniz alanlar gösterilmektedir.
Görünürlük kuralları için araç görev alanları |
---|
|
Bu tabloda, yukarıda listelenen alanlar için kullanılabilen görünürlük seçenekleri gösterilmektedir.
Görünürlük seçenekleri |
---|
|
Rota poli çizgileri ve araç konumu görünürlük kuralları
Takip edilen bir rota için, rota çoklu çizgilerinin görünürlüğü şuna tabidir: görünür. Aracın görünmediği etkin bir rotada bir rota çoklu çizgisi görünürse araç konumu, görünür çoklu çizginin sonuna göre yine de tahmin edilebilir. Dolayısıyla, rota çoklu çizgisi görünürlük, araç görünürlüğünden daha kısıtlayıcı olmalıdır.
Geçerli bir rota çoklu çizgisi/araç konumu görünürlük kombinasyonu sağlamak için bu kuralları uygulayın.
Rota çoklu çizgileri ve araç konumu, aynı görünürlük seçeneklerini belirtir
Bu senaryoda hem çoklu çizgi hem de araç konumu için aynı seçenekler ayarlanır. Bu seçenekler şunlardır:
- kalan durak sayısı
- TVS'ye kalan süre
- kalan sürüş mesafesi
Kurallara uymak için rota çoklu çizgilerinin görünürlüğü değeri, araç görünürlüğü için ayarlanan değerden düşük veya bu değere eşit olmalıdır. Bu örnekte, poli çizgi için kalan durak eşiği 3'e ayarlanmıştır. Bu değer, araç için belirtilen 5 değerinden düşüktür. Bu, izlenen yolculuk görev konumundan 5 durak uzağa ulaştığında aracın göründüğü ancak yolculuk 3 durak uzağa gelene kadar söz konusu aracın rotasının görünmediği anlamına gelir.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Rota çoklu çizgileri ve araç konumu, farklı görünürlük seçeneklerini belirtir
Rota çoklu çizgileri ve araç konumu farklı görünürlük seçeneklerine sahip olduğunda, Aracın konumu, yalnızca görünürlük seçeneklerinin her ikisi de olduğunda görünür memnun kaldım. Çoklu çizgi görünürlüğü ise yine görünürlük kurallarına tabidir gerekir:
- Her zaman görünür: Araç konumu da aynı her zaman görünür görünürlük seçeneğini sağladığında rota çoklu çizgisi her zaman görünür görünürlük seçeneğini kullanmalıdır.
- Asla görünmez: Araç konumu asla görünmez görünürlük seçeneğini kullandığında rota poli çizgisi asla görünmez görünürlük seçeneğini kullanmalıdır.
Aşağıda bir örnek verilmiştir:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
Bu örnekte, aracın konumu yalnızca kalan durak sayı en az 3 VE kalan sürüş mesafesi en az 3.000 ise metre.
Görev görünürlüğü özelleştirme örneği
Aşağıdaki örneklerde, bir görevin aşağıdaki görünürlük kurallarıyla nasıl ayarlanacağı gösterilmektedir:
- Araç 3 durak içindeyse rota çoklu çizgilerini gösterin.
- Kalan sürüş mesafesi 5.000 metreden kısaysa TVS'yi gösterin.
- Kalan aktarma sayısını hiçbir zaman gösterme.
- Diğer tüm alanlar, araç görevden 5 durak uzaklıktayken gösterilme varsayılan görünürlüğünü korur.
gRPC veya REST için TaskTrackingViewConfig
politikasına bakın.
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
HTTP'yi kullanarak görev izleme görünümü yapılandırma penceresini ayarlamak için PATCH
işlevini çağırın ve taskTrackingViewConfig
parametresini güncellemek için updateMask
işlevini kullanın:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
Örneğin:
# 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