Vous êtes sur la page 1sur 37

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université SAAD DAHLEB –Blida 1

Faculté des Sciences

Département informatique

PROJET DE FIN D’ETUDES


Pour obtenir le titre de Licence en Informatique

Option : Ingénierie des Système d’information et Logiciels

Réalisé par : Moussa Dounia


Soualma Feriel
Ouacher Roumaissa

Enseignant-Tuteur : M. Mahfoud BALA


TABLES DES MATIERES

INTERODUCTION GENERALE..................................................................

Chapitre 1 : introduction aux lacs de données..........................


1) les base de données ..................................................................
2)Le data Warehouse….................................................................
3)Le data Lake ..............................................................................
4)L’architecteur d’un data lake .....................................................
5)Big data Analytics et les Data lake.............................................

Chapitre 2 : Stratégies d’ingestion des lacs de données..............

1) L’ingestion de données …....................................................


2) Les composants de l’ingestion de données …........................
3) le mode opératoire ......................................................................
4) les fonctions de l’ingestion de données ......................................
5) L’ingestion de données VS intégration de données …................
6) Types d’outils d’ingestion de données.........................................
7) Les sources de données ...............................................................
8) Données structurées vs semi-structurées vs non structurées........
9) ETL VS ELT................................................................................
10) Un Catalogue de métadonnée ....................................................
11) module de paramétrage………………………………………...
Introduction Générale

Aujourd’hui, les données, et notamment le Big Data, font partie du


quotidien de toute organisation. Elles servent à des fins d’analyse, d’étude et
sont désormais au cœur du processus décisionnel.
Concrètement, elles aident les entreprises à prédire et anticiper les tendances de
marché, mieux comprendre les besoins des consommateurs, optimiser leurs
plans d’action marketing ou encore améliorer le fonctionnement
organisationnel.
Mais pour pouvoir utiliser la donnée de maniéré optimale en tirer tout son
potentiel, il faut pouvoir rassembler la data en un seul endroit unifié qui soit
facilement accessible aux utilisateurs concernés. L’ingestion des données
permet des faire cela.
Chapitre 1 : Introduction aux lacs de données

1- LES BASSE DE Données :

Les bases de données ont vu le jour dans les années 1950, avec l’essor de
la base de données relationnelles dans les années 1980. Essentiellement, une
base de données est une collection organisée de données. Les bases de données
sont classées en fonction de la façon dont elles stockent ces données. Les
premières bases de données étaient plates et se limitaient à de simples lignes et
colonnes. Aujourd’hui, les bases de données populaires sont : Aujourd’hui, les
bases de données populaires sont : Les bases de données relationnelles, qui
stockent leurs données dans des tableaux. Les bases de données orientées objet,
qui stockent leurs données dans des classes et sous-classes d’objets.
Les bases de données sont vraiment conçues pour surveiller et mettre à jour
les données structurées en temps réel, et elles ne contiennent généralement que
les données les plus récentes disponibles. Une base de données est généralement
associée à un système de gestion de base de données (SGBD) qui est
responsable du stockage et de la gestion des données un des formats de base de
données les plus courants est la base de données OLTP. [6]

2- Le Data Warehouse :

Un entrepôt de données recueille des données de diverses sources,


internes ou externes, et optimise la récupération des données à des fins
commerciales. Un Data Warehouse permet de stocker des données historiques,
structurées, non volatiles, orientées objet. Il est conçu pour l’analyse de données
dans le cadre de la prise de décision.
Avec le Data Warehouse, la valeur n’est pas annulée et remplacée. Ce qui
permet de garder l’ensemble des valeurs que la donnée a pu prendre durant son
existence.
L’entrepôt de données est un modèle pour soutenir le flux de données des
systèmes opérationnels vers les systèmes décisionnels. Par exemple, si vous
possédez une carte de fidélité, la base de données peut contenir vos
achats les plus récents. L’entreprise peut ainsi les analyser et en
déduire les tendances actuelles des consommateurs.
L’entrepôt de données, quant à elle, peut contenir un enregistrement
de tous les articles que vous avez achetés. Ce qui permet une analyse
plus étendue de son évolution et facilite ainsi le processus d’aide à la
décision. Une base de données est un fournisseur de données en temps
réel, tandis qu’un Data Warehouse est davantage une source d’analyse
des données à mesure qu'elles sont enregistrées.
Toutes les données peuvent être extraites d’un entrepôt de données
pour être analysées chaque fois que cela est nécessaire.
3- Le Data Lake :

Un Data Lake ou lac de données est un référentiel de données et repose


sur une architecture à plat permettant de stocker des données brutes provenant
de sources diverses. Ces données peuvent également être structurées, non-
structurées ou semi-structurées pour une utilisation ultérieure, au contraire d’un
Data Warehouse qui possède essentiellement des données traitées et structurées.
Les données qui entrent dans les bases de données et les entrepôts de données
doivent être nettoyées et préparées avant d’être stockées. Pour rappel, les
données non structurées peuvent aller du texte aux données de médias sociaux
en passant par les données machine telles que les fichiers journaux et les
données de capteurs provenant de dispositifs IoT.
Un Data Lake contient des données de manière non structurée. Il n’y a pas de
hiérarchie ou d’organisation entre les différents éléments de données. Les
données sont conservées sous leur forme la plus brute et ne sont ni traitées ni
analysées. Un Data Lake accepte et conserve toutes les données provenant de
différentes sources et supporte tous les types de données.
Un Data Lake utilise une architecture plate pour stocker les données. Chaque
élément de données d’un Lake se voit attribuer un identifiant unique et est
marquée avec un ensemble de balises de métadonnées étendues. Par la suite, le
Data Lake peut être interrogé pour obtenir des données pertinentes, et ce plus
petit ensemble de données peut ensuite être analysé pour aider à répondre à des
problématiques d’entreprise. [6]

