REST Resource: providers.tasks

Recurso: Tarea

En la API de Delivery, una tarea representa una sola acción para realizar un seguimiento. En general, hay una distinción entre las tareas relacionadas con el envío y las tareas de división. Un envío puede tener varias tareas asociadas. Por ejemplo, puede haber una tarea para el retiro y otra para la entrega o transferencia. Además, distintos vehículos pueden manejar diferentes Tasks para un envío determinado. Por ejemplo, un vehículo podría encargarse de la recogida, conducir el envío al centro, mientras que otro vehículo realiza el mismo envío desde el concentrador hasta la ubicación de entrega.

Nota: Las APIs de gRPC y REST usan convenciones de nombres de campo diferentes. Por ejemplo, el campo Task.journey_sharing_info en la API de gRPC y el campo Task.journeySharingInfo en la API de REST hacen referencia al mismo campo.

Representación JSON
{
  "name": string,
  "type": enum (Type),
  "state": enum (State),
  "taskOutcome": enum (TaskOutcome),
  "taskOutcomeTime": string,
  "taskOutcomeLocation": {
    object (LocationInfo)
  },
  "taskOutcomeLocationSource": enum (TaskOutcomeLocationSource),
  "trackingId": string,
  "deliveryVehicleId": string,
  "plannedLocation": {
    object (LocationInfo)
  },
  "taskDuration": string,
  "targetTimeWindow": {
    object (TimeWindow)
  },
  "journeySharingInfo": {
    object (JourneySharingInfo)
  },
  "taskTrackingViewConfig": {
    object (TaskTrackingViewConfig)
  },
  "attributes": [
    {
      object (TaskAttribute)
    }
  ]
}
Campos
name

string

Debe tener el formato providers/{provider}/tasks/{task}.

type

enum (Type)

Obligatorio. Inmutable. Define el tipo de la Task. Por ejemplo, una pausa o un envío.

state

enum (State)

Obligatorio. Es el estado de ejecución actual de la tarea.

taskOutcome

enum (TaskOutcome)

El resultado de la Tarea

taskOutcomeTime

string (Timestamp format)

Es la marca de tiempo que indica cuándo el proveedor estableció el resultado de Task.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

taskOutcomeLocation

object (LocationInfo)

Es la ubicación en la que se estableció el resultado de Task. Este valor se actualiza como parte de tasks.patch. Si el proveedor no actualiza de manera explícita este valor, Fleet Engine lo propaga de forma predeterminada con la última ubicación conocida del vehículo (la ubicación sin procesar).

taskOutcomeLocationSource

enum (TaskOutcomeLocationSource)

Indica de dónde provino el valor de taskOutcomeLocation.

trackingId

string

Inmutable. Este campo facilita el almacenamiento de un ID para que puedas evitar el uso de una asignación complicada. No puedes configurar trackingId para tareas de tipo UNAVAILABLE y SCHEDULED_STOP. Estos IDs están sujetos a las siguientes restricciones:

  • Debe ser una cadena Unicode válida.
  • Tiene una longitud máxima de 64 caracteres.
  • Se normalizó según el Formato de normalización C de Unicode.
  • No puede contener ninguno de los siguientes caracteres ASCII: “/”, “:”, “?”, “,” o “'#'”.
deliveryVehicleId

string

Solo salida. El ID del vehículo que ejecuta esta tarea. Los IDs de vehículos de entrega están sujetos a las siguientes restricciones:

  • Debe ser una cadena Unicode válida.
  • Tiene una longitud máxima de 64 caracteres.
  • Se normalizó de acuerdo con el formulario C de normalización de Unicode.
  • No puede contener ninguno de los siguientes caracteres ASCII: “/”, “:”, “?”, “,” o “'#'”.
plannedLocation

object (LocationInfo)

Inmutable. La ubicación donde se completará la Tarea. Es opcional para UNAVAILABLE Tasks, pero obligatorio para todas las demás Tasks.

taskDuration

string (Duration format)

Obligatorio. Inmutable. Es el tiempo necesario para ejecutar una tarea en esta ubicación.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

targetTimeWindow

object (TimeWindow)

Es el período durante el cual se debe completar la tarea.

journeySharingInfo

object (JourneySharingInfo)

Solo salida. Campos específicos para el uso compartido de la experiencia. No se propaga cuando el estado es CLOSED.

taskTrackingViewConfig

object (TaskTrackingViewConfig)

Es la configuración del seguimiento de tareas que especifica qué elementos de datos son visibles para los usuarios finales en qué circunstancias.

attributes[]

object (TaskAttribute)

Una lista de atributos de Task personalizados. Cada atributo debe tener una clave única.

Tipo

El tipo de Task.

Enumeraciones
TYPE_UNSPECIFIED Configuración predeterminada, el tipo de tarea es desconocido.
PICKUP Una tarea de retiro es la acción que se realiza para retirar un envío de un cliente. Los puntos de partida de los vehículos de depósito o alimentador deben usar el tipo SCHEDULED_STOP.
DELIVERY Una Tarea de entrega es la acción que se realiza para entregar un envío a un cliente final. Los destinos de vehículos depósitos o alimentadores deben utilizar el tipo SCHEDULED_STOP.
SCHEDULED_STOP Se utiliza una tarea de detención programada para fines de planificación. Por ejemplo, podría representar la recolección o entrega de envíos desde vehículos alimentadores o depósitos. No debe usarse para ningún envío que un cliente final recoja o deje en manos de un cliente final.
UNAVAILABLE Una tarea que significa que el vehículo no está disponible para el servicio. Por ejemplo, esto puede ocurrir cuando el conductor se toma un descanso o cuando el vehículo está recargando combustible.

