You are not logged in.
Dans la configuration de l'inventaire natif de GLPI 10 on peut définir un statut ou une entité par défaut dans les options d'importation parmi les statuts ou les entités existantes. Peut-on ajouter la définition du numéro d'inventaire par défaut qui serait repris depuis le TAG fourni par l'agent d'inventaire GLPI-Agent ? (cette possibilité existait dans le plugin FusionInentory)
Last edited by servain-m (2023-06-02 18:13:45)
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Bonjour servain-m,
cette fonctionnalité n'était pas utilisée à notre connaissance quand nous avons développé l'inventaire natif pour reprendre ce que faisait le plugin FI.
Plusieurs personnes ont déjà évoqué ce besoin et bonne nouvelle, cela va être intégré à la prochaine version 10.0.8. On n'a pas encore de date de sortie.
Tu peux peut-être essayer d'appliquer le patch toi-même. Tu trouveras les modifications à appliquer sur la PR suivante: https://github.com/glpi-project/glpi/pull/14553
Tu n'as pas à appliquer ce qui concerne les tests unitaires.
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline
Merci pour cette piste prometteuse. Ceci dit, en attendant la sortie de GLPI 10.0.8, je ne peux pas appliquer ce patch car il faut modifier le fichier tests/functional/Glpi/Inventory/Inventory.php, or mon installation de GLPI 10.0.7 ne contient pas de dossier tests.
(J'ai bien pu modifier les deux autres fichiers src/CommonDBTM.php et src/CommonDBTM.php.)
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Tu peux ignorer la partie du patch s'appliquant au dossier "tests" car ce sont les tests unitaires qui ne servent que durant la phase de développement. La release ne contient pas le fichier car il n'y en a plus besoin.
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline
J'ai bien appliqué le patch sur les deux fichiers src/CommonDBTM.php et src/RulesAsst.php mais je ne vois aucun changement sur la page de configuration des inventaires natifs. Je m'attendais à y voir apparaître un nouveau champ "N° d'inventaire" avec comme valeur possible "Tag de l'agent" (tout comme on a le champ "Statut par défaut" avec comme valeurs possibles les statuts existants). Mais ce n'est peut-être pas là que ça se passe ?
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Non, cela permet d'utiliser le moteur de règle pour faire la même chose, c'est plus souple. Comme indiqué dans la description de la PR, cela te permet de créer un critère sur le tag et d'avoir une action pour définir "otherserial" qui est inséré comme numéro d'inventaire.
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline
Merci gbougard, mais soit je suis nul, soit je ne regarde vraiment pas là où il faut
Dans les règles d'imports et de liaisons des équipement on avait déjà sans le patch le critère Agent > Tag d'inventaire (exemples : si tag existe, ou si tag contient "chaîne de caractères") mais les seules actions possibles, avec ou sans patch, sont Lien vers inventaire si possible ou Refuser l'import, mais sans notion de n° d'inventaire ou de "otherserial".
Les autres types de règles sont Règles d'affectation d'un élément à une entité, Règles de localisation, Règles d'affectation d'habilitations à un utilisateur, Règles d'affectation d'une catégorie aux logiciels, Règles métier pour les tickets, Règles métier pour les matériels, Transférer et Listes noires. Aucune ne correspond donc à l'assignation du n° d'inventaire d'un ordinateur.
Pouvez-vous donner un exemple de configuration de règle permettant d'assigner un n° d'inventaire sur un ordinateur à partir du tag de l'agent d'inventaire ?
Merci.
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
En fait j'ai trouvé
En m'aidant des explications données sur la page Github Support to manage agent client tag #12897 j'ai compris qu'il falllait chercher dans les règles de type Règles métier pour les matériels (business rules on assets en anglais), puis utiliser l'expression régulière /(.*)/ pour récupérer la valeur du tag, et #0 pour assigner cette valeur au n° d'inventaire.
Note 1 : Je ne suis pas autorisé à mettre des liens dans ce forum. Vous pourrez retrouver la page citée sur github.com à la page glpi-project/glpi/issues/12897.
Note 2 : J'ai modifié le sujet de cette discussion en ajoutant la mention [RÉSOLU].
Merci pour votre aide.
Last edited by servain-m (2023-05-30 11:36:46)
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Merci d'avoir persévéré et partagé ta solution.
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline
Bonjour,
Je reviens sur ce sujet que je pensais avoir résolu, mais après plusieurs jours de fonctionnement j'observe des effets de bords assez redoutables. J'ai donc retiré la mention [RÉSOLU] du sujet sur le message initial, et je vous appelle à l'aide pour résoudre mon problème.
Premièrement, j'ai observé un autre effet de bord lors de ma migration de GLPI 9.4 à 10 : tous les verrous des champs modifiés manuellement ont été perdus. J'ai par exemple dû modifier manuellement les statuts pour rétablir ces verrous sans quoi ils reviennent tous au statut "Nouveau" défini par défaut. Ce problème n'est pas l'objet de ce message mais il peut y contribuer.
Depuis que j'ai mis en place cette règle métier pour les matériels qui fourni le n° d'inventaire à partir du Tag de GLPI-Agent, les ordinateurs dont le n° d'inventaire ont déjà été saisis manuellement (mais dont le verrou a été désactivé) et dont le Tag est vide se voient perdre leur n° d'inventaire à l'occasion de la remontée de l'agent. Et en plus, on a beau vouloir modifier manuellement ce n° d'inventaire, celui-ci reste vide (mais avec un verrou activé). Observez-vous le même phénomène ?
J'ai donc désactivé la règle en attendant de trouver la correction. Et pour retrouver les n° d'inventaires effacés il faut reprendre un par un l'historique de ces ordinateurs (j'en ai compté 180 en quatre jours d'application de cette règle) pour modifier manuellement le n° d'inventaire (et donc réactiver le verrou).
Le critère de la règle est Agent > Tag d'inventaire expression rationnelle vérifie /(.*)/ et l'action est Numéro d'inventaire Assigner valeur depuis l'expression régulière #0.
Une piste pourrait être d'ajouter dans les critères que le Tag de l'agent ne soit pas vide pour que la règle s'applique. (en espérant que ça résolve le problème)
J'ai essayé le critère Agent > Tag d'inventaire existe mais il n'est pas gardé après avoir cliqué sur le bouton [+ Ajouter].
J'ai aussi essayé le critère Agent > Tag d'inventaire ne contient pas NULL et là GLPI semble planter (page web vide).
Peut-on utiliser une expression régulière pour ça ? (je ne m'y connais pas assez)
Peut-on d'ailleurs donner deux conditions sur le même champ Agent > Tag d'inventaire dans les critères ?
Merci.
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Salut servain-m
peut-être que tu peux essayer cette expression régulière qui imposera que le tag contienne au moins un caractère :
/(.+)/
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline
Bonjour gbougard, (et désolé de ne pas avoir répondu plus tôt alors que la votre était rapide, j'attendais une notification de réponse à ce forum que je n'ai jamais reçu)
Cette nouvelle expression régulière résout effectivement le fait de ne plus écraser un n° d'inventaire déjà renseigné quand le Tag de l'agent d'inventaire est vide et c'est déjà un bon point. Merci. De plus, le n° d'inventaire n'est pas modifié si il est verrouillé, autre bon point.
Mais il persiste l'autre problème : tant que cette règle est active, que le Tag soit vide ou non et que n° d'inventaire soit verrouillé ou non, une tentative de modification manuelle du n° d'inventaire différente de celle du Tag force quand-même la valeur du Tag. Si le Tag est vide, la valeur forcée pour le n° d'inventaire est la dernière valeur du Tag connue, ou une valeur vide si le Tag n'a jamais été renseigné.
Observez-vous le même phénomène ?
Debian 11 + Apache 2.4.56 + PHP 8.2.15 + MariaDB 10.11.6
GLPI 10.0.12 + manufacturersimports 3.0.5 + datainjection 2.13.4 + pdf 3.0.0 + reports 1.16.0
Offline
Salut servain-m,
n'ayant jamais mis en pratique cette fonctionnalité, je ne sais pas quoi te répondre.
Si tu penses qu'il y a un bogue, n'hésites pas à ouvrir une issue sur le github de GLPI, l'équipe coeur de GLPI comprendra sûrement mieux le problème.
GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer
Offline