Bu belgede, görevlerin nasıl oluşturulacağını ve kullanılacağını bildiğiniz varsayılmaktadır. Aşağıdaki yöntemlerle gönderi görevlerinin nasıl yapılandırılacağına dair belirli örnekler sunar:
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 müşterilere veya filo operatörlerine gösterilme görünürlüğünü özelleştirin.
Kargo görevleriyle ilgili 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üncellerken görevler için güncellediğiniz alanların yanı sıra görevin ilgili tanımlayıcısını da eklemeniz gerekir.
Hedef zaman aralığını ayarlama
Hedef zaman aralığı, görevin tamamlanması gereken TimeWindow değeridir. Örneğin, teslimat alıcılarına bir teslimat zaman aralığı bildirirseniz bu zaman aralığını yakalamak ve uyarılar oluşturmak için görev hedef zaman aralığını kullanabilir veya geçmiş yolculuk performansını analiz etmek için bu aralığı kullanabilirsiniz.
Hedef zaman aralığı, başlangıç zamanı ve bitiş zamanından oluşur ve herhangi bir görev türünde ayarlanabilir. Hedeflenen zaman aralığı, yönlendirme davranışını etkilemez.
Aşağıdaki örneklerde, Java gRPC kitaplığı kullanılarak zaman aralığının nasıl ayarlanacağı veya UpdateTask için nasıl HTTP REST isteği oluşturulacağı gösterilmektedir. Bu alanı görev oluşturma sırasında da 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 bir görev zaman aralığı ayarlamak için PATCH işlevini çağırın ve targetTimeWindow parametresini güncellemek için updateMask işlevini kullanın:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Burada <id>, görevin benzersiz tanımlayıcısıdır. İstek başlığında, Authorization alanı Bearer <token> değeriyle birlikte bulunmalıdır. Burada <token>, Hizmet hesabı rolleri ve JSON Web jetonları'nda açıklanan yönergelere göre sunucunuz tarafından verilir.
# 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"
}
}
EOMGörev görünürlüğünü özelleştirme
Fleet Engine, varsayılan olarak görev etkinlikleriyle ilgili görünürlük sağlar. Bu etkinlikler daha sonra hem gönderi alan müşterilere hem de gönderileri takip eden filo operatörlerine gösterilebilir. Bu, müşteriye paket teslimat durumuyla ilgili bildirim göndermeden önce kaç durak olduğunu belirtme gibi bilgileri içerir. Bu bilgileri, işletme modelinize daha iyi uyacak şekilde görev bazında özelleştirebilirsiniz.
Bu bölümde, haritadaki 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üğü
- Aktif araç görevleri için görev verilerinin görünürlüğü (ör. çoklu çizgiler ve TVS)
Konum işaretçisi görünürlüğü kuralları
Fleet Engine, teslimatın durumundan bağımsız olarak, haritada gösterilen kargo teslimat konumunun konum işaretçilerini görüntüler.
Görev verilerinin görünürlüğüyle ilgili kurallar
Bu bölümde, görev verileri için geçerli olan varsayılan görünürlük kuralları açıklanmaktadır. Yalnızca etkin araç görevlerini özelleştirebilirsiniz. Bu, yalnızca teslim alma ve bırakma görevlerinin özelleştirilmiş görünürlük kuralları uygulayabileceği anlamına gelir.
Aşağıdaki görevler özelleştirilemez:
- Planlanmış duraklar
- Müsaitlik durumu görevleri
- Etkin olmayan araç görevleri
Kullanılamazlık görevlerinin görünürlük kuralları
Varsayılan olarak, izlenen göreve en az bir stokta yokluk görevi atanmışsa araç haritada görünmez. Örneğin, sürücü mola veriyorsa veya izlenen kargoya giderken araca yakıt ikmali yapılıyorsa. Tahmini varış zamanı ve tahmini görev tamamlanma süresi hâlâ kullanılabilir. Bu kuralı da özelleştiremezsiniz.
Etkin araç görevlerinin görünürlüğü
TaskTrackingInfo nesnesi, Kargo Takibi Kitaplığı'nı kullanarak görünür hale getirebileceğiniz bir dizi veri öğesi sağlar. Varsayılan olarak bu alanlar, görev araca atandığında ve araç göreve 5 durak mesafedeyken görünür. Görünürlük, görev tamamlandığında veya iptal edildiğinde sona erer.
Fleet Engine'de görevi oluştururken veya güncellerken görevde TaskTrackingViewConfig simgesini ayarlayarak görünürlük yapılandırmasını görev bazında özelleştirebilirsiniz. Bu, tek tek 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örevi 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 çoklu çizgileri ve araç konumu görünürlük kuralları
Takip edilen bir rota için rota çoklu çizgilerinin görünürlüğü, aracın görünürlüğüne bağlıdır. Araç görünmüyorken etkin bir rotada rota poliline'ı görünüyorsa araç konumu, görünür poliline'ın sonundan yine de tahmin edilebilir. Bu nedenle, rota poliline görünürlüğü, araç görünürlüğü kadar veya daha kısıtlayıcı olmalıdır.
Geçerli bir rota çoklu çizgileri / araç konumu görünürlüğü kombinasyonu sağlamak için aşağıdaki kurallara uyun.
Rota çoklu çizgileri ve araç konumu, aynı görünürlük seçeneklerini belirtir.
Bu senaryoda, hem çoklu çizgi hem de araç konumu aynı seçenekleri ayarlar. Bu seçenekler şunlardır:
- kalan durak sayısı
- TVS'ye kadar olan süre
- kalan sürüş mesafesi
Kurallara uymak için rota çoklu çizgi görünürlüğü değeri, araç görünürlüğü için ayarlanan değerden daha düşük veya bu değere eşit olmalıdır. Bu örnekte, çoklu çizgi için kalan durdurma eşiği, araca belirtilen 5 değerinden daha düşük olan 3 olarak ayarlanmıştır. Bu nedenle, izlenen yolculuk görev konumundan 5 durak uzaklaştığında araç görünür ancak yolculuk 3 durak uzaklaşana kadar bu aracın rotası görünmez.
```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 araç konumu yalnızca görünürlük seçeneklerinin her ikisi de karşılandığında görünür. Çoklu çizgi görünürlüğü, aracın görünürlük kurallarına tabidir:
- 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ğlıyorsa rota çoklu çizgisi her zaman görünür görünürlük seçeneğini kullanmalıdır.
- Asla görünür değil: Araç konumu asla görünür değil görünürlük seçeneğini kullandığında rota çoklu çizgisi asla görünür değil görünürlük seçeneğini kullanmalıdır.
Örnek:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
Bu örnekte, aracın konumu yalnızca kalan durak sayısı en az 3 VE kalan sürüş mesafesi en az 3.000 metre ise görünür.
Örnek görev görünürlüğü özelleştirmesi
Aşağıdaki örneklerde, aşağıdaki görünürlük kurallarına sahip bir görevin nasıl ayarlanacağı gösterilmektedir:
- Araç 3 durak içindeyse rota çoklu çizgilerini göster.
- Kalan sürüş mesafesi 5.000 metreden kısaysa tahmini varış zamanını gösterin.
- Kalan durak sayısını hiçbir zaman gösterme.
- Diğer her alan, araç görevden 5 durak uzaktayken gösterilme varsayılan görünürlüğünü korur.
gRPC veya REST için TaskTrackingViewConfig bölümüne 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 kullanarak görev takipçisi görünümü yapılandırma penceresini ayarlamak için PATCH yöntemini çağırın ve updateMask kullanarak taskTrackingViewConfig parametresini güncelleyin:
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