Aufgaben konfigurieren

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

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

  • 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 auch die relevante Kennung für die Aufgabe enthalten. Zusätzlich zu den Feldern, für die Aufgaben aktualisieren.

Zielzeitraum festlegen

Das Zielzeitfenster ist das Zeitfenster, innerhalb dessen die Aufgabe abgeschlossen werden soll. Wenn Sie beispielsweise ein Zeitfenster für die Lieferzeit angeben, Empfänger, können Sie das Zielzeitfenster für die Aufgabe verwenden, um dieses Zeitfenster zu erfassen. und Benachrichtigungen generieren oder 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 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 legen Sie dieses Feld auch bei der Aufgabenerstellung fest.

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

Rufen Sie zum Festlegen eines Zeitfensters für Aufgaben über HTTP PATCH auf und Verwenden Sie updateMask, um den targetTimeWindow-Parameter zu aktualisieren:

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

Dabei ist &lt;id&gt; eine eindeutige Kennung für die Aufgabe. Anfrageheader muss das Feld Authorization mit dem Wert Bearer <token> enthalten. Dabei wird &lt;token&gt; von Ihrem Server gemäß den Richtlinien ausgegeben. unter Dienstkontorollen und JSON Web-Tokens beschrieben.

# 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 Fleet Engine Einblick in Aufgabenaktivitäten, die dann sowohl für Kunden, die eine Lieferung erhalten, als auch für Flottenbetreiber sichtbar sind. Sendungsverfolgung. Dazu gehören Informationen wie die Anzahl der Haltestellen, bevor ein Kunde eine Benachrichtigung über den Status der Paketzustellung erhält. Sie können diese Informationen für jede Aufgabe individuell anpassen, um sie besser an Ihr Geschäftsmodell anzupassen.

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

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

Sichtbarkeitsregeln für Standortmarkierungen

Fleet Engine zeigt Standortmarkierungen für den Lieferort an die auf der Karte angezeigt werden, unabhängig vom Status der Übermittlung.

Regeln für die Sichtbarkeit von Aufgabendaten

In diesem Abschnitt werden die Standardregeln für die Sichtbarkeit von Aufgabendaten beschrieben. Du kannst nur aktive Fahrzeugaufgaben anpassen. Das bedeutet, dass nur für Abhol- und Abgabeaufgaben können benutzerdefinierte Sichtbarkeitsregeln angewendet werden.

Die folgenden Aufgaben können nicht angepasst werden:

  • Geplante Haltestellen
  • Nicht verfügbare Aufgaben
  • Inaktive Fahrzeugaufgaben

Regeln für die Sichtbarkeit von Aufgaben bei Nichtverfügbarkeit

Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn mindestens eines einer nicht verfügbaren Aufgabe zugewiesen wird. Das kann beispielsweise der Fall sein, wenn der Fahrer eine Pause macht oder das Fahrzeug auf dem Weg zur Sendung betankt wird. Die geschätzte Ankunftszeit und die geschätzte Dauer der Aufgabe sind weiterhin verfügbar. Auch diese Regel kann nicht angepasst werden.

Sichtbarkeit von aktiven Fahrzeugaufgaben

Das Objekt TaskTrackingInfo enthält eine Reihe von Datenelementen, die Sie mithilfe der Versandverfolgungsbibliothek sichtbar machen können. Standardmäßig enthalten diese Felder sind sichtbar, wenn die Aufgabe dem Fahrzeug zugewiesen wurde innerhalb von 5 Stopps vor der Aufgabe. Die Sichtbarkeit endet, wenn die Aufgabe abgeschlossen ist oder abgebrochen.

Sie können die Sichtbarkeitskonfiguration für einzelne Aufgaben anpassen, indem Sie Das TaskTrackingViewConfig für eine Aufgabe beim Erstellen oder Aktualisieren der Aufgabe Fleet Engine nutzen. Dadurch werden Regeln für die Verfügbarkeit einzelner Datenelemente erstellt.

In der folgenden Tabelle sehen Sie die Felder, auf die Sie Sichtbarkeitsregeln anwenden können.

