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 zusätzlich zu den Feldern, die Sie für die Aufgaben aktualisieren, auch die entsprechende Kennung für die Aufgabe angeben.
Zielzeitraum festlegen
Das Zielzeitfenster ist das TimeWindow, innerhalb dessen die Aufgabe abgeschlossen werden soll. Wenn Sie beispielsweise den Empfängern der Lieferung ein Lieferzeitfenster mitteilen, können Sie mit dem Zielzeitfenster der Aufgabe dieses Zeitfenster erfassen und Benachrichtigungen generieren oder die bisherige Leistung der Fahrt 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 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 aktualisieren Sie den Parameter targetTimeWindow
mit updateMask
:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Hier ist <id> eine eindeutige Kennung für die Aufgabe. Der Anfrageheader muss das Feld Authorization mit dem Wert Bearer <token> enthalten. Dabei wird <token> von Ihrem Server gemäß den in den Abschnitten Dienstkontorollen und JSON Web Tokens beschriebenen Richtlinien ausgestellt.
# 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 Informationen zu Aufgabenaktivitäten, die dann sowohl Kunden, die eine Sendung erhalten, als auch Flottenbetreibern, die Sendungen verfolgen, angezeigt werden können. Dazu gehören Informationen wie die Anzahl der Haltestellen, bevor einem Kunden eine Benachrichtigung über den Status der Paketzustellung gesendet wird. 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 Kategorien von Objekten:
- Sichtbarkeit von Standortmarkierungen
- Sichtbarkeit von Aufgabendaten für aktive Fahrzeugaufgaben, z. B. Polylinien und geschätzte Ankunftszeit
Regeln für die Sichtbarkeit von Markierungen
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 Standardregeln für die Sichtbarkeit von Aufgabendaten beschrieben. Sie können nur aktive Fahrzeugaufgaben anpassen. Das bedeutet, dass benutzerdefinierte Sichtbarkeitsregeln nur für Abhol- und Bringaufträge gelten können.
Die folgenden Aufgaben können nicht angepasst werden:
- Geplante Haltestellen
- Aufgaben zur Nichtverfügbarkeit
- Inaktive Fahrzeugaufgaben
Regeln für die Sichtbarkeit von Aufgaben bei Nichtverfügbarkeit
Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn der Aufgabe, die Sie verfolgen, mindestens eine Aufgabe zur Unverfügbarkeit zugewiesen ist. 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 aktiver Fahrzeugaufgaben
Das Objekt TaskTrackingInfo
enthält eine Reihe von Datenelementen, die Sie mithilfe der Versandverfolgungsbibliothek sichtbar machen können. Diese Felder sind standardmäßig sichtbar, wenn die Aufgabe dem Fahrzeug zugewiesen ist und sich das Fahrzeug innerhalb von 5 Haltestellen von der Aufgabe befindet. Die Sichtbarkeit endet, wenn die Aufgabe abgeschlossen oder abgebrochen wurde.
Sie können die Sichtbarkeitskonfiguration pro Aufgabe anpassen, indem Sie beim Erstellen oder Aktualisieren einer Aufgabe in der Fleet Engine das Symbol TaskTrackingViewConfig
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 |
---|
|
In dieser Tabelle sind die Sichtbarkeitsoptionen für die oben aufgeführten Felder aufgeführt.
Sichtbarkeitsoptionen |
---|
|
Regeln für die Sichtbarkeit von Routenpolylinien und Fahrzeugstandorten
Bei einer aufgezeichneten Route hängt die Sichtbarkeit der Routenpolylinien von der Sichtbarkeit des Fahrzeugs ab. 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 werden für die Polylinie und den Fahrzeugstandort dieselben Optionen festgelegt, darunter:
- Anzahl der verbleibenden Haltestellen
- Dauer bis zur geschätzten Ankunftszeit
- verbleibende Reichweite
Damit die Regeln eingehalten werden, muss der Wert für die Sichtbarkeit von Polylinien für Routen kleiner oder gleich dem für die Sichtbarkeit von Fahrzeugen festgelegten Wert sein. In diesem Beispiel ist der Grenzwert für die verbleibenden Haltestellen für die Polylinie auf 3 festgelegt, was unter dem für das Fahrzeug angegebenen Wert 5 liegt. 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 Routenpolylinien und den Fahrzeugstandort sind unterschiedliche Sichtbarkeitsoptionen verfügbar.
Wenn für Routenpolylinien und den Fahrzeugstandort unterschiedliche Sichtbarkeitsoptionen festgelegt sind, ist der Fahrzeugstandort nur dann sichtbar, wenn beide Sichtbarkeitsoptionen erfüllt sind. Die Sichtbarkeit der Polylinie unterliegt 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 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 sich das Fahrzeug in 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 über 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