You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2014-11-09 01:10:25

Neutro
Member
Registered: 2014-09-03
Posts: 34

Contrib : mise à jour lieux en fonction des noms d'utilisateur via CSV

Salut à tous,

J'avais besoin de mettre à jour les lieux des ordinateurs et moniteurs dans GLPI à partir d'un ficher CSV extrait de l'annuaire de notre entreprise.

Etant donné que ceci est impossible via le plugin data_injection, voici le script SQL que j'ai utilisé pour cela, au cas où cela intéresse quelqu'un :

create table majlieux

(

username VARCHAR(255) collate utf8_unicode_ci,

lieu VARCHAR(255) collate utf8_unicode_ci,

lieucomplet VARCHAR(255) collate utf8_unicode_ci,

id INT(11),

PRIMARY KEY (username)

)

LOAD DATA INFILE '/usr/glpi/lieux.csv'
INTO TABLE majlieux
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

UPDATE majlieux set lieucomplet = lieu

insert ignore into glpi_locations (name, completename) select distinct lieu, lieucomplet from majlieux

update majlieux
inner join glpi_locations on majlieux.lieu = glpi_locations.name
set majlieux.id = glpi_locations.id

update glpi_computers
inner join majlieux on majlieux.username = glpi_computers.contact
set glpi_computers.locations_id = majlieux.id

update glpi_monitors
inner join majlieux on majlieux.username = glpi_monitors.contact
set glpi_monitors.locations_id = majlieux.id

drop table majlieux

Principe du système :

0°) création d'une table "majlieux" pour l'import des données du fichier csv
1°) import des données du csv dans une table nommée "majlieux"
2°) import des nouveaux lieux dans la table glpi_locations à partir de la table "majlieux"
3°) import de l'ID des lieux dans la table "majlieux" à partir de la table "glpi_locations"
4°) définition du lieu des ordinateurs en mettant à jour le champ "locations_id" dans "glpi_computers" via une jointure avec le nom d'utilisateur de la table "majlieux"
5°) définition du lieu des moniteurs en mettant à jour le champ "locations_id" dans "glpi_monitors" via une jointure avec le nom d'utilisateur de la table "majlieux"
6°) suppression de la table majlieux.


Enjoy smile


GLPI 0.84.7 - Plugins : data_injection 2.3.1 - OCS Inventory NG 1.0.3 - Barscode 1.0
OCS Inventory 2.1.2 clients + serveur / Hébergement local sur serveur Dell R320 RHEL 6.5
Scan des code-barres grâce à l'application "QR Droid" sur smartphones android
Parc de 300 postes

Offline

Board footer

Powered by FluxBB