Configurar tarefas

Este documento pressupõe que você já sabe como criar e usar tarefas. Oferece exemplos específicos de como configurar tarefas de remessa das seguintes maneiras:

  • Definir a janela de tempo desejada para uma tarefa de envio: defina a janela de tempo. para que a tarefa seja concluída.

  • Personalizar a visibilidade da tarefa: personalize a visibilidade das atividades das tarefas para para clientes ou operadores de frota.

Consulte Criar tarefas de remessa para detalhes sobre os campos das tarefas de remessa. Ao atualizar informações adicionais sobre tarefas existentes, você também precisa inclua o identificador relevante para a tarefa, além dos campos que você atualizar para as tarefas.

Definir a janela de tempo desejada

A janela de tempo desejada é a TimeWindow em que a tarefa concluído. Por exemplo, se você informar uma janela de tempo para a entrega destinatários, use a janela de tempo da tarefa para capturar essa janela de tempo e gerar alertas, ou você pode usar isso para analisar o desempenho de viagens anteriores.

A janela de horário desejado consiste em um horário de início e um de término e pode ser definido em qualquer tipo de tarefa. A janela de tempo desejada não afeta o roteamento do seu modelo.

Os exemplos a seguir mostram como definir a janela de tempo usando a API Java gRPC biblioteca ou como fazer uma solicitação HTTP REST para UpdateTask. Você pode também definir esse campo no momento da criação da tarefa.

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

Para definir uma janela de tempo da tarefa usando HTTP, chame PATCH e Use updateMask para atualizar o parâmetro targetTimeWindow:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow

Aqui, &lt;id&gt; é um identificador exclusivo para a tarefa. O cabeçalho da solicitação precisa conter um campo Authorization com o valor Bearer <token>. em que &lt;token&gt; é emitido pelo seu servidor de acordo com as diretrizes descritos em Papéis da conta de serviço e tokens JSON da Web.

# 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

Personalizar a visibilidade da tarefa

Por padrão, o Fleet Engine fornece visibilidade das atividades das tarefas que podem ser exibido aos clientes que recebem uma remessa e aos operadores da frota rastrear remessas. Isso inclui informações como a indicação do número de para antes de enviar ao cliente uma notificação sobre a entrega do pacote o status atual da conta. Você pode personalizar essas informações por tarefa para se adequar melhor a elas seu modelo de negócios.

Esta seção descreve as regras de visibilidade para objetos rastreados no mapa. Essas regras se aplicam a duas categorias de objetos:

  • Visibilidade do marcador de local
  • Visibilidade de dados de tarefas para tarefas ativas do veículo, como polilinhas e HEC
.

Regras de visibilidade do marcador de local

O Fleet Engine mostra marcadores de local para o local de entrega da remessa mostrados no mapa, independentemente do estado da entrega.

Regras de visibilidade dos dados da tarefa

Nesta seção, descrevemos as regras de visibilidade padrão que se aplicam aos dados da tarefa. Só é possível personalizar tarefas de veículos ativos, ou seja, apenas tarefas de embarque e desembarque podem aplicar regras de visibilidade personalizadas.

As tarefas a seguir podem não ser personalizadas:

  • Paradas programadas
  • Tarefas de indisponibilidade
  • Tarefas inativas com veículos

Regras de visibilidade das tarefas de indisponibilidade

Por padrão, o veículo não aparece no mapa se pelo menos um de indisponibilidade é atribuída à tarefa monitorada. Por exemplo, se o o motorista está fazendo uma pausa ou o veículo está sendo reabastecido no trajeto até a envio rastreado. O horário estimado de chegada e o tempo estimado de conclusão da tarefa ainda estão disponíveis. Novamente, não é possível personalizar essa regra.

Visibilidade das tarefas ativas do veículo

O objeto TaskTrackingInfo fornece vários elementos de dados que você podem ficar visíveis com a biblioteca Shipment Tracking. Por padrão, esses campos ficam visíveis quando a tarefa é atribuída ao veículo a cinco paradas da tarefa. A visibilidade termina quando a tarefa é concluída cancelado.

