Bonjour Arnaud, La démarche du script n'est pas la bonne. Il vaudrait mieux faire un plugin ! Car un plugin peut intercepter les updates d'un ticket (=hook). Et dans ces hooks le plugin peut détecter une modif sur un champ ou un autre. Il peut modifier des champs à la volée ou faire d'autres choses sur ceux-ci.
Voir plugin Example : https://forge.indepnet.net/projects/example/files A ta disposition pour plus d'infos sur les plugins. Cordialement, Olivier MORON Miscellaneous Program Member RAYNET SNC Tel : +33 4 76 33 49 52 Fax: +33 4 76 70 56 63 From: Glpi-dev [mailto:glpi-dev-boun...@gna.org] On Behalf Of Arnaud Roudeau Sent: Thursday, July 09, 2015 10:35 AM To: glpi-dev@gna.org Subject: [Glpi-dev] Recherche de la Fonction permettant de récupérer les actions effectuées par une règle métier ticket Bonjour, Besoin : Je recherche la fonction permettant d'appliquer/récupérer les actions effectuées par une règle métier en fonction de certains critères Explication : Actuellement je suis sur une version 0.84.5 de GLPI sans possibilité de migrer sur une nouvelle version. J'ai la problématique suivante, lors du cycle de vie des tickets support, régulièrement, ceux-ci sont recatégorisés par les techniciens, mais sur la 0.84.5, le SLA et la due date associée à la catégorie n'est pas recalculé lors de cette action. Actuellement je développe un script permettant de détecter cette modification et ainsi repositionner le SLA et recalculer la due date. 1. Je détecte la modification de catégorie en parcourant les logs à la recherche de l'event associé 2. Je réapplique le SLA en appliquant la règle métier 3. Je recalcule la due date en fonction du nouveau SLA positionner Pour les points 1 et 3 j'ai trouvé les méthodes et fonctions nécessaires dans les classes GLPI, mais pour le point 2, j'ai recherché de long en large dans les class et form GLPI sans trouver de réelle piste. Si quelqu'un sait quelle fonction ou connais une méthode pour réappliquer uniquement la règle relative au SLA a un ticket, je suis preneur :) Par avance merci :) Ci-dessous le code que j'utilise pour le recalcul de la due date si cela peut aider quelqu'un : Le script doit se trouver dans un dossier placé dans le répertoire GLPI sinon cela ne fonctionne pas (personnellement un dossier nommé « recalsla » mit dans le dossier « inc »). La fonction RecalDueDate est un dérivé de la fonction original de glpi getDatasToAddSLA <?php define('GLPI_ROOT', 'C:\WebServer\htdocs\glpi'); include (GLPI_ROOT . "/inc/includes.php"); // variable à récupérer dans la base via sql en temps normal $sla = 8 ; $entities = 1 ; $datedeb = '2015-07-02 11:43:00' ; $waitingTime = 0 ; function RecalDueDate($slas_id, $entities_id, $date,$waitingTime) { $calendars_id = Entity::getUsedConfig('calendars_id', $entities_id); $data = array(); $sla = new SLA(); if ($sla->getFromDB($slas_id)) { $sla->setTicketCalendar($calendars_id); $data["slalevels_id"] = SlaLevel::getFirstSlaLevel($slas_id); $data['due_date'] = $sla->computeDueDate($date,$waitingTime); } else { return False ; } return $data; } // affichage de la due date print_r(RecalDueDate($sla, $entities, $datedeb,$waitingTime)) ; ?> Cordialement, [http://consort-group.com/e-signature/images/logoCNT2.gif][http://consort-group.com/e-signature/images/AnimationCNT2.gif] Arnaud ROUDEAU arnaud.roud...@consortnt.fr<mailto:arnaud.roud...@consortnt.fr> CONSORT FRANCE 34 rue Jean-Jaurès 92800 PUTEAUX CEDEX www.consortnt.fr<http://www.consortnt.fr/> Retrouvez Consort NT sur les réseaux sociaux : [http://consort-group.com/e-signature/images/viadeo_logo.png] Viadeo : http://www.viadeo.com/groups/consortnt [http://consort-group.com/e-signature/images/logo-facebook-16.png] Facebook : http://www.facebook.com/ConsortNT [http://consort-group.com/e-signature/images/greenit.png] Afin de contribuer au respect de l'environnement, n'imprimer ce courriel qu'en cas de nécessité.
_______________________________________________ Glpi-dev mailing list Glpi-dev@gna.org https://mail.gna.org/listinfo/glpi-dev