4- L’architecture d’un Data Lake :

Les Data Lakes sont construits à partir d’un modèle de données


schema-on-Read. Un schéma est essentiellement le squelette d’une
base de données décrivant son modèle et la façon dont les données y seront
structurées. Le modèle de données schema-on-read vous permet de charger vos
données dans le Lake sans avoir à vous soucier de sa structure. Ce qui rend la
structure très flexible.
Il existe deux types de traitement pour un intégrer des données à un Data Lake :

a- Batch processing (traitement par lots) : Des millions d’amas de données


traitées sur de longues périodes. C’est la méthode la moins sensible au
facteur temps pour le traitement des donnée volumineuses.
b- Stream processing (traitement des flux) : Des petits lots de données traités
en temps réel. Le traitement des flux devient de plus en plus précieux pour
les entreprises qui exploitent l’analyse en temps réel. Certains outils sont
particulièrement utiles pour le traitement de données non structurées telles que

L'activité des capteurs, les images, les messages des médias sociaux et
l’activité du parcours de navigation sur Internet. D’autres outils donnent la
priorité à la vitesse de traitement et à l’utilité des programmes de Machine
Learning.[6]

5- Big Data Analytics et les Data Lakes

Le Big Data Analytics parcourt le Data Lake pour tenter de découvrir des
schémas, les tendances du marché et les préférences des clients afin d’aider les
entreprises à prendre des décisions plus rapidement. Pour ce faire, on procède à
quatre analyses différentes :
L’analyse descriptive permet d’examiner rétrospectivement ou un problème a
pu survenir au sein de l’entreprise.
L’analyse diagnostique est une autre analyse rétrospective qui examine
pourquoi un problème spécifique est survenu dans une entreprise. C’est un peu
plus approfondi que l’analyse descriptive. [6]

Chapitre 2 : Stratégies d’ingestion des lacs de données

1- L’ingestion de données :

L’ingestion de données désigne le processus de collecte de data à partir de


collecte de data à partir de différentes sources et sa centralisation sur un site de
destination dans lequel elles sont prêtes à être analysées et utilisées.
Cette pratique permet concrètement d’extraire des informations Localisées
dans des bases de données diverses qui ne communiquent pas forcément entre
elles. En les mettant en relation et en les centralisant dans un
Système unifié. [2]

Le cadre d’ingestion de données capturé les données de plusieurs sources


de données et l’ingère dans le Big Data Lake, il se connecte en toute sécurité à
différentes sources, capture les modifications et les réplique dans le lac de
données. [4]

2- Les composants de l’ingestion de données :

Un cadre d’ingestion standard se composé de deux composants, à savoir


collecteur de données et intégrateur de données :
Le collecteur de données est responsible de la collecte ou de l’extraction des
données à partir d’une source de données.
L’intégrateur de données s’occupe d’ingérer les données dans les données lac.
L’implémentation et conception du collecteur de données et de l’intégrateur les
Composants peuvent être flexible selon la pelle technologique de données
volumineuses. [4]

3- Les modes opératoires d’ingestion de données :

il peut fonctionner soit en mode temps réel ou batch. De par leurs noms
Les facteurs qui déterminent l’ingestion mode de fonctionnement sont le taux de
changement de données à la source et le volume de ce changement.[2]

4- La fonction d’ingestion de données :

L’ingestion de données aide les équipes à aller vite. La portée d’un pipeline
de données donné est délibérément étroite, ce qui donne aux équipes de données
flexibilité et agilité à grande échelle. Une fois les paramètres définis, les
analystes de données et les spécialistes des données peuvent facilement créer un
pipeline de données unique pour déplacer les données vers le système de leur
choix.
L’ingestion de données extrait les données de la source où elles ont été
créées ou stockées à L’origine, et charge les données dans une destination ou
une zone de transit. Un simple pipeline d’ingestion de données peut appliquer
une ou plusieurs transformations légères enrichissant ou filtrant les données
avant de les écrire dans un ensemble de destinations, un magasin de données ou
une file d’attente de messages. Des transformations plus complexes telles que
des jointures, des agrégats et des tris pour des analyses, des applications et des
systèmes de reporting spécifiques peuvent être effectuées avec des pipelines
supplémentaires. [2]

5- Ingestion de données vs intégration de données :

L’ingestion de données est à l’origine une petite partie de l’intégration des


données, un processus plus complexe nécessaire pour rendre les données
utilisables dans de nouveaux systèmes avant de les charger. L’intégration de
données nécessite généralement une spécification préalable de la source au
schéma, de la transformation à la destination.
Avec L’ingestion de données, quelques transformations légères peuvent être
effectuées, telles que le masquage des informations personnellement
identifiables (PII), mais la majeure partie du travail dépend de l’utilisation finale
et se produit après l’obtention des données.
L’intégration des données comprend des processus pour préparer les données à
être consommables à leur destination finale.
L’ingestion de données achemine les données vers des endroits où la
préparation a lieu en réponse aux besoins en aval.
L’ingestion de données fonctionne bien pour le streaming de données qui
peuvent être utilisées immédiatement avec très peu de transformations ou
comme moyen de collecter, des données (en particulier des ensembles de
données volumineux) pour une analyse ad hoc. En se concentrant sur la partie
ingestion du cycle de vie des données, les entreprises ont pu accélérer la
disponibilité des données pour l’innovation et la croissance [5]