Para personalizar a configuração de visibilidade por tarefa, defina o TaskTrackingViewConfig em uma tarefa ao criá-la ou atualizá-la no Fleet Engine. Isso cria regras para que elementos de dados individuais sejam disponíveis.

A tabela a seguir mostra os campos em que é possível aplicar regras de visibilidade.

Campos de tarefas do veículo para regras de visibilidade
  • Polilinhas do trajeto
  • Tempo estimado para chegada
  • Tempo estimado para a conclusão da tarefa
  • Distância de carro restante até a tarefa
  • Contagem de paradas restantes
  • Localização do veículo

Esta tabela mostra as opções de visibilidade disponíveis para os campos listados acima.

Opções de visibilidade
  • Contagem de paradas restantes
  • Duração até o horário previsto de chegada
  • Distância de carro restante
  • Sempre visível
  • Nunca visíveis

Regras de visibilidade da localização de veículos e polilinhas do trajeto

Em um trajeto rastreado, a visibilidade das polilinhas do trajeto está sujeita à visibilidade do veículo. Se uma polilinha de trajeto estiver visível em um trajeto ativo onde o veículo não estiver visível, a localização dele ainda poderá ser inferido pelo fim da polilinha visível. Portanto, rotear a polilinha a visibilidade deve ser tão restritiva ou mais restritiva do que a visibilidade do veículo.

Siga estas regras para fornecer uma localização de veículo ou polilinhas de trajeto válidas combinação de visibilidade.

As polilinhas do trajeto e a localização do veículo especificam as mesmas opções de visibilidade

Nesse caso, a polilinha e o local do veículo são iguais que incluem:

  • contagem de paradas restantes
  • duração até o HEC
  • distância de carro restante

Para obedecer às regras, o valor da visibilidade das polilinhas do trajeto precisa ser menor ou igual a o valor definido para a visibilidade do veículo. Neste exemplo, o limite de parada restante para a polilinha é definido como 3, que é menor que o valor de 5 especificado para o veículo. Isso significa que, quando o código percurso alcance cinco paradas de distância do local da tarefa, o veículo aparece, mas o trajeto desse veículo não aparece até que a viagem esteja a três paradas.

```js
"taskTrackingViewConfig": {
  "routePolylinePointsVisibility": {
    "remainingStopCountThreshold": 3
  },
  "vehicleLocationVisibility": {
    "remainingStopCountThreshold": 5
  },
}
```

As polilinhas do trajeto e a localização do veículo especificam as diferentes opções de visibilidade

Quando as polilinhas do trajeto e a localização do veículo têm opções de visibilidade diferentes, A localização do veículo só fica visível quando as duas opções de visibilidade estão satisfeitos. Novamente, a visibilidade da polilinha está sujeita às regras de visibilidade do veículo:

  • Sempre visível: uma polilinha de trajeto precisa usar a opção sempre visível. a opção de visibilidade quando a localização do veículo também fornece a mesma opção sempre visível.
  • Nunca visível: uma polilinha de trajeto precisa ter uma visibilidade nunca visível. quando o local do veículo usa a opção de visibilidade nunca visível.

Confira um exemplo:

  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "vehicleLocationVisibility": {
      "remainingDrivingDistanceMetersThreshold": 3000
    },
  }

Neste exemplo, a localização do veículo só fica visível se a parada restante a contagem é de pelo menos 3 E a distância de carro restante é de pelo menos 3.000 metros.

Exemplo de personalização da visibilidade da tarefa

Os exemplos abaixo mostram como definir uma tarefa com os seguintes regras de visibilidade:

  • Mostre as polilinhas do trajeto se o veículo estiver a até três paradas.
  • Mostrar o HEC se a distância de carro restante for menor do que 5.000 metros.
  • Nunca mostrar o número de paradas restantes.
  • Todos os outros campos mantêm a visibilidade padrão de exibição quando o veículo está a cinco paradas da tarefa.

Consulte TaskTrackingViewConfig para gRPC ou 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

Para definir a janela de configuração da visualização do rastreamento de tarefas usando HTTP, chame PATCH e Use updateMask para atualizar o parâmetro taskTrackingViewConfig:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig

Exemplo:

# 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

A seguir