# Mise en place d'une gestion de produits chimiques par code-barres

Julien Cartailler, Richard Rocca - Polimeni

► To cite this version:

Julien Cartailler, Richard Rocca - Polimeni. Mise en place d'une gestion de produits chimiques par code-barres. Cahier des Techniques de l'INRA, 2013, 80, 9 p. hal-02642008

HAL Id: hal-02642008

https://hal.inrae.fr/hal-02642008v1

Submitted on 18 Nov 2020

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY-SA 4.0 - Attribution - ShareAlike - International
License
# Mise en place d'une gestion de produits chimiques par code-barres

Julien Cartailler <fnref n="1" />, Richard Rocca-Polimeni<fnref n="1" />

**Résumé.** Dans le cadre de la mise en place de la démarche qualité, un système de suivi des produits chimiques a été installé au sein de l'équipe de recherche CALIPRO, membre de l'UMR 1145 Ingénierie Procédés Aliments (composée de cinq équipes). La quantité et la diversité des produits utilisés ainsi que la variété des usagers ont poussé à la création de ce système de gestion informatique et semi-automatisé. En effet, l'équipe doit gérer un flux de produits chimiques d'environ 40 produits par mois sur un stock d'environ 3500 contenants représentant 1500 références. Par ailleurs, l'équipe étant principalement implantée sur le site d'une école d'ingénieur, et les produits chimiques pouvant être destinés à l'enseignement et à la recherche, la gestion du stock était difficile et fastidieuse. Le système choisi s'appuie sur des solutions informatiques libres. Ce système, développé en interne, a ainsi facilité l'usage des produits chimiques pour les utilisateurs avec un coût d'implantation et d'entretien très faible.

**Mots clés** : code-barres, traçabilité, qualité, produits chimiques, client-serveur, stockage

## Introduction

Avant la mise en place de notre système, la gestion des produits chimiques se faisait à l'aide d'un fichier "Excel" mis à jour une fois par an par un inventaire complet de l'ensemble des produits répartis sur les différents lieux de stockage. Dans chacun de ces lieux, une feuille papier était remplie par les utilisateurs en indiquant la quantité prélevée. Ce système était très peu utilisé par les utilisateurs ce qui rendait l'inventaire annuel long et fastidieux. Le problème principal de ce fonctionnement était la difficulté de suivi des produits (leur emplacement, le nom du dernier utilisateur et la quantité restante) de la réception au laboratoire à l'évacuation. De plus, du fait que l'UMR soit implantée dans une école, le nombre et la variété des utilisateurs (permanents, non-permanents et étudiants en TP et projets) sont importants d'où la nécessité d'avoir un système simple et applicable rapidement.

La solution proposée a été d'étiqueter tous les contenants (même s'il s'agit du même composé) avec un code-barres unique (code 128) aléatoire de six caractères alphanumériques (environ 2 millions de possibilités). Nous avons décidé de ne pas détruire l'identification quand le produit est jeté pour un suivi des quantités utilisées annuellement et ainsi anticiper les périodes d'utilisations fortes (par exemple, pendant les travaux pratiques des étudiants ou les grandes campagnes d'analyses chimiques).

De plus, nous avons choisi d'utiliser des logiciels libres développés en interne pour limiter les coûts et faciliter la maintenance et les évolutions (Linux, MySQL, phpMyAdmin, TCL,...).

<footnote n="1">¹INRA, UMR1145 GENIAL Ingénierie Procédés Aliments, F91300 Massy
julien.cartailler@agroparistech.fr</footnote>
# 1. Base de données

Une base de données a été créée en collaboration avec les utilisateurs et les gestionnaires des produits chimiques. Les champs retenus sont de différents types : les données figées du produit (informations chimique, informations sur les fournisseurs, différentes dates-clés de la vie du produit) et enfin les données propres au contenant et modifiables par les utilisateurs. La base regroupe actuellement 3500 fiches produits pour 1500 composés différents. Elle subit un flux d'environ 20 produits entrants et 20 produits déclassés (évacués) par mois. Elle regroupe aussi une liste d'une vingtaine d'utilisateurs réguliers et enregistrés qui peuvent utiliser les clients vocaux. Cette base contient trois bases croisées, la première est la base produits, la deuxième contient les informations sur les utilisateurs avec leurs mails (voir paragraphe 3) et la troisième est celle qui permet la relation avec les fiches de sécurité.

**La première base - base produit - (Figure 1) contient :**

- les informations chimiques du produit comme son préfixe, ses noms (nom usuel et nom chimique); viennent ensuite le N° CAS qui est la fiche d'identité du produit, sa qualité, sa concentration, sa nature et enfin sa contenance;

- les informations du fournisseur avec son nom et le numéro de lot, ce qui favorise la traçabilité du produit;