6- Types d’outils d’ingestion de données :

Si vous n’avez pas à définir la structure rigide d’un processus d’intégration


de données avant de commencer à ingérer des données, vous disposez d’un
moyen plus flexible et réactif pour créer votre architecture de données. Il existe
plusieurs types d’outils à considérer.

Codage manuel
Une façon d’ingérer des données peut être de coder à la main un pipeline de
données, en supposant que vous savez comment coder et que vous connaissez
les langages nécessaires.
Cela vous donne le plus grand contrôle, mais si vous ne connaissez pas la
réponse à ces questions et si ci-dessus, vous risquez de passer beaucoup de
temps à travailler et à retravailler votre code. [5]
Outils à usage unique
Les outils d’ingestion de données de base fournissent une interface glisser-
déposer avec de nombreux connecteurs et transformations prédéfinis afin que
vous puissiez ignorer le codage manuel. Bien que cela semble être un moyen
rapide d’accomplir beaucoup de choses ou de permettre aux consommateurs de
données moins qualifiés, combien de pipelines de données par glisser-déposer
allez-vous créer avant d’atteindre la limite de ce que vous pouvez surveiller et
gérer ? De plus, vous ne pouvez pas partager votre travail avec votre équipe ou
les analystes et data scientistes qui frappent à votre porte.[5]

Plateformes d’intégration de données

Les plates-formes d’intégration de données traditionnelles intègrent des


fonctionnalités pour chaque étape de la chaîne de valeur des données. Cela
signifie que vous avez très probablement besoin de développeurs et
d’architectures spécifiques à chaque domaine, ce qui rend difficile une
évolution rapide et une adaptation facile au changement. [5]

Une approche Data Ops

En appliquant des méthodologies agiles aux données, une approche Data Ops
des pipelines de données automatise autant que possible et fait abstraction du
« comment » de la mise en œuvre. Les ingénieurs de données peuvent se
concentrer sur le « quoi » des données et répondre aux besoins de l’entreprise.
[5]

7) Les sources de données :

Une source de données est l’endroit d’où proviennent les données


utilisées, une source de données peut être l’endroit où les données ont été
créées ou celui ou les informations physiques ont été numérisées. Cependant,
même les données les plus élaborées peuvent être Considérées comme les
sources, tant qu’un autre processus y accédé et les utilise.
Concrètement, une source de données peut être une base de données, Un
fichier plat, des mesures provenant directement d’appareils physiques, des
données obtenues par web scraping ou l’une des nombreux services de données
statiques et de données en streaming
Qui abondent sur internet.[2]

8) Les données structurées VS Semi-structurées VS Non


Structurées.
Big Data comprend un volume énorme, une vitesse élevée et une variété
extensible de données. Il en existe 3 types : les données structurées, les
données semi-structurées et les données non structurées
Données structurées
Les données structurées sont des données dont les éléments sont adressables
pour une analyse efficace. Il a été organisé en un référentiel formaté qui est
généralement une base de données. Il s’agit de toutes les données qui peuvent
être stockées dans la base de données SQL dans une table avec des lignes et des
colonnes. Ils ont des clés relationnelles et peuvent facilement être mappés dans
des champs prédéfinis. Aujourd’hui, ces données sont principalement traitées
dans le cadre du développement et de la manière la plus simple de gérer les
informations. Exemple : données relationnelles.[1]

Données semi-structurées :
Les données semi-structurées sont des informations qui ne résident pas dans
une base de données relationnelle mais qui possèdent certaines propriétés
organisationnelles qui facilitent leur analyse. Avec certains processus, vous
pouvez les stocker dans la base de données de relations (cela peut être très
difficile pour certains types de données semi-structurées), mais les semi-
structurés existent pour réduire l’espace. Exemple : données XML. [1]

Données non structurées :


Les données non structurées sont des données qui ne sont pas organisées de
manière prédéfinie ou qui n'ont pas de modèle de données prédéfini, elles ne
conviennent donc pas à une base de données relationnelle traditionnelle. Ainsi,
pour les données non structurées, il existe des plates-formes alternatives pour le
stockage et la gestion, elles sont de plus en plus répandues dans les systèmes
informatiques et sont utilisées par les organisations dans une variété
applications de veille stratégique et d’analyse. Exemple : Word, PDF, Texte,
Journaux multimédias [1]

10)ETL vs ELT :
Le processus ETL :
Le processus extraction des données des systèmes sources et de
leur transfert dans l’entrepôt de données est communément appelé
ETL, qui signifie extraction, transformation et chargement. Il est à
noter que ETL fait référence à un processus général et non à trois
étapes bien définies. L’acronyme ETL est peut-être trop simpliste, car
il omet la phase de transport et implique que chacune des autres
phases du processus est distincte. [6]

Les principales actions du processus :


