Generic Object

This user manual applies to version 2.14 of the GLPI Generic Object Plugin.

Pré-requis

Please refer to plugin page <https://plugins.glpi-project.org/#/plugin/genericobject>.

Fonctionnalités

Ce plugin vous permet d’ajouter de nouveaux type d’objets qui seront intégrés dans GLPi

Il supporte les fonctionnalités suivantes de GLPi :

  • gestion des Entités et sous-Entités ;
  • recherche ;
  • modèles ;
  • historique ;
  • intégration dans l’assistance ;
  • intégration dans le plugin d’injection de fichiers CSV :
  • intégration dans le plugin de désinstallation d’objets ;
  • intégration dans le plugin de gestion des commandes.

Exemple d’utilisation

Objectif : gérer votre flotte de véhicules de la même manière que le reste de votre parc.

  • Créer un nouvel objet d’inventaire de type véhicule.
  • Ajouter les champs adéquats pour un véhicule, comme : nom, numéro de série, numéro d’inventaire, type, modèle, couleur, état, etc.
  • Décrire le comportement d’un véhicule : visible dans les sous entités, conserver l’historique, etc.
  • Ajuster les droits sur véhicules.
  • Activer l’objet véhicules.
  • Gérer votre collection de véhicules dans GLPI.

Installer le plugin

  • Décompresser l’archive.
  • Déplacer le répertoire genericobject dans le répertoire <GLPI_ROOT>/plugins`.
  • Se rendre sur la page Configuration > Plugins
  • Installer et activer le plugin

Utilisation

Créer un nouveau type d’objet

Ceci constitue la première étape.

  • Cliquer sur le bouton + dans le formulaire de configuration du plugin.
  • Créer un nouvel objet de type inventaire :
    • nom* : requis, en minuscules, et doit être composé de lettres uniquement ;
    • libellé : par défaut, identique au nom.
  • Valider.
  • Activer le nouveau type d’objet pour l’utiliser.

Exemple : créer un nouveau type d’objet d’inventaire véhicule.

Modifier les libellés

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

Le plugin créé :

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

Note

Si la langue courante et la langue par défaut sont identiques, un seul fichier sera créé.

Pour modifier le libellé du type d’objet, pour la langue anglaise, éditer le fichier :

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

You can also define labels globally in <GLPI_ROOT>/files/_plugins/genericobject/locales/fields.<lang>.php files:

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

Configuration du comportement

Exemple : décrire le comportement d’un véhicule : visible dans les sous entités, conserver l’historique, etc.

Le nouveau type sera géré de la même manière que les types usuels de GLPI (ordinateurs, moniteurs, matériels réseau, etc.)

Note

Tous les objets sont au moins assignés à une entité

L’onglet comportement vous permet de définir :

  • sous-entités : autorise le type à être récursif ;
  • Assistance : autorise l’objet à être associé à un ticket ;
  • Corbeille : utiliser la fonctionnalité corbeille de GLPI ;
  • Notes : utiliser la fonctionnalité notes de GLPI ;
  • Historique : autorise l’historique pour ce type ;
  • Modèles : autorise la gestion de modèles ;
  • Documents : permet à des documents d’être attachés à ce type ;
  • Prêts : autorise le prêt d’objet ;
  • Contrats : lie un objet à un ou plusieurs contrats ;
  • Connexions réseau : permet l’utilisation et la gestion de ports réseau pour ce type ;
  • Plugin d’injection de fichiers CSV : permet à ce type d’être disponible pour utilisation dans le plugin ;
  • Plugin de désinstallation d’objets : autorise la désinstallation de ce type ;
  • Plugin de gestion des commandes : autorise le lien de ce type à une commande ;

Ajouter des champs

Exemple : ajouter les champs adéquats pour un véhicule, comme : nom, numéro de série, numéro d’inventaire, type, modèle, couleur, état, etc.

Aller à l’onglet Champs.

Le plugin est fourni avec plusieurs champs prêts à l’utilisation :

  • Nom
  • Type
  • Modèle
  • Numéro de série
  • Numéro d’inventaire
  • Utilisateur
  • Groupe
  • Statut
  • Commentaires
  • Notes
  • Emplacement
  • Autre
  • Constructeur
  • URL
  • Date de création
  • Date d’expiration
  • Catégorie
  • Visible dans l’assistance
  • Technicien en charge du matériel
  • Domaine
  • Contact
  • Numéro de contact

Note

L’utilisation de certains comportement entraînera l’ajout automatique de champs dans l’objet :

  • connexion réseau => emplacement
  • prêts => emplacement
  • assistance => visible dans l’assistance
  • notes => notepad

Intégration assistance

Pour utiliser un objet dans l’assistance, utiliser la configuration suivante :

  • Dans l’onglet Comportement : utiliser l’assistance doit être défini à Oui.
  • Si le champ Utilisateur est défini, l’objet sera visible dans la liste Mes objets (comme un objet dont l’utilisateur est propriétaire).
  • Si le champ Groupe est défini, l’objet sera visible dans la liste Mes objets également (comme un objet dont le propriétaire est un groupe auquel l’utilisateur appartient).
  • Si le champ Assistance visible est défini et que sa valeur est à Non dans l’objet, ce objet ne sera pas visible du tout dans l’assistance.

Ajouter de nouveaux champs

Note

Les nouveaux champs seront disponibles pour tous les types d’objets.

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

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

Notez que la première ligne du fichier doit être la suivante, sans quoi les nouveaux champs n’apparaîtront pas dans la liste :

<?php
global $GO_FIELDS, $LANG;
  • Ajouter les nouvelles définitions de champs.

Ajouter un champ liste déroulante simple

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

Note

La variable de langue doit être définie dans le fichier de langues (voir les explications ci-dessus).

  • Ajouter un champ liste déroulante qui est assigné à une entité :
<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name']         = $LANG['genericobject']["<type's name>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field']        = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type']   = 'dropdown';
//Does the dropdown take care of entities ? (true/false)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['entities_id']  = true;
//Can values be recursive ? (true/false, only taking in account if entities_id is set to true)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_recursive'] = true;

Ajouter un champ liste déroulante hiérarchique

<?php
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['name']       = $LANG['genericobject']["<type's name>"][2];
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['field']      = 'color';
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['input_type'] = 'dropdown';
//Is it a tree-dropdown, or a simple one ? (true/false)
$GO_FIELDS['plugin_genericobject_mytypecolors_id']['is_tree']    = true;

Note

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

Ajout d’un champ liste déroulante basé sur les objets du coeur de GLPI (utilisateur, emplacement, …)

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

Note

Les noms entre crochets ([]) DOIVENT commencer par users_id pour être reconnus comme étant des champs basés sur la liste des utilisateurs de GLPI.

Voir le fichier <GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php pour 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’objets. 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 pour les catégorie spécifique sera créée pour chaque type d’objet. Le nom de la table et le nom du champ seront concaténé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; //not mandatory, by default 0
$GO_FIELDS['testinteger']['max']        = 40; //not mandatory, by default 100
$GO_FIELDS['testinteger']['step']       = 3; //not mandatory, by default 1

Ajouter un champ texte

<?php
$GO_FIELDS['mytextfield']['name']       = 'My text field';
$GO_FIELDS['mytextfield']['input_type'] = 'text';

Modifié dans la version 2.1.2: En ajoutant l’argument suivant, vous indiquerez au plugin que ce champ peut être généré automatiquement en utilisant un modèle :

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

Ajouter un champ Oui/Non

<?php
$GO_FIELDS['mybooleanfield']['name']       = 'My boolean field';
$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';

Note

Si vous ne souhaitez pas que le champ puisse être modifié en utilisant une action de masse, ajouter la ligne suivante à sa définition :

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

Ajouter des champs globaux

Pour rendre vos champs accessibles depuis tous les types d’objets :

  • Créer un fichier nommé <GLPI_ROOT>/files/_plugins/genericobject/fields/field.constant.php
  • Ajouter les définitions dans ce fichier.

Configurer les droits

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

  • droits sur le type : pas d’accès, lecture, écriture.
  • droits pour associer ce type d’objet aux tickets : oui, non.

Pour associer les droits, vous pouvez au choix :

  • Utiliser l’onglet Droits dans le formulaire du type d’objet.
  • Aller dans Administration > Profils pour administrer les droits de chaque profil.

Utiliser le nouveau champ

Activer le nouveau type, il est désormais prêt à être utilisé.

Le nouveau type est disponible pour les utilisateurs depuis le menu Plugins > Gestion d’objets.

Exemple d’utilisation de Generic Object comme GMAO

But de cette documentation

Présenter une utilisation complète de Generic Object comme GMAO (Gestion de Maintenance Assistée par Ordinateur) dans un environnement biomédical.

À la fin de cette documentation, vous aurez :

  • une entité Biomed dédiée (sous l”Entité racine)
  • contenant des objects Biomedical (dans le menu Parc)
  • avec des champs pré-définis et personnalisés
  • gérée par des utilisateurs avec le profil Admin_biomed

Étapes

Les étapes suivantes partent du principe que vous avez une habilitation Super-Admin :

  • Installer Generic Object sur GLPI (validé avec genericobject >= 0.85-1.0 et GLPI >= 0.90)
  • Configuration de Generic Object
  • Configuration de GLPI
  • Démarrer l’utilisation de Generic Object et GLPI

Installer Generic Object sur GLPI

Voir la section Installer le plugin.

Configuration de Generic Object

Créer votre type d’objet

Voir la section Créer un nouveau type d’objet et utiliser biomedical comme identifiant interne. Le libellé sera défini automatiquement à Biomedical (avec un B majuscule).

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

Définir les nouveaux champs du type Biomedical

Ces champs seront utilisables uniquement par les objets du type Biomedical

  • Créer un nouveau fichier appelé : <GLPI_ROOT>/files/_plugins/genericobject/fields/biomedical.constant.php
  • Ajouter 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 (yes or no)
$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';
?>

Avertissement

Le s_id de fin est obligatoire dans [plugin_genericobject_field*s_id*]. Le framework GLPI impose que les champs de clés étrangères 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 de GLPI.

Définir les libellés des champs

Voir la section Modifier les libellés.

  • Éditer vos fichiers de locales, par exemple : <GLPI_ROOT>/files/_plugins/genericobject/locales/biomedical/biomedical.fr_FR.php
  • Ajouter 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 Plugins > Gestion d’objets, sur l’onglet Principal, sélectionner :

  • Élément à la corbeille
  • Historique
  • Informations financières et administratives
  • Documents
  • Recherche globable
  • Assistance
  • Modèles
  • Contrats
  • Recherche globable

Cette action ajoutera des champs pré-définis à votre type d’objet

Ajouter des champs à votre type d’objet

Dans le menu Plugins > Gestion d’objets, sur l’onglet Champs, vous pouvez maintenant ajouter des champs au type d’objet Biomedical :

Configuration de GLPI

Définir le profil Admin_biomed

  1. Cloner le profil Admin
  2. Définissez les droits suivants dans le profil Admin_biomed :
    • Administration > Profils > Admin_biomed > Onglet Parc > Désélectionner tout
    • Administration > Profils > Admin_biomed > Onglet Assistance > Association > Matériels associables à un ticket > Biomedical
    • Administration > Profils > Admin_biomed > Onglet Gestion > Sélectionner tout
    • Administration > Profils > Admin_biomed > Onglet Gestion d’objets > Biomedical > Sélectionner tout

Note

Avec ces paramètres, les utilisateurs avec le profil Admin_biomed voient uniquement Biomedical dans le menu Parc

Définir l’entité Biomed et les règles d’habilitations

  1. Créer l’entité Biomed sous l”Entité Racine dans Administration > Entités
  2. Configurer les règles d’habilitations pour assigner le profil Admin_biomed aux utilisateurs de l’entité Biomed

Démarrer l’utilisation de Generic Object et GLPI

En tant qu’utilisateur Admin_biomed, vous pouvez créer votre premier objet dans Parc > Biomedical.

Pour gagner du temps, définissez les valeurs des nouveaux champs dans Configuration > Intitulés > Gestion d’objets.

Creative Commons License