Aufgaben konfigurieren

In diesem Dokument wird davon ausgegangen, dass Sie wissen, wie Sie Aufgaben erstellen und verwenden. Es enthält spezifische Beispiele für die Konfiguration von Versandaufgaben auf folgende Weise:

  • Zielzeitfenster für eine Versandaufgabe festlegen: Legen Sie das Zeitfenster fest , in dem die Aufgabe abgeschlossen werden soll.

  • Aufgabensichtbarkeit anpassen: Passen Sie die Sichtbarkeit von Aufgabenaktivitäten an, die Kunden oder Flottenbetreibern angezeigt werden.

Weitere Informationen zu den Feldern für Versandaufgaben finden Sie unter Versandaufgaben erstellen. Wenn Sie zusätzliche Informationen zu vorhandenen Aufgaben aktualisieren, müssen Sie neben den Feldern, die Sie für die Aufgaben aktualisieren, auch die entsprechende Kennung für die Aufgabe angeben.

Zielzeitfenster festlegen

Das Zielzeitfenster ist das TimeWindow, in dem die Aufgabe abgeschlossen werden soll. Wenn Sie beispielsweise ein Lieferzeitfenster an die Empfänger der Lieferung weitergeben, können Sie das Zielzeitfenster der Aufgabe verwenden, um dieses Zeitfenster zu erfassen und Benachrichtigungen zu generieren. Sie können es auch verwenden, um die Leistung vergangener Fahrten zu analysieren.

Das Zielzeitfenster besteht aus einer Start- und einer Endzeit und kann für jeden Aufgabentyp festgelegt werden. Das Zielzeitfenster hat keine Auswirkungen auf das Routingverhalten.

In den folgenden Beispielen wird gezeigt, wie Sie das Zeitfenster mit der Java-gRPC Bibliothek festlegen oder eine HTTP-REST-Anfrage an UpdateTask senden. Sie können dieses Feld auch beim Erstellen der Aufgabe festlegen.

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

Wenn Sie ein Aufgabenzeitfenster mit HTTP festlegen möchten, rufen Sie PATCH auf und verwenden Sie updateMask, um den Parameter targetTimeWindow zu aktualisieren:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow

Dabei ist <id> eine eindeutige Kennung für die Aufgabe. Der Anfrageheader muss ein Feld Authorization mit dem Wert Bearer <token> enthalten, wobei <token> von Ihrem Server gemäß den Richtlinien ausgestellt wird, die unter Dienstkontorollen und JSON-Web-Tokens beschrieben sind.

# 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

Aufgabensichtbarkeit anpassen

Standardmäßig bietet Fleet Engine Einblick in Aufgabenaktivitäten, die sowohl Kunden, die eine Lieferung erhalten, als auch Flottenbetreibern angezeigt werden können, die Lieferungen verfolgen. Dazu gehören Informationen wie die Anzahl der Stopps, bevor ein Kunde eine Benachrichtigung über den Lieferstatus seines Pakets erhält. Sie können diese Informationen für jede Aufgabe anpassen, um sie besser an Ihr Geschäftsmodell anzupassen.

In diesem Abschnitt werden die Sichtbarkeitsregeln für verfolgte Objekte auf der Karte beschrieben. Diese Regeln gelten für zwei Objektkategorien:

  • Sichtbarkeit von Standortmarkierungen
  • Sichtbarkeit von Aufgabendaten für aktive Fahrzeugaufgaben, z. B. Polylinien und voraussichtliche Ankunftszeit

Sichtbarkeitsregeln für Standortmarkierungen

Fleet Engine zeigt Standortmarkierungen für den auf der Karte angezeigten Lieferort an, unabhängig vom Status der Lieferung.

Sichtbarkeitsregeln für Aufgabendaten

In diesem Abschnitt werden die Standardsichtbarkeitsregeln beschrieben, die auf Aufgabendaten angewendet werden. Sie können nur aktive Fahrzeugaufgaben anpassen. Das bedeutet, dass nur Abhol- und Zustellaufgaben angepasste Sichtbarkeitsregeln verwenden können.

Die folgenden Aufgaben können nicht angepasst werden:

  • Geplante Stopps
  • Aufgaben für Nichtverfügbarkeit
  • Inaktive Fahrzeugaufgaben

Sichtbarkeitsregeln für Aufgaben für Nichtverfügbarkeit

Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn mindestens eine Aufgabe für Nichtverfügbarkeit der verfolgten Aufgabe zugewiesen ist. Das ist beispielsweise der Fall, wenn der Fahrer eine Pause macht oder das Fahrzeug auf der Strecke zur verfolgten Lieferung betankt wird. Die voraussichtliche Ankunftszeit und die voraussichtliche Zeit für den Abschluss der Aufgabe sind weiterhin verfügbar. Auch diese Regel kann nicht angepasst werden.

Sichtbarkeit aktiver Fahrzeugaufgaben

Das TaskTrackingInfo Objekt enthält eine Reihe von Datenelementen, die Sie mit der Shipment Tracking Library sichtbar machen können. Standardmäßig sind diese Felder sichtbar, wenn die Aufgabe dem Fahrzeug zugewiesen ist und sich das Fahrzeug innerhalb von fünf Stopps von der Aufgabe befindet. Die Sichtbarkeit endet, wenn die Aufgabe abgeschlossen oder abgebrochen wird.

Sie können die Sichtbarkeitskonfiguration für jede Aufgabe anpassen, indem Sie die TaskTrackingViewConfig für eine Aufgabe festlegen, wenn Sie die Aufgabe in Fleet Engine erstellen oder aktualisieren. Dadurch werden Regeln für die Verfügbarkeit einzelner Datenelemente erstellt.