1-Extraction des données :
La première étape de ETL est l’extraction. Au cours de
L’extraction, les données sont spécifiquement identifiées et ensuite
prélevées à de nombreux endroits différents. Ces données peuvent
provenir d’une variété de choses, comme des fichiers, des feuilles de
calcul, des systèmes de bases de données et des applications, etc. Il
n'est généralement pas possible d’identifier le sous-ensemble exact
d’intérêt, de sorte que l’on extrait plus de données que nécessaire pour
s’assurer qu’il couvre tous les besoins. Selon les capacités du système
source (par exemple, les ressources du système exploitation),
certaines transformations peuvent avoir lieu pendant ce processus
d'extraction. La taille des données extraites varie de quelques
centaines de kilo-octets à plusieurs giga-octets, selon le système
source et la situation commerciale. C’est également le cas pour la
période entre deux extractions ; certaines peuvent varier de jours ou
d’heures à presque en temps réel. [6]
Transport des données :
Une fois les données extraites, elles doivent être physiquement
transportées vers le système cible ou vers un système intermédiaire
pour traitement ultérieur. Selon le mode de transport choisi, certaines
Transformations peuvent également être effectuées au cours de ce
processus.

Transformation des données :


La prochaine étape du processus ETL est la transformation. Une
fois les données extraites, elles doivent être physiquement
transportées vers la destination cible et converties dans le format
approprié. Cette transformation de données peut inclure des
opérations telles que le nettoyage l’assemblage et la validation des
données.
Chargement des données :
La dernière étape du processus ETL consiste à charger les
données transformées dans la cible de destination. Cette cible peut
être une base de données ou un Data Warehouse. Il existe deux
Méthodes principales pour charger les données dans un entrepôt :
chargement complet et chargement incrémentale. La méthode du
chargement complet implique un déchargement complet des données
qui a lieu la première fois que la source est chargée dans l’entrepôt.
La charge incrémentale, par contre, a lieu à intervalles réguliers. Ces
intervalles peuvent être des incréments de flux (meilleurs pour de plus
petits volumes de données) ou des incréments de lots (meilleurs pour
de plus grands volumes de données).
Les équipes de Business Intelligence (BI) lancent ensuite des requêtes
sur ces données, qui sont ensuite présentées aux utilisateurs finaux où
aux personnes chargées de prendre des décisions commerciales, ou
utilisées comme entrées pour des algorithmes de Machine Learning.
Un problème courant rencontré ici est que si les résumés OLAP ne
peuvent pas supporter le type d’analyse qu'équipe BI veut faire, alors
tout le processus doit être relancé, cette fois avec différentes
transformations. [6]

Processus ELT :
ELT signifie Extract, Load, Transform. L’ELT est une variante de
l’Extract, Transform, Load (ETL), un processus d’intégration de
données dans lequel la transformation a lieu sur un serveur
intermédiaire avant d’être chargée dans la cible. En revanche, les ELT
permettent de charger les données brutes directement dans la cible et
de les transformer par la suite. Cette capacité est particulièrement
intéressante pour le traitement des grands ensembles de données
nécessaires à la Business Intelligence (BI) et à l’analyse de données
volumineuses.
Historiquement, l’ETL a toujours été le meilleur et le plus fiable
moyen de déplacer des données d’un endroit à un autre. Mais, comme
les systèmes modernes de stockage de données ont augmenté leur
puissance de calcul, il est parfois plus efficace de charger les données
avant de les transformer. L’un des principaux attraits des ELT est la
réduction des temps de chargement par rapport au modèle ETL. Tirer
parti de la capacité de traitement intégrée à un Data Warehouse réduit
le temps que les données passent en transit et est plus rentable. [6]

Avantages du processus ELT :


