Limites de la planification et de l'optimisation avancées
Découvrez les limites de la planification et de l'optimisation avancées.
Éditions requises
| Disponible avec : Disponible avec Lightning Experience et Salesforce Classic avec les éditions suivantes dans lesquelles Field Service est activée : Enterprise Edition, Unlimited Edition et Developer Edition |
Cette fonctionnalité est un package géré Field Service.
Limites de la plate-forme affectant Field Service
L'un des principaux avantages de l'utilisation de la planification et de l'optimisation avancées est la réduction des limitations, comme on peut le voir en comparant les limitations moteur côte à côte.
| Limite | Planification et optimisation | Planification et optimisation avancées |
|---|---|---|
| Nombre maximal de classes Apex planifiées simultanément (Tâches planifiées) | 100 | 100, mais vous n'atteindrez probablement pas cette limite, car vous pouvez configurer de nombreuses exécutions d'optimisation par tâche planifiée. Chaque tâche consomme une tâche planifiée Apex. Consultez Gestion des tâches planifiées dans Field Service. Remarque Si vous configurez une planification récurrente exécutée toutes les x minutes, plusieurs tâches planifiées Apex sont créées en conséquence. Par exemple, si vous configurez une récurrence toutes les 15 minutes, cela est comptabilisé comme 4 tâches planifiées Apex. |
Nombre de transactions simultanées synchrones pour les transactions de longue durée qui durent plus de 5 secondes pour chaque organisation.1 |
En fonction du nombre de licences applicables 2 dans une organisation, la limite est calculée sur la base d'un ratio de 100 licences pour une transaction Apex longue durée simultanée3 .
|
Non applicable |
| Exécution de tâches par lot Apex en parallèle | 5 | Non applicable |
| Nombre maximal de rendez-vous de service optimisés par période de 24 heures consécutives | 50 000 Seules les requêtes d'optimisation globales, quotidiennes et de planification de ressources sont prises en compte dans cette limite. |
La limite est la plus élevée entre 50 000 et 500 par licence Field Service Scheduling. Si vous utilisez le moteur avancé, vous pouvez vérifier si vous respectez la limite. Pour cela, surveillez la consommation réelle dans Requêtes d'optimisation, Dernières 24 heures, sous Informations sur la société dans Configuration. Tous les types d'action de planification sont pris en compte dans cette limite, par exemple la planification du diagramme de Gantt, l'obtention de candidats, la prise de rendez-vous et les types de requête d'optimisation de la planification globale, le jour même et des ressources. Les actions de planification de non-optimisation, par exemple l'action Planifier, ne contribuent qu'à un seul décompte (le rendez-vous planifié). |
| Compétences maximales par ressource de service | 100 | 250 |
1 Si d'autres transactions sont démarrées alors que le nombre par défaut de transactions longues est toujours en cours d'exécution, elles sont refusées. Le temps de traitement des appels externes HTTP n'est pas inclus dans le calcul de cette limite.
2 Les types de licence pris en compte dans cette limite comprennent les licences utilisateur Salesforce et Salesforce Platform complètes, les licences utilisateur App Subscription, les utilisateurs Chatter Only, les utilisateurs Identity et les utilisateurs Company Communities.
3 Par exemple, si votre organisation a 4000 licences, la limite en requêtes Apex longues simultanées est fixée à 40. Si votre organisation a 5000 licences ou plus, la limite en requêtes Apex longues simultanées est fixée à 50, ce qui correspond à la limite maximale plafonnée. Si votre organisation possède 1000 licences ou moins, la limite en requêtes Apex longues simultanées est définie à 10, ce qui correspond à la limite plancher minimale.
Limites
Avant d'utiliser la Planification et l'optimisation avancées, prenez connaissance des limitations.
Transactions DML séparées
Les renvois ne sont pas autorisés lorsqu’une transaction non engagée est en attente. Lorsque vous récupérez les créneaux horaires disponibles ou planifiez un rendez-vous, si une exception DML a été exécutée avant que le service soit appelé, une exception est renvoyée. Vous devez au préalable engager ou annuler avant le renvoi.
Cette exception peut être soulevée dans deux scénarios principaux.
Scénario 1 : Appels explicites au moteur de planification et d'optimisation
Lorsque vous appelez explicitement Planification et optimisation avancées via l'une de nos API Apex documentées, si des opérations DML ont eu lieu dans la même transaction avant l'appel externe Planification et optimisation avancées, vous rencontrez une erreur Travail en attente non engagé.
Cette exception est également levée si vous n'utilisez pas la Planification et l'optimisation avancées, en particulier lorsqu'un appel externe se produit pour calculer le temps de trajet et que l'acheminement au niveau de la rue ou l'acheminement prédictif de point à point est activé. Dans ce cas, l'exception n'est pas renvoyée lorsque l'option Éviter le calcul aérien en cas d'exception DML d'appel externe est désactivée dans les Paramètres de Field Service, car le calcul de l'acheminement aérien est rétabli pour le temps de trajet. Ce paramètre n'est pas pertinent si vous utilisez la Planification et l'optimisation avancées, car un appel externe est toujours effectué.
Vous pouvez éviter l'exception.
- Exécutez les opérations DML requises dans une transaction séparée avant d'appeler la planification et l'optimisation avancées. Vous pouvez créer un point de terminaison d'API REST Apex qui exécute les opérations DML, que vous pouvez appeler depuis un code Apex.
- Utilisez un flux, en exécutant les opérations DML des étapes avant d'appeler la planification et l'optimisation avancées en tant qu'action invocable. L'élément d'action inclut des paramètres avancés qui permettent de configurer l'action à exécuter dans le cadre d'une nouvelle transaction. Ces paramètres ne sont pas pris en charge pour les flux lancés automatiquement.
Consultez Séparation des transactions pour activer l'utilisation de la planification et de l'optimisation avancées. https://help.salesforce.com/s/articleView?id=000396257&type=1&language=fr
Scénario 2 : Appels inexplicites déclenchant un recalcul du temps de trajet
Cette exception peut également être levée lorsque vous n'appelez pas explicitement Planification et optimisation avancées, mais qu'un appel externe est automatiquement déclenché pour recalculer le temps de trajet. Ce recalcul automatique se produit lorsque vous modifiez certains champs via n'importe quelle API Salesforce, ce qui oblige le système à tenter de recalculer les temps de trajet.
- Champs Rendez-vous de service : Ressource attribuée, Début planifié ou Fin planifiée
- Champs d'absence : Ressource, Début ou Fin
Comme ces modifications déclenchent automatiquement des recalculs de temps de trajet, vous ne pouvez pas séparer le DML (la mise à jour de champ) en deux transactions. Le système essaie d'effectuer le recalcul dans une autre transaction, qui peut entraîner des problèmes, pendant les processus par lot. Les processus non par lot réussissent toujours, quel que soit le moteur de planification et d'optimisation utilisé.
- Lorsque vous n'utilisez pas la planification et l'optimisation avancées : Si l'acheminement au niveau de la rue ou l'acheminement prédictif de point à point est activé, ce scénario entraîne une erreur Travail en attente non engagé pendant le calcul automatique du temps de trajet. Pour atténuer ce problème, autorisez le système à utiliser l'acheminement aérien. Dans l'application Field Service Admin, cliquez sur Paramètres de Field Service | Planification , puis désélectionnez Éviter le calcul aérien en cas d'exception DML d'appel externe. Si ce paramètre est désactivé, le calcul du temps de trajet rétablit l'acheminement aérien et évite l'exception.
- Lorsque vous utilisez Planification et optimisation avancées : Lorsque ces champs sont mis à jour dans un processus par lot, la planification et l'optimisation avancées ne recalculent pas automatiquement les temps de trajet, mais n'entraînent pas non plus d'erreur.
Planification et optimisation
- L'explication Calcul de l'objectif est manquante pour Obtenir des candidats et Prise de rendez-vous.

