Este documento descreve o serviço de tarefas programadas no Fleet Engine. Ele pressupõe que você leu O que é o Fleet Engine? e conhece o recurso específico do serviço do Fleet Engine de que precisa.
Ao ler esta documentação, tenha em mente o seguinte:
- Você cria tarefas e as associa a uma parada de veículo como uma forma de simular a associação real entre a tarefa e o local em que o veículo precisa parar para que o motorista possa concluir a tarefa. Leia Introdução aos veículos para entender melhor como os veículos funcionam no Fleet Engine.
- O Fleet Engine para tarefas programadas usa os seguintes recursos: um
Task
e umDeliveryVehicle
. O Fleet Engine fornece um serviço gRPC e interfaces REST:
O que é uma tarefa programada?
Uma tarefa programada no Fleet Engine representa uma ação individual a ser concluída por um motorista usando um veículo no contexto mais amplo de uma operação de transporte. Ele define o objetivo específico para o motorista. Exemplo:
- para entregar um produto a uma residência
- para retirar um pacote para devolução ao depósito de envio
- parar em um local para prestar um serviço local a um cliente
- para fazer uma parada programada para abastecer o veículo
Elementos de tarefas
A imagem a seguir ilustra esses elementos de tarefa em uma viagem programada padrão para um veículo.
Campos de tarefas básicos
Campo | Descrição |
---|---|
Tipo | Define o tipo de ação associada à tarefa. |
ID da tarefa | Uma string que identifica exclusivamente a tarefa no sistema. |
Local planejado | Especifica o local pretendido em que a tarefa precisa ser realizada. Esse local nem sempre é o mesmo que o planejado para a parada do veículo. |
Estado | Indica se a tarefa está aberta ou fechada. |
Resultado da tarefa | Indica se a tarefa foi concluída ou falhou. |
Modelo de dados para tarefas
Os diagramas a seguir ilustram o modelo de dados do recurso Task
com o diagrama do recurso DeliveryVehicle
associado. Você pode
analisar os dois diagramas para entender as relações entre os dois recursos,
lembre-se do seguinte:
- Local planejado: as paradas do veículo e as tarefas têm locais planejados, diferentes entre si.
- Para tarefas, um local planejado indica onde a ação do motorista deve ocorrer. Por exemplo, 15 entregas de pacotes para um grande complexo residencial exigem entrega em diferentes locais de caixa postal no mesmo complexo.
- Para paradas de veículos, o local planejado indica a parada do veículo enquanto o motorista realiza as tarefas. Por exemplo, um veículo para na entrada de um condomínio e o motorista entrega os pacotes manualmente para diferentes salas de correspondência no condomínio.
- Estado: as tarefas e as paradas do veículo têm um campo estado, distinto um do outro.
- O estado da parada do veículo reflete o progresso do veículo em relação à parada, usado para fins de rastreamento da frota.
- O estado da tarefa indica se ela está ativa ou não. Isso impacta outras operações a serem realizadas nas tarefas, como definir o resultado ou atribuir a um veículo.
Resultado da tarefa: é um campo importante no modelo de dados, porque é usado para indicar o sucesso ou a falha de uma tarefa, independente do estado dela.
IDs:
- Quando você atribui uma tarefa a um veículo, o mecanismo de frota preenche o campo
deliveryVehicleId
. Esse campo somente leitura indica o veículo a que a tarefa foi atribuída. - Os IDs de tarefas são identificadores exclusivos de todas as tarefas no seu sistema.
- Os IDs de rastreamento identificam uma tarefa para fins de rastreamento de envio.
- Quando você atribui uma tarefa a um veículo, o mecanismo de frota preenche o campo
Modelo de dados de tarefas
Modelo de dados do veículo
IDs de tarefas
Assim como os IDs de veículos no Fleet Engine, cada tarefa precisa conter um ID para
diferenciar as tarefas no sistema. Você faz referência e gerencia
todas as tarefas no fluxo de trabalho pelo ID delas. Para criar esses IDs, use o
serviço CreateTaskRequest
e forneça uma string de ID que esteja em conformidade com os
requisitos descritos nesta seção.
Essa string compreende parte do nome do próprio recurso de tarefa, um campo somente de saída no objeto Task
. Isso é análogo a como o Fleet Engine
constrói recursos de nome de veículo. Consulte a seção Nomenclatura de recursos em
Introdução ao Fleet Engine.
Propriedade | Descrição |
---|---|
Exclusividade | Cada ID de tarefa precisa ser exclusivo na implementação do Fleet Engine para evitar confusão e garantir a identificação adequada. |
Formato |
|
Exemplos de IDs de tarefas boas |
|
---|---|
IDs de tarefas não permitidos |
|
Tipos de tarefas
O Fleet Engine oferece suporte a vários tipos de tarefas para representar diferentes ações em uma operação de transporte. Elas são descritas aqui, junto com a visibilidade e os detalhes de faturamento.
Tipo de tarefa | Descrição | Visibilidade do rastreamento de envio | Faturado |
---|---|---|---|
Tarefa de entrega | Use para entregar itens ou concluir uma tarefa para um cliente. | Os consumidores podem conferir e acompanhar isso. | Sim |
Tarefa de retirada | Use para indicar a retirada de produtos de um cliente. Você precisa ter tarefas de entrega correspondentes para qualquer tarefa de retirada. | Os consumidores podem conferir e acompanhar isso. | Não |
Tarefa de indisponibilidade | Identifica o veículo como indisponível para o serviço, por exemplo, quando o motorista faz uma pausa ou reabastece o veículo. | Não aparece para os consumidores. | Não |
Tarefa de parada programada | Uma tarefa que não é de entrega e exige uma parada em um local específico. Use tarefas de parada programada para paradas de coleta programadas diárias em um local específico, independentemente de outras entregas ou coletas no mesmo local. Também é possível criar tarefas de parada programadas para coletas de caixas de coleta ou para modelar transferências de veículos de abastecimento ou paradas em centros e pontos de serviço. | Os consumidores não podem acompanhar essa tarefa específica, mas podem conferir o acompanhamento de outras tarefas. | Não |
Ciclo de vida da tarefa e da jornada
Esta seção fornece detalhes sobre o ciclo de vida da tarefa de entrega no Fleet Engine. O ciclo de vida da tarefa está conectado à jornada do veículo porque o veículo precisa viajar até uma parada para que um motorista conclua uma tarefa no local planejado.
1. Criação de tarefas
Ao criar uma tarefa no Fleet Engine, você define vários campos para ela sem precisar associá-los a uma parada.
Propriedade | Descrição |
---|---|
Estado | Definido como "ABERTO" |
Códigos | Defina a tarefa e o ID de acompanhamento se você usa o acompanhamento de remessas para seus consumidores. |
Tempo | A duração planejada da tarefa e a janela de tempo desejada. Consulte Tempo da tarefa para mais detalhes. |
Local planejado | Defina a coordenada geográfica precisa em que a tarefa precisa ser concluída. |
2. Atribuição de tarefas
Quando você atribui uma tarefa a um veículo, faz isso em conjunto com uma parada do veículo. As paradas são coordenadas de latitude/longitude que indicam o local onde o veículo estaciona enquanto o motorista realiza as tarefas associadas à parada. As paradas geralmente são um ponto de acesso, como um cais de carregamento ou um local de estrada.
3. Em andamento
O estado de uma tarefa é ABERTO ou FECHADO. No entanto, depois que uma tarefa é atribuída a um veículo, é possível acompanhar o progresso dela pela associação ao veículo e onde ele está em relação à parada em que a tarefa precisa ser concluída.
Quando o veículo sai de uma parada ou inicia a navegação, o status da parada muda para ENROUTE
. Dessa forma, o rastreamento de remessas do consumidor pode
atualizar o destinatário de uma tarefa com o número de paradas restantes e o tempo
de chegada estimado. Isso também oferece suporte a qualquer visualização em tempo real para rastreamento de remessas
do consumidor ou de frota.
4. Chegada e resultado da tarefa
Quando o veículo chega a uma parada, o status dela precisa ser definido como ARRIVED
. Assim como um status de parada ENROUTE
, isso não afeta o estado da
própria tarefa, mas oferece suporte a notificações do consumidor e a qualquer relatório em tempo real
para o rastreamento de frotas usado pelos operadores de frotas. Ele também permite análises e relatórios posteriores sobre sua operação que você usaria para otimizações de entrega.
Quando o veículo chega a uma parada, o sistema pode processar o restante da jornada da tarefa usando uma das seguintes abordagens:
Fechar tarefas à medida que são concluídas.
Quando o motorista marca a tarefa como concluída, o sistema pode removê-la da parada, mas deixar a parada com outras tarefas atribuídas a ela.
Remova toda a parada do veículo.
Quando o motorista marcar todas as tarefas como concluídas e o veículo estiver a caminho da próxima parada, você poderá remover a parada inteira do veículo. O Fleet Engine fecha automaticamente todas as tarefas associadas a uma parada removida.
O fechamento de uma tarefa não indica sucesso ou falha
O fechamento de uma tarefa indica apenas que ela não é mais considerada em andamento.
Para tarefas no estado CLOSED
, defina o resultado como SUCCEEDED
ou
FAILED
. Isso é necessário para indicar o resultado real do rastreamento
de remessas e para o faturamento adequado. O Fleet Engine cobra apenas tarefas de entrega com um
estado de SUCESSO.
Depois de definir um resultado de tarefa, não é possível mudar
Ao marcar o resultado de uma tarefa, o Fleet Engine preenche automaticamente o local do resultado da tarefa com o último local conhecido do veículo. No entanto, é possível modificar o horário e o local de resultado da tarefa depois que eles forem definidos, e o Fleet Engine não vai substituir esses campos.
5. Outros cenários de tarefas
Nem todas as tarefas que você modela no Fleet Engine se encaixam em um fluxo de jornada típico. Por exemplo:
- Tarefas de retirada. Quando você tiver uma tarefa de retirada para que um pacote seja devolvido ao depósito para processamento posterior, crie uma tarefa de entrega correspondente para esse pacote, com o local planejado definido como o depósito. Caso contrário, as tarefas de retirada geralmente seguem o mesmo fluxo das tarefas de entrega.
- Reatribuição de tarefas. Não é possível reatribuir uma tarefa diretamente a um veículo diferente. Em vez disso, para mover uma tarefa de um veículo para outro, feche a tarefa original e a recrie antes de atribuir o novo veículo. Se você atualizar a ordem de uma tarefa que já foi atribuída a um veículo diferente, o Fleet Engine vai gerar um erro.
- Excluir tarefas. Assim como nos veículos, o Fleet Engine exclui tarefas que não foram atualizadas após sete dias. Se você tentar reutilizar um ID de tarefa que já foi fechado, o Fleet Engine vai retornar um erro se esse ID tiver sido usado nos últimos sete dias. Por outro lado, se você quiser manter os dados da tarefa por mais de sete dias, será necessário implementar esse recurso por conta própria, como em um job programado para redefinir o relógio de sete dias.
Compartilhar o progresso da tarefa
No Fleet Engine, é possível monitorar o progresso da tarefa em tempo real e compartilhar a jornada do motorista de duas maneiras principais:
- Experiência do consumidor para que os consumidores saibam o status dos pedidos de envio ou de serviço solicitados.
- Rastreamento de frotas para que os operadores de frotas monitorem e analisem o status dos veículos.
Experiência do consumidor
Para compartilhar o progresso da tarefa, configure a experiência do consumidor usando o SDK do consumidor JavaScript. Com o SDK, é possível melhorar a experiência visual de apps para dispositivos móveis ou da Web para que os consumidores possam monitorar o status do envio, além de horários de chegada estimados e atualizações de localização em tempo real para o veículo de entrega. Consulte Visão geral das tarefas programadas do SDK do consumidor.
O SDK do consumidor contém um mapa JavaScript e componentes de dados para se conectar ao Fleet Engine. O mapa é uma substituição de drop-in para um
objeto google.maps.Map
padrão. O cliente precisa autenticar os usuários finais e usar a função de consumidor Delivery do seu projeto do Google Cloud para retornar apenas informações específicas do cliente. O Fleet Engine filtra e oculta todas
as outras informações nas respostas. Por exemplo, durante uma tarefa de indisponibilidade,
nenhuma informação de local é compartilhada com o usuário final.
No Fleet Engine, ative as seguintes configurações para compartilhar o progresso da tarefa com o consumidor:
- As tarefas usam a propriedade
TaskTrackingViewConfig
. Opcional. - As tarefas usam um ID de rastreamento, que a biblioteca precisa para identificar tarefas relevantes para um consumidor.
Fleet Tracking
A biblioteca JavaScript Fleet Tracking permite visualizar os locais dos
veículos nas frotas quase em tempo real. A biblioteca usa a
API Fleet Engine para fornecer a visualização dos veículos de entrega e
as tarefas atribuídas a eles. Assim como o SDK do consumidor JavaScript, ele contém um componente de mapa JavaScript que é uma substituição rápida de uma entidade google.maps.Map
padrão com componentes de dados que você usa para se conectar ao Fleet Engine.
Essa biblioteca mostra a visibilidade dos veículos de entrega assim que eles são criados no Fleet Engine. Para essa implementação, você usa o papel do Cloud IAM de superusuário do serviço do Fleet Engine e fornece a reivindicação de token da Web Java para acesso aos veículos de entrega e às tarefas associadas.
Cenários de tarefas programadas
Esta seção mostra vários cenários de tarefas que resumem as informações fornecidas neste ponto do guia. O objetivo é ajudar você a entender as várias maneiras de modelar suas operações de transporte no Fleet Engine, dependendo da sua empresa.
Entrega com rastreamento
Este cenário de entrega mostra uma tarefa de parada programada atribuída ao depósito na partida do depósito no início da viagem e na chegada ao depósito no fim da viagem. Ele também
mostra duas tarefas de entrega para uma parada, uma delas com falha. Use essa
atividade para ativar o rastreamento de e para o depósito e como uma forma de modelar
os horários de início e término do dia. Não há faturamento
com tarefas de parada programadas.
Retirada com entrega no depósito
Este cenário mostra como modelar uma retirada com a tarefa de entrega correspondente necessária. Você definiu a devolução para o depósito como uma entrega para fins de faturamento.

