Aufgaben konfigurieren

In diesem Dokument wird davon ausgegangen, dass Sie wissen, wie Aufgaben erstellt und verwendet werden. Es enthält konkrete Beispiele für die Konfiguration von Lieferaufgaben auf folgende Weise:

  • Zielzeitfenster für eine Lieferaufgabe festlegen: Legen Sie das Zeitfenster für die Erledigung der Aufgabe fest.

  • Sichtbarkeit von Aufgaben anpassen: Sie können die Sichtbarkeit von Aufgabenaktivitäten für Kunden oder Flottenbetreiber anpassen.

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 den Empfängern ein Lieferzeitfenster mitteilen, können Sie das Zeitfenster für das Aufgabenziel 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 Zielfenster hat keinen Einfluss 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 Zeitfenster für eine Aufgabe über 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

<id> ist 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

Sichtbarkeit von Aufgaben anpassen

Standardmäßig bietet die Fleet Engine Einblick in Aufgabenaktivitäten, die dann sowohl Kunden, die eine Sendung erhalten, als auch Flottenbetreibern, die Sendungen verfolgen, angezeigt werden können. Dazu gehören beispielsweise Informationen zur 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 auf Ihr Geschäftsmodell abzustimmen.

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

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

Sichtbarkeitsregeln für Standortmarkierungen

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

Regeln für die Sichtbarkeit von Aufgabendaten

In diesem Abschnitt werden die standardmäßigen Sichtbarkeitsregeln für Aufgabendaten beschrieben. Sie können nur aktive Fahrzeugaufgaben anpassen. Das bedeutet, dass benutzerdefinierte Sichtbarkeitsregeln nur auf Abhol- und Abgabeaufgaben angewendet werden können.

Die folgenden Aufgaben können nicht angepasst werden:

  • Geplante Stopps
  • Aufgaben zur Nichtverfügbarkeit
  • Inaktive Fahrzeugaufgaben

Sichtbarkeitsregeln für Aufgaben zur Abwesenheit

Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn der zu verfolgenden Aufgabe mindestens eine Aufgabe vom Typ „Nicht verfügbar“ zugewiesen ist. Beispielsweise, wenn der Fahrer eine Pause einlegt oder das Fahrzeug auf dem Weg zur verfolgten Sendung betankt wird. Die geschätzte Ankunftszeit und die geschätzte Zeit für die Ausführung der Aufgabe sind weiterhin verfügbar. Auch diese Regel darf nicht angepasst werden.

Sichtbarkeit aktiver Fahrzeugaufgaben

Das Objekt TaskTrackingInfo bietet 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 5 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 beim Erstellen oder Aktualisieren der Aufgabe in Fleet Engine die TaskTrackingViewConfig für die Aufgabe festlegen. 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
  • Routen-Polylinien
  • Voraussichtliche Ankunftszeit
  • Geschätzte Zeit bis zur Fertigstellung der Aufgabe
  • Verbleibende Fahrstrecke bis 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 Fahrstrecke
  • Immer sichtbar
  • Nie sichtbar

Regeln für die Sichtbarkeit von Routen-Polylinien und Fahrzeugstandorten

Bei einer verfolgten Route hängt die Sichtbarkeit der Routenpolylinien von der Sichtbarkeit des Fahrzeugs ab. Wenn eine Routen-Polylinie 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 der Routen-Polylinie mindestens so restriktiv sein wie die Sichtbarkeit des Fahrzeugs.

Beachten Sie diese Regeln, um eine gültige Kombination aus Routen-Polylinien und Sichtbarkeit des Fahrzeugstandorts anzugeben.

Für Routen-Polylinien und den Fahrzeugstandort werden die gleichen Sichtbarkeitsoptionen angegeben.

In diesem Szenario werden sowohl für die Polylinie als auch für den Fahrzeugstandort dieselben Optionen festgelegt:

  • Anzahl der verbleibenden Stopps
  • Dauer bis zur voraussichtlichen Ankunftszeit
  • verbleibende Fahrstrecke

Damit die Regeln eingehalten werden, muss der Wert für die Sichtbarkeit von Routen-Polylinien kleiner oder gleich dem Wert für die Sichtbarkeit des Fahrzeugs sein. In diesem Beispiel ist der Schwellenwert für die verbleibenden Haltestellen für die Polylinie auf 3 festgelegt. Das ist weniger als der für das Fahrzeug angegebene Wert von 5. Das bedeutet, dass das Fahrzeug angezeigt wird, wenn die verfolgte Fahrt noch 5 Haltestellen vom Zielort entfernt ist. Die Route für dieses Fahrzeug wird jedoch erst angezeigt, wenn die Fahrt noch 3 Haltestellen entfernt ist.

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

Routen-Polylinien und Fahrzeugstandort geben die verschiedenen Sichtbarkeitsoptionen an.

Wenn für Routen-Polylinien und den Fahrzeugstandort unterschiedliche Sichtbarkeitsoptionen festgelegt sind, 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 Routen-Polylinie muss die Sichtbarkeitsoption Immer sichtbar verwendet werden, wenn für den Fahrzeugstandort ebenfalls die Sichtbarkeitsoption Immer sichtbar festgelegt ist.
  • Nie sichtbar: Für eine Routen-Polylinie muss die Sichtbarkeitsoption Nie sichtbar verwendet werden, wenn für den Fahrzeugstandort die Sichtbarkeitsoption Nie sichtbar verwendet wird.

Hier ein Beispiel:

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

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

Beispiel für die Anpassung der Sichtbarkeit von Aufgaben

Die folgenden Beispiele zeigen, wie Sie eine Aufgabe mit den folgenden Sichtbarkeitsregeln festlegen:

  • Die Polylinien der Route werden angezeigt, wenn das Fahrzeug maximal drei Haltestellen entfernt ist.
  • Die voraussichtliche Ankunftszeit wird angezeigt, wenn die verbleibende Fahrstrecke weniger als 5.000 Meter beträgt.
  • Die Anzahl der verbleibenden Haltestellen wird nie angezeigt.
  • Für alle anderen Felder gilt die Standardeinstellung für die Sichtbarkeit, d. h., sie werden angezeigt, wenn das Fahrzeug maximal fünf Haltestellen von der Aufgabe entfernt ist.

Weitere Informationen finden Sie unter TaskTrackingViewConfig für 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 den Aufgaben-Tracker über 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