Les ELT peuvent tirer parti de la puissance de calcul du matériel
existant pour effectuer des transformations. Un ELT peut ainsi tirer
parti de la puissance du cluster pour transformer les données.
De plus, lorsque vous utilisez une ELT, vous déplacez l’ensemble des
données vers la cible. Ceci peut être utile si vous ne voulez pas
transformer les données avant de les déplacer, ou si vous voulez de la
flexibilité dans le schéma pour les données cibles.
Les données sont relativement simples, mais peuvent être massives.
C’est le cas par exemple des données brutes provenant de capteur.
Dans ce cas, les transformations qui ont lieu dans la cible peuvent être
relativement simples, et l’avantage vient de la capacité de la mémoire
de la cible à charger rapidement des volumes massifs de données.
Il est également intéressant d’utiliser les ELT dans un environnement
Big Data mouvant et évolutif. Il peut être très compliqué et coûteux
de mettre à jour les anciens développements avec les dernières
nouveautés technologiques. Cependant, il est possible de choisir une
ELT qui s’adapte facilement à ces innovations. [6]
10) Un catalogue de métadonnées
Un catalogue de métadonnées n’est rien d’autre qu’une collection de
toutes les données concernant vos données. Les métadonnées peuvent
inclure la source de données, l’origine, le propriétaire et d’autres
attributs d’un ensemble de données. Ceux-ci vous aident à en savoir
plus sur un ensemble de données et à évaluer s’il est bien adapté à
votre cas d’utilisation.
Un catalogue de métadonnées vraiment puissant vous aidera à :
Créez un référentiel central pour toutes vos données et métadonnées,
y compris la structure, la qualité, les définitions et l’utilisation des
données.
Accédez aux métadonnées justes à côté des données elles-mêmes,
sans demander autour de vous.
Assurez la cohérence et l’exactitude des données en se mettant à jour
automatiquement, tout en permettant aux humains de rester informés.
[3]
Les bases des métadonnées et des catalogues de données
Les métadonnées ne sont que des données sur d’autres données. Il fournit des
informations de base sur un actif de données pour aider les utilisateurs à trouver
les données dont ils ont besoin.
. Un exemple de métadonnées de base est l’auteur
, la date de création, la dernière modification des données, la source et
la taille d’un ensemble de données. Certains exemples plus complexes
de métadonnées sont les journaux de requêtes, le lignage, le score de
qualité et les discussions associées.
la différence entre les données et les métadonnées
Les données sont des informations qui mesurent, décrivent ou
rapportent quelque chose.
Les métadonnées sont des informations pertinentes qui donnent un
contexte à ces données.
Qui utilise les métadonnées
Quiconque utilise des données utiliserait également des métadonnées.
Après tout, vous ne pouvez pas utiliser un ensemble de données tant
que vous ne savez pas si ces données conviennent à votre cas
d’utilisation.
Où sont stockées les métadonnées
Les métadonnées doivent être stockées à proximité des données qu’elles
décrivent. Cela peut être dans une table ou un champ à proximité, un document
séparé comme un dictionnaire de données, ou idéalement dans un catalogue de
métadonnées.
Quels sont les avantages des métadonnées
Les métadonnées sont importantes pour donner un contexte aux données. Avec
la quantité de données disponibles de nos jours, vous avez besoin de plus
d’informations sur un ensemble de données avant de savoir s’il vous convient.
Les métadonnées aident également à documenter les données afin qu’elles
puissent être partagées et réutilisées dans plusieurs cas d’utilisation.
À quoi servent les catalogues de métadonnées
Un catalogue bien organisé avec vos métadonnées est utile pour créer une
source unique de vérité pour toutes les données de votre entreprise. Un
catalogue de métadonnées peut aider votre équipe à découvrir, gérer et
comprendre tous vos actifs de données en un seul endroit.
11) module de paramétrage :
Définition :
Le module de paramétrage est le point d'arrivée de tous les modules
paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar.
Les modules Facturepar et Corepar ont disparu au profit de ce module qui
permet de créer à la volée toutes leurs fonctionnalités et plus.[7]
Installation :

 Téléchargez le fichier archive du module (.zip) depuis le site web


www.dolistore.com ou récupérez le par toute autre manière.
 Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier
custom à la racine de dolibarr pour l'y placer avec tous vos modules
supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter
les deux lignes du fichier de conf en rapport)
 Décompressez le fichier par la commande unzip module_parametrage-
X.Y.Z.zip
 L'emplacement correct du module doit être du type :
htdocs/custom/parametrage.
 Aller dans l'emplacement d'installation du module et donner les privilèges de
lecture et d'écriture au seveur PHP pour les fichiers suivants :
1. parametrage_consts.php
2. parametrage_default_consts.php
Le module est opérationnel et peut être activé.
Remarque sur le paramétrage logiciel en général et dans dolibarr :
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre
quelques notions sur le paramétrage de logiciel en général, puis pourquoi et
comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr
avec les bénéfices qu'elle apporte.
Les types de paramètres du logiciel:
Par convention dans les solutions logicielles web, on utilise trois types de
paramètres :
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres 
stockés dans la base de données dans le but de pouvoir être gérés comme
n’importe quel autre type de données.
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent
de la plateforme ou qui définissent les paramètres d’accès à la base de données
et ne peuvent donc pas être stockés en base de données.
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne
ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces
paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa
base de données locale.
Les types de paramètres dans Dolibarr :
Dans Dolibarr, comme dans la plupart des applications web, les constantes base
de données sont utilisées pour configurer les différentes options de l’application
qui sont appelées à être modifiées au cours du sa mise en œuvre et sont
stockées dans la table « llx_const ».
En plus de stocker les paramètres d’accès à la base de données, les constantes
fichier sont utilisées pour référencer les chemins des différents sous-ensembles
de l’application ainsi que le mode de fonctionnement (développement ou
production). En un sens, les constantes fichiers concernent les paramètres à qui
on affecte des valeurs une seule fois et ne sont pas destinés à être changés
dans une installation.  
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale
« llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont
seulement utilisées pour identifier la session.[7]
Le concept de configuration au sens large :
On désigne comme configuration au sens large, l’ensemble de tous les
paramètres d’une application adaptés à une entreprise ou une activité
déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une
entreprise de commerce de détail ou par une entreprise de production avec deux
configurations complètement différentes. Les deux entreprises peuvent utiliser
des modules communs avec des paramètres communs ou de modules,
spécifiques au type d’entreprise.  
De la, on peut définir une configuration comme un ensemble de valeurs affectées
à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble
de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci
inclut les modules activés, les valeurs de paramètres associés à chacun de ces
modules ainsi que des valeurs associées à des paramètres de Dolibarr.[7]
Considérations pour le stockage des paramètres de configurations :
On peut stocker les paramètres qui définissent une configuration dans une table
de la base de données ou bien dans un fichier. Bien que traditionnellement on
préfère utiliser les constantes base de données pour stocker les paramètres de
l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la
place:

1. Un fichier est plus facilement consultable qu’une table de base de