Veículo alimentador
Este cenário mostra duas entregas com uma parada programada no meio para um veículo alimentador, em que o objetivo é permitir que o veículo de entrega retorne ao depósito com vários pacotes a serem enviados. Você também pode modelar o veículo alimentador com uma parada programada.

Tempo da tarefa
Modelar os tempos de tarefa ajuda no planejamento de rotas, nos prazos estimados e no gerenciamento das expectativas de entrega. O Fleet Engine oferece duas funcionalidades principais para modelar e antecipar o tempo de execução de tarefas, conforme descrito nesta seção.
Duração da tarefa
A duração da tarefa é definida com o campo task_duration
, um campo obrigatório que
modela o tempo previsto que o motorista leva para concluir tarefas em uma parada
ou para fazer uma pausa. Para paradas, isso inclui todas as atividades necessárias
após a chegada a uma parada, como descarregar pacotes e interagir com o
destinatário. Quanto mais específicas forem essas informações, melhor o Fleet Engine poderá fornecer horários de chegada e estimativas de chegada realistas para as paradas seguintes da jornada.
Para saber mais sobre o campo, consulte Duração na documentação dos buffers de protocolo.
Janela de tempo desejada
O tempo de destino define um intervalo de tempo proposto para uma tarefa, geralmente usado para
se comunicar com os clientes ou para fins de planejamento interno. Você define isso com
o campo target_time_window
, que consiste em um horário de início e um de término.
Isso não influencia diretamente os cálculos de rota, mas pode ser usado para
situações como alertar um consumidor sobre um período de tempo para a entrega
de um pacote ou quando esperar a chegada de um service worker programado.
Atributos da tarefa
Os atributos de tarefas no Fleet Engine oferecem uma maneira conveniente de filtrar tarefas com base
em características específicas ao usar a solicitação ListTasks
. Também é possível usar
atributos de tarefas personalizados para análises com o Cloud Logging, além de
comunicar informações aos consumidores ou para o rastreamento de frotas. O
objetivo é semelhante ao dos atributos do veículo: use isso para criar uma perspectiva mais
focada das suas operações de entrega.
Limitações
- Criação de atributos personalizados: o Fleet Engine limita o número de atributos personalizados que você pode definir por tarefa. Entre em contato com seu representante de vendas para solicitar um aumento desses limites.
- Recursos de filtragem: embora ofereçam flexibilidade de filtragem, os atributos de tarefas não substituem os campos de dados principais da tarefa. Use-os para filtrar mais de acordo com suas necessidades específicas.
- Cada atributo precisa ter uma chave exclusiva.
- Não inclua informações de identificação pessoal ou outras informações sensíveis no valor do atributo, porque elas podem ficar visíveis para o usuário.
- Validação de dados: verifique se os tipos e formatos de dados dos seus atributos personalizados são compatíveis com os requisitos do Fleet Engine.