Neste documento, descrevemos o serviço de tarefas agendadas 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 modelar a associação real entre a tarefa e o local onde se espera que o veículo pare para que o motorista possa concluir a tarefa. Leia Introdução a 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 realizada por um motorista usando um veículo no contexto mais amplo de uma operação de transporte. Define o objetivo específico do motorista. Exemplo:
- para entregar um bem 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 associado à tarefa. |
ID da tarefa | 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 planejado para a parada de veículo. |
Estado | Indica se a tarefa está aberta ou fechada. |
Resultado da tarefa | Indica se a tarefa foi bem-sucedida 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 de veículos e as tarefas têm locais planejados, distintos entre si.
- Para tarefas, um local planejado indica onde a ação do motorista deve ocorrer. Por exemplo, as entregas de 15 pacotes em um grande complexo residencial exigem a entrega em diferentes locais de correspondência dentro do 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 complexo de apartamentos e o motorista entrega os pacotes manualmente em salas de correspondência separadas dentro do complexo.
- Estado: as tarefas e as paradas de veículos têm um campo de state, diferente um do outro.
- O estado da parada reflete o andamento do veículo em relação à parada, usado para fins de rastreamento de frota.
- O estado da tarefa indica se ela está ativa ou não. Isso impacta outras operações a serem realizadas em 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 motor da frota preenche o
campo
deliveryVehicleId
. Esse campo somente leitura indica o veículo ao qual a tarefa é atribuída. - Os IDs de tarefas são identificadores exclusivos em todas as tarefas no seu sistema.
- Os IDs de rastreamento identificam uma tarefa com a finalidade de rastrear o frete.
- Quando você atribui uma tarefa a um veículo, o motor da 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 recurso da tarefa, um campo somente saída no objeto Task
. Isso é análogo à maneira como o Fleet Engine
constrói recursos de nomes de veículos. 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 tarefa
O Fleet Engine oferece suporte a vários tipos de tarefas para representar diferentes ações em uma operação de transporte. Eles estão descritos 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 deixar itens ou concluir uma tarefa para um cliente. | Os consumidores podem ver e rastrear 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 ver e rastrear 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 está visível 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 conseguem acompanhar essa tarefa específica, mas podem vê-la como parte do monitoramento de outras tarefas. | Não |
Ciclo de vida da tarefa e da jornada
Nesta seção, fornecemos 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 OPEN |
Códigos | Defina a tarefa e o ID de rastreamento se você usa o rastreamento de frete 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 exata em que a tarefa será concluída. |
2. Atribuição de tarefas
Ao atribuir uma tarefa a um veículo, você faz isso em conjunto com uma parada. As paradas são coordenadas de latitude/longitude que indicam o local em que o veículo estaciona enquanto o motorista conclui as tarefas associadas a ela. Normalmente, as paradas são um ponto de acesso, como uma doca de carregamento ou um local posicionado na via.
3. Em andamento
O estado de uma tarefa é OPEN ou CLOSED. 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.
Depois que o veículo sai de uma parada ou inicia o trajeto, o status dela 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. Também é compatível com qualquer visualização em tempo real para rastreamento de remessas de consumidores ou de frotas.
4. Chegada e resultado da tarefa
Quando o veículo chega a uma parada, o status dela precisa ser definido como ARRIVED
. Assim como acontece com um status de parada ENROUTE
, isso não afeta o estado da
tarefa em si, mas oferece suporte a notificações do consumidor e qualquer relatório em tempo real
para rastreamento de frota usado pelos operadores de frota. Ele também permite análises e relatórios
sobre a operação que você usaria para otimizações de
exibição.
Quando o veículo chega a uma parada, o sistema pode processar o restante da jornada da tarefa usando uma das seguintes abordagens:
Feche as tarefas à medida que elas forem 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.
Encerrar uma tarefa não indica sucesso ou falha
O fechamento de uma tarefa indica apenas que ela não está mais em andamento.
Para tarefas no estado CLOSED
, você define 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 as tarefas de entrega com
estado SUCCEEDED.
Depois de definir o resultado de uma tarefa, não é possível mudá-lo
Ao marcar o resultado de uma tarefa, o Fleet Engine preenche automaticamente o local de resultado da tarefa com a última localização conhecida do veículo. No entanto, é possível modificar o horário e o local do resultado da tarefa depois que eles forem definidos, e o mecanismo de frota não modificará 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 tarefa. 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.
- Como 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 para uma que tenha sido encerrada anteriormente, o Fleet Engine 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, implemente 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 frota: usados pelos operadores de frota para acompanhar e analisar o status dos veículos na frota.
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 remessa, além de horários de chegada estimados e atualizações de localização em tempo real para o veículo de entrega. Consulte a Visão geral de 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 simples para um objeto google.maps.Map
padrão. O cliente precisa autenticar os usuários finais e usar o papel de consumidor de Entrega do projeto do Google Cloud para retornar apenas informações específicas do cliente. O Fleet Engine filtra e edita todas
as outras informações nas respostas. Por exemplo, em uma tarefa de indisponibilidade,
nenhuma informação de localização é compartilhada com o usuário final.
No Fleet Engine, você ativa 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 de rastreamento de frota permite visualizar a localização dos
veículos das frotas quase em tempo real. A biblioteca usa a
API Fleet Engine para fornecer a visualização dos veículos de entrega e
das 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, use o papel do Cloud IAM de superusuário do serviço do Fleet Engine e forneça 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 atribuição para ativar o rastreamento de e para o depósito e como uma maneira de modelar os horários de início e término do dia. Não há faturamento com tarefas de interrupção programadas.
Retirada com entrega em depósito
Este cenário mostra como modelar uma retirada com a tarefa de entrega correspondente necessária. Você definiu a devolução ao 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, com o objetivo de 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
A estimativa dos tempos das tarefas ajuda no planejamento de rotas, nos ETAs e no gerenciamento de expectativas de entrega de maneira eficaz. O Fleet Engine oferece duas funcionalidades principais para modelar e prever o tempo 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 gasta concluindo 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 HECs realistas para as próximas paradas da viagem.
Para ver mais detalhes 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, normalmente usado para
comunicação com clientes ou para fins de planejamento interno. Defina 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 e restriçõ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 tarefa não substituem os principais campos de dados de tarefas. 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 ser visíveis para o usuário.
- Validação de dados: verifique se os tipos e formatos de dados dos atributos personalizados são compatíveis com os requisitos do Fleet Engine.