Generic Object

Prérequis (auto-hébergé)

Version GLPI
PHP Minimum
Recommandé

10.0.x

8.1

8.2

11.0.x

8.2

8.4

Ce plugin reste compatible avec GLPI 10

Ce plugin est disponible sans souscription GLPI Network. Il est également disponible sur GLPI Cloud.

Installer le plugin

  • Allez sur la marketplace. Téléchargez et installez le plugin Generic objects

Fonctionnalités

Ce plugin vous permet d'ajouter de nouveaux types d'objets d'inventaire, intégrés au framework GLPI.

Il prend en charge les fonctionnalités GLPI suivantes :

  • gestion des entités et sous-entités ;

  • recherche ;

  • modèles ;

  • historique ;

  • intégration helpdesk ;

  • intégration du plugin d'injection de fichier CSV ;

  • intégration du plugin de désinstallation d'éléments ;

  • intégration du plugin de gestion des commandes.

Exemple d'utilisation

Objectif : Gérer votre flotte de voitures comme le reste de vos actifs informatiques.

  • Créez un nouveau type d'objet d'inventaire voiture.

  • Ajoutez les champs appropriés pour une voiture, tels que : nom, numéro de série, numéro d'inventaire, type, modèle, couleur, état, etc.

  • Décrivez le comportement d'une voiture : visible dans la sous-entité, conserve l'historique, etc.

  • Ajustez les droits sur les voitures.

  • Activez l'objet voitures.

  • Gérez votre collection de voitures dans GLPI.

Installer le Plugin

  • Décompressez l'archive.

  • Déplacez le répertoire genericobject dans le répertoire <GLPI_ROOT>/plugins

  • Naviguez vers la page Configuration > Plugins

  • Installez et activez le plugin

Utilisation

Créer un nouveau type d'objet

C'est la première étape.

  • Cliquez sur le bouton + dans le formulaire de configuration du plugin.

  • Créez le nouveau type d'objet d'inventaire :

    • nom : obligatoire, en minuscules, et doit être composé uniquement de lettres ;

    • libellé : par défaut, identique au nom.

  • Validez.

  • Activez le nouveau type d'élément pour l'utiliser.

Exemple : Créez un nouveau type d'objet d'inventaire voiture.

Modifier les libellés

Pour chaque type, un fichier de langue est disponible dans <GLPI_ROOT>/files/_plugins/genericobject/locales/itemtype/

Le plugin crée :

  • un fichier de langue pour la langue actuelle

  • un fichier de langue pour la langue par défaut de GLPI

Si les langues actuelle et par défaut sont identiques, un seul fichier est créé.

Pour modifier le libellé du type d'élément, pour la langue anglaise, modifiez le fichier :

<?php
// <GLPI_ROOT>/files/_plugins/genericobject/locales/<itemtype>/<itemtype>.en_GB.php
$LANG['genericobject']['<itemtype>'][1] = "<libellé du type>";

Vous pouvez également définir les libellés globalement dans les fichiers <GLPI_ROOT>/files/_plugins/genericobject/locales/fields.<lang>.php :

<?php
// <GLPI_ROOT>/files/_plugins/genericobject/locales/<itemtype>/<itemtype>.en_GB.php
$LANG['genericobject']['fields']['<itemtype>'] = "<libellé du type>";

Configurer le comportement

Exemple : Décrivez le comportement d'une voiture : visible dans la sous-entité, conserve l'historique, etc.

Le nouveau type sera géré de la même manière que les types GLPI habituels (ordinateur, moniteur, équipement réseau, etc.)

{% hint style="info" %} Tous les objets sont au moins assignés à une entité {% endhint %}

L'onglet Comportement vous permet de définir :

  • sous-entités : permet au type d'être récursif ;

  • Helpdesk : permet d'associer un objet à un ticket ;

  • Corbeille : utilise la fonctionnalité de corbeille de GLPI ;

  • Notes : utilise la fonctionnalité de notes de GLPI ;

  • Historique : permet l'historique pour ce type ;

  • Modèles : permet la gestion des modèles ;

  • Documents : permet de joindre des documents à un objet de ce type ;

  • Prêts : permet d'emprunter des objets ;

  • Contrats : lie un objet à un ou plusieurs contrats ;

  • Connexions réseau : permet l'utilisation des ports et la gestion pour ce type ;

  • Plugin d'injection de fichier CSV : permet à ce type d'être disponible pour utilisation dans le plugin ;

  • Plugin de désinstallation d'éléments : permet de désinstaller ce type ;

  • Plugin de gestion des commandes : permet de lier ce type à une commande ;

Ajouter des champs

Exemple : Ajoutez les champs appropriés pour une voiture, tels que : nom, numéro de série, numéro d'inventaire, type, modèle, couleur, état, etc.

