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-Schnittstelle
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 <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
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 |
---|
|
In dieser Tabelle sind die Sichtbarkeitsoptionen aufgeführt, die für die oben aufgeführten Felder verfügbar sind.
Sichtbarkeitsoptionen |
---|
|
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 weniger als 5.000 Meter beträgt.
- 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
Um das Konfigurationsfenster der Aufgaben-Tracking-Ansicht über HTTP festzulegen, rufen Sie PATCH
auf und
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