Görevleri yapılandırma

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: Zaman aralığını ayarlama tamamlanması gereken aktiviteleri ifade eder.

  • Görev görünürlüğünü özelleştir: Şunlar için görev etkinliklerinin görünürlüğünü özelleştirin: müşterilere veya filo operatörlerine gösterme.

Gönderim görevleriyle ilgili alanlarla ilgili ayrıntılar için Gönderim görevleri oluşturma bölümüne bakın. Mevcut görevlerle ilgili ek bilgileri güncellediğinizde, alanlarınıza ek olarak görev için alakalı tanımlayıcıyı görevler için güncelleme yapabilirsiniz.

Hedef zaman aralığını belirleme

Hedef zaman aralığı, görevin tamamlanması için gereken TimeWindow'dır. tamamlandı. Örneğin, teslimata bir teslimat süresi aralığı bildirirseniz görev hedef zaman aralığını kullanarak bu zaman aralığını uyarı oluşturabilir veya bu verileri geçmiş gezi performansını analiz etmek için 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. Şunları yapabilirsiniz: aynı zamanda bu alanı görevin oluşturulması sırasında da ayarlamış olmanız gerekir.

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 &lt;id&gt;, 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 &lt;token&gt;, 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ştirin

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. Bu bilgiler arasında Müşteriye paket teslimatıyla ilgili bildirim göndermeden önce durursa durumu. 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, harita üzerinde izlenen nesnelerin görünürlük kuralları açıklanmaktadır. Bu kurallar iki nesne kategorisi için geçerlidir:

  • Konum işaretçisinin görünürlüğü
  • Çoklu çizgiler ve TVS gibi aktif araç görevleri için görev verilerinin görünürlüğü
ziyaret edin.

Konum işaretçisi görünürlük kuralları

Fleet Engine, kargo teslimat konumu için konum işaretçileri gösteriyor haritada gösterilir.

Görev verileri 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:

  • Planlanan aktarmalar
  • Kullanılabilir olmayan görevler
  • Etkin olmayan araç görevleri

Kullanılabilir olmayan görevler görünürlük kuralları

Varsayılan olarak, en az bir araç harita üzerinde görünmez kullanılamaması görevi, izlenen göreve atanmış olmalıdır. Örneğin, sürücünün ara vermesi veya araça giden rotada yakıt doldurma işlemi yapması takip edilen kargo bedeli. Tahmini varış zamanı ve tahmini görev tamamlanma süresi hâlâ kullanılabilir. Bu kuralı özelleştiremezsiniz.

Etkin araç görevlerinin görünürlüğü

TaskTrackingInfo nesnesi, seçtiğiniz bir dizi veri öğesini sağlar hale getirebilirsiniz. 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 ekip toplayabildiler. Bu şekilde, bağımsız veri öğeleri için kullanılabilir.

Aşağıdaki tabloda, görünürlük kurallarını uygulayabileceğiniz alanlar gösterilmektedir.

Görünürlük kuralları için araç görev alanları
  • Rota çoklu çizgileri
  • Tahmini varış süresi
  • Tahmini görev tamamlanma süresi
  • Göreve kalan sürüş mesafesi
  • Kalan durak sayısı
  • Araç konumu

Bu tabloda, yukarıda listelenen alanlar için kullanılabilecek görünürlük seçenekleri gösterilmektedir.

Görünürlük seçenekleri
  • Kalan durak sayısı
  • Tahmini varış saatine kadar olan süre
  • Kalan sürüş mesafesi
  • Her zaman görünür
  • Hiçbir zaman görünür değil

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üğü şuna tabidir: görünür. Etkin bir rota üzerinde çoklu çizgi varsa Aracın görünmediği bir yerde, araç konumu yine de sonucuna göre belirlenir. 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 çizgileri / araç konumu belirtmek için bu kuralları uygulayın. görünürlük kombinasyonu

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ı şekilde ayarlanıyor. şunları içerir:

  • kalan şarj noktası sayısı
  • TVS'ye kalan süre
  • kalan sürüş mesafesi

Kurallara uymak için rota çoklu çizgilerinin görünürlük değeri daha düşük olmalıdır araç görünürlüğü için ayarlanan değere eşit veya bu değere eşit. Bu örnekte çoklu çizgi için kalan durdurma eşiği 3 olarak ayarlanır ve bu değer şundan küçüktür: araç için belirtilen 5 değeri. Bu, takip edilen kampanyaların yolculuk görev konumundan 5 durak uzakta olduğunda, araç görünür ancak söz konusu aracın rotası, yolculuk 3 durak uzaktakie kadar 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, 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: Rota çoklu çizgisi, her zaman görünür seçeneğini kullanmalıdır araç konumu tarafından her zaman aynı görünürlük seçeneği sağlandığında görünür görünürlük seçeneği.
  • Hiçbir zaman görünür olmayan: Rota çoklu çizgisi, hiçbir zaman görünür görünürlük kullanmamalıdır seçeneğini kullanabilirsiniz.

Bir örnek aşağıda 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.

Örnek görev görünürlüğünü özelleştirme

Aşağıdaki örneklerde, aşağıdakileri içeren bir görevin nasıl ayarlanacağı gösterilmektedir görünürlük kuralları:

  • 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.
  • Her bir alan, Araç, göreve 5 durak mesafede.

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 kullanarak görev izleme görünümü yapılandırma penceresini ayarlamak için PATCH ve taskTrackingViewConfig parametresini güncellemek için updateMask 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

Sırada ne var?