Fahrzeugfelder aktualisieren

In diesem Dokument werden wichtige Fahrzeugfelder behandelt, die Sie beim Erstellen und Verwalten von Fahrzeugen.

  • vehicle_state: Die Verfügbarkeit des Fahrzeugs wird bestimmt. für neue Reisen.
  • vehicle_type: Pflichtfeld beim Erstellen eines Fahrzeugs. Das Feld kann auch als Filterkriterium für Fahrzeugübereinstimmungen dienen. Weitere Informationen finden Sie unter Fahrzeug erstellen finden Sie weitere Informationen zum Festlegen dieses Feldes.
  • attributes[]: ein optionales Array des Typs VehicleAttribute Verwenden Sie um benutzerdefinierte Kriterien zu definieren, beim Suchen oder Auflisten von Fahrzeugen.
 

Eine vollständige Liste der Fahrzeugfelder finden Sie hier:

Feld für Fahrzeugstatus

Dein System kann den Fahrzeugstatus auf OFFLINE oder ONLINE setzen. Zum Beispiel haben Sie kann der Fahrzeugstatus auf ONLINE jeden Tag um 09:00 Uhr und OFFLINE täglich um 17:00 Uhr.

OFFLINE-Modus ONLINE-Modus
Mit OFFLINE geben Sie an, dass ein Fahrzeug nicht akzeptiert neue Fahrten. Hinweis: Das Fahrzeug kann auch zugewiesene Fahrten abschließen, während in diesem Status.
  • Ein Vehicle mit dem Status ONLINE kann sofort zurückgegeben werden in Antwort auf SearchVehicles-Abfragen. Weitere Informationen finden Sie unter Nach Fahrzeugen suchen. für weitere Informationen Details.
  • Bei Fahrzeugen, die mit dem Status ONLINE erstellt werden, muss last_location verwendet werden. im CreateVehicle-Aufruf.

Feld für Fahrzeugattribute

Im Feld attributes des Fahrzeugs können Sie benutzerdefinierte Kriterien erstellen, Verbrauchern oder Flottenbetreibern nach Fahrzeugen in Ihrem Fuhrpark die Vielfalt der Suchkriterien. Dadurch können Ihre Apps Bessere Übereinstimmungen mit Fahrzeugen im Vergleich zu Suchkriterien die nur auf anderen Fahrzeugfeldern basieren. Jedes Fahrzeug darf maximal 100 und jedes muss einen eindeutigen Schlüssel haben. Werte können Zeichenfolgen, Booleschen oder Zahlen verwenden.

So können Sie beispielsweise ein benutzerdefiniertes Attribut namens class Ihre Mitfahrdienste über Klassenstufen zu unterscheiden. Mit dem folgenden Stringwerten zur Darstellung von Fahrzeugklassenebenen: ECONOMY, STANDARD und LUXURY.

Benutzerdefinierte Attributwerte müssen sich jedoch nicht gegenseitig ausschließen. Möglicherweise Kriterien wie haustierfreundlich, Nichtraucher und kann länger dauern Reisen. Jedes dieser Attribute kann ein separates benutzerdefiniertes Attribut sein, das boolesche Werte Werte. Einem Fahrzeug können alle drei benutzerdefinierten Attribute zusammen mit dem benutzerdefinierten Attribut class, das auf den entsprechenden Stringwert festgelegt ist.

Wenn Sie Attribute auf diese Weise verwenden, erhalten Sie eine große Vielfalt an nützlichen Funktionen. zur Suche nach Fahrzeugen für Fahrten mit bestimmten Anforderungen. Eine Anleitung dazu, wie Sie Informationen zur Verwendung benutzerdefinierter Attribute als Abfragefilter finden Sie unter Fahrzeuge suchen.

Fahrzeugattribute aktualisieren

