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 Weise:
Zielfenster für eine Versandaufgabe festlegen: Legen Sie das Zeitfenster für die Erledigung der Aufgabe fest.
Aufgabensichtbarkeit anpassen: Passen Sie die Sichtbarkeit von Aufgabenaktivitäten für Kunden oder Flottenbetreiber an.
Weitere Informationen zu 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.
Zielzeitraum festlegen
Das Zielzeitfenster ist das TimeWindow, in dem die Aufgabe erledigt werden soll. Wenn Sie beispielsweise den Empfängern einer Lieferung ein Zeitfenster für die Zustellung mitteilen, können Sie dieses Zeitfenster mit dem Zielzeitfenster der Aufgabe erfassen und Benachrichtigungen generieren oder die Leistung vergangener Fahrten 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 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 in Dienstkontorollen und JSON Web Tokens ausgestellt wird.
# 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 sowohl Kunden, die eine Sendung erhalten, als auch Flottenbetreibern, die Sendungen verfolgen, angezeigt werden können. Dazu gehört beispielsweise die Angabe der Anzahl der Stopps, bevor ein Kunde eine Benachrichtigung über den Paketlieferstatus 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 Kategorien von Objekten:
- Sichtbarkeit von Standortmarkierungen
- Sichtbarkeit von Aufgabendaten für aktive Fahrzeugaufgaben, z. B. Polylinien und voraussichtliche Ankunftszeit
Regeln für die Sichtbarkeit von Standortmarkierungen
In Fleet Engine werden Standortmarkierungen für den auf der Karte angezeigten Lieferort der Sendung angezeigt, unabhängig vom Status der Lieferung.
Regeln für die Sichtbarkeit von Aufgabendaten
In diesem Abschnitt werden die Standardregeln für die Sichtbarkeit beschrieben, die für Aufgabendaten gelten. Sie können nur aktive Fahrzeugaufgaben anpassen. Das bedeutet, dass nur für Abhol- und Zustellaufgaben benutzerdefinierte Sichtbarkeitsregeln 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 Nichtverfügbarkeit
Standardmäßig wird das Fahrzeug nicht auf der Karte angezeigt, wenn mindestens eine Aufgabe vom Typ „Nicht verfügbar“ der verfolgten Aufgabe 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 Zeit für die Ausführung 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 Haltestellen 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 eine 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 |
---|
|
In dieser Tabelle sind die Sichtbarkeitsoptionen für die oben aufgeführten Felder aufgeführt.
Sichtbarkeitsoptionen |
---|
|
Polylinien für Routen und Sichtbarkeitsregeln für Fahrzeugstandorte
Bei einer aufgezeichneten Route hängt die Sichtbarkeit von 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 so restriktiv oder restriktiver sein als die Sichtbarkeit des Fahrzeugs.
Beachten Sie diese Regeln, um eine gültige Kombination aus Routen-Polylinien und Sichtbarkeit des Fahrzeugstandorts anzugeben.
Für Routenpolylinien und Fahrzeugstandort werden dieselben Sichtbarkeitsoptionen angegeben.
In diesem Szenario werden sowohl für die Polylinie als auch für den Fahrzeugstandort dieselben Optionen festgelegt, darunter:
- Anzahl der verbleibenden Stopps
- Dauer bis zur voraussichtlichen Ankunftszeit
- verbleibende Fahrstrecke
Um die Regeln einzuhalten, muss der Wert für die Sichtbarkeit von Routen-Polylinien kleiner oder gleich dem für die Sichtbarkeit von Fahrzeugen festgelegten Wert sein. In diesem Beispiel wird der verbleibende Stoppschwellenwert für die Polylinie auf 3 festgelegt, was weniger als der für das Fahrzeug angegebene Wert von 5 ist. Das bedeutet, dass das Fahrzeug angezeigt wird, wenn die verfolgte Fahrt noch fünf Haltestellen von der Aufgabenposition entfernt ist. Die Route für dieses Fahrzeug wird jedoch erst angezeigt, wenn die Fahrt noch drei Haltestellen entfernt ist.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Die Sichtbarkeitsoptionen unterscheiden sich je nach Routenpolylinien und Fahrzeugstandort.
Wenn für Routen-Polylinien und 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 auch die Sichtbarkeitsoption Immer sichtbar angegeben 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.
Ein Beispiel:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
In diesem Beispiel ist der Standort des Fahrzeugs nur sichtbar, wenn die Anzahl der verbleibenden Stopps mindestens 3 UND die verbleibende Fahrstrecke mindestens 3.000 Meter beträgt.
Beispiel für die Anpassung der Aufgabensichtbarkeit
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 voraussichtliche Ankunftszeit wird angezeigt, wenn die verbleibende Fahrstrecke kürzer als 5.000 Meter ist.
- Die verbleibende Anzahl der Stopps wird nie angezeigt.
- Für alle anderen Felder wird die Standardeinstellung beibehalten, d. h., sie werden angezeigt, wenn sich das Fahrzeug innerhalb von fünf Haltestellen von der Aufgabe befindet.
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 die Aufgabenverfolgung ü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