TaskOutcomeLocationSource

La identidad de la fuente que propagó el taskOutcomeLocation.

Enumeraciones
TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED El resultado de la tarea antes de que se establezca.
PROVIDER El proveedor especificó el taskOutcomeLocation.
LAST_VEHICLE_LOCATION El proveedor no especificó el taskOutcomeLocation, por lo que Fleet Engine usó la última ubicación conocida del vehículo.

JourneySharingInfo

Campos específicos para compartir viajes

Representación JSON
{
  "remainingVehicleJourneySegments": [
    {
      object (VehicleJourneySegment)
    }
  ],
  "lastLocation": {
    object (DeliveryVehicleLocation)
  },
  "lastLocationSnappable": boolean
}
Campos
remainingVehicleJourneySegments[]

object (VehicleJourneySegment)

Información de seguimiento de las paradas que realizará el vehículo asignado antes de completar esta tarea. Ten en cuenta que esta lista puede contener paradas de otras tareas.

El primer segmento, Task.journey_sharing_info.remaining_vehicle_journey_segments[0] (gRPC) o Task.journeySharingInfo.remainingVehicleJourneySegments[0] (REST), contiene información de ruta desde la última ubicación conocida del controlador hasta la próxima VehicleStop. La información de la ruta actual suele provenir de la app del conductor, excepto en algunos casos que se indican en la documentación de DeliveryVehicle.current_route_segment. Fleet Engine propaga los otros segmentos en Task.journey_sharing_info.remaining_vehicle_journey_segments (gRPC) o Task.journeySharingInfo.remainingVehicleJourneySegments (REST). Proporcionan información de ruta entre los VehicleStops restantes.

lastLocation

object (DeliveryVehicleLocation)

Indica la última ubicación informada del vehículo del vehículo asignado.

lastLocationSnappable

boolean

Indica si la lastLocation del vehículo se puede ajustar al currentRouteSegment. Este valor es falso si no existen lastLocation o currentRouteSegment. Fleet Engine calcula este valor. Se ignoran las actualizaciones de los clientes.

TaskTrackingViewConfig

Es el mensaje de configuración que define cuándo los usuarios finales deben ver un elemento de datos de una tarea.

Representación JSON
{
  "routePolylinePointsVisibility": {
    object (VisibilityOption)
  },
  "estimatedArrivalTimeVisibility": {
    object (VisibilityOption)
  },
  "estimatedTaskCompletionTimeVisibility": {
    object (VisibilityOption)
  },
  "remainingDrivingDistanceVisibility": {
    object (VisibilityOption)
  },
  "remainingStopCountVisibility": {
    object (VisibilityOption)
  },
  "vehicleLocationVisibility": {
    object (VisibilityOption)
  }
}
Campos
routePolylinePointsVisibility

object (VisibilityOption)

Es el campo que especifica cuándo pueden ser visibles los puntos de la polilínea de la ruta. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

estimatedArrivalTimeVisibility

object (VisibilityOption)

El campo que especifica cuándo puede ser visible la hora de llegada estimada. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

estimatedTaskCompletionTimeVisibility

object (VisibilityOption)

El campo que especifica cuándo puede ser visible el tiempo estimado de finalización de la tarea. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

remainingDrivingDistanceVisibility

object (VisibilityOption)

El campo que especifica cuándo se puede ver la distancia de conducción restante. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

remainingStopCountVisibility

object (VisibilityOption)

Es el campo que especifica cuándo se puede ver el recuento de paradas restantes. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

vehicleLocationVisibility

object (VisibilityOption)

Es el campo que especifica cuándo puede ser visible la ubicación del vehículo. Si no se especifica este campo, se usará la configuración de visibilidad predeterminada a nivel del proyecto para estos datos.

VisibilityOption

Es el mensaje de opción que define cuándo un elemento de datos debe ser visible para los usuarios finales.

Representación JSON
{

  // Union field visibility_option can be only one of the following:
  "remainingStopCountThreshold": integer,
  "durationUntilEstimatedArrivalTimeThreshold": string,
  "remainingDrivingDistanceMetersThreshold": integer,
  "always": boolean,
  "never": boolean
  // End of list of possible types for union field visibility_option.
}
Campos
Campo de unión visibility_option. La opción de visibilidad específica elegida. Las direcciones (visibility_option) solo pueden ser una de las siguientes opciones:
remainingStopCountThreshold

integer

Los usuarios finales pueden ver este elemento de datos si el recuento de paradas restantes <= remainingStopCountThreshold.

durationUntilEstimatedArrivalTimeThreshold

string (Duration format)

Los usuarios finales pueden ver este elemento de datos si la hora de llegada estimada a la parada es <= durationUntilEstimatedArrivalTimeThreshold.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

remainingDrivingDistanceMetersThreshold

integer

Los usuarios finales pueden ver este elemento de datos si la distancia de conducción restante en metros <= remainingDrivingDistanceMetersThreshold.

always

boolean

Si se configura como verdadero, este elemento de datos siempre estará visible para los usuarios finales sin umbrales. Este campo no se puede establecer como falso.

never

boolean

Si se configura como verdadero, este elemento de datos siempre está oculto para los usuarios finales sin umbrales. Este campo no se puede establecer como falso.

Métodos

batchCreate

Crea y muestra un lote de objetos Task nuevos.

create

Crea y muestra un objeto Task nuevo.

get

Obtiene información sobre un Task.

list

Obtiene todos los Task que cumplen con los criterios de filtrado especificados.

patch

Actualiza los datos de Task.