Naviguez vers l'onglet Champs.

Le plugin est livré avec plusieurs champs prêts à l'emploi :

  • Nom

  • Type

  • Modèle

  • Numéro de série

  • Numéro d'inventaire

  • Utilisateur de l'élément

  • Groupe

  • Statut

  • Commentaires

  • Notes

  • Emplacement

  • Autre

  • Fabricant

  • URL

  • Date de création

  • Date d'expiration

  • Catégorie

  • Visible dans le Helpdesk

  • Technicien responsable du matériel

  • Domaine

  • Contact

  • Numéro de contact

{% hint style="info" %} L'utilisation de certains comportements ajoutera automatiquement certains champs à l'objet : {% endhint %}

  • connexion réseau => emplacement

  • prêts => emplacement

  • helpdesk => est visible dans le Helpdesk

  • notes => bloc-notes

Intégration Helpdesk

Pour utiliser un objet dans le helpdesk, utilisez la configuration suivante :

  • Dans l'onglet Comportement : utiliser le helpdesk doit être réglé sur Oui.

  • si le champ Utilisateur est défini, il permet à l'élément d'être visible dans la liste Mes Éléments (en tant qu'élément dont l'utilisateur est le propriétaire).

  • si le champ Groupe est défini, il permet également à l'élément d'être visible dans la liste Mes Éléments (en tant qu'élément appartenant à un groupe dont l'utilisateur fait partie).

  • si le champ Helpdesk visible est défini et si la valeur est réglée sur Non dans l'objet, alors l'objet ne sera pas du tout visible dans le helpdesk.

Ajouter de nouveaux champs

{% hint style="info" %} De nouveaux champs seront disponibles pour tous les types d'objets. {% endhint %}

  • Créez un nouveau fichier nommé <GLPI_ROOT>/files/_plugins/genericobject/fields/<type>.constant.php

Par exemple, pour un type voiture, le fichier de constantes sera <GLPI_ROOT>/files/_plugins/genericobject/fields/car.constant.php.

Veuillez noter que la première ligne du fichier doit être la suivante, sinon les nouveaux champs n'apparaîtront pas dans la liste :

<?php
global $GO_FIELDS, $LANG;
  • Ajoutez les définitions des nouveaux champs.

Ajouter un champ de liste déroulante simple

<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name']       = $LANG['genericobject']["<nom du type>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field']      = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';

{% hint style="info" %} La variable de langue doit être définie dans le fichier de langue (voir explication ci-dessus). {% endhint %}

  • Ajoutez un champ de liste déroulante qui est assigné à une entité :

<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name']         = $LANG['genericobject']["<nom du type>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field']        = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type']   = 'dropdown';
//La liste déroulante gère-t-elle les entités ? (true/false)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['entities_id']  = true;
//Les valeurs peuvent-elles être récursives ? (true/false, uniquement pris en compte si entities_id est défini sur true)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_recursive'] = true;

Ajouter un champ de liste déroulante arborescente

<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name']       = $LANG['genericobject']["<nom du type>"][2];
<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field']      = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';
//Est-ce un arbre-liste déroulante, ou une simple ? (vrai/faux)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_tree']    = true;

Vous pouvez utiliser en même temps les paramètres suivants : entities_id, is_recursive, is_tree.

Ajouter un champ liste déroulante basé sur un objet GLPI-core (utilisateur, localisation...)

<?php
$GO_FIELDS['users_id_passengers_id']['name']       = 'Passenger';
$GO_FIELDS['users_id_passengers_id']['input_type'] = 'dropdown';

Le nom entre crochets ([]) DOIT commencer par users_id pour être reconnu comme un champ basé sur la liste des utilisateurs GLPI.

Voir le fichier <GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php pour obtenir une liste complète des champs disponibles.

Ajouter une liste déroulante globale

Une liste déroulante globale peut être utilisée dans tous les types d'éléments. Un bon exemple serait :

<?php
$GO_FIELDS['categories_id']['name']          = $LANG['common'][36];
$GO_FIELDS['categories_id']['input_type']    = 'dropdown';
$GO_FIELDS['categories_id']['dropdown_type'] = 'global';

Une table de catégorie spécifique sera créée pour chaque type d'élément. Le nom de la table et le nom du champ seront calculés de cette manière :

  • table : glpi_plugin_genericobject_<itemtypename>_category

  • nom du champ : plugin_genericobject_<itemtype>categories_id

Ajouter un champ entier

<?php
$GO_FIELDS['testinteger']['name']       = 'testinteger';
$GO_FIELDS['testinteger']['input_type'] = 'integer';
$GO_FIELDS['testinteger']['min']        = 10; // non obligatoire, par défaut 0
$GO_FIELDS['testinteger']['max']        = 40; // non obligatoire, par défaut 100
$GO_FIELDS['testinteger']['step']       = 3; // non obligatoire, par défaut 1