Felder für Fahrzeugaufgaben für Sichtbarkeitsregeln
  • Polylinien für Routen
  • Geschätzte Ankunftszeit
  • Geschätzte Dauer für die Erledigung der Aufgabe
  • Verbleibende Fahrstrecke bis zur Aufgabe
  • Verbleibende Haltestellen
  • Fahrzeugstandort

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

Optionen für die Sichtbarkeit
  • Anzahl der verbleibenden Haltestellen
  • Reisedauer bis zur voraussichtlichen Ankunftszeit
  • Verbleibende Fahrstrecke
  • Immer sichtbar
  • Nie sichtbar

Regeln für die Sichtbarkeit von Routenpolylinien und Fahrzeugstandorten

Die Sichtbarkeit der Polylinien für Routen hängt vom die Sichtbarkeit des Fahrzeugs. Wenn eine Routenpolylinie für eine aktive Route sichtbar ist, das Fahrzeug aber nicht, kann der Fahrzeugstandort anhand des Endes der sichtbaren Polylinie ermittelt werden. Daher muss die Sichtbarkeit der Polylinien für Routen mindestens so eingeschränkt sein wie die Sichtbarkeit für Fahrzeuge.

Beachten Sie die folgenden Regeln, um eine gültige Kombination aus Routenpolylinien und Sichtbarkeit des Fahrzeugs anzugeben.

Für Routenpolylinien und den Fahrzeugstandort gelten die gleichen Sichtbarkeitsoptionen.

In diesem Szenario sind die Polylinie und der Fahrzeugstandort Optionen, darunter:

  • Anzahl der verbleibenden Haltestellen
  • Dauer bis zur geschätzten Ankunftszeit
  • verbleibende Reichweite

Zur Einhaltung der Regeln muss der Wert für die Sichtbarkeit von Routenpolylinien weniger sein größer oder gleich dem Wert, der für die Sichtbarkeit des Fahrzeugs festgelegt ist. In diesem Beispiel der Grenzwert für die verbleibenden Haltestellen für die Polylinie auf 3 festgelegt ist, was kleiner als den Wert 5, der für das Fahrzeug angegeben ist. Das bedeutet, dass das Fahrzeug angezeigt wird, wenn sich der verfolgte Weg fünf Haltestellen vom Zielort entfernt befindet, die Route für dieses Fahrzeug jedoch erst angezeigt wird, wenn sich der Weg drei Haltestellen vom Zielort entfernt befindet.

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

Für Polylinien für Routen und den Fahrzeugstandort sind verschiedene Sichtbarkeitsoptionen angegeben

Wenn Polylinien für Routen und der Fahrzeugstandort unterschiedliche Sichtbarkeitsoptionen haben, ist nur sichtbar, wenn beide Sichtbarkeitsoptionen aktiviert sind zufrieden sind. Die Sichtbarkeit der Polylinie unterliegt wieder den Sichtbarkeitsregeln des Fahrzeugs:

  • Immer sichtbar: Für eine Routenpolylinie muss die Sichtbarkeitsoption Immer sichtbar verwendet werden, wenn für den Fahrzeugstandort dieselbe Sichtbarkeitsoption Immer sichtbar angegeben ist.
  • Nie sichtbar: Für eine Routenpolylinie 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 verbleibende Anzahl an 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:

  • Polylinien der Route anzeigen, wenn sich das Fahrzeug innerhalb von drei Haltestellen befindet.
  • Die geschätzte Ankunftszeit wird angezeigt, wenn die verbleibende Fahrstrecke kürzer als 5.000 Meter ist.
  • Die Anzahl der verbleibenden Haltestellen wird nie angezeigt.
  • Alle anderen Felder behalten die Standardsichtbarkeit bei, d. h., sie werden angezeigt, wenn sich das Fahrzeug innerhalb von 5 Haltestellen von der Aufgabe entfernt befindet.

Unter TaskTrackingViewConfig finden Sie Informationen zu 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 Aufgaben-Tracking-Ansicht mit HTTP festlegen möchten, rufen Sie PATCH auf und aktualisieren Sie den Parameter taskTrackingViewConfig mit updateMask:

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