Sie können Fahrzeugattribute mit UpdateVehicle oder UpdateVehicleAttributes. Jeder attributes-Schlüssel kann nur einen Wert pro Fahrzeug. Sie deklarieren benutzerdefinierte Fahrzeugattribute mithilfe der attributes in die Feldmaske ein und geben dann Werte basierend auf der folgenden Methode an.

UpdateVehicle UpdateVehicleAttributes
Mit dieser API kann nicht nur ein einzelnes Attribut aktualisiert werden. Bei Verwendung diese Methode, jede Verwendung des attributes in der Feldmaske ergibt den gesamten Satz von für das Fahrzeug neu deklariert werden. Dies führt zu einer werden alle bereits vorhandenen Attribute überschrieben, die nicht ausdrücklich im Feldmaske. Wenn Sie diese Methode zur Deklaration eines neuen benutzerdefinierten Attributs verwenden, müssen Sie auch jedes benutzerdefinierte Attribut neu deklarieren, das das Fahrzeug behalten. Wenn Sie attributes in der Feldmaske ausschließen, werden die vorhandenen benutzerdefinierten Attribute mit dieser Methode unverändert beibehalten. für das Fahrzeug. Wenn Sie attributes in der Feldmaske verwenden, aber ohne Werte festzulegen, entspricht dies dem Entfernen aller benutzerdefinierten Attribute des Fahrzeugs. Diese Methode akzeptiert eine bestimmte Liste von Attributen, aktualisieren. Mit der Anfrage werden nur die angegebenen Attribute aktualisiert oder hinzugefügt. in die Feldmaske ein. Bereits vorhandene Attribute, die nicht angegeben sind, bleiben erhalten. unverändert lassen.

Beispiel für Fahrzeugfelder aktualisieren

In diesem Abschnitt wird gezeigt, wie Fahrzeugfelder mit UpdateVehicleRequest aktualisiert werden. mit einem update_mask, das angibt, welche Felder aktualisiert werden sollen. Weitere Informationen finden Sie in der Weitere Informationen finden Sie in der Dokumentation zu Protokollzwischenspeichern zu Feldmasken.

Für Aktualisierungen von Feldern außer last_location ist Fleet Engine On-Demand erforderlich Administratorberechtigungen.

Beispiel: Neuen Fahrttyp und neues benutzerdefiniertes Attribut aktivieren

In diesem Beispiel werden back_to_back-Fahrten für das Fahrzeug aktiviert und es wird ein Neues Attribut: class. Wie bereits unter Fahrzeugattribute aktualisieren beschrieben, Um das Feld attributes mit diesem Ansatz zu aktualisieren, müssen Sie alle benutzerdefinierte Attribute, die Sie beibehalten möchten. Daher zeigt das Beispiel einen cash_only -Wert geschrieben, damit er während eines Aktualisierungsvorgangs nicht überschrieben wird. der das Feld attributes angibt.

Um nur den Wert eines Schlüssel/Wert-Attributpaars zu aktualisieren, verwenden Sie die Methode UpdateVehicleAttributes-Methode ohne das Feld attribute in der Feldmaske für die UpdateVehicle-Anfrage.

Weitere Informationen finden Sie in der providers.vehicles.update-Referenz für gRPC und REST.

gRPC

static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";

VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.ONLINE)
    .addAllAttributes(ImmutableList.of(
        VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
        VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
    .setBackToBackEnabled(true)
    .build();

UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
    .setName(vehicleName)
    .setVehicle(updatedVehicle)
    .setUpdateMask(FieldMask.newBuilder()
        .addPaths("vehicle_state")
        .addPaths("attributes")
        .addPaths("back_to_back_enabled"))
    .build();

try {
  Vehicle updatedVehicle =
      vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      // Most implementations will call CreateVehicle in this case
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle updated successfully.

REST

curl -X PUT \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "ONLINE",
    "attributes": [
      {"key": "class", "value": "LUXURY"},
      {"key": "cash_only", "value": "false"}
    ],
    "backToBackEnabled": true
}
EOM

Nächste Schritte