- les différentes dates-clés de la vie du produit : la date de réception permettant de proposer aux utilisateurs d'utiliser en priorité les produits qui ont la date de réception la plus ancienne, la date de péremption pour savoir quand un produit est trop vieux et doit donc être éliminé ou déclassé (donnée par le fabricant, définie par l'utilisateur ou définie par défaut à trois ans après réception), la date d'inventaire. Cette dernière date permet des inventaires glissants sur une partie des stocks ;

-l'identification du produit avec le nom de l'équipe et le code-barres alphanumérique lisible sans douchette;

- enfin les données propres au contenant modifiables par les utilisateurs et gestionnaires. Ces données sont la date d'ouverture pour suivre le temps se stockage, un indicateur pour savoir si la bouteille est vide et si non, la quantité restante et le lieu de stockage du produit. La localisation est décomposée en trois parties : la pièce (exemple, C321), l'emplacement dans la pièce (exemple : frigo C, porte) et la localisation précise dans l'enceinte de stockage (exemple : 387).

**La deuxième base** permet l'identification des utilisateurs automatiquement par un code. On y retrouve le nom, le prénom, les initiales, le code de l'utilisateur de 10 caractères (sept avec le prénom puis le nom et un numéro de trois caractères, exemple julienc001), et l'adresse mail de l'utilisateur.

**La troisième base** sert à relier un nom de produit ou son N° CAS à une fiche de sécurité. Dans cette base sont consignés le numéro d'enregistrement unique auprès de la banque de données de Chemical Abstracts Service, le nom du produit, le nom en anglais et sa formule.
<figure><img src="image_2.png" /><figcaption>Figure 1. Fiche d'un produit.</figcaption></figure>

## 2. Serveurs

Les serveurs principaux sont hébergés sur une machine sous Linux. Le langage de programmation utilisé pour les serveurs et les clients est le TCL (Tool Command Language). C'est un langage de script interprété qui s'inspire principalement des langages C et Shell. Il est multiplateformes (Windows, Linux, Mac), extensible et facile à apprendre. TCL s'interface très aisément avec plusieurs langages, ce qui lui permet de communiquer facilement avec la base de données en SQL (Structured Query Language ou en français Langage de Requête Structurée). C'est un langage informatique normalisé servant à exploiter des bases de données. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données.

L'architecture utilisée est une architecture Client-Serveur (Figure 2a), c'est-à-dire un mode de communication à travers un réseau entre plusieurs programmes ou logiciels : l'un, qualifié de serveur, attend les requêtes des clients et y répond; l'autre, qualifié de client, envoie des requêtes au serveur.

Dans notre cas, le serveur physique contient la base de données en MySQL, le gestionnaire d'étiquettes, le serveur TCL qui parle aux clients (qui sont aussi en TCL) et le serveur SMTP (Simple Mail Transfer Protocol ou Protocole Simple de Transfert de Courrier) qui envoie les mails (Figure 2b).

Chaque client est multiplateformes (Windows, Linux, Mac) et interroge la base de données sur le serveur physique.
<figure><img src="image_3.png" /><figcaption>**Figure 2** : Architecture d'un système Client-serveur
**2a** : Architecture type d'un système Client-serveur
**2b** : Architecture utilisée pour la gestion des produits chimiques de l'UMR GENIAL</figcaption></figure>

## 3. Clients

Les clients sont de différents ordres et destinés à plusieurs types d'utilisateurs, on distingue deux catégories ;

- les clients primaires sont utilisés par le personnel achat/gestion des produits chimiques qui suivent toute la vie du produit, des commandes aux déchets en passant par les inventaires. Ils sont fait sur-mesure, personnalisés et modulables dans le temps ;

- les clients secondaires sont utilisés par les permanents et non-permanents qui utilisent seulement les produits. Pour ces clients, les modifications des fiches sont figées.

Les clients primaires sont les suivants :

- **le client administrateur** qui crée les fiches produits à l'arrivée des produits. Ce client permet de remplir tous les champs propres au produit, de générer un code-barres aléatoire et de créer de nouveaux lieux de stockage si nécessaire. De plus, une fiche identique (sans code-barres) peut être créée avec différents contenants possédant les mêmes informations ce qui simplifie la tâche des utilisateurs.

