Bu dokümanda, görevleri nasıl oluşturacağınızı ve kullanacağınızı bildiğiniz varsayılmaktadır. Gönderim görevlerinin aşağıdaki şekillerde nasıl yapılandırılacağına dair belirli örnekler sağlar:
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üncellerken, görevler için güncellediğiniz alanlara ek olarak görevle ilgili tanımlayıcıyı da eklemeniz gerekir.
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 herhangi bir görev türü için ayarlanabilir. Hedef 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
adresine HTTP REST isteği nasıl gönderileceği gösterilmektedir. 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 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 üstbilgisinde, Authorization (Yetkilendirme) alanında Bearer <token> (Taşıyıcı <token>) değeri bulunmalıdır. <token>, Hizmet hesabı rolleri ve JSON Web jetonları bölümünde 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"
}
}
EOM
Görev görünürlüğünü özelleştirme
Varsayılan olarak Fleet Engine, görev etkinliklerine görünürlük sağlar. Bu etkinlikler daha sonra hem kargo alan müşterilere hem de kargoları takip eden filo operatörlerine gösterilebilir. Müşteriye paket teslimat durumuyla ilgili bildirim göndermeden önce durak sayısını belirtme gibi bilgiler buna dahildir. Bu bilgileri işletme modelinize daha uygun olacak şekilde görev bazında özelleştirebilirsiniz.
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 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. Yani özelleştirilmiş görünürlük kuralları yalnızca teslim alma ve teslim etme görevleri için geçerli olabilir.
Aşağıdaki görevler özelleştirilemez:
- Planlanmış duraklar
- Kullanılamazlık görevleri
- Etkin olmayan araç görevleri
Kullanılamıyor görevlerinin 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 araçta yakıt dolduruluyorsa. Tahmini varış zamanı ve tahmini görev tamamlama zamanı yine de kullanılabilir. Bu kuralı özelleştiremezsiniz.
Etkin araç görevleri 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ç görevle 5 durak mesafedeyken görünür. Görev tamamlandığında veya iptal edildiğinde görünürlük sona erer.
Fleet Engine'da bir görevi oluştururken veya güncellerken TaskTrackingViewConfig
simgesini ayarlayarak görünürlük yapılandırmasını görev bazında özelleştirebilirsiniz. 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üğü kuralları
İzlenen bir rotanın çoklu çizgilerinin görünürlüğü, aracın görünürlüğüne bağlıdı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. Bu nedenle, rota poli çizgisi görünürlüğü, araç görünürlüğünden daha kısıtlayıcı veya en azından 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 için aynı görünürlük seçenekleri belirtilmişse
Bu senaryoda hem çoklu çizgi hem de araç konumu aynı seçenekleri ayarlar. Bu seçenekler şunlardır:
- kalan durak sayısı
- ETA'ya kadar geçen süre
- kalan sürüş mesafesi
Kurallara uymak için rota poli ç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 poli çizgilerinin ve araç konumunun farklı görünürlük seçenekleri varsa araç konumu yalnızca her iki görünürlük seçeneğinin de karşılandığı durumlarda görünür. Poli ç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ğ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 polilini 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, araç 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.
Görev görünürlüğü özelleştirme örneği
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 yakınındaysa rota poli çizgilerini gösterin.
- Kalan sürüş mesafesi 5.000 metreden kısaysa tahmini varış süresini gösterin.
- Kalan durak sayısını hiçbir zaman göstermeyin.
- 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
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'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