- La planification d'un rendez-vous de service hors des heures ouvrables d'une ressource par glisser-déposer entraîne une infraction aux règles. Le temps de trajet vers et depuis le rendez-vous de service n'est pas calculé, et d'autres règles ne sont pas validées.
- Le temps de trajet vers et depuis une absence de ressource créée hors des heures de travail d'une ressource n'est pas calculé.
- La planification partielle d'un rendez-vous de service hors des heures ouvrables peut entraîner une infraction à la règle de Correspondance du territoire.
- Lorsque tous les rendez-vous de service d'un jour sont optimisés, puis déprogrammés, l'utilisation affichée dans le diagramme de Gantt est imprécise. L'utilisation est de nouveau mise à jour lorsque des rendez-vous sont planifiés.
- Lorsque l'option Calculer le temps de trajet et les pauses dans la section Acheminement des Paramètres de Field Service est désactivée, les temps de trajet et les pauses ne sont pas mis à jour dans le diagramme de Gantt si vous effectuez manuellement des modifications. Cependant, lorsque vous utilisez le glisser-déposer, les temps de trajet et les pauses sont mis à jour, quel que soit ce paramètre.
- Le champ Objets planifiés de la requête d'optimisation n'est pas rempli lorsque vous utilisez Planification et optimisation avancées. Cependant, le champ de données Rendez-vous de service planifiés est rempli dans la section Rendez-vous de service planifiés de la plate-forme d'optimisation.
- Lorsque votre implémentation utilise l'efficacité des ressources, l'optimisation avancée peut entraîner des chevauchements si les rendez-vous de service sont épinglés ou la déprogrammation des rendez-vous s'ils ne sont pas épinglés (car l'espace disponible est insuffisant dans la planification). La Planification et l'optimisation avancées arrondissent la durée des rendez-vous de service.
- La Planification et l'optimisation avancées ne peuvent pas planifier un rendez-vous de service à l'heure exacte du début de la pause déjeuner (l'heure définie dans le champ Début de la pause de la règle de travail Disponibilité de la ressource). Lorsque vous utilisez la Prise de rendez-vous, le moteur de planification ne renvoie pas ce créneau horaire, et lorsque vous planifiez manuellement le rendez-vous de service dans le diagramme de Gantt, le rendez-vous se superpose à la pause déjeuner. Nous recommandons de planifier le rendez-vous de service une minute avant ou après le début de la pause. Pour la Prise de rendez-vous, définissez le créneau horaire une minute avant ou après la pause dans les heures ouvrables de Prise de rendez-vous.
- Pendant l'optimisation, les résultats du déclencheur sont mis à jour dans un lot avec un temps CPU maximum de 60 secondes, car la transition est asynchrone. Lors de l'utilisation de la Planification et l'optimisation avancées, ce temps de processeur est réduit à 10 secondes, car la transaction est synchrone. Pour améliorer les performances du déclencheur, optimisez la logique développée dans des déclencheurs Apex, dans les objets Rendez-vous de service et Absence de ressource. Vous pouvez déplacer la logique à exécuter dans le cadre d'un processus asynchrone, par exemple Queueable Apex. Pour optimiser la taille du lot utilisée pour réécrire les résultats dans Salesforce, contactez le Support client de Salesforce.
- Un parcours planifié dans un flux déclenché par un enregistrement ne fonctionne pas toujours avec l'optimisation lorsque Planification et optimisation avancées est activée. Dans ce cas, les mises à jour de l'optimisation sont effectuées par l'utilisateur de l'intégration de la plate-forme qui dispose d’un ensemble d'autorisations basé sur la session inactif pendant l'exécution du parcours planifié. Pour accorder à cet utilisateur l'autorisation requise, clonez l'ensemble d'autorisations Intégration Field Service, désactivez l'option Activation de la session requise, puis enregistrez. Attribuez ensuite cet ensemble d'autorisations à l'Utilisateur d'intégration de la plate-forme. Vous pouvez ajouter d'autres ensembles d'autorisations à cet utilisateur si nécessaire.
- La planification et l'optimisation avancées utilisent l'utilisateur de l'intégration de la plate-forme, qui utilise la licence Cloud Integration User. Certaines de vos personnalisations et fonctionnalités OOTB produit peuvent être impactées par cette limitation. Vous devez ajouter tous les champs personnalisés utilisés dans les règles et les objectifs à l'ensemble d'autorisations Intégration Field Service avant d'attribuer la règle ou l'objectif à une stratégie de planification. Nous recommandons de vérifier que toutes vos personnalisations et fonctionnalités de OOTB produit disposent de l'accès nécessaire et qu’elles fonctionnent normalement. Ajoutez les autorisations requises à l’Utilisateur d’intégration de la plate-forme. Lors de l'utilisation de la synchronisation du calendrier avec la Planification et l'optimisation avancées activées, les rendez-vous de service Répartis doivent avoir un statut épinglé.
- La couverture des heures ouvrables sur 24 n'est pas prise en charge pour les agents mobiles.
- Si vous utilisez la Planification et l'optimisation avancées, lorsque l'efficacité des ressources de service est utilisée et appliquée à la durée de l'attribution de rendez-vous de service, le moteur arrondit à la minute près le temps réel nécessaire pour exécuter les valeurs d'un rendez-vous. Si vous n'utilisez pas la planification et l'optimisation avancées, le moteur est arrondi à la minute la plus proche.
- Si vous utilisez la Planification et l'optimisation avancées, lorsque le statut d'un rendez-vous de service planifié pour une équipe change en Réparti, la notification est affichée deux fois dans la publication Chatter.
- Lorsque vous créez ou modifiez des absences de ressource ou modifiez des rendez-vous de service planifiés, l'horizon de la requête est limité à 30 jours. Par exemple, si vous créez une absence de ressource en février et une absence de ressource en avril dans la même transaction, le temps de trajet et les pauses déjeuner ne sont pas créés ni mis à jour.
- Si un répartiteur planifie manuellement un rendez-vous de service ou une absence de ressource pendant une période de chevauchement, et que le temps restant n'est pas suffisant pour le trajet réel vers ou depuis le domicile, aucun rendez-vous ne peut être pris pour la ressource ce jour-là.
- Si le moteur planifie une pause déjeuner après un rendez-vous de service et que vous planifiez manuellement un autre rendez-vous de service où le temps de trajet chevauche la pause déjeuner, la pause déjeuner est reportée à l'heure de début la plus proche et chevauche le temps de trajet. L'infraction à la règle est affichée dans le rendez-vous de service que vous avez planifié manuellement et qui entraîne l'infraction, pas dans le rendez-vous de service qui chevauche la pause.
- Si vous n'utilisez pas l'échelle dynamique, le nombre maximal de territoires de service que vous pouvez sélectionner pour un groupe (par requête) pour des tâches planifiées avancées est de 100. Avec l'échelle dynamique, la limite est de 1000.
- La planification et l'optimisation avancées ne gèrent pas correctement le travail sur plusieurs jours qui commence ou se termine pendant les heures creuses, à un moment où le déplacement aux frais de la ressource est autorisé. De tels cas peuvent entraîner des chevauchements d'infractions incorrects et des temps de trajet imprécis.
Territoires de service et ressources de service
- Les rendez-vous de service longs doivent être marqués comme des rendez-vous de service sur plusieurs jours pour garantir la précision des calculs de planification et de temps de trajet.
- Lorsque deux postes de travail ou créneaux horaires sont définis pour une ressource le même jour, chaque poste de travail ou créneau horaire est considéré comme un « jour » différent, et chacun inclut le trajet de la ressource vers et depuis son domicile.
- L'ancrage (planification en utilisant ctrl/cmd + glisser-déposer) d'un rendez-vous de service à une absence de ressource n'est pas pris en charge et ne change pas la planification.
- Lors de la planification manuelle d'un rendez-vous de service sur plusieurs jours par glisser-déposer, l'heure de début planifiée doit être comprise dans une période valide pour que la durée soit correctement calculée. Par exemple, si le rendez-vous de service sur plusieurs jours planifié commence lorsque la ressource de service n'est pas disponible (pendant un poste de travail non disponible, une absence de ressource ou une pause déjeuner), la durée du rendez-vous de service sur plusieurs jours n'est pas calculée avec précision pour prendre en compte seulement les heures de travail.
- La combinaison de la planification sur plusieurs jours et du travail complexe n'est pas prise en charge. Si un rendez-vous de service sur plusieurs jours fait parti d'une dépendance de planification, sa date de fin planifiée n'est pas calculée lors de la planification du rendez-vous.
- Lors de l'utilisation de la planification et de l'optimisation avancées, l'utilisation dans le diagramme de Gantt ne prend pas en compte les rendez-vous de service sur plusieurs jours.
