Generic Object
Prérequis (auto-hébergé)
10.0.x
8.1
8.2
11.0.x
8.2
8.4
Avec GLPI 11, ce plugin est destiné à la migration de vos assets génériques vers actifs personnalités (natif à partir de GLPI 11) . Il doit être installé uniquement en production pour effectuer la mise à jour, puis désinstallé une fois l’opération terminée.
Ce plugin reste compatible avec GLPI 10
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
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;
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';
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';
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'; ?>
Le suffixe s_id
est obligatoire dans [plugin_genericobject_field*s_id*]
car le framework GLPI exige que les champs de clé étrangère se terminent par s_id
. En base de données, glpi_plugin_genericobject_fields
est le nom de la table et id
, sa clé étrangère. Voir la documentation développeur GLPI.
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
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 ?