L'affectation automatique des ressources s'appuie sur un "solveur de contraintes" se basant sur un algorithme non déterministe dont le but est de proposer l’assignation d’intervenants et de moyens matériels pour la ou les interventions sélectionnées et qui correspondent aux critères d'assignation définis au niveau du moteur d'affectation.
L'action d'affectation automatique des ressources n'est accessible que si vous disposez du droit de profil "Lancer l'affectation automatique des ressources" et que l'utilisateur possède le droit de modification sur les interventions.
Fonctionnement général du solveur de contraintes
Lorsque le solveur commence sa recherche de solutions, rien ne lui indique comment et quand il devra s’arrêter. Afin de trouver un équilibre entre la pertinence de la solution générée et le temps d’exécution nécessaire à la recherche d’une solution acceptable, un mécanisme d’arrêt est paramétré.
Ce mécanisme permet d’observer l’évolution qualitative des solutions proposées par le solveur. Chaque solution générée est évaluée et se voit attribuer un score selon plusieurs critères. Le mécanisme d’arrêt de l’optimisation va observer l’évolution des scores attribués à chaque solution.
L’amélioration des solutions étant de plus en plus difficile au cours du temps, si aucune solution générée ne surpasse la meilleure solution trouvée pendant une durée (défini dans les paramètres de modules) alors l’optimisation s’arrêtera.
Contraintes de pondération
Contraintes fortes
- L’affectation d’un intervenant à une ressource doit se faire en respectant les disponibilités du technicien,
- Un intervenant ne peut pas être affecté à plusieurs ressources en même temps,
- L'affectation est bornée par les dates de l'intervention,
- L'affectation doit respecter l'équipe et/ou la spécialité et/ou l'intervenant renseigné.
Contraintes faibles
- Utiliser le moins d'intervenants possibles.
- Privilégier l'heure exacte définie. En revanche, des solutions sont également évaluées avec des horaires autour de l'heure définie tout en minimisant le score de la solution. Le paramétrage se réalise au travers des paramètres de modules (WO_OPTA_PERIOD, WO_OPTA_STEP).
Une solution doit respecter toutes les contraintes fortes. Les contraintes faibles quant à elles permettent de minimiser ou maximiser le score de la solution.
Contraintes de lancement
Pour que l'affectation automatique des ressources puissent se lancer pour la ou les interventions sélectionnées, il faut quelles répondent aux contraintes suivantes :
- L'intervention doit être dans un état appartenant à une famille d'états différente de TERMINER / SOLDER / ARCHIVER / ANNULER.
- Pour chaque ligne de main d'oeuvre ou moyen matériel souhaité(e), il est nécessaire de renseigner :
- Au moins une équipe et/ou spécialité et/ou intervenant,
- Une date et heure,
- Une durée.
- Les calendriers des intervenants doivent être renseignés.
A chaque lancement de l'action "Affectation automatique des ressources", un identifiant unique est généré et est associé à l'ensemble des données modifiées (intervention, lignes Main d'oeuvre et moyen matériel).
Cette information est disponible en base de données et permet un meilleur suivi.
Scénarios
- Renseigner les données de l'intervention en respectant les contraintes,
- Lancer l'action "Affectation automatique des ressources",
--> un message informe du lancement de l'action en mode asynchrone et de la génération d'un mémo à la fin du traitement,
- A la fin du traitement en mode asynchrone, un mémo est généré permettant de connaître le statut de l'affectation automatique :
--> Affectation Automatique Terminée : ce type de mémo apparait lorsque l'affectation automatique a pu réaliser une affectation automatique pour au moins une intervention. Un lien permet d'ouvrir la liste des interventions où une affectation a pu être réalisée.
--> Affectation Automatique Impossible : ce type de mémo apparaît lorsque l'affectation automatique n'a pas pu réaliser d'affectation pour toutes les interventions soit à cause des contraintes de lancement non renseignées, soit à cause d'aucune solution trouvée