In der folgenden Tabelle sind die Felder aufgeführt, auf die Sie Sichtbarkeitsregeln anwenden können.

Felder für Fahrzeugaufgaben für Sichtbarkeitsregeln
  • Routenpolylinien
  • Voraussichtliche Ankunftszeit
  • Voraussichtliche Zeit für den Abschluss der Aufgabe
  • Verbleibende Fahrtstrecke zur Aufgabe
  • Anzahl der verbleibenden Stopps
  • Fahrzeugstandort

In dieser Tabelle sind die Sichtbarkeitsoptionen für die oben aufgeführten Felder aufgeführt.

Sichtbarkeitsoptionen
  • Anzahl der verbleibenden Stopps
  • Dauer bis zur voraussichtlichen Ankunftszeit
  • Verbleibende Fahrtstrecke
  • Immer sichtbar
  • Nie sichtbar

Sichtbarkeitsregeln für Routenpolylinien und Fahrzeugstandort

Bei einer verfolgten Route hängt die Sichtbarkeit von Routenpolylinien von der Sichtbarkeit des Fahrzeugs ab. Wenn eine Routenpolylinie auf einer aktiven Route sichtbar ist, auf der das Fahrzeug nicht sichtbar ist, kann der Fahrzeugstandort trotzdem anhand des Endes der sichtbaren Polylinie abgeleitet werden. Daher muss die Sichtbarkeit von Routenpolylinien genauso restriktiv oder restriktiver sein als die Sichtbarkeit des Fahrzeugs.

Beachten Sie diese Regeln, um eine gültige Kombination für die Sichtbarkeit von Routenpolylinien und Fahrzeugstandort zu erstellen.

Für Routenpolylinien und Fahrzeugstandort werden die gleichen Sichtbarkeitsoptionen angegeben

In diesem Szenario werden für die Polylinie und den Fahrzeugstandort dieselben Optionen festgelegt, darunter:

  • Anzahl der verbleibenden Stopps
  • Dauer bis zur voraussichtlichen Ankunftszeit
  • Verbleibende Fahrtstrecke

Um die Regeln einzuhalten, muss der Wert für die Sichtbarkeit von Routenpolylinien kleiner oder gleich dem für die Sichtbarkeit des Fahrzeugs festgelegten Wert sein. In diesem Beispiel ist der Schwellenwert für die verbleibende Anzahl der Stopps für die Polylinie auf 3 festgelegt, was weniger als der für das Fahrzeug angegebene Wert von 5 ist. Wenn die verfolgte Fahrt also fünf Stopps vom Aufgabenstandort entfernt ist, wird das Fahrzeug angezeigt. Die Route für dieses Fahrzeug wird jedoch erst angezeigt, wenn die Fahrt drei Stopps entfernt ist.

```js
"taskTrackingViewConfig": {
  "routePolylinePointsVisibility": {
    "remainingStopCountThreshold": 3
  },
  "vehicleLocationVisibility": {
    "remainingStopCountThreshold": 5
  },
}
```

Für Routenpolylinien und Fahrzeugstandort werden unterschiedliche Sichtbarkeitsoptionen angegeben

Wenn Routenpolylinien und Fahrzeugstandort unterschiedliche Sichtbarkeitsoptionen haben, ist der Fahrzeugstandort nur sichtbar, wenn beide Sichtbarkeitsoptionen erfüllt sind. Auch hier unterliegt die Sichtbarkeit der Polylinie den Sichtbarkeitsregeln des Fahrzeugs:

  • Immer sichtbar: Für eine Routenpolylinie muss die immer sichtbar Sichtbarkeitsoption verwendet werden, wenn der Fahrzeugstandort auch die gleiche immer sichtbar Sichtbarkeitsoption bietet.
  • Nie sichtbar: Für eine Routenpolylinie muss die Sichtbarkeitsoption nie sichtbar verwendet werden, wenn der Fahrzeugstandort die Sichtbarkeitsoption nie sichtbar verwendet.

Hier ein Beispiel:

  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "vehicleLocationVisibility": {
      "remainingDrivingDistanceMetersThreshold": 3000
    },
  }

In diesem Beispiel ist der Fahrzeugstandort nur sichtbar, wenn die Anzahl der verbleibenden Stopps mindestens 3 UND die verbleibende Fahrtstrecke mindestens 3.000 Meter beträgt.

Beispiel für die Anpassung der Aufgabensichtbarkeit

In den folgenden Beispielen wird gezeigt, wie Sie eine Aufgabe mit den folgenden Sichtbarkeitsregeln festlegen:

  • Routenpolylinien anzeigen, wenn sich das Fahrzeug innerhalb von drei Stopps befindet.
  • Voraussichtliche Ankunftszeit anzeigen, wenn die verbleibende Fahrtstrecke weniger als 5.000 Meter beträgt.
  • Anzahl der verbleibenden Stopps nie anzeigen.
  • Für alle anderen Felder bleibt die Standardsichtbarkeit erhalten, d. h., sie werden angezeigt, wenn sich das Fahrzeug innerhalb von fünf Stopps von der Aufgabe befindet.

Informationen zu TaskTrackingViewConfig finden Sie unter gRPC oder 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)
  .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

Wenn Sie das Konfigurationsfenster für die Aufgabenverfolgung mit HTTP festlegen möchten, rufen Sie PATCH auf und verwenden Sie updateMask, um den Parameter taskTrackingViewConfig zu aktualisieren:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig

Beispiel:

# 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

Nächste Schritte