- **le client étiquette** sert à imprimer les étiquettes de code-barres qui sont ensuite collées sur les contenants. Il existe trois tailles d'étiquettes (63,5 x 29,6mm, 45,7 x 21,2mm, 25,4 x 10mm). La taille des étiquettes est adaptée aux contenants. En général, les plus grandes sont utilisées pour les flacons d'une contenance supérieurs à 500mg ou 500mL, les moyennes pour les contenants d'une contenance supérieure à 25mg ou 25mL et les petites pour les contenants les plus petits. Les étiquettes sont imprimées sur des feuilles A4 d'étiquettes de la marque AVERY (Réf : L6011, L6009, L6008). Ces étiquettes sont résistantes à l'huile et aux salissures, à l'eau, aux déchirures, aux UV, au temps, et ne sont pas altérées par des changements de température de -20°C à +80°C ce qui convient pour nos différents types de stockage. Par contre, il en faudrait d'autres pour des congélateurs à – 80°C
Les codes-barres sont imprimés par une imprimante laser universelle. Sur les étiquettes des deux premiers formats, trois informations ont été ajoutées sous le code-barres : le code-barres alphanumérique (en cas de non lisibilité par la douchette), la date de réception et le numéro de lot (Figure 3). Pour les plus petites, le code-barres n'est pas totalement aléatoire. Pour des raisons de place et de lisibilité, seul le code-barres alphanumérique est reporté (Figure 4). Ainsi pour avoir l'information sur la localisation précise dans le code-barres les quatre premiers caractères du code-barres reprennent le code de rangement du produit. Ce qui facilite le rangement du produit par les utilisateurs.

<figure><img src="image_4.png" /><figcaption>**Figure 3 :** Exemple d'étiquette de grande et moyenne taille.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>**Figure 4 :** Exemple d'étiquette de petite taille.</figcaption></figure>

Ce client (Figure 5) peut être installé sur n'importe quel ordinateur car tous les clients sont multiplateformes. Il fonctionne de la manière suivante :

- en premier lieu, l'utilisateur doit entrer le format de l'étiquette et son adresse mail,

- ensuite, il place le (ou les) code(s) alphanumérique(s) dans la (ou les) case(s) correspondantes aux étiquettes, il clique sur "imprimer" et il reçoit un document au format PDF par mail avec les codes-barres à leurs emplacements,

- enfin, il a plus qu'à imprimer la feuille avec l'imprimante.

<figure><img src="image_6.png" /><figcaption>**Figure 5.** Client étiquette.</figcaption></figure>

- Le client inventaire permet de changer la quantité restante de façon semi-automatique juste en scannant le code-barres du produit et un code associé à la quantité restante (Figure 6). Ce client permet de réaliser des inventaires rapidement.
- Le **client déchet** sert à changer le lieu de stockage des produits (la localisation devient "Evacuée"). Cela se fait de façon automatique en scannant seulement le code-barres du produit à jeter.

<figure><img src="image_7.png" /><figcaption>**Figure 6.** Fiche client inventaire.</figcaption></figure>

Pour les autres utilisateurs, deux clients ont été créés le client « grand public » et le client vocal.

- Le **client grand public** (Figure 7) a deux fonctions :

- la première est la recherche d'un produit à partir d'un ou plusieurs critères (Nom, N° CAS, qualité, concentration, nature et équipe). Le classement des fiches se fait alors en fonction des dates d'ouverture, de péremption puis de réception pour éviter que deux produits du même composé ne soient ouvert en même temps et pour favoriser l'utilisation du produit le plus vieux ;

- la deuxième fonction est la modification modérée d'une fiche produit (quantité restante, lieu de stockage et le dernier utilisateur ce qui peut être utile en cas de perte du produit). Le lieu et la localisation sont définis par les administrateurs et ne peuvent pas être créées par les utilisateurs. Ce client est multiplateforme et peut être installé sur l'ordinateur de l'utilisateur ainsi que sur des ordinateurs dédiés, proches des endroits de stockage.

<figure><img src="image_8.png" /><figcaption>**Figure 7.** Client "Grand public".</figcaption></figure>
- Le **client vocal** est constitué d'un ordinateur Neoware ou Raspberry Pi, d'une douchette à code-barres marque Zebex et d'enceintes pour le son (Figure 8).

Ce système est placé dans des endroits stratégiques près des lieux de stockage. L'utilisateur n'a pas à se soucier dans l'immédiat de remplir la base de données et peut se concentrer sur ses expériences. Le processus enregistre la date, l'identité de l'utilisateur et le produit. Le déroulement se fait en trois étapes (Figure 9) : 1) l'utilisateur scanne le code de démarrage pour lancer la procédure, 2) il scanne son code-barres personnel (composé 10 caractères avec 7 pour prénom, nom et 3 pour un chiffre, exemple julienc001), 3) il scanne le code-barres du produit.

Le mail lui est alors envoyé, il contient un lien direct vers la fiche de modification sous forme d'un formulaire (Figure 10) que l'utilisateur pourra remplir ultérieurement depuis son navigateur Internet. Si les modifications ne sont pas effectuées, un rappel sera envoyé toutes les semaines dans sa boîte mail. Dans ce lien, on retrouve la fiche produit mais aussi un lien avec la fiche de sécurité.

Les modifications qui peuvent être apportées, si besoin, sont la quantité restante et le nouveau lieu de stockage à choisir dans une liste déroulante.

