Andere Aufgabentypen erstellen

In diesem Dokument wird vorausgesetzt, dass Sie die Einführung Geplante Aufgaben auch im Abschnitt Introduction to Fleet Engine (Einführung in Fleet Engine) Was ist eine geplante Aufgabe? in diesem Abschnitt.

Fleet Engine für geplante Aufgaben bietet verschiedene allgemeine Kategorien von Aufgaben:

  • Versandaufgaben: Für Fahrtaufgaben, einschließlich Abholung und Lieferung von Lieferungen.
  • Nichtverfügbarkeitsaufgaben: Wählen Sie diese Option für Zeiten aus, in denen keine Fahrer verfügbar sind, z. B. wie bei erforderlichen Pausen.
  • Geplante Haltestellenaufgaben: für nicht angefahrene Aufgaben an Briefkästen oder an Kunden, Orte, z. B. die Uhrzeit, zu der ein Gebäude betreten oder eine Lieferstelle gefunden werden muss.

In diesem Dokument erfahren Sie, wie Sie Aufgaben ohne Versand auf Ihrem Server erstellen. Für Arten von Versandaufgaben finden Sie unter Versandaufgaben erstellen.

Aufgabenfelder für andere Aufgaben

In diesem Abschnitt werden die Aufgabenfelder dokumentiert, die sowohl für die Nichtverfügbarkeit und geplante Stopp-Aufgaben.

Erforderliche Aufgabenfelder

Für jede Aufgabe, die Sie in Fleet Engine erstellen, müssen Sie die erforderlichen und können auch beliebige optionale Felder enthalten. Fleet Engine ignoriert alle anderen Felder und löst eine Ausnahme aus, wenn eine Aufgabenerstellung -Anfrage stellt eine zugewiesene deliveryVehicleId bereit. Um einem Fahrzeug Aufgaben zuzuweisen, UpdateDeliveryVehicleRequest verwenden. Weitere Informationen finden Sie unter Aufgaben aktualisieren

FeldWert
type

Legen Sie als Typ den Typ fest, der dem Aufgabentyp entspricht:

  • PICKUP
  • DELIVERY
  • SCHEDULED_STOP
  • UNAVAILABLE
state State.OPEN
task_id Eindeutige Aufgaben-ID. Dies darf nicht die Tracking-Nummer für die Sendung sein. Wenn Sie keine Aufgaben-IDs in Ihrem System haben, können Sie eine universell eindeutige Kennung (UUID). Weitere Informationen finden Sie unter Aufgaben-IDs:
tracking_id Nur PICKUP- oder DELIVERY-Aufgaben: Die Nummer oder Kennung, die Sie zur Verfolgung einer Sendung verwenden. Das sollten Sie nicht tun: geben Sie dieses Feld für Aufgaben an, die nicht zum Versand gehören.
plannedLocation PICKUP, DELIVERY oder Nur SCHEDULED_STOP-Aufgaben: Die den Ort, an dem die Aufgabe ausgeführt werden soll. Nicht erforderlich für UNAVAILABLE Aufgaben.
taskDuration Die erwartete Zeit zum Abschließen der Aufgabe. Um beispielsweise nach oder zu Fuß zur Abholstelle gehen.

Optionale Felder für Versandaufgaben

FeldWert
targetTimeWindow Das Zeitfenster, in dem die Aufgabe abgeschlossen werden sollte. Dieses Feld wirkt sich nicht auf das Routingverhalten aus.
task_tracking_view_config Nur PICKUP- oder DELIVERY-Aufgaben: Die Konfiguration für die Aufgabenverfolgung, die angibt, welche Datenelemente unter welchen Umständen für Endnutzer sichtbar sind.
attributes Eine Liste benutzerdefinierter Aufgabenattribute. Jedes Attribut muss einen eindeutigen Schlüssel haben.

Nichtverfügbarkeitsaufgabe erstellen

Sie können eine Aufgabe erstellen, die auf Nichtverfügbarkeit hinweist. etwa bei Fahrerpausen. Beachten Sie die folgenden Richtlinien, um eine Nichtverfügbarkeitsaufgabe zu erstellen:

  • Legen Sie als Aufgabentyp UNAVAILABLE fest.
  • Geben Sie keine Tracking-ID an.
  • Auch wenn Sie für eine Nichtverfügbarkeitsaufgabe keinen Standort angeben müssen, Dadurch werden erweiterte Berechnung der voraussichtlichen Ankunftszeit für den ganzen Tag ermöglicht.

Für den Fahrzeugstandort gelten besondere Sichtbarkeitsregeln. UNAVAILABLE Aufgabe für das Teilen der Reise.

  • In die Versandverfolgungsbibliothek integrierte Verbraucher-Apps: Wenn die nicht verfügbar ist, können Nutzer der App nicht sehen, auf den Fahrzeugstandort, können aber trotzdem Statusinformationen für die Lieferung.
  • Apps zum Erfassen von Flotten, die in die Flotten-Tracking-Bibliothek integriert sind: Wenn die keine Verfügbarkeit des Fahrzeugs hat, Flottenmanager, die die Flotte nutzen, kann bei Aufgaben, die nicht verfügbar sind, den Fahrzeugstandort sehen.

