Ce document décrit le service des tâches planifiées dans Fleet Engine. Il suppose que vous avez lu Qu'est-ce que Fleet Engine ? et que vous connaissez la fonctionnalité de service Fleet Engine spécifique dont vous avez besoin.
Lorsque vous lisez cette documentation, tenez compte des points suivants :
- Vous créez des tâches et les associez à un arrêt de véhicule pour modéliser l'association réelle entre la tâche et l'emplacement où le véhicule doit s'arrêter afin que le conducteur puisse accomplir la tâche. Consultez Présentation des véhicules pour mieux comprendre leur fonctionnement dans Fleet Engine.
- Fleet Engine pour les tâches planifiées utilise les ressources suivantes:
Task
etDeliveryVehicle
. Fleet Engine fournit à la fois un service gRPC et des interfaces REST :
Qu'est-ce qu'une tâche planifiée ?
Une tâche planifiée dans Fleet Engine représente une action individuelle à effectuer par un conducteur qui utilise un véhicule dans le contexte global d'une opération de transport. Elle définit l'objectif spécifique du conducteur. Exemple :
- de livrer un bien à une résidence ;
- pour récupérer un colis à retourner au dépôt d'expédition ;
- s'arrêter à un endroit pour fournir un service sur site à un client ;
- pour effectuer un arrêt programmé pour alimenter le véhicule en carburant ;
Éléments de tâche
L'image suivante illustre ces éléments de tâches dans un trajet planifié standard dans un véhicule.
Champs de tâche de base
Champ | Description |
---|---|
Type | Définit le type d'action associé à la tâche. |
ID de tâche | Chaîne qui identifie de manière unique la tâche dans le système. |
Emplacement planifié | Indique l'emplacement prévu où la tâche doit être effectuée. Cet emplacement n'est pas toujours identique à l'emplacement prévu pour l'arrêt du véhicule. |
État | Indique si la tâche est ouverte ou fermée. |
Résultat de la tâche | Indique si la tâche a réussi ou échoué. |
Modèle de données pour les tâches
Les diagrammes suivants illustrent le modèle de données de la ressource Task
, ainsi que le diagramme de la ressource DeliveryVehicle
associée. Vous pouvez examiner les deux diagrammes pour explorer les relations entre les deux ressources, en gardant à l'esprit les points suivants :
- Emplacement planifié : les emplacements planifiés des arrêts de véhicule et des tâches sont distincts les uns des autres.
- Pour les tâches, un emplacement planifié indique où l'action du conducteur doit se produire. Par exemple, 15 livraisons de colis dans un vaste complexe résidentiel nécessitent une livraison à différents emplacements de salles de courrier au sein de ce même complexe.
- Pour les arrêts du véhicule, l'emplacement planifié indique l'arrêt du véhicule pendant que le conducteur effectue les tâches. Par exemple, un véhicule s'arrête à l'entrée d'un immeuble d'habitation, et le chauffeur livre manuellement les colis dans des salles de courrier distinctes.
- State (État) : les tâches et les arrêts de véhicules ont un champ state (état), qui se distingue l'un de l'autre.
- L'état de l'arrêt du véhicule reflète sa progression par rapport à l'arrêt. Il est utilisé pour le suivi de la flotte.
- L'état de la tâche indique si elle est active ou non. Cela a un impact sur les autres opérations à effectuer sur les tâches, telles que le paramétrage de son résultat ou son attribution à un véhicule.
Résultat de la tâche: le résultat de la tâche est un champ important du modèle de données, car il est utilisé pour indiquer le succès ou l'échec d'une tâche, indépendamment de l'état de la tâche.
ID :
- Lorsque vous attribuez une tâche à un véhicule, le moteur de parc remplit le champ
deliveryVehicleId
. Ce champ en lecture seule indique le véhicule auquel la tâche est attribuée. - Les ID de tâche sont des identifiants uniques pour toutes les tâches de votre système.
- Les ID de suivi permettent d'identifier une tâche à des fins de suivi du colis.
- Lorsque vous attribuez une tâche à un véhicule, le moteur de parc remplit le champ
Modèle de données Tasks
Modèle de données du véhicule
ID des tâches
Comme les ID de véhicule dans Fleet Engine, les tâches doivent chacune contenir un ID pour les distinguer des autres tâches du système. Vous référencez et gérez toutes les tâches de votre workflow par leur ID. Pour créer ces ID, utilisez le service CreateTaskRequest
et fournissez une chaîne d'ID conforme aux exigences décrites dans cette section.
Cette chaîne comprend alors une partie du nom de la ressource de tâche elle-même, un champ de sortie uniquement de l'objet Task
. Ce processus est analogue à la manière dont Fleet Engine construit les ressources de nom des véhicules. Consultez la section Dénomination des ressources de la page Présentation de Fleet Engine.
Propriété | Description |
---|---|
Unicité | Chaque ID de tâche doit être unique dans l'implémentation de Fleet Engine pour éviter toute confusion et garantir une identification correcte. |
Format |
|
Exemples d'ID de tâche appropriés |
|
---|---|
ID de tâche non autorisés |
|
Types de tâches
Fleet Engine est compatible avec différents types de tâches pour représenter différentes actions dans une opération de transport. Elles sont décrites ici, ainsi que leur visibilité et leurs informations de facturation.
Type de tâche | Description | Visibilité du suivi des livraisons | Facturé |
---|---|---|---|
Tâche de diffusion | À utiliser pour déposer des objets ou effectuer une tâche pour un client. | Les consommateurs peuvent le voir et le suivre. | Oui |
Tâche de récupération | Permet d'indiquer qu'un client peut récupérer ses produits. Vous devez disposer de tâches de livraison correspondantes pour toute tâche de retrait. | Les consommateurs peuvent le voir et le suivre. | Non |
Tâche d'indisponibilité | Indique que le véhicule n'est pas disponible pour le service, par exemple lorsque le conducteur fait une pause ou fait le plein. | Non visible par les consommateurs. | Non |
Tâche d'arrêt programmé | Une tâche non de livraison nécessitant un arrêt à un emplacement spécifique. Utilisez les tâches d'arrêt planifiées pour les arrêts de collecte programmés quotidiens à un endroit spécifique, indépendamment des autres livraisons ou retraits au même endroit. Vous pouvez également créer des tâches d'arrêt planifiées pour les collectes à partir de boîtes de dépôt, ou pour modéliser les transferts de véhicules de distribution ou les arrêts dans les centres et points de service. | Les clients ne peuvent pas suivre cette tâche spécifique, mais peuvent la consulter dans le cadre du suivi d'autres tâches. | Non |
Cycle de vie des tâches et des parcours
Cette section fournit des informations sur le cycle de vie des tâches de diffusion dans Fleet Engine. Le cycle de vie de la tâche est lié au trajet du véhicule, car le véhicule doit se rendre à un arrêt pour qu'un conducteur puisse effectuer une tâche à l'emplacement prévu.
1. Création de tâches
Lorsque vous créez une tâche dans Fleet Engine, vous définissez différents champs pour la tâche indépendamment de son association à un arrêt.
Propriété | Description |
---|---|
État | Définir sur "OUVERT" |
ID | Définissez la tâche et l'ID de suivi si vous utilisez le suivi des livraisons pour vos clients. |
Durée | La durée planifiée de la tâche et sa fenêtre de temps cible. Pour en savoir plus, consultez la section Calendrier des tâches. |
Emplacement planifié | Définissez les coordonnées géographiques exactes où la tâche doit être effectuée. |
2. Attribution de tâches
Lorsque vous attribuez une tâche à un véhicule, vous le faites en même temps qu'un arrêt du véhicule. Les arrêts sont des coordonnées de latitude/longitude qui indiquent l'emplacement où le véhicule se gare pendant que le conducteur effectue les tâches associées à l'arrêt. Les arrêts sont généralement un point d'accès tel qu'un quai de chargement ou un emplacement barré.
3. En cours
L'état d'une tâche est "OUVERTE" ou "FERMÉE". Toutefois, une fois qu'une tâche est attribuée à un véhicule, vous pouvez suivre sa progression en l'associant au véhicule et en suivant sa position par rapport à l'arrêt où la tâche doit être effectuée.
Une fois que le véhicule part d'un arrêt ou commence la navigation, l'état de l'arrêt doit passer à ENROUTE
. De cette manière, le suivi des envois pour les consommateurs peut informer le destinataire d'une tâche du nombre d'arrêts restants et de l'heure d'arrivée estimée. Cette fonctionnalité est également compatible avec toute visualisation en temps réel pour le suivi des envois des clients ou le suivi de la flotte.
4. Arrivée et résultat de la tâche
Lorsque le véhicule arrive à un arrêt, l'état de l'arrêt doit être défini sur ARRIVED
. Comme pour l'état d'arrêt ENROUTE
, cela n'a pas d'incidence sur l'état de la tâche elle-même, mais prend en charge à la fois les notifications aux consommateurs et les rapports en temps réel pour le suivi du parc utilisé par les opérateurs de parc. Il permet également d'effectuer ultérieurement des analyses et des rapports sur vos opérations que vous utiliseriez pour optimiser la diffusion.
Une fois que le véhicule arrive à l'arrêt, votre système peut gérer le reste du parcours en suivant l'une des approches suivantes:
Clôturez les tâches une fois qu'elles sont terminées.
Lorsque le conducteur marque la tâche comme terminée, votre système peut la supprimer de l'arrêt, mais laisser l'arrêt avec d'autres tâches qui lui sont attribuées.
Supprimez l'arrêt entier du véhicule.
Une fois que le conducteur a marqué toutes les tâches comme terminées et que le véhicule est en route vers le prochain arrêt, vous pouvez supprimer l'arrêt entier du véhicule. Fleet Engine ferme automatiquement toutes les tâches associées à un arrêt supprimé.
La fermeture d'une tâche n'indique pas la réussite ou l'échec
La fermeture d'une tâche indique seulement que la tâche n'est plus considérée comme en cours.
Pour les tâches à l'état CLOSED
, vous définissez leur résultat sur SUCCEEDED
ou FAILED
. Cela est nécessaire à la fois pour indiquer le résultat réel du suivi de l'expédition et pour une facturation appropriée. Fleet Engine ne facture que les tâches de diffusion dont l'état est "RÉUSSI".
Une fois que vous avez défini le résultat d'une tâche, vous ne pouvez plus le modifier
Lorsque vous marquez le résultat d'une tâche, Fleet Engine renseigne automatiquement l'emplacement du résultat de la tâche avec la dernière position connue du véhicule. Vous pouvez toutefois modifier l'heure et l'emplacement du résultat de la tâche une fois qu'ils ont été définis, et Fleet Engine ne remplacera pas ces champs.
5. Autres scénarios de tâches
Toutes les tâches que vous modélisez dans Fleet Engine ne correspondent pas à un parcours classique. Exemple :
- Tâches de retrait Lorsque vous avez une tâche de ramassage pour un colis à retourner au dépôt pour un traitement ultérieur, vous devez créer une tâche de livraison correspondante pour ce colis, en définissant l'emplacement prévu sur le dépôt. Sinon, les tâches de retrait suivent généralement le même flux que les tâches de livraison.
- Réattribution de tâches. Vous ne pouvez pas réattribuer directement une tâche à un autre véhicule. Pour déplacer une tâche d'un véhicule à un autre, fermez la tâche d'origine, puis recréez-la avant de l'attribuer au nouveau véhicule. Si vous modifiez l'ordre des tâches pour une tâche déjà attribuée à un autre véhicule, Fleet Engine génère une erreur.
- Supprimer des tâches Comme pour les véhicules, Fleet Engine supprime les tâches qui n'ont pas été mises à jour au bout de sept jours. Si vous essayez de réutiliser un ID de tâche précédemment fermée, Fleet Engine renvoie une erreur si cet ID a été utilisé au cours des sept derniers jours. À l'inverse, si vous souhaitez conserver les données de tâche pendant plus de sept jours, vous devez implémenter cette fonctionnalité vous-même, par exemple via une tâche planifiée pour réinitialiser le compteur de sept jours.
Partager la progression de la tâche
Dans Fleet Engine, vous pouvez surveiller l'avancement des tâches en temps réel et partager le parcours du conducteur de deux manières:
- L'expérience consommateur, qui permet aux consommateurs de connaître l'état de leur commande de livraison ou de la demande de service demandée.
- Le suivi de flotte, qui permet aux opérateurs de flotte de suivre et d'analyser l'état des véhicules de leur parc.
Expérience client
Pour partager la progression des tâches, vous devez configurer l'expérience utilisateur à l'aide du SDK client JavaScript. Le SDK vous permet d'améliorer l'expérience visuelle dans les applications Web ou mobiles afin que les consommateurs puissent surveiller l'état de leur commande, ainsi que les heures d'arrivée estimées et les mises à jour de la position en temps réel du véhicule de livraison. Consultez la présentation des tâches planifiées du SDK grand public.
Le SDK grand public contient une carte JavaScript et des composants de données à connecter à Fleet Engine. La carte est un remplacement direct d'un objet google.maps.Map
standard. Votre client doit authentifier vos utilisateurs finaux et utiliser le rôle consommateur Diffusion à partir de votre projet Google Cloud pour ne renvoyer que des informations spécifiques au client. Fleet Engine filtre et masque toutes les autres informations dans les réponses. Par exemple, lors d'une tâche d'indisponibilité, aucune information de localisation n'est partagée avec un utilisateur final.
Dans Fleet Engine, vous activez les paramètres suivants pour partager la progression de la tâche avec le client :
- Les tâches utilisent la propriété
TaskTrackingViewConfig
. Facultatif. - Les tâches utilisent un ID de suivi, dont la bibliothèque a besoin pour identifier les tâches pertinentes pour un consommateur.
Suivi de flotte
La bibliothèque JavaScript de suivi de flotte vous permet de visualiser la position des véhicules de votre flotte en quasi temps réel. La bibliothèque utilise l'API Fleet Engine pour fournir une visualisation des véhicules de livraison ainsi que des tâches qui leur sont attribuées. Comme le SDK client JavaScript, il contient un composant de carte JavaScript qui remplace directement une entité google.maps.Map
standard avec les composants de données que vous utilisez pour vous connecter à Fleet Engine.
Cette bibliothèque affiche la visibilité des véhicules de livraison dès leur création dans Fleet Engine. Pour cette implémentation, vous utilisez le rôle Cloud IAM Super-utilisateur du service Fleet Engine et vous fournissez une revendication de jeton Web Java pour accéder aux véhicules de livraison et aux tâches associées.
Scénarios de tâches planifiées
Cette section présente différents scénarios de tâches qui résument les informations fournies à ce stade du guide. Il a pour but de vous aider à comprendre les différentes façons de modéliser vos opérations de transport dans Fleet Engine, en fonction de votre activité.
Livraison avec suivi
Ce scénario de livraison montre une tâche d'arrêt planifié attribuée au dépôt au départ du dépôt au début du trajet et à l'arrivée au dépôt à la fin du trajet. Il affiche également deux tâches de livraison pour un arrêt, dont une en échec. Utilisez cette attribution pour activer le suivi depuis et vers le dépôt, et pour modéliser les heures de début et d'arrêt de la journée. Aucune facturation n'est effectuée avec les tâches d'arrêt planifiées.
Retrait avec livraison en dépôt
Ce scénario montre comment modéliser un retrait avec la tâche de livraison correspondante. Vous définissez le retour au dépôt comme une livraison à des fins de facturation.
Véhicule de distribution
Ce scénario montre deux livraisons avec un arrêt planifié au milieu pour un véhicule d'alimentation, l'objectif étant de permettre au véhicule de livraison de revenir au dépôt avec un certain nombre de colis à expédier. Vous pouvez également modéliser le véhicule d'actualisation de contenu avec un arrêt planifié.
Durée de la tâche
Modéliser les temps de tâche permet de planifier efficacement les itinéraires, de déterminer les temps de livraison estimés et de gérer les attentes de livraison. Fleet Engine propose deux fonctionnalités clés pour modéliser et anticiper le calendrier des tâches, comme décrit dans cette section.
Durée de la tâche
La durée de la tâche est définie avec le champ task_duration
, un champ obligatoire qui modélise le temps prévu que le conducteur passe à effectuer des tâches à un arrêt ou à faire une pause. Pour les arrêts, cela englobe toutes les activités nécessaires après l'arrivée à l'arrêt, telles que le déchargement des colis et l'interaction avec le destinataire. Plus ces informations sont précises, plus Fleet Engine peut fournir des heures d'arrivée et des heures d'arrivée prévue réalistes pour les arrêts suivants du trajet.
Pour en savoir plus sur les champs, consultez la section Duration dans la documentation de Protocol Buffers.
Fenêtre temporelle cible
L'heure cible définit une plage horaire proposée pour une tâche, généralement utilisée pour communiquer avec les clients ou à des fins de planification interne. Vous définissez cette valeur avec le champ target_time_window
, qui comprend une heure de début et une heure de fin.
Cela n'influence pas directement le calcul des itinéraires, mais peut être utilisé dans des situations telles que l'alerte d'un consommateur concernant un créneau horaire pour la livraison d'un package ou l'arrivée d'un service worker planifié.
Attributs de tâche
Les attributs de tâche dans Fleet Engine permettent de filtrer facilement des tâches en fonction de caractéristiques spécifiques lorsque vous utilisez la requête ListTasks
. Vous pouvez également utiliser des attributs de tâches personnalisés pour l'analyse avec Cloud Logging, ainsi que pour la communication d'informations aux consommateurs ou pour le suivi du parc. L'objectif est semblable à celui des attributs de véhicule: utilisez-les pour créer une perspective plus ciblée de vos opérations de livraison.
Limites et restrictions
- Création d'attributs personnalisés: Fleet Engine limite le nombre d'attributs personnalisés que vous pouvez définir par tâche. Contactez votre conseiller commercial pour demander une augmentation de ces limites.
- Fonctionnalités de filtrage: tout en offrant une flexibilité de filtrage, les attributs de tâche ne remplacent pas les champs de données principaux des tâches. Utilisez-les pour un filtrage supplémentaire en fonction de vos besoins spécifiques.
- Chaque attribut doit avoir une clé unique.
- N'incluez pas d'informations permettant d'identifier personnellement l'utilisateur ni d'autres informations sensibles dans la valeur de l'attribut, car elles pourraient être visibles par l'utilisateur.
- Validation des données : assurez-vous que les types et formats de données de vos attributs personnalisés sont compatibles avec les exigences de Fleet Engine.