<figure><img src="image_9.png" /><figcaption>Figure 8. Photo d'un client vocal.</figcaption></figure>
<figure><img src="image_10.png" /><figcaption>Figure 9. Schéma fonctionnement du client vocal.</figcaption></figure>

## Fiche produit:

**Préfixe :**

**Nom :** ACIDE FOLIQUE

**CAS :** 59-30-3

**Autre nom :**

**Qualité :**

**Concentration :** 97 %

**Nature :** SOLIDE

**Contenance :** 10 G

**Fournisseur :** SIGMA

**Lot :** 010M1567

**Réception :** 2010-09-17

**Date de péremption :** 2013-09-17

**Date du dernier inventaire :** 2012-07-17

**Équipe propriétaire :** CALIPRO

**Code :** L2CCOH

**Date d'ouverture :** 2011-01-03

Lien direct vers la fiche sécurité

Pour plus d'informations sur le produit (hygiènes, sécurité, etc.), cliquer ici:

ACIDE FOLIQUE

Merci de mettre à jour la fiche :

**Quantité restante :** 1

**Lieu de stockage :** C230 - LABO REACTEURS

<figure><img src="image_11.png" /></figure>

Valider

Valider pour faire apparaître les localisations plus précises

Informations modifiables par l'utilisateur

**Localisation d'origine :**

Lieu de stockage : C230 - LABO REACTEURS; Localisation : PLACARD; Localisation précise :

Si aucune localisation ne vous convient, merci de nous contacter à l'adresse suivante : [barcode@agroparistech.fr](mailto:barcode@agroparistech.fr)

En cas de problème avec cette fiche produit, merci d'envoyer un mail à : [barcode@agroparistech.fr](mailto:barcode@agroparistech.fr en précisant le code suivant: L2CCOH

Si la fiche ne s'affiche pas correctement, merci d'envoyer un mail à : [barcode@agroparistech.fr](mailto:barcode@agroparistech.fr)

<caption>Figure 10. Fiche de modification PHP.</caption>
## 4. Robots automatiques

En plus de tous les clients décris précédemment, le système dispose de robots qui sont des programmes informatiques lancés sur la machine hébergeant le serveur.

Il existe deux types de robots, le premier permet de générer une alerte configurable convivialement par le responsable des achats sur les produits dits sensibles (délais de livraison élevés, utilisations répétées et consommatrices).

Il envoie un mail au responsable quand les quantités définies sont dépassées.

Il permet aussi d'envoyer un rappel aux responsables des inventaires pour signaler, si besoin, les produits qui n'ont pas été inventoriés dans l'année.

Le deuxième robot permet de faire des rappels aux personnes qui ont utilisé le client vocal, mais n'ont pas mis à jour la fiche produit de recevoir un rappel toutes les semaines, et cela tant que la fiche n'a pas été modifiée. Ces robots interrogent la base une fois par semaine.

## Conclusion et perspectives

La mise en place de la gestion des produits chimiques par code-barres a permis d'améliorer la gestion des stocks (ainsi que l'inventaire en continu des produits).

Ce projet s'inscrit dans la démarche qualité de l'équipe CALIPRO.

Après un an de fonctionnement, nous pouvons constater un gain de temps sur l'inventaire puisque celui-ci s'effectue de manière continue et semi-automatique.

Cela permet aussi d'avoir une vision des stocks simplifiée et de limiter les risques de rupture en anticipant les commandes.

Les utilisateurs disposent ainsi d'un outil accessible depuis leur poste de travail leur indiquant l'existence et la localisation des produits dont ils ont besoin. Ils reçoivent, de manière automatique, les fiches produits à modifier ainsi que les fiches sécurité grâce à un code personnel et les clients vocaux.

Néanmoins, il faut remarquer que la mise en place de ce système à été relativement complexe au démarrage. En effet, la création de la base des produits existant et le collage des étiquettes sur les contenants nécessitent l'implication de nombreuses personnes sur plusieurs semaines. Cependant, l'ajout régulier de nouveaux produits est maintenant rapide.

Finalement, c'est un système semi-automatique qui demande l'implication rigoureuse et régulière des utilisateurs. L'installation de cette gestion a un coût faible, achat de Raspberry Pi (50€), de douchettes à code-barres (40€) et d'enceintes audio (10€). Ce coût a été en plus atténué par le recyclage du matériel informatique obsolète du laboratoire et par l'utilisation de logiciels libres développés en interne.

Les observations des utilisateurs ont contribué à une mise à jour du système (client modulable) et ont permis une évolution constante selon les besoins.

L'équipe CALIPRO a servi d'équipe test et le résultat étant satisfaisant, la généralisation dans les autres équipes de l'URM GENIAL est en cours. Lors des Journées de la Mesure et de la Métrologie (J2M 2012), d'autres unités de l'INRA se sont montrées intéressées et envisagent une mise en place.