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 <id> eine eindeutige Kennung für die Aufgabe. Anfrageheader muss das Feld Authorization mit dem Wert Bearer <token> enthalten. Dabei wird <token> 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 |
---|
|
In dieser Tabelle sind die Sichtbarkeitsoptionen aufgeführt, die für die oben aufgeführten Felder verfügbar sind.
Optionen für die Sichtbarkeit |
---|
|
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