Die folgenden Beispiele zeigen, wie Sie eine geplante Nichtverfügbarkeitsaufgabe mit die Java gRPC-Bibliothek oder wie Sie eine HTTP REST-Anfrage an CreateTask

gRPC

  static final String PROJECT_ID = "my-delivery-co-gcp-project";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String parent = "providers/" + PROJECT_ID;
  Task task = Task.newBuilder()
    .setType(Task.Type.UNAVAILABLE)
    .setState(Task.State.OPEN)
    .setTaskDuration(
      Duration.newBuilder().setSeconds(60 * 60))  // 1hr break
    .build();

  // Task request
  CreateTaskRequest createTaskRequest =
    CreateTaskRequest.newBuilder()  // No need for the header
        .setParent(parent)          // Avoid using auto-incrementing IDs for the taskId
        .setTaskId("task-8241890")  // Task ID assigned by the Provider
        .setTask(task)              // Initial state
        .build();

  // Error handling
  // If Fleet Engine does not have task with that ID and the credentials of the
  // requestor pass, the service creates the task successfully.

  try {
    Task createdTask = deliveryService.createTask(createTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case ALREADY_EXISTS:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }
  ```

REST

Wenn Sie eine Nichtverfügbarkeitsaufgabe in einer Serverumgebung erstellen möchten, erstellen Sie eine HTTP-REST-Anfrage Aufruf an CreateTask:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>

&lt;id&gt; ist eine eindeutige Kennung für die Aufgabe.

Der Anfrageheader muss das Feld Authorization mit dem Wert Inhaber <token>, wobei <token> von Ihrem Server ausgegeben wird gemäß den Richtlinien unter Dienstkontorollen und JSON-Webtokens

Der Anfragetext muss eine Task-Entität mit den entsprechenden Feldern enthalten beschrieben in Aufgabenfelder für Aufgaben, die nicht ansteuern.

Beispiel eines curl-Befehls:

 # Set $JWT, $PROJECT_ID, and $TASK_ID in the local environment
 curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
   -H "Content-type: application/json" \
   -H "Authorization: Bearer ${JWT}" \
   --data-binary @- << EOM
 {
   "type": "UNAVAILABLE",
   "state": "OPEN",
   "plannedLocation": {
      "point": {
         "latitude": -6.195139,
         "longitude": 106.820826
      }
   },
   "taskDuration": "300s"
 }
 EOM

Geplante Stoppaufgabe erstellen

Sie können eine Aufgabe für einen geplanten Stopp erstellen. z. B. für nicht fahrende Aufgaben an Kundenstandorten, an Tankstopps oder wenn der Fahrer mit einem Feeder-Fahrzeug. Verwenden Sie beim Erstellen einer geplanten Stoppaufgabe folgenden Richtlinien:

  • Aufgabentyp festlegen auf
  • Geben Sie keine Tracking-ID an.
  • Optional können Sie einen Standort angeben.

Die folgenden Beispiele zeigen, wie Sie eine geplante Nichtverfügbarkeitsaufgabe mit die Java gRPC-Bibliothek oder wie Sie eine HTTP REST-Anfrage an CreateTask

gRPC

  static final String PROJECT_ID = "my-delivery-co-gcp-project";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String parent = "providers/" + PROJECT_ID;
  Task task = Task.newBuilder()
    .setType(Task.Type.SCHEDULED_STOP)
    .setState(Task.State.OPEN)
    .setPlannedLocation(               // Grand Indonesia East Mall
      LocationInfo.newBuilder().setPoint(
        LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
    .setTaskDuration(
      Duration.newBuilder().setSeconds(2 * 60))
    .build();

  // Task request
  CreateTaskRequest createTaskRequest =
    CreateTaskRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setTaskId("task-8241890")  // Task ID assigned by the Provider
        .setTrip(task)              // Initial state
        .build();

  // Error handling
  // If Fleet Engine does not have task with that ID and the credentials of the
  // requestor pass, the service creates the task successfully.

  try {
    Task createdTask = deliveryService.createTask(createTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case ALREADY_EXISTS:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }
  ```

REST

Wenn Sie eine geplante Stoppaufgabe in einer Serverumgebung erstellen möchten, erstellen Sie eine HTTP-REST-Anfrage Aufruf an CreateTask:

POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>

&lt;id&gt; ist eine eindeutige Kennung für die Aufgabe.

Der Anfrageheader muss das Feld Authorization mit dem Wert Inhaber <token>, wobei <token> von Ihrem Server ausgegeben wird gemäß den Richtlinien unter Dienstkontorollen und JSON-Webtokens

Der Anfragetext muss eine Task-Entität enthalten:

Beispiel eines curl-Befehls:

# Set $JWT, $PROJECT_ID, and $TASK_ID in the local environment
 curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
   -H "Content-type: application/json" \
   -H "Authorization: Bearer ${JWT}" \
   --data-binary @- << EOM
 {
   "type": "SCHEDULED_STOP",
   "state": "OPEN",
   "plannedLocation": {
      "point": {
         "latitude": -6.195139,
         "longitude": 106.820826
      }
   },
   "taskDuration": "600s"
 }
 EOM

Nächste Schritte