données. Il peut même être consulté sans installation de Dolibarr.
2. Les modifications dans un fichier peuvent être gérées par un gestionnaire
de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table
spéciale pour gérer l’historique avec le traitement qui s’ensuit.
3. Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est
celui de pouvoir définir des métadonnées en commentaires sur les
paramètres au lieu d'utiliser les champs limités de la table llx_const. C'est
ce qui a permis de définir plusieurs types de données dans les fichiers de
configurations de modules paramétrable (Voir ci dessous).
Il existe toutefois quelques inconvénients mineurs :
1. Les requêtes SQL sont très utiles pour faire des consultations
complexes. Un effort de programmation plus important est
nécessaire pour faire des recherches complexes dans des fichiers
texte.[7]
Description de notre solution de gestion de configurations dans dolibarr :
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des
directives define pour chaque paramètre de module paramétrable et une
instruction du type $conf->global->XX=YY pour les paramètres base de données.
C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres
peuvent être modifiés pour ajuster la configuration. On peut aussi créer de
nouvelles configurations par modification de configurations préexistantes.
Cette solution inclut les modules paramétrables, les modules non paramétrables
et le module de paramétrage.[7]
Les modules paramétrables :
Les modules paramétrables sont des modules conçus pour interagir efficacement
avec le module de paramétrage. Ils se limitent actuellement
à Cashdeskpar et Menupar. Leurs caractéristiques sont :

1. Tous les paramètres de ces modules sont inscrits sur un fichier de


configuration.
2. Les paramètres sont consultables et modifiables dans la configuration du
module.
3. On définit 3 types de paramètres : chaîne,intervalle et booléens.
4. Dans la page de configuration du module, on peut définir une ou plusieurs
pages qui affichent une section de paramétrage pour changer les valeurs
de paramètres à la volée.
5. Chaque paramètre peut être configuré pour apparaître ou non dans les
sections de paramétrage autres que la page de configuration du module.
Les modules non paramétrables :
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution
standard de Dolibarr font partie de cette catégorie. Leur paramètres de
configuration sont enregistrés dans la base de données de Dolibarr dans la
table llx_const. Par convention, le nom du module est inclu dans le nom du
paramètre et est composé des premières lettres de ce dernier avant le caractère
souligné.[7]
Le module de paramétrage :
Ses tâches essentielles sont :

1. La composition de configurations par chargement de paramètres de la


base de données et de fichiers de configuration de modules
paramétrables.
2. La modification des valeurs des paramètres actuels.
3. La sauvegarde et restauration de configurations.
4. L’inclusion de sections de paramétrage adaptées à des pages spécifiques.
Le module gère deux types de paramètres :

1. Les paramètres base de données : Ils sont enregistrés dans la


table llx_const et sont composés de deux sous-types :
1. Les paramètres du core : sont tous les paramètres commençant par
MAIN_ ou qui ne contiennent pas de caractères soulignés.
2. Les paramètres de modules non paramétrables :sont tous les
paramètres commençant par un nom de module suivi d'un
caractère souligné.
2. Les paramètres de modules paramétrables : sont des paramètres
enregistrés sous forme de constantes PHP et sont définis dans les fichiers
de configuration de modules à l'aide d'instructions define.

Exemple de module paramétrable et de son fichier de configuration :


L'exemple le plus représentatif de module paramétrable est le module
Cashdeskpar dont la démo est disponible sous le
lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?
menu=facturation
Ci dessous une copie d'écran de sa page principale :
Page principale de Cashdeskpar
Ci dessous le contenu de son fichier de configuration
cashdespar_default_consts.php :

