[Intégré 3.1.41] Fonction de clôture automatique

Décrivez les améliorations que vous souhaiteriez pour les prochaines versions.
cyrakuse
Gsup LEVEL 4
Messages : 118
Enregistré le : mar. 2 août 2016 10:01

Serait-il possible de mettre en place un système de clôture automatique de ticket.

Cette fonction permettrait d'assigner un état du type "Clôturé car inactif" au bout de X jours (réglable) si le ticket a été pris en charge et qu'un suivi a été saisi par un technicien.

En effet, nous avons régulièrement des tickets qui sont en attente de réponse du demandeur mais pour lequel le demandeur ne nous répond pas. Et du coup, ces tickets restent ouvert indéfiniment alors que très souvent nous n'avons pas de réponse car le demandeur a lui-même résolu son problème.
Gestsup 3.1.32
philogone
Gsup LEVEL 0
Messages : 6
Enregistré le : mar. 25 sept. 2018 16:31

UP sur ce point, ce serait en effet impératif pour garantir un niveau de clarté optimal dans la lecture des tickets a traiter.

Ces tickets finissent par se faire nombreux et polluent très rapidement le pool.

Même une simple requêtes ou une astuce de siou ferait l'affaire ...

merci d'avance
philogone
Gsup LEVEL 0
Messages : 6
Enregistré le : mar. 25 sept. 2018 16:31

Bonjour,

pas de réponses depuis le 25 Septembre ...

Je comprends que vous ayez du boulot, nous en avons tous, mais pouvez-vous au moins me dire si vous avez bien vu mon message et si il y a oui ou non quelque choses en cours a ce sujet ?

Bonne journée

Cordialement,

Version 3.1.20
apache 2.4.18
Mysql 5.7.19
php 7.0.22
OS ubuntu 16.04.3 LTS
Avatar du membre
Flox
Administrateur du site
Messages : 8973
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

La demande a bien été prise en compte, les priorités de développement sont déterminés par votes, afin de classer les 510 demandes actuelles.

https://gestsup.fr/index.php?page=roadmap

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
philogone
Gsup LEVEL 0
Messages : 6
Enregistré le : mar. 25 sept. 2018 16:31

Ok ça marche, merci pour la réponse :) et bon courage pour les 510 demandes à traiter :)
philogone
Gsup LEVEL 0
Messages : 6
Enregistré le : mar. 25 sept. 2018 16:31

Bonjour,

Est-il possible d'avoir une idée de l'avancement des différentes évolutions en cours ? ( même hypothétique)

Merci d'avance

Cordialement,
Avatar du membre
cyrenot
Gsup LEVEL 4
Messages : 136
Enregistré le : jeu. 5 avr. 2018 12:04
Localisation : Schiltigheim

Bonjour,
J'ai récemment implémenté une fonctionnalité similaire.
En voici le principe de fonctionnement.

Dans le cas où la validation de l’utilisateur est requise pour Terminer un ticket, le technicien positionnera :
  • La « Date de résolution » au jour de fin de ses actions
  • Le statut à « Attente retour utilisateur »
  • Ajoutera un commentaire pour demander la validation de fermeture du ticket à l’utilisateur.
Si avant 15 jours calendaire, l'utilisateur ou le technicien n'ont pas changé l'un des paramètres permettant la clôture automatique du ticket (date de résolution et statut spécifique positionnés), celui-ci sera clos.

IMPORTANT :
Il est à noter que ni l’utilisateur, ni le technicien ne recevront de mail pour les informer de la clôture automatique d’un ou plusieurs tickets.

J'ai créé une table de log (tincidents_autoupdate) qui permet de suivre les tickets fermés automatiquement. Le suivi de ces tickets est fait dans une appli externe (Power BI Desktop) que nous utilisons pour nos indicateurs.

Description technique :
1. Création de la table tincidents_autoupdate : voir script SQL en PJ
tincidents_autoupdate.zip
(725 Octets) Téléchargé 324 fois
2. Avec un compte admin qui a les droits de planification de tâches dans PHPMYADMIN, créer un événement dans la base de donnée BSUP.
description de l'événment :
SNAG-0000-10-09-2018_17.03.46.png
SNAG-0000-10-09-2018_17.03.46.png (51.61 Kio) Vu 9129 fois
L’événement est lancé tous les jours, le matin.
Voici le code de l’événement :
BEGIN

DECLARE currID int;
DECLARE currDate_Res datetime;

# Create the tincidents_temp table to iterate
DROP TEMPORARY TABLE IF EXISTS tincidents_temp;
CREATE TEMPORARY TABLE tincidents_temp AS
SELECT id, date_res
FROM tincidents
WHERE state = 6
AND date_res <> 0
ORDER BY id DESC;

WHILE (SELECT COUNT(*) FROM tincidents_temp) > 0
DO
SELECT id, date_res FROM tincidents_temp LIMIT 1 INTO currID, currDate_Res;

# Search if the current ID can be set to "Terminer"
IF DATEDIFF( Now(), currDate_Res ) >= 15 THEN
UPDATE tincidents
SET state = 3
WHERE id = currID;

