You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2020-01-03 23:06:44

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

GLPI | Power BI | Reporting

Bonjour tout le monde,

Utilisant GLPI depuis un certain temps, je peaufine chaque année mes compétences dessus afin d'améliorer le service HelpDesk de ma société.
Je m'attaque aujourd'hui a un sujet important pour moi qui est le reporting des tickets.

J'ai essayé de jongler avec les reportings de base ou avec des plugins comme "Dashboard" mais ils ne m'ont pas donnés satisfaction.
La méthode que nous utilisons actuellement est de faire une extraction des tickets par client en csv et de le travailler ensuite sur un excel.


Petit rappel pour se connecter à la base MariaDB avec Power BI :
1) Installation de Power BI Desktop sur une machine
2) Télécharger le connecteur ODBC pour MariaDB sur le site officiel (Même principe pour MySQL)
3) Lancer l'utiliataire "ODBC Data Source" depuis Windows
4) Selectionner le connecteur en question
    3
5) Rentrer les informations demandées (dans mon cas)
      - Nom a donner au connecteur
      - IP du serveur et identifiant aillant les droits sur la base
      - Un bouton test permet de tester la connexion
    4
/!\ Si le test est en erreur vérifier que le pare-feu (côté client et serveur) laisse passer le port MYSQL (par défaut 3306). Dans mon cas c'était le pare-feu de Centos qui le bloquait.
      - Si le test réussi un message vous l'indique et vous pouvez choisir votre base
    5
6) Lancer Power Bi Desktop
7) Choisir ensuite "ODBC" dans le menu "Get Data". Une fenetre s'ouvre et vous n'avez plus qu'à selectionner votre connecteur que vous venez de créer.
    6
8) Enjoy ! smile


Les tables sur lesquelles je travaille pour le moment sont :
- glpi_tickets
- glpi_entities
- glpi_users

Création de mon premier report qui comporte les informations suivantes :
Nom de l'entitité | Nombre de ticket | Année | Charge totale

Création des jointures entre les trois tables :
2

Résultat du tableau avec les filtres en place :
1


Je vais continuer mes tests mais auriez une idée pour convertir la colonne "actiontime" en charge (1h=1, 30 minutes=0,5) ? Est ce que je suis obligé de créer une nouvelle colonne quelque part avec une formule dedans ?


Merci d'avance pour votre aide smile

Last edited by Robin MATHE (2020-01-05 14:37:13)


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

#2 2020-01-06 10:24:43

Sico31
Member
Registered: 2018-09-24
Posts: 324

Re: GLPI | Power BI | Reporting

Peso, j'ai fait une table dérivée uniquement, avec donc une requête personnalisée, afin d'avoir les colonnes avec les infos qui m’intéressent.


Manger un castor, c'est sauver un arbre

Offline

#3 2020-04-02 18:42:56

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

Re: GLPI | Power BI | Reporting

Je reviens sur mon topic pour indiquer que j'ai reussi a faire ce que je souhaitais avec PowerBi.
Il a fallut créer de nouvelles tables pour rajouter les valeurs manquantante a mes requetes.

Last edited by Robin MATHE (2020-04-03 19:05:43)


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

#4 2020-04-03 12:02:07

Sico31
Member
Registered: 2018-09-24
Posts: 324

Re: GLPI | Power BI | Reporting

perso, j'ai une table dérivée avec la requête qui me transforme les données voulues (notamment ajout de plage horaire).