<?php
global $conf;
//param_BD
$conf->global->CHARTOFACCOUNTS='113';//Plan comptable
//param_CASHDESKPAR--------------
define('CASHDESKPAR_AUTOCOMPLETE',0);//bm//0//1-requiert 2:Formulaire
autocomplete pour sélection
define('CASHDESKPAR_DONT_POPUP_TICKET',0);//bm//0//2-inhibe l'ouverture
automatique du ticket
define('CASHDESKPAR_DONT_PRINT_TICKET',0);//bm//0//3-inhibe
l'impression automatique du ticket
define('CASHDESKPAR_FOCUS_LISTE',0);//bm//0//4-Rend le focus à la liste si
ref vide
define('CASHDESKPAR_HIDE_REMISE_PERCENT',0);//bm//0//5-Cacher
remise en pourcentage
define('CASHDESKPAR_HIDE_TVA',0);//bm//0//6-cache TVA dans cashdesk
define('CASHDESKPAR_MODIFIABLE_PRICE',0);//bm//0//7-prix modifiable
define('CASHDESKPAR_MODIFY_DELETED',1);//bm//0//8-Modifier une ligne
aprés suppression
define('CASHDESKPAR_MONNAIE_CODE',1);//bm//////9-xx
define('CASHDESKPAR_MONNAIE_VIDE',0);//bm//0//10-Ticket sans type de
monnaie
define('CASHDESKPAR_PANIER_RAPIDE',0);//bm//0//11-saisie rapide
define('CASHDESKPAR_PAIEMENT_AUTO',0);//bm//0//12-saisie automatique
du paiement égal au montant total
define('CASHDESKPAR_PARAMETRES',1);//bm//0//13-Formulaire de
parametrage
define('CASHDESKPAR_QTE_ENTER_KEY',1);//bm//0//14-Faire passer au
champ suivant à la validation sur le champ Qte
define('CASHDESKPAR_SHOW_LINES',1);//bm//0//15-Voir les lignes facture
define('CASHDESKPAR_SHOW_TEL',1);//bm//0//16-Affiche le nº de telephone
dans le ticket
define('CASHDESKPAR_THEME_31',0);//bm//////17-
define('CASHDESKPAR_TICKET_RAPIDE_POPUP',1);//bm//0//18-requiert
4:Montre le ticket en popup
define('CASHDESKPAR_TICKET_RAPIDE',0);//bm//0//19-4:Bouton ticket direct
define('CASHDESKPAR_TICKET_TITRE_BONLIVRAISON',1);//bm//0//20-
requiert 3:Titre ticket (Bon de livraison)
define('CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS',0);//bm//0//21-
Créer et changer le client
define('CASHDESKPAR_SEARCH_POS',-1);//im-1:10//0//22-Position de début
pour recherche totale
define('CASHDESKPAR_MOBILE_LAYOUT',0);//bm//0//23-Adapter le thème à
l'écran de téléphone
define('CASHDESKPAR_ANDROID_TICKET',1);//bm//0//24-Le ticket sera stocké
dans une image sur laquelle un programme est lancé pour imprimer l'étiquette
define('CASHDESKPAR_ANDROID_JS_TICKET',1);//bm//0//25-Le ticket stocké
dans une image sera imprimé dans une webview par Javascript
define('CASHDESKPAR_OPEN_SECTIONS',0);//bm//0//26-Ouvrir les sections
au lancement de la page
//param_PRODUCT--------------
define('CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_
VALUE',22);//im1-100//0//nombre de résultats d'autocomplete
define('CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH',2);//im1-
10//1//Nombre de caractéres minimum pour recherche
define('CASHDESKPAR_PRODUCT_SELECT_BY_REFS',0);//bm//0//Activer
Autoselect sur les références seulement
define('CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY',0);//bm//0//xxx

Ce fichier de configuration composé de plusieurs sections. L'analyseur


syntaxique de configuration interprète des métadonnées en commentaires pour
présenter les paramètres de configuration dans la section de paramétrage :

1. Chaque ligne de définition de paramètre est suivie d'un commentaire


servant de métadonnées pour l'analyseur syntaxique.
2. Les lignes de commentaires tels que //param_PRODUCT--------------
définissent une sous section pliable sous laquelle sont présentés les
paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de
langue contient le message contenant le nom de la sous section avec la
clé param_PRODUCT.
3. La ligne //Param_BD-------------- définit une sous section pliable pour les
paramètres de la base de données. Les paramètres qu'elle contient sont
de la forme $conf->global->XX='YY';//ZZ. XX étant le nom du paramètre,
YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité
dans la section de paramétrage.
4. Les paramètres de modules paramétrables sont déclarés en tant que
constantes par une instruction define avec les premières lettres avant
souligné définissent le nom du module.
5. Le texte en commentaire après la définition du paramètre de module
paramétrable est composé de métadonnées reconnaissables par
l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre
séparés par des ‘//’:
1. Le type et statut :
1.La première lettre peut prendre les valeurs b pour
booléens, i pour intervalle et s pour chaine de caractère.
2.La deuxième lettre peut prendre les valeurs m pour
modifiable, u pour non modifiable et h pour hidden ou
invisible. Les paramètres invisibles dans la page d’utilisation
de la fonction de paramétrage restent visibles dans la page
de configuration, depuis laquelle on peut activer ou
désactiver le statut visible des paramètres (Voir le wiki de
Cashdeskpar
dans https://wiki.dolibarr.org/index.php/Module_CashdeskPa
r_FR)
3.Les paramètres de type intervalle sont suivis par une
indication de la borne inférieure et supérieure séparés par
‘:’.
2. La valeur par défaut
3. Le commentaire affiché s’il n’existe pas de traduction du paramètre
en clé dans le fichier de langues. [7]

Configuration du module :
Pour utiliser ce module, il vous faut d'abord l'activer. Pour cela, après s'être
connecté avec un compte administrateur, allez sur la page "Accueil -
Configuration - Modules". Le module apparaît dans "Dolipar", cliquez sur
"Activer". Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus
pour accéder à la page de configuration spécifique à ce module :
Comme le module de paramétrage est un module système, toutes ses
fonctionnalités se retrouvent dans la page de configuration suivante :
Page de configuration du module

La page de configuration se compose de deux parties :

1. La section de configuration et d'utilisation du module, qui comprend :


1. Le bouton d'activation du contrôle de modules paramétrables à
travers le module de paramétrage : Ce bouton permet de
remplacer tous les réglages dans les modules paramétrables par
ceux définis dans le module de paramétrages. Actuellement, les
deux seuls modules paramétrables existant concernés sont les
modules Cashdeskpar et le gestionaire de menu Menupar. D'autres
modules vont certainement étoffer cette liste dans le futur proche.
2. Les boutons de composition de configurations: Permettent de
composer le fichier de configuration du module de paramétrage. La
composition complète permet d'auto-sélectionner au départ tous
les paramètres de la configuration actuelle alors que la composition
de base permet de partir d'une sélection vide ( Voir paragraphe :
Composition de configurations)
3. Le bouton de sauvegarde de configurations : Permet de
sauvegarder la configuration actuelle dans un fichier. Il faut fournir
un nom de fichier avant d'appuyer sur le bouton enregistrer.
4. Le bouton de suppression de configurations : Permet de supprimer
des fichiers de configuration préalablement enregistrés.
2. La section de paramétrage du module de paramétrage : Cette section
affiche tous les paramètres du module obtenus à travers la fonction de
composition. Le bouton RAFRAICHIR LA PAGE commun à tous les
modules paramétrables, permet de rafraîchir la page sans s'y déplacer
pour visualiser immédiatement les effets de modification d'un paramètre.
[7]