Ajouter un champ texte

<?php
$GO_FIELDS['mytextfield']['name']       = 'Mon champ texte';
$GO_FIELDS['mytextfield']['input_type'] = 'text';

Modifié dans la version 2.1.2 : En ajoutant l'argument suivant, vous pouvez indiquer au plugin que ce champ peut être généré automatiquement lors de l'utilisation d'un modèle :

<?php
$GO_FIELDS['mytextfield']['autoname'] = true;

Ajouter un champ Oui/Non

<?php
$GO_FIELDS['mybooleanfield']['name']       = 'Mon champ booléen';
$GO_FIELDS['mybooleanfield']['input_type'] = 'bool';

Ajouter un champ date

<?php
$GO_FIELDS['creationdate']['name']       = $LANG['genericobject']['fields'][30];
$GO_FIELDS['creationdate']['input_type'] = 'date';

Ajouter un champ date et heure

<?php
$GO_FIELDS['creationdate']['name']       = $LANG['genericobject']['fields'][30];
$GO_FIELDS['creationdate']['input_type'] = 'datetime';

Si vous ne souhaitez pas qu'un champ soit modifié par des actions massives, ajoutez la ligne suivante à sa définition :

<?php
$GO_FIELDS['myfield']['massiveaction'] = false;

Ajouter des champs globaux

Pour rendre vos champs accessibles à tous les types d'éléments :

  • Créez un fichier nommé <GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php

  • Placez vos définitions dans ce fichier.

Droits de configuration

Vous pouvez définir des droits d'accès pour chaque type d'objet, pour chaque profil. Les options disponibles sont :

  • droit sur le type : aucun accès, lecture, écriture.

  • droit d'associer ce type d'objet aux tickets : oui, non.

Pour associer les droits, vous pouvez soit :

  • Utiliser l'onglet Droits dans le formulaire type d'élément.

  • Naviguer vers Administration > Profils et administrer les droits pour chaque profil.

Utiliser le nouveau champ

Activez le nouveau type, il est maintenant prêt à être utilisé.

Le nouveau type est disponible pour les utilisateurs dans le menu Plugins > Gestion des objets.

Cas d'utilisation de Generic Object comme CMMS

But de cette documentation

Montrer une utilisation complète de Generic Object comme CMMS (Computerized Maintenance Management System) dans un environnement biomédical.

À la fin de ce cas d'utilisation, vous aurez :

  • une entité dédiée Biomed (sous Entité racine)

  • contenant des objets Biomédicaux (dans le menu Actifs)

  • avec des champs intégrés et définis par l'utilisateur

  • gérés par des utilisateurs avec le profil Admin_biomed

Étapes

Les étapes suivantes supposent que vous avez une autorisation de Super-Admin :

  • Installation de Generic Object sur GLPI (validé avec genericobject >= 0.85-1.0 et GLPI >= 0.90)

  • Configuration de Generic Object

  • Configuration de GLPI

  • Commencer à utiliser Generic Object et GLPI

Installation de Generic Object sur GLPI

Voir la section install_plugin{.interpreted-text role="ref"}.

Configuration de Generic Object

Créer votre type d'objet

Voir la section create_new_object{.interpreted-text role="ref"} et utiliser biomedical comme identifiant interne. Le libellé sera défini automatiquement sur Biomedical (avec un B majuscule).

Après une déconnexion/reconnexion, vous verrez le menu Biomedical dans Actifs.

Définir les nouveaux champs de Biomedical

Ces champs ne seront utilisables que par les objets de type Biomedical :

  • Créez un nouveau fichier nommé : <GLPI_ROOT>/files/_plugins/genericobject/fields/biomedical.constant.php

  • Ajoutez le contenu suivant :

<?php
global $GO_FIELDS, $LANG;

// CODE CNEH
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][1];
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['field']      = 'cnehcode';
$GO_FIELDS['plugin_genericobject_cnehcodes_id']['input_type'] = 'dropdown';

//  REFORME (oui ou non)
$GO_FIELDS['reformed']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][2];
$GO_FIELDS['reformed']['input_type'] = 'bool';