SELECT distinct glpi_tickets.id ID,
 glpi_itilcategories.name Categorie,
 case glpi_tickets.type when 1 then "Incident" else "Demande" end as Type,
 glpi_itilcategories.completename Categorie_cplte,
 case glpi_itilcategories.level
	when 1 then glpi_itilcategories.name
	else substr(glpi_itilcategories.completename,1,instr(glpi_itilcategories.completename, ">")-2)
 end as cat_mere,
 case 
 when time(glpi_tickets.date)="00:00:00" then glpi_tickets.Date_creation
 else glpi_tickets.date
 end Date,
 date_format(glpi_tickets.date,"%H:%i") heure_ticket,
 case 
	when date_format(glpi_tickets.date,"%H:%i") < 08 then "Avant 8h"
    when date_format(glpi_tickets.date,"%H:%i") between 08 and "09:59" then "8h-10h"
    when date_format(glpi_tickets.date,"%H:%i") between 10  and "11:59" then "10h-12h"
    when date_format(glpi_tickets.date,"%H:%i") between 12  and "13:59" then "12h-14h"
    when date_format(glpi_tickets.date,"%H:%i") between 14  and "15:59" then "14h-16h"
    when date_format(glpi_tickets.date,"%H:%i") between 16  and "17:59" then "16h-18h"
    else "Après 18h" end Plage_heure,
 glpi_tickets.Date_creation,
 glpi_tickets.solvedate Date_resolution,
  date_format(glpi_tickets.solvedate,"%H:%i") heure_resolution,
 case 
	when date_format(glpi_tickets.solvedate,"%H:%i") < 08 then "Avant 8h"
    when date_format(glpi_tickets.solvedate,"%H:%i") between 08 and "09:59" then "8h-10h"
    when date_format(glpi_tickets.solvedate,"%H:%i") between 10  and "11:59" then "10h-12h"
    when date_format(glpi_tickets.solvedate,"%H:%i") between 12  and "13:59" then "12h-14h"
    when date_format(glpi_tickets.solvedate,"%H:%i") between 14  and "15:59" then "14h-16h"
    when date_format(glpi_tickets.solvedate,"%H:%i") between 16  and "17:59" then "16h-18h"
    when date_format(glpi_tickets.solvedate,"%H:%i") is NULL then ""
    else "Après 18h" end Plage_heure_resolution,
 glpi_tickets.priority Priorite,
 glpi_groups.completename Groupe,
 glpi_requesttypes.name Origine,
 glpi_slas.name type_SLA,
 glpi_tickets.time_to_resolve date_pour_resoudre,
 glpi_slas.number_time nbre_jours_prevu_SLA,
glpi_tickets.solve_delay_stat temps_resolution,
 glpi_tickets.takeintoaccount_delay_stat temps_de_prise_en_compte,
 glpi_tickets.waiting_duration temps_attente,
 glpi_tickets.begin_waiting_date debut_attente,
 case glpi_tickets.status
	when 1 then "Nouveau"
	when 2 then "Attribué"
	when 3 then "planifié"
	when 4 then "En attente"
	when 5 then "Résolu"
	else "Clos"
	end Status,
 solution.name solution,
 glpi_tickets.name ticket,
     case
		when solvedate < time_to_resolve then 'OK'
        else 'NOK'
	end as SLA,
    case
	when substr(sec_to_time(solve_delay_stat),-5) ='00:00' then 'Non résolu'
when hour(sec_to_time(solve_delay_stat)) < '01' then '< 1h'
        when hour(sec_to_time(solve_delay_stat)) < '04' then '< 4h'
        when hour(sec_to_time(solve_delay_stat)) < '24' then '< 1jr'
        when hour(sec_to_time(solve_delay_stat)) < '48' then '< 2jrs'
       /* when hour(sec_to_time(solve_delay_stat)) < '72' then '< 3jrs'
        when hour(sec_to_time(solve_delay_stat)) < '96' then '< 4jrs'
        when hour(sec_to_time(solve_delay_stat)) < '110' then '< 5jrs'*/
        else '> 2jrs'
	end as periode_resolution,
	case 
		when sec_to_time(takeintoaccount_delay_stat)<'00:15:00' then '< 15 min'
        when sec_to_time(takeintoaccount_delay_stat)<'00:30:00' then '< 30 min'
        when sec_to_time(takeintoaccount_delay_stat)<'01:00:00' then '< 1h'
        else '> 1h'
	end as temps_prise_en_charge
FROM ((((((glpi_tickets LEFT JOIN glpi_slas ON glpi_tickets.slas_id_ttr = glpi_slas.id)
 LEFT JOIN glpi_itilcategories ON glpi_tickets.itilcategories_id = glpi_itilcategories.id)
 LEFT JOIN glpi_groups_tickets ON glpi_tickets.id = glpi_groups_tickets.tickets_id)
 LEFT JOIN glpi_groups ON glpi_groups_tickets.groups_id = glpi_groups.id)
 LEFT JOIN glpi_requesttypes ON glpi_tickets.requesttypes_id = glpi_requesttypes.id)
 LEFT JOIN (select a.items_id, b.name name from glpi.glpi_itilsolutions a,glpi.glpi_solutiontypes b where b.id=a.solutiontypes_id) solution on glpi_tickets.id=solution.items_id)
