Aufgaben konfigurieren

In diesem Dokument wird davon ausgegangen, dass Sie wissen, wie Aufgaben erstellt und verwendet werden. Sie bietet spezifische Beispiele für die Konfiguration von Versandaufgaben auf folgende Weise:

  • Zielzeitfenster für eine Versandaufgabe festlegen: Legen Sie das Zeitfenster fest. damit die Aufgabe abgeschlossen werden kann.

  • Aufgabensichtbarkeit anpassen: Sie können die Sichtbarkeit der Aufgabenaktivitäten für Kunden oder Flottenbetreibern angezeigt werden sollen.

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.

Zielzeitfenster festlegen

Das Zielzeitfenster ist das TimeWindow, in dem die Aufgabe ausgeführt werden soll. abgeschlossen. Wenn Sie der Lieferung beispielsweise ein Zeitfenster für die Lieferzeit mitteilen, 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 festgelegt werden für jeden Aufgabentyp. Das Zielzeitfenster wirkt sich nicht auf das Routing aus verhalten.

Die folgenden Beispiele zeigen, wie Sie das Zeitfenster mithilfe der Java gRPC-Komponente Bibliothek oder wie du eine HTTP REST-Anfrage an UpdateTask stellst. 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

Aufgabensichtbarkeit 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 auch Informationen wie die Angabe der Anzahl stoppt, bevor er dem Kunden eine Benachrichtigung über seine Paketzustellung sendet. Status. Sie können diese Informationen für jede Aufgabe individuell anpassen. Ihr Geschäftsmodell.

In diesem Abschnitt werden die Sichtbarkeitsregeln für verfolgte 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 voraussichtliche Ankunftszeiten

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 beschrieben, die für Aufgabendaten gelten. 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

Sichtbarkeitsregeln für nicht verfügbare Aufgaben

Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn mindestens eines einer nicht verfügbaren Aufgabe zugewiesen wird. Wenn zum Beispiel der Parameter macht der Fahrer eine Pause oder das Fahrzeug wird auf der Route zum Sendungsverfolgung. Die voraussichtliche Ankunftszeit und die geschätzte Fertigstellungszeit der Aufgabe weiterhin verfügbar sind. Auch diese Regel kann nicht angepasst werden.

Sichtbarkeit von aktiven Fahrzeugaufgaben

Das Objekt TaskTrackingInfo bietet eine Reihe von Datenelementen, in der Shipment Tracking Library sichtbar gemacht werden 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 einzelne Datenelemente erstellt, die verfügbar.

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

Fahrzeugaufgabenfelder für Sichtbarkeitsregeln
  • Polylinien für Routen
  • Geschätzte Ankunftszeit
  • Geschätzte Fertigstellungszeit für Aufgaben
  • Verbleibende Fahrstrecke zur Aufgabe
  • Anzahl der verbleibenden Haltestellen
  • Fahrzeugstandort

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

Sichtbarkeitsoptionen
  • Anzahl der verbleibenden Haltestellen
  • Reisedauer bis zur voraussichtlichen Ankunftszeit
  • Verbleibende Fahrstrecke
  • Immer sichtbar
  • Nie sichtbar

Polylinien für Routen und Sichtbarkeitsregeln für Fahrzeugstandorte

Die Sichtbarkeit der Polylinien für Routen hängt vom die Sichtbarkeit des Fahrzeugs. Ob eine Polylinie auf einer aktiven Route sichtbar ist wenn das Fahrzeug nicht sichtbar ist, kann der Fahrzeugstandort trotzdem die aus dem Ende der sichtbaren Polylinie abgeleitet wird. Daher wird die Polylinie für Routen Die Sichtbarkeit muss genauso restriktiv oder restriktiver sein als die des Fahrzeugs.

Beachte diese Regeln, um gültige Polylinien für die Route bzw. einen gültigen Fahrzeugstandort anzugeben Kombination der Sichtbarkeit.

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

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

  • Anzahl der verbleibenden Stopps
  • Dauer bis voraussichtliche Ankunftszeit
  • verbleibende Fahrstrecke

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 heißt, wenn die erfassten Daten 5 Haltestellen vom Aufgabenort entfernt liegt, erscheint das Fahrzeug, aber Die Route für dieses Fahrzeug wird erst angezeigt, wenn die Fahrt drei Haltestellen entfernt ist.

```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 die Polylinie von Routen muss die Funktion Immer sichtbar verwendet werden. die Sichtbarkeitsoption, wenn der Fahrzeugstandort immer sichtbar.
  • Nie sichtbar: Die Polylinie einer Route muss nie sichtbar sein. 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 Haltestelle Anzahl ist mindestens 3 UND die verbleibende Fahrstrecke beträgt mindestens 3.000 Meter.

Beispiel für Anpassungen der Aufgabensichtbarkeit

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

  • Polylinien der Route anzeigen, wenn sich das Fahrzeug innerhalb von drei Haltestellen befindet.
  • Voraussichtliche Ankunftszeit anzeigen, wenn die verbleibende Fahrstrecke kürzer als 5.000 Meter ist.
  • Die Anzahl der verbleibenden Haltestellen nie anzeigen.
  • Alle anderen Felder behalten die Standardsichtbarkeit, die angezeigt wird, wenn das Feld nicht mehr als 5 Haltestellen von der Aufgabe entfernt ist.

Siehe 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

Rufen Sie PATCH auf, um das Konfigurationsfenster der Aufgaben-Tracking-Ansicht über HTTP festzulegen. Verwenden Sie updateMask, um den taskTrackingViewConfig-Parameter 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