// CLASSE CE (3 choix possibles 1,2a ou 2b)
$GO_FIELDS['plugin_genericobject_classeces_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][3];
$GO_FIELDS['plugin_genericobject_classeces_id']['field']      = 'classce';
$GO_FIELDS['plugin_genericobject_classeces_id']['input_type'] = 'dropdown';

// UF (Unité Fonctionnelle)
$GO_FIELDS['plugin_genericobject_ufs_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][4];
$GO_FIELDS['plugin_genericobject_ufs_id']['field']       = 'uf';
$GO_FIELDS['plugin_genericobject_ufs_id']['input_type'] = 'dropdown';

// PRESTATAIRE BIOMED
$GO_FIELDS['plugin_genericobject_prestataires_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][5];
$GO_FIELDS['plugin_genericobject_prestataires_id']['field']       = 'prestataire biomed';
$GO_FIELDS['plugin_genericobject_prestataires_id']['input_type'] = 'dropdown';

// TYPE D'EQUIPEMENT BIOMED
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][6];
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['field']       = "type d 'equipement biomed";
$GO_FIELDS['plugin_genericobject_typedequipementbiomeds_id']['input_type'] = 'dropdown';

// Criticite
$GO_FIELDS['plugin_genericobject_criticites_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][7];
$GO_FIELDS['plugin_genericobject_criticites_id']['field']      = 'criticite';
$GO_FIELDS['plugin_genericobject_criticites_id']['input_type'] = 'dropdown';

// Numéro marquage CE
$GO_FIELDS['plugin_genericobject_marquageces_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][8];
$GO_FIELDS['plugin_genericobject_marquageces_id']['field']      = 'marquagece';
$GO_FIELDS['plugin_genericobject_marquageces_id']['input_type'] = 'dropdown';

// Classe électrique
$GO_FIELDS['plugin_genericobject_classeelecs_id']['name']       = $LANG['genericobject']['PluginGenericobjectBiomedical'][9];
$GO_FIELDS['plugin_genericobject_classeelecs_id']['field']      = 'classeelec';

$GO_FIELDS['plugin_genericobject_classeelecs_id']['input_type'] = 'dropdown'; ?>

Définir les libellés des champs

Voir la section « modifier les libelléss ».

  • Modifiez votre fichier de localisation, par exemple : <GLPI_ROOT>/files/_plugins/genericobject/locales/biomedical/biomedical.fr_FR.php

Ajoutez le contenu suivant à la fin du fichier :

<?php
// Fields
$LANG['genericobject']['PluginGenericobjectBiomedical'][1]="Code CNEH";
$LANG['genericobject']['PluginGenericobjectBiomedical'][2]="Réformé";
$LANG['genericobject']['PluginGenericobjectBiomedical'][3]="Classe CE";
$LANG['genericobject']['PluginGenericobjectBiomedical'][4]="UF";
$LANG['genericobject']['PluginGenericobjectBiomedical'][5]="Prestataire Biomed";
$LANG['genericobject']['PluginGenericobjectBiomedical'][6]="Type d'équipement biomed";
$LANG['genericobject']['PluginGenericobjectBiomedical'][7]="Criticité";
$LANG['genericobject']['PluginGenericobjectBiomedical'][8]="Marquage CE";
$LANG['genericobject']['PluginGenericobjectBiomedical'][9]="Classe électrique";

Définir les comportements

Dans le menu Extensions > Gestion des objets, onglet Principal, sélectionnez :

  • Élément dans la corbeille

  • Historique

  • Informations financières et administratives

  • Documents

  • Recherche globale

  • Assistance

  • Modèles

  • Contrats

  • Recherche globale

Cela ajoutera des champs prêts à l'emploi à votre type d'objet.

Ajouter des champs à votre type d'objet

Dans le menu Extensions > Gestion des objets, onglet Champs, vous pouvez désormais ajouter des champs à un objet de type Biomédical :

  • Champs prêts à l'emploi (champs intégrés de GLPI)

  • Nouveaux champs (définis dans la section « Définir les nouveaux champs de Biomédical »)

Configuration de GLPI

Définir le profil Admin_biomed

  • Cloner le profil Admin

  • Définir les droits suivants dans le profil Admin_biomed :

    • Administration > Profils > Admin_biomed > Onglet Ressources > Tout désélectionner

    • Administration > Profils > Admin_biomed > Onglet Assistance > Association > Éléments associables à un ticket > Biomédical

    • Administration > Profils > Admin_biomed > Onglet Gestion > Tout sélectionner

    • Administration > Profils > Admin_biomed > Onglet Gestion des objets > Biomédical > Tout sélectionner

Avec ces paramètres, les utilisateurs Admin_biomed ne voient que la section Ressources.

Définir l'entité Biomed et les règles d'autorisation

  • Créez l'entité Biomed sous l'entité racine dans Administration > Entités.

  • Configurez les règles d'autorisation pour attribuer le profil Admin_biomed aux utilisateurs de l'entité Biomed.

Commencer à utiliser les objets génériques et GLPI

En tant qu'utilisateur Admin_biomed, vous pouvez créer votre premier objet dans Ressources > Biomédical.

Pour gagner du temps, définissez les valeurs des nouveaux champs dans Configuration > Listes déroulantes > Gestion des objets.

Mis à jour

Ce contenu vous a-t-il été utile ?