La composition de configurations :
Ci dessous la page de composition de configuration obtenue en cliquant sur le
bouton de composition complète . Les trois images sont obtenues en déroulant la
page :
Page de composition complète 1/3
Page de composition complète 2/3
Page de composition complète 3/3

Nous obtenons un formulaires composé de 3 sections et un


bouton composer pour l’envoyer. Chaque section est composée de sous-
sections et chaque sous-section présente une série de paramètres dans une
Datatable
Les 3 sections sont structurées comme ci-dessous :
1. Paramètres dans le fichier de configuration actuel : Contient les
paramètres du fichier de configuration actuel du module de paramétrage.
Ils son présentés filtrés par type. On a donc un maximum de 3 sous
sections :
a. Paramètres du core : commençant avec MAIN_ ou ne contenant
pas de caractères soulignés.
b. Paramètres de modules non paramétrables : Autres paramètres de
la base de données.
c. Paramètres de modules paramétrables : Paramètres déclarés par
l’instruction define.
2. Paramètres dans les fichiers de configuration de modules paramétrables :
Les fichiers de configuration des modules paramétrables sont structurés
tout comme le fichier de configurations du module de paramétrage. On a
donc pour chaque module paramétrable présent dans l’installation le
paramètres :
a. Paramètres du core.
b. Paramètres de modules non paramétrables.
c. Paramètres de modules paramétrables.
3. Paramètres dans la base de données : Les paramètres contenus dans la
table llx_const de la base de données de Dolibarr partagés en deux
sous-sections :
a. Paramètres du core.
b. Paramètres de modules non paramétrables.
Chaque paramètre est représenté sur cinq colonnes :

1. Sélection : Case à cocher pour sélectionner/désélectionner l’élément.


2. Module : Pour les paramètres de modules paramétrables ou non
paramétrables. Il est vide pour les paramètres du core.
3. Paramètre : Nom complet du paramètre.
4. Valeur : Valeur du paramètre.
5. Note : Contient le commentaire affiché si le commentaire dans le fichier de
configuration est vide et que le paramètre n’existe pas dans le fichier de
langue
Chaque groupe de paramètres est représenté dans un élément Jquery Datatable
est accompagné d’un bouton pour sélectionner l’ensemble du groupe.
La différence entre la composition complète et la composition de base réside en
ce que dans la première, tous les paramètres présents dans les fichiers de
configuration sont présélectionnes alors qu’aucun paramètre n’est sélectionné
dans la seconde.
En appuyant sur le bouton composer, on lance la recréation du fichier de
configuration du module de paramétrage avec les paramètres sélectionnés. En
case de conflit de paramètre en double un message est affiché indiquant la
localisation des conflits et en appliquant le style de surbrillance aux deux
paramètres en double et en invitant à désélectionner l’une des deux comme dans
l’exemple suivant ( Dans la deuxième image, la page est déroulée pour faire
apparaître le deuxième élément ) :[7]

Conflit de paramètres 1/2


Conflit de paramètres 2/2

Création de sections de paramétrage dans des pages spécifiques de


Dolibarr :
La création de sections de paramétrage dans les pages spécifique de Dolibarr
fait seulement appel aux paramètres de la base de données, paramètres du core
ou de modules non paramétrables. Les paramètres de modules paramétrables
existant dans les fichiers de configuration de leurs modules sont conçus pour être
utilisés seulement dans les pages de ce dernier. Si on a besoin de faire appel à
un paramètre de ce type, on peut toujours le déclarer en tant paramètres base de
données à l’intérieur du module paramétrable.
C’est cette fonction qui a permis de rendre obsolètes les modules Facturepar,
Facturepar plus et corepar. Le module Facturepar affichait une section de
paramétrage dans la page d’édition de factures clients avec environ 24
paramètres alors que grâce au module de paramétrage, on a 81 paramètres
contrôlables dans la cette page et on peut procéder de façon similaires pour
toutes les pages de Dolibarr y compris celle de modules externe
Pour créer une section de paramétrage pour une page spécifique de de Dolibarr,
il faut procéder en plusieurs étapes :

1. Composition et sauvegarde dans des fichier d’une ou plusieurs


configurations.
2. Création manuelle d’un fichier de configuration en combinant les
paramètres des fichiers composés.
3. Création d’une entrée dans le dictionnaire de correspondance de
configuration vers urls du module de paramétrage.
Pour la page d’édition de factures (ex : Facturepar) on a créé une entrée dans le
dictionnaire comme dans l’image suivante :[7]
Page de l'ex module Facturepar
RESSOURCES BIBLIOGRAPHIE

[1] https://www.geeksforgeeks.org/difference-between-structured-
semi-structured-and-unstructured-data/.

[2] https://www.talend.com/fr/resources/data-source/.

[3] https://alpage.huma-num.fr/catalogue-de-metadonnees/le-
catalogue-de-metadonnees/.
[4] Practical Entreprise Data Lake Insights .Saurabh Gubta, Venkata
Giri.

[5] https://streamsets.com/.

[6] https://www.oracle.com/fr/database/database-vs-data-warehouse-
vs-data-lake.html

[7] https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR

[8]  

Vous aimerez peut-être aussi