Generic Object¶

Télécharger

Sources

https://github.com/pluginsGLPI/genericobject/releases

https://github.com/pluginsGLPI/genericobject

Requirements (on-premise)¶

Version de GLPI

PHP minimum

Recommandé

10.0.x

8.1

8.2

Note

Ce plugin est disponible sans souscription GLPI-Network. Il est Ă©galement disponible sur le Cloud.

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>";

Vous pouvez également définir des 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>'] = "<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.

FAQ¶

Si vous avez des questions à propos de l’utilisation de ce plugin, veuillez consulter notre FAQ

Licence Creative Commons