Borrar vehículo de entrega

En este documento, se describe cómo borrar un vehículo de reparto. Se supone que ya configuraste Fleet Engine. Consulta Cómo configurar Fleet Engine.

Conceptos básicos para borrar vehículos de reparto

Tu sistema puede usar Fleet Engine para borrar un vehículo de reparto en las siguientes situaciones:

  • Para realizar operaciones de limpieza mientras pruebas las APIs de Fleet Engine
  • Para borrar de inmediato un vehículo de reparto que ya no es necesario

Para borrar un vehículo de reparto, envía una solicitud con gRPC o REST.

  • Método DeleteDeliveryVehicle(): gRPC o REST
  • DeleteDeliveryVehicleRequest mensaje: gRPC solamente

Usa las credenciales adecuadas para la cuenta de servicio de tu proyecto, como se describe en Fleet Engine: Roles de cuenta de servicio.

Ejemplo: Borra un vehículo de reparto

Java

En el siguiente ejemplo, se muestra cómo usar la biblioteca de gRPC de Java para borrar un vehículo de reparto. Para obtener una lista completa de los idiomas compatibles, consulta Bibliotecas cliente para servicios de tareas programadas.

  static final String PROJECT_ID = "my-rideshare-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;

  DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
      DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();

  try {
    deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The delivery vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are tasks(s) that reference delivery vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

En el siguiente ejemplo, se muestra cómo borrar un vehículo de reparto de Fleet Engine con REST llamando a DeleteDeliveryVehicle.

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
  # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -X DELETE -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"

Si la operación de eliminación se realiza correctamente, la API muestra una respuesta vacía.

Soluciona errores

Cuando borres un vehículo de reparto, es posible que se produzca un error FAILED_PRECONDITION, en cuyo caso hay tareas que hacen referencia al vehículo de reparto. Para continuar con la eliminación, haz lo siguiente:

  1. Llama a ListTasks para encontrar las tareas que hacen referencia al vehículo de reparto.
  2. Llama a DeleteTask para borrar cada una de las tareas encontradas.

¿Qué sigue?