where glpi_tickets.entities_id=0
-- and glpi_tickets.date >= '2018-01-01 00:00:00' and glpi_tickets.date <= '2019-12-31 23:59:59'
and glpi_tickets.is_deleted=0
ORDER BY glpi_tickets.id DESC

j'ai d'autres tables dérivées avec des requêtes similaires qui interroge notamment les tables du plugin formcreator pour aller y rechercher les données saisies par l'utilisateur a des fins statistiques pour les métiers (RH, moyens généraux et SIG)

Last edited by Sico31 (2020-04-03 12:04:23)


Manger un castor, c'est sauver un arbre

Offline

#5 2020-04-03 18:59:52

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

Re: GLPI | Power BI | Reporting

Voici la vu et les liaisons que j'ai fait dans PowerBi :
10

J'ai pu ensuite créer des rapports personnalisés en fonction de mes clients. Exemple :
10

Il reste encore a renommer certains noms afin d'avoir quelque chose de propre.


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

#6 2020-04-08 15:30:11

Doubleve
Member
Registered: 2018-07-10
Posts: 16

Re: GLPI | Power BI | Reporting

Bonjour,

je me penche sur votre tuto afin de créer certains rapport est il possible d'avoir votre modèle afin de l'analyser
merci

Offline

#7 2020-04-08 19:27:11

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

Re: GLPI | Power BI | Reporting

Bonjour,

Malheureusement mon template rattache des données de l'entreprise. Quel rapport voulez vous créer ?

Last edited by Robin MATHE (2020-04-08 19:52:42)


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

#8 2020-04-08 20:25:09

Doubleve
Member
Registered: 2018-07-10
Posts: 16

Re: GLPI | Power BI | Reporting

Celui de l’exemple me paraît pas mal.

Offline

#9 2020-04-09 16:29:17

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

Re: GLPI | Power BI | Reporting

Rien de plus simple tongue, pour se faire il faut :
     - Commencer par rattacher PowerBI a la base GLPI.
     - Créer les liaisons entre les tables de ton choix dans PowerBI.
     - Créer les graphiques en fonction de ton besoin.

La seule customisation que j'ai faite est la table contrat que j'ai créé pour mon besoin et la notion de semaine.

Si tu bloque a une étape fait le moi savoir.

Last edited by Robin MATHE (2020-04-09 16:33:44)


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

#10 2020-04-09 20:43:18

Doubleve
Member
Registered: 2018-07-10
Posts: 16

Re: GLPI | Power BI | Reporting

Bonsoir,

J'ai essayé de recréer la même structure de champs que toi mais il me manque glpi_ticket_type et glpi itilcatégorie et maintenant pour créer les graphiques je ne sais pas comment faire.Quelles données prendre pour créer ton modèle.

Offline

#11 2020-04-13 11:00:40

Doubleve
Member
Registered: 2018-07-10
Posts: 16

Re: GLPI | Power BI | Reporting

Bonjour robin,

Peut être pourrais tu m'aider pour créer un graphique genre nombre de tickets ouvert sur une période données avec un moyenne par rapport l'année passée.
merci

Offline

#12 2020-04-16 11:13:58

Robin MATHE
Member
From: FRANCE
Registered: 2020-01-03
Posts: 7

Re: GLPI | Power BI | Reporting

Hello Doubleve,

Pour les tables j'ai oublié de préciser mais il y en a que j'ai créé pour mon besoin comme "glpi_ticket_type". Elle me permet d'afficher le type "incident" ou "demande" au lieu des chiffres "1" et "2" que propose la table "glpi_tickets". Concernant la table "glpi_itilcatégories" celle-ci est présente dans GLPI.

Tu as réussi à avancer concernant la création de ton graphe ? Tu as pu afficher quoi pour le moment ?

Last edited by Robin MATHE (2020-04-16 11:18:18)


=================
GLPI : 9.4.5
OS : Centos7
FusionInventory : 9.4+2.3

Offline

Board footer

Powered by FluxBB