# Add/Update a record when auto-update has been done
IF ( SELECT COUNT(id) FROM tincidents_autoupdate WHERE id = currID ) = 1 THEN
UPDATE tincidents_autoupdate
SET date_upd = Now()
WHERE id = currID;

ELSE
INSERT INTO tincidents_autoupdate
VALUES (currID, Now() );
END IF;
END IF;

DELETE FROM tincidents_temp WHERE id = currID;
END WHILE;

DROP TEMPORARY TABLE IF EXISTS tincidents_temp;
END

Voilà, j'espère que cela pourra vous aider et vous conviendra.
Bien cordialement.
------------------------------
GestSup : 3.2.29
PHP : 8.1.13
MariaDB : 10.5.18-MariaDB (nom de la base: bsup)
Windows NT 10.0 build 14393 (Windows Server 2016) AMD64
Apache : 2.4.54.2, serveur sécurisé
cyrakuse
Gsup LEVEL 4
Messages : 118
Enregistré le : mar. 2 août 2016 10:01

Joli travail.
Néanmoins, cela me parait un peu complexe au quotidien.
Pourquoi ne pas simplement mettre le ticket en statut "Résolu", puis, si le demandeur ne le fait pas, dans ce cas au bout de X jours, le ticket passe en statut "Clos".
Ainsi lors du passage en "Résolu", le demandeur reçoit une notification indiquant la résolution et lui demandant de clôturer via un simple lien qui le dirige vers le ticket et sur le ticket il trouve un simple bouton "Clôturer".

De plus, il faudrait pouvoir interdire la clôture aux technicien et que seul l'admin puisse clôturer avant la fin du délai.
Enfin, si le demandeur fait une réponse au ticket (par mail par exemple), il faudrait avoir 2 possibilités :
- soit il reçoit un mail en retour lui indiquant qu'il ne peut pas ré-ouvrir le ticket
- soit cela ré-ouvre le ticket en y ajoutant la réponse
Gestsup 3.1.32
Avatar du membre
cyrenot
Gsup LEVEL 4
Messages : 136
Enregistré le : jeu. 5 avr. 2018 12:04
Localisation : Schiltigheim

Bonjour,

Pour l'usage au quotidien de la solution proposée, c'est très simple. Notre gestion n'est peut-être pas la même que la vôtre et c'est une des forces de GestSup, c'est que nous pouvons l'adapter à chaque process.
Je n'ai peut-être pas été assez précis quand à la gestion de nos statut. Voici notre contexte qui n'est peut-être pas applicable à tous :
Nous (technicien) positionnons le statut "Attente Retour" lorsque nous pouvons attendre 2 types d'information d'un utilisateur :
1. une information pour poursuivre le traitement du ticket,
2. une validation de la part de l'utilisateur en vue de valider la solution apporter.

Dans le 2e cas, nous positionnons manuellement la "date de résolution" afin de fermer le ticket automatiquement lorsque 15 jours calendaire se sont écoulés et que nous n'avons pas reçu de réponse. Si l'utilisateur ne valide pas la demande, nous supprimons la "date de résolution" et poursuivons les investigations/corrections.


Votre proposition est intéressante.
Le statut "Clos" n'existe pas et lorsque l'on clique sur le bouton "Clôturer", c'est le statut "Résolu" qui est appliqué. Pour mettre en œuvre votre proposition, il faudrait créer un nouveau statut et mettre à jour le code pour gérer les cas particuliers mentionnés.

Voici pourquoi nous avons choisi cette solution simple et qui correspond au process que nous avons choisi de mettre en place :
Nous avons choisi d'adapter notre process aux possibilités de GestSup afin de limiter la maintenance lors des montées de version.
=> pas de modif de code (ou exceptionnelle). Utilisation des triggers ou des événements de base de données.

Dans notre cas, c'est le techniciens qui a la main sur le statut des tickets. Cela évite des changements intempestifs et des réouvertures de tickets de la part des utilisateurs. Les techniciens sont responsables des statuts et du flux. Comme il n'y a pas de gestion de workflow, c'est la solution que nous avons choisie.

De plus, si l'utilisateur ne répond pas à la demande de validation au bout de 15 jours calendaire, c'est dans 98% des cas que le problème n'existe plus ou que cela n'est vraiment pas important pour lui et que par conséquent, nous n'allons pas garder ouvert une demande pour laquelle l'utilisateur n'apporte pas d'attention. Bien évidement, nous relançons de vive voix les utilisateurs pour leur rappeler que nous attendons leur retour.
------------------------------
GestSup : 3.2.29
PHP : 8.1.13
MariaDB : 10.5.18-MariaDB (nom de la base: bsup)
Windows NT 10.0 build 14393 (Windows Server 2016) AMD64
Apache : 2.4.54.2, serveur sécurisé
Avatar du membre
Flox
Administrateur du site
Messages : 8973
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

Pouvez vous valider que les évolutions suivantes répondent au besoin initial:

Paramétrage :
Activer / désactiver la fonction de clôture auto
Nombre de jours avant fermeture auto
Etat : en attente de retour ou tous

Tâche journalière :
Si ticket non résolu, avec commentaires technicien depuis plus de X jour alors fermeture.

clôture: Ticket en état résolu, notification automatique par mail si activée. Ajout d'un élément dans la résolution indiquant la fermeture automatique.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
Répondre