Vous êtes sur la page 1sur 59

Datawarehouse Contrles des transports routiers

(Politique scientifique fdrale Agora/01/082)

Rapport final et explication du projet de modle

Christophe Mues Promoteur: Jan Vanthienen


K.U. Leuven Dept. Sciences conomiques appliques Naamsestraat 69, 3000 Leuven http://www.econ.kuleuven.ac.be/tew/academic/infosys/members/mues/member.htm e-mail : christophe.mues@econ.kuleuven.ac.be jan.vanthienen@econ.kuleuven.ac.be

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Table des matires


1. 2. 3. SITUATION ET INSTANCES PARTICIPANTES ...............................................................................3 OBJECTIFS DU PROJET DE DATAWAREHOUSE ............................................................................3 DATAWAREHOUSING : ASPECTS MTHODOLOGIQUES................................................................5

3.1. 3.2. 3.3. 3.4.


4.

Dfinition et caractristiques dun datawarehouse..................................................... 5 Conception dun datawarehouse ................................................................................ 7 Le processus dalimentation du datawarehouse....................................................... 11 Utilisation du datawarehouse ................................................................................... 12 Transport terrestre .................................................................................................... 13 Douanes & Accises .................................................................................................. 15 Office national de Scurit sociale (O.N.S.S.)......................................................... 15 Inspection des Lois sociales (I.L.S.) ........................................................................ 17 Inspection sociale (I.S.) ............................................................................................ 18 Police fdrale et Police locale ................................................................................. 19

DESCRIPTION DE LA SITUATION ACTUELLE ............................................................................13

4.1. 4.2. 4.3. 4.4. 4.5. 4.6.


5. 6.

P ROJET DE MODELE ET COMMENTAIRE ..................................................................................19 P ROOF -OF-CONCEPT : TRAITEMENT DES DONNEES DOUANIERES ..............................................25

6.1. 6.2.
7.

Implmentation ETL ................................................................................................ 25 Consultation des donnes cibles environnement dmonstratif ............................. 30 Sur le plan lgislatif et juridique .............................................................................. 35 Sur le plan du contenu et sur le plan technique........................................................ 36 Sur le plan organisationnel et budgtaire ................................................................. 36 Aperu des tapes suivantes ventuelles .................................................................. 37

CONCLUSION : SITUATION ACTUELLE ET RECOMMANDATIONS POUR LA SUITE..........................35

7.1. 7.2. 7.3. 7.4.

BIBLIOGRAPHIE ...........................................................................................................................38 ABREVIATIONS ET ACRONYMES ....................................................................................................38 ANNEXES ....................................................................................................................................38 REMARQUE

Lappendice D (proof of concept Douane) et les illustrations suivantes sont en langue nerlandaise: figure 5, figure 9, figure 10, figure 11, figure 12, figure 12, figure 14 et figure 15. Les textes y correspondant donnent les explications ncessaires.

Page 2 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

1. Situation et instances participantes


Le datawarehouse Contrles des transports routiers est mis en place par la Direction Contrle et Organisateurs de Transport de la Direction gnrale Transport terrestre du SPF Mobilit et Transports, conformment au plan daction du 20 novembre 2001 relatif la collaboration entre les diffrents services de contrle en vue dune coordination des contrles dans le domaine des transports par route de personnes et de choses (tel que paru dans le Moniteur belge du 19 fvrier 2002). Pour lappui scientifique au projet, il est fait appel au dpartement Sciences conomiques appliques de la K.U.Leuven, dans le cadre du projet Agora AG/01/082 du Service public fdral de Programmation Politique scientifique. Les partena ires impliqus dans le plan daction et le projet qui, ce titre, fournissent et/ou utilisent les donnes, sont les services suivants : Direction gnrale Transport terrestre; Douanes et Accises; lInspection des Lois sociales (SPF Emploi, Travail et Concertation sociale); lInspection sociale (SPF Scurit sociale); le service dinspection de lOffice national de Scurit sociale; la Police fdrale et la Police locale. Ce plan daction vise, par un meilleur contrle du secteur des transports, contribuer : lamlioration de la scurit routire ; la promotion dune concurrence quitable entre les transporteurs ; la lutte contre le travail illgal et la fraude sociale ; lamlioration des conditions de travail des chauffeurs ; la protection de lenvironnement, et prvoit cet effet la cration dun certain nombre de nouveaux organes (notamment neuf cellules provinciales transport ), lintroduction dactions coordonnes de contrle (auxquelles les contrleurs des services susmentionns partic ipent conjointement) et lchange rciproque dinformations entre les services de contrle et de police. Il propose en outre llaboration dun systme dchange dinformations et la cration dune banque de donnes utile pour sa mise en oeuvre. Cest dans ce contexte que se situe le datawarehouse Contrles des transports routiers .

2. Objectifs du projet de datawarehouse


Compte tenu des objectifs gnraux du plan daction prcit, du fonctionnement actuel et des besoins dinformations des diffrents services de contrle du transport, tels que nous les avons constats, nous estimons que ce projet de datawarehouse doit poursuivre les objectifs concrets suivants. Rapport europen. Tout d'abord, le datawarehouse doit permettre, dune manire relativement simple, la Direction gnrale Transport terrestre de transmettre les informations les plus pertinentes en matire de constatation dinfractions (graves) en transport dautres instances la demande de celles-ci, conformment des dispositions rglementaires ou des accords, ou encore en appui la politique. Ce rapport se droule en particulier avec dautres

Page 3 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

services de contrle europens des transports dans le cadre de larrangement administratif Euro Contrle Route . Lapport des donnes ncessaires cet effet par les autres partena ires et leur introduction dans le datawarehouse permettront ds lors de transmettre plus systmatiquement aux instances europennes comptentes les informations relatives aux infractions constates en Belgique et commises par les transporteurs routiers en provenance dautres pays participants. Profil de lentreprise. Deuximement, le datawarehouse doit permettre desquisser un profil plus prcis du comportement dune entreprise de transport individuelle. Alors quauparavant les diffrents partenaires ne pouvaient se baser que sur les donnes de contrle quils avaient eux- mmes recueillies, le datawarehouse leur donnera dsormais accs aux rsultats fournis par les autres partenaires ou dautres pays Euro Contrle Route et permettra de prsenter ces informations sous forme agrge au niveau dune entreprise de transport individuelle. En cela, le datawarehouse est un instrument appropri pour appuyer la politique de sanctions sur le plan des rglementations contrles : il fournira en effet des informations cibles sur la base desquelles la Direction gnrale Transport terrestre pourra dcider du retrait de la licence dune entreprise de transport dtermine. En outre, de telles informations peuvent constituer une indication de lopportunit dune enqute complmentaire. Si, par exemple, lors de contrles routiers effectus par la Direction gnrale Transport terrestre ou les Douanes et Accises, des infractions sont frquemment constates pour des vhicules dune firme donne, l'ILS ou l'IS pourront raliser une enqute approfondie sur lentreprise quant au respect de la rglementation du travail et de la rglementation sociale. Coordination rciproque. Troisimement, le datawarehouse joue galement un rle dans lamlioration de la coordination entre les divers services de contrle, en ce quil permet aux contrleurs de prendre simplement connaissance des rsultats des contrles effectus par dautres services. Il est noter que la priodicit de lapport des donnes implique naturellement certaines restrictions quant la disponibilit des contrles rcents. Statistiques et examen du secteur. Bien que la tenue de statistiques ou la ralisation de toutes sortes danalyses bases sur la vrification ou la dcouverte (cf. infra : section 3.4) ne constituent pas des objectifs initiaux dutilisation pour la cration du datawarehouse, celui- ci peut nanmoins servir de base approprie une suite de projet dans ce domaine. En effet, la conception du projet de banque de donnes (cf. infra) est telle quelle doit permettre deffectuer des analyses efficaces. Nous pensons ici par exemple au calcul des statistiques relatives au no mbre de contrles, dinfractions et leur interrelation, le tout class selon un certain nombre de critres dagrgation (tels que le transport de personnes versus celui des marchandises, le type dinfraction, lorigine de lentreprise, etc.), ou lidentification dindicateurs potentiels de comportement frauduleux. Le fait que de telles analyses puissent de nouveau porter sur les donnes recueillies par les diffrents services de contrle, doit permettre dobtenir une image adquate du fonctionnement du secteur des transports dans sa globalit et pourrait ainsi fournir lavenir des informations prcieuses en vue de la dfinition la politique suivre. Accs aux donnes externes. Indpendamment des donnes contenues dans les diffrentes sources oprationnelles du datawarehouse, il existe dautres banques de donnes relatives aux diffrents acteurs du secteur des transports (employeurs et travailleurs, donnes concernant les vhicules, etc.), dont laccessibilit est actuellement limite, mais qui font lobjet dun exa-

Page 4 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

men dans le cadre de ce projet pour dterminer dans quelle mesure elles peuvent tre ouvertes tous les partenaires. Nous pensons ici en premier lieu : la banque de donnes des licences Transis; aux donnes relatives aux plaques dimmatriculation de la Direction pour lImmatriculation des vhicules (D.I.V.); la banque de donnes DIMONA (dclaration immdiate de lemploi). Elles sont susceptibles denrichir le datawarehouse, parce quelles permettraient entre autres de valider les donnes de contrle fournies.

3. Datawarehousing : aspects mthodologiques


Dans cette section, nous expliquons brivement ce que nous entendons par datawarehouse et quels sont les principes et mthodes dlaboration proposs par la littrature de la recherche applicables dans ce domaine.

3.1. Dfinition et caractristiques dun datawarehouse


En nous basant sur la dfinition de Inmon (1996)1 , nous considrons un datawarehouse comme une collection de donnes intgres, orientes sujet, histories et non variables, susceptibles dappuyer le processus dcisionnel dans une entreprise ou organisation. Donnes intgres. Ce qui caractrise peut-tre le plus un datawarehouse est le fait quil collecte et intgre de la manire la plus automatise possible des donnes provenant dun ensemble htrogne de systmes sources. Comme ceux-ci possdent gnralement leur propre mthode de conception et voluent indpendamment les uns des autres, il ny a en rgle gnrale pas la moindre cohrence dans lutilisation des modes de codification, la dnomination et la mesure des attributs, la structure-cl, etc. En vue de permettre des consultations ou des analyses globales nanmoins fiables au travers de lensemble des systmes, il est ncessaire de traiter la structure et le contenu des diffrents apports de donnes de telle sorte quils soient rendus cohrents avec ceux du datawarehouse global.

Inmon, W. H. (1996), Building the Data Warehouse, second edition, Wiley, N.Y., 401 pp. Page 5 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

sources externes extraction des donnes

sources de donnes oprationnelles

datawarehouse

Figure 1: intgration des donnes dans le datawarehouse Donnes orientes sujet. Une deuxime caractristique dun datawarehouse est dtre spcifiquement structur autour de quelques sujets bien dtermins issus de la ralit organisationnelle, propos desquels on souhaite rcolter des informations et des connaissances (ex. : clients, produits, ventes, ..., ou, dans notre contexte, entreprises de transport, contrles effectus, etc.), au lieu de constituer une image de la structure interne de lorganisation et de ses diffrents domaines dapplication. Donnes histories. Alors quune banque de donnes oprationnelle est dabord conue pour obtenir un instantan de la situation actuelle et quelle doit ds lors tre tenue jour en permanence et de prfrence en temps rel (ex. : quelles sont les enqutes en cours ? Pour quelle entreprise travaille un conducteur de poids lourd dtermin ?), lobjectif primaire dun datawarehouse est de tenir un historique des fa its (ex. : quelles sont les entreprises qui ont t contrles lanne passe ?). Bien que cette distinction ne soit pas toujours aussi stricte (il arrive souvent quune banque de donnes conserve des donnes historiques, mais pour une priode plus limite), ces points de dpart diffrents influencent naturellement la conception de la banque de donnes. Ainsi, la plupart des tables du datawarehouse comporteront un lment temporel. De mme, le fait de disposer en permanence des informations les plus rcentes nest pas aussi vital et fait que lapport des donnes est moins frquent. Donnes non variables. Une quatrime caractristique connexe dun datawarehouse consiste ne plus modifier en principe les donnes qui y sont stockes; seules de nouvelles donnes y sont ajoutes. Supposons, par exemple, quil ressort dun nouveau contrle que la nationalit dun conducteur de poids lourd a chang et que nous actualisons directement ces donnes dans un enregistrement prcdemment mmoris pour cette personne. Dans ce cas, tous les contrles antrieurs ayant trait cette mme personne se rfreraient aussi indirectement cette donne modifie et entraneraient la perte vidente dinformations historiques (et laltration danalyses statistiques ventuelles). Plutt que de modifier un tel enregistrement, la prfrence est souvent donne, dans le cadre dun datawarehouse, lincorporation dun lment temporel dans la cl didentification (par exemple valable du au ). Ainsi, dans cet exemple, la table des conducteurs pourrait contenir deux enregistrements pour la mme personne, chacun ayant sa propre priode de validit.

Page 6 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Aide la dcision. Enfin, un datawarehouse a un objectif et un groupe dutilisateurs spcifiques : il doit constituer la base dun systme daide la dcision. Cest la raison pour laquelle il nest pas ncessaire dy stocker toutes les donnes. Seules celles susceptibles de contribuer lamlioration des dcisions prises suffisent. Il sagit la plupart du temps de dcisions dordre tactique et/ou stratgique. Dans notre cas, cela concerne (certainement au cours dune premire phase ne gnrant pas encore de statistiques sectorielles) tout autant des aspects oprationnels tels que lvaluation du comportement dune entreprise de transport individuelle en support une politique de sanctions. Sur la base de ce qui prcde, nous estimons que la fonctionnalit et les caractristiques de la banque de donnes dvelopper pour les contrles des transports rpondent suffisamment au profil dun datawarehouse pour nous baser galement, lors de sa conception, sur la littrature de recherche en matire de datawarehouse. Dans la sous-section suivante, nous abordons brivement quelques aspects pertinents de la conception.

3.2. Conception dun datawarehouse


Une consquence intressante du fait quun datawarehouse ne doit en principe faire lobjet daucune modification, est que la duplication et la dnormalisation des donnes ne provoquent pas les mmes problmes dincohrence et de performance que dans le cas des banques de donnes oprationnelles partir desquelles elles sont alimentes. En outre, les nouvelles donnes sont spcifiquement charges en batch, ce qui gnre un tout autre modle dutilisation que celui des nombreuses petites transactions caractristiques dun systme oprationnel. Par ailleurs, lors de laccs en lecture, laccent nest gnralement pas mis sur la recherche frquente de petites quantits de donnes dtailles, mais sur des traitements moins nombreux mais de plus grande ampleur (ex. : lagrgation de donnes chiffres trimestrielles ou rgionales, etc.). En rsum, la performance de mise jour des systmes de datawarehouse est moins critique; ceux-ci doivent nanmoins pouvoir traiter de grandes quantits de donnes ainsi que des consultations complexes. Il nest ds lors pas tonnant que la conception dun datawarehouse soit souvent diffrente de celle dune banque de donnes oprationnelle. Schma en toile. Une mthode courante de conception de datawarehouse est base sur la dfinition dun schma dit en toile Un tel schma nest rien dautre quun modle relationnel dans lequel une table de faits centrale est relie une ou plusieurs tables de dimension. La Figure ci-aprs donne un exemple fictif de schma en toile pour les ventes dune chane de magasins. La Figure 2 montre les lignes compltes pour un exemple de vente (dun casier de bouteilles deau ptillante de la marque Spa monsieur Lens de Heverlee, le 22 juillet 2003, dans la suprette de Louvain).

Page 7 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Temps Cl temps Date Jour semaine Mois Trimestre Anne Jour avant/aprs jour fri

Vente Cl temps Cl client Cl produit Cl magasin Quantit Chiffre d'affaires Cots

Client Cl client ID Client Nom Adresse Code postal Commune Sexe Anne naissance

Magasin Cl magasin ID magasin Type magasin Commune Rgion

Produit Cl produit ID produit Nom produit Groupe Marque Catgorie Unit Conditionnement

Figure2: exemple de schma en toile pour les ventes dune chane de magasins 2 La table de faits constitue une table de rfrence centrale permettant daccder aux vnements ou activits archivs et inhrents un processus dtermin. Dans lexemple ci-dessus, il sagit dune chane de magasin, qui, partir dun processus de vente, enregistre des faits relatifs un achat : qui, quoi, o et quand (cf. la table ventes ). Une table de faits contient essentielleme nt des informations numriques : une cl compose permettant de se rfrer aux lignes des tables de dimension (cf. les tables temps , client , produit et magasin ) et un certain nombre de valeurs mesures susceptibles dtre agrges et pouvant tre attribues un fait dtermin (en loccurrence : quantit, chiffre daffaires et cots). Ici, une dcision conceptuelle importante porte sur la dfinition du maillage fin de la table de faits : quel niveau de dtail ou dagrgation dfinissons-nous un fait atomique ? Tant que la capacit ncessaire de stockage ne constitue pas un problme insurmontable, il est peut-tre prfrable de garder un maillage aussi dense que possible. En effet, lagrgation peut toujours tre applique ultrieurement (un certain nombre de tables dagrgation, dans lesquelles une ou plusieurs dimensions disparaissent compltement ou partiellement, est souvent driv de la table de faits). Une table de dimension se compose spcifiquement dune cl non significative tablissant un lien avec les lignes de la table de faits (ex. : cl produit ), une cl significative reprise dune source de donnes oprationnelle ou externe (ex. : ID produit ) et dun nombre dattributs permettant de caractriser la dimension (ex. : nom du produit, groupe, marque, ).

Vandenbulcke, J.A. et Lemahieu, W., Databasesystemen voor de praktijk, septime dition, Ten Hagen et Stam, Den Haag, 560 pp. Page 8 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Ces derniers fournissent les critres de slection sur la base desquels les valeurs mesures figurant dans la table de faits peuvent tre agrges. Ainsi, dans lexemple donn, nous pourrions demander le rapport entre les qua ntits vendues et le chiffre daffaires par groupe de produits et (au sein de chaque groupe) par rgion de magasins.
Ventes Cl temps 203 Temps Cl temps Cl client 55 Cl produit 68 Cl magasin 07 Quantit 1 Chiffre daffaires 7,00 Cots 6,25

Date 22/07/03

Jour semaine 2

Semaine 30

Mois Juillet

Trimestre Anne 3 2003

203 Client Cl client 55 Produit Cl produit 68

Jour avant/aprs jour fri Oui

ID client K100567

Nom Lens

Adresse Burgstraat 45

Code postal B3001

Commune Heverlee

Sexe M

Anne naissance 1975

ID produit P658942

Nom produit Eau

Groupe Ptillante

Marque Spa

Catgorie Produit alimentaire

Unit 6

Conditionnement Verre

Magasin Cl magasin 07

ID magasin W894

Type magasin Suprette

Commune Louvain

Rgion Brabant flamand

Figure 2 : ventes dune chane de magasins; enregistrement dun exemple de transaction de vente A propos de ce qui prcde, il convient de remarquer que les tables de dimension sont souvent dnormalises. 3 Si les structures hirarchiques sont nanmoins explicites directement au sein des dimensions, il sagit alors dun schma en flocon de neige . Ainsi, la dpendance fonctionnelle (transitive) entre les attributs Commune et Rgion pourrait tre reprise dans une table distincte, laquelle il est fait rfrence partir de la table magasin. Une telle stratgie permet certes des conomies despace mais influencera souvent ngativement la perfo rmance de la consultation.

Co mme signal prcdemment : tant donn que la banque de donnes ne fait gnralement pas lobjet dinstructions de modification, aucune anomalie de mise jour ne peut ds lors survenir, alors que la performance peut ce niveau tre amliore (en vitant de coteuses oprations join ). Page 9 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Traitement de lhistorique . Lexemple de schma dcrit ci-dessus permet dintgrer directement lhistorique des ventes et facilite une srie danalyses o la dimension temps joue un rle. Au fil du temps, la situation reflte par les attributs dans les tables de dimension peut cependant changer. Ainsi, un client peut un moment donn changer dadresse. Si nous vo ulons que de telles modifications soient manies correctement dans le cadre des analyses, il y a lieu den tenir compte dans le modle. Une premire mthode de travail consiste craser lenregistrement concern dans la table de dimension. Ceci entranerait toutefois une perte dinformations historiques : si nous voulons examiner le lien de dpendance entre les ventes et le domicile du client, cette solution pourrait alors aboutir des conclusions errones. En effet, les anciennes transactions dachat concernant le client rcemment dmnag pourraient tre involontairement lies sa nouvelle adresse. Une meilleure solution consiste accumuler les modifications. Dans lexemple susmentionn, cela revient ajouter un deuxime enregistrement pour le client contenant sa nouvelle adresse, pour lequel nous crons en outre une nouvelle cl client (voir Figure 3). Des champs additionnels peuvent galement tre prvus pour les dates de dbut et de fin de la priode de validit. La cl client (non significative) nidentifie ds lors plus un client dtermin mais bien un client dtermin au cours dune priode dtermine; la mme ID client (significative) apparat donc plusieurs fois.
Client Cl ID client Date dbut client 55 78

Date fin

Nom Lens Lens

Adresse

Code Commune postal Heverlee Louvain

K100567 01/01/1998 21/07/2003 K100567 22/07/2003 31/12/2999

Burgstraat B3001 45 NaamseB3000 straat 85

Figure 3 : ventes dune chane de magasins; maniement des changements dans la dimension client Une autre solution consiste distinguer des mini-dimensions. Celles-ci apparaissent lorsque, dans une vaste table de dimension, un sous-ensemble dattributs intercorrls est dtach de la dimension initiale. Supposons que, dans lexemple donn, nous dfinissions une table distincte reprenant des donnes dmographiques relatives aux clients (sexe, catgories dge et de revenu, tat civil, etc.), pourvues chaque fois dune cl propre. Il est chaque fois fait rfrence cette dernire partir des enregistrements de la table client (voir Figure 4). La dmographie fait ainsi office de mini-dimension du client. Si les donnes dmographiques dun client changent, un nouvel enregistrement est insr dans la table dmographie et la rfrence dans la table client est mise en concordance avec les donnes les plus rcentes. Toutefois, en mentionnant la rfrence-cl dmographie non seulement dans la table client mais aussi dans la table ventes centrale (comme dans la Figure 4), nous pouvons faire en sorte que les faits de vente du pass restent lies aux anciennes donnes dmographiques adquates.

Page 10 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Ventes Cl temps Cl client Cl dmographie Cl produit Cl magasin Quantit Chiffre daffaires Cots

Client Cl client ID client Nom Adresse Code postal Commune Anne naissance Cl dmographie

Dmographie Cl dmographie Sexe Catgorie dge Catgorie de revenu Etat civil

Figure 4 : ventes dune chane de magasins; mini-dimension avec historique

3.3. Le processus dalimentation du datawarehouse


Lalimentation dun datawarehouse consiste y introduire des donnes correctes et pertinentes selon des procdures conve nues et les conserver. Les quatre tapes intermdiaires suivantes peuvent y tre distingues : lextraction de donnes; la transformation de donnes; le (re)chargement du datawarehouse; le post-traitement. Extraction de donnes. On entend par extraction de donnes le prlvement des donnes ncessaires dune source oprationnelle (au moyen dinstructions SELECT ou dutilitaires UNLOAD). Le processus dextraction est souvent asynchrone priodique. Un fichier de donnes est cr des moments dtermins (ex. : quotidiennement ou mensuellement) et contient uniquement les modifications incrmentales dans les donnes sources (cest--dire depuis lextraction prcdente). Si le systme source prvoit une indication de temps (time stamping), lextraction pourra sen servir utilement. Si non, dautres mthodes plus complexes seront ncessaires, telles que le scannage de fichiers log ou la comparaison dimages before et after . Transformation de donnes. Le processus de transformation de donnes qui suit, comprend le traitement des donnes extraites en vue de la prparation du chargement. Ceci sous-entend les activits suivantes : le formatage de donnes : transformation dans le format exig (ex. : comma-delimited textfiles versus formats import/export spcifiques aux produits); le nettoyage de donnes : limination ou correction de donnes pollues (entre autres rendre les codes appliqus cohrents; le sexe pourrait tre mentionn sous diffrentes formes : H/F, homme/femme ou au moyen dun code chiffr);

Page 11 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

lagrgation et la jonction de donnes : si le maillage des faits dans le datawarehouse est moindre que celui dans le systme source (ex. : les ventes du magasin pourraient tre cumules sur une base journalire plutt que transactionnelle); lenrichissement de donnes : complmentation des donnes propres par des donnes externes. Nous observons que ces activits peuvent se drouler (partiellement) avant ou aprs le transport physique des donnes, donc sur la plate-forme source ou cible. (Re)chargement du datawarehouse. Les fichiers de donnes obtenus au cours des tapes prcdentes doivent ensuite tre chargs (en vrac) dans les tables de faits et de dimension du datawarehouse. Les cls non significatives sont gnres durant le processus de chargement. Post-traitement. Le post-traitement a lieu aprs le chargement. Pendant ce processus, des donnes drives sont gnres, des tables dagrgats sont compltes (ex. : tables reprenant les donnes trimestrielles, directement consultables), etc. Il va de soi que lorganisation du processus global ainsi que limplmentation et la documentation des procdures requises est un travail de longue haleine qui ne peut certainement pas tre sous-estim. Le dveloppement se droule ds lors souvent selon un processus itratif et dbute avec seulement quelques sujets importants; lextension du contenu du datawarehouse se poursuit progressivement.

3.4. Utilisation du datawarehouse


Finalement, un datawarehouse est destin tre consult et, donc, aider lutilisateur dans lexcution de ses tches. Dans nombre de cas, le datawarehouse constitue la source princ ipale de donnes pour un systme daide la dcision. A ce niveau, une distinction est souvent opre entre les mthodes danalyse bases sur la vrification, qui permettent lutilisateur de tester une hypothse partir de donnes issues du datawarehouse, et celles bases sur la dcouverte, qui visent mettre en lumire de nouveaux modles de connaissances. Mthodes danalyse bases sur la vrification. Dans le premier cas, lutilisateur doit avoir la possibilit danalyser les donnes souhait via les dimensions disponibles (par exemple en permettant dagrger les donnes de ventes aux catgories de produit, aux emplacements des magasins, etc.). Des outils visuels modernes de consultation et de rapport appuient une telle approche. Divers outils OLAP (On-Line Analytical Processing) offrent en outre de puissantes formes de traitement. Mthodes danalyse bases sur la dcouverte. Dans le deuxime cas, lobjectif consiste dcouvrir des nouvelles connaissances laide de techniques dites de data mining, comme par exemple les relations insouponnes entre les donnes dmographiques et le comportement dachat, en fonction desquelles des actions spcifiques pourront tre entreprises par la suite. Les rsultats obtenus dpendront naturellement beaucoup de la qualit et de la compltude des donnes contenues dans le datawarehouse.

Page 12 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

4. Description de la situation actuelle


Chacun des partenaires prcits effectue certains contrles et inspections dans le domaine du transport de personnes et de marchandises par route. La nature et le volume des donnes rassembles qui en rsultent dpendent videment des comptences 4 (en partie chevauchantes, en partie communes) et des moyens du service spcifique de contrle. Un autre point de dive rgence est la technologie au moyen de laquelle et la forme dfinitive dans laquelle ces donnes sont conserves et rendues accessibles. Nous donnons ci-aprs un aperu de la situation actuelle. 5 Nous ferons une distinction concernant la nature du contrle, et plus particulirement entre un contrle sur la route et un contrle dans une entreprise. Le contrle sur la route : concerne un vhicule qui est arrt sur la voie publique par un contrleur ou une quipe de contrleurs; est limit en dure; peut tre limit un seul vhicule (articul ou non) et un conducteur spcifique. Le second type de contrle : concerne une entreprise (et a lieu la plupart du temps dans lentreprise); demande un traitement (administratif) qui prend souvent du temps; concerne indirectement plusieurs vhicules et/ou travailleurs.

4.1. Transport terrestre


Missions de contrle effectues. Ce service de contrle, qui fait partie du SPF Mobilit & Transports, effectue des contrles en matire de transport routier de marchandises y compris les marchandises dangereuses (cf. ADR) et de personnes, tant au niveau du transport profe ssionnel que du transport pour compte propre. Il veille au respect des dispositions de diverses conventions internationales, de rglements CE (notamment les temps de conduite et de repos, lutilisation du tachygraphe, cf. CE 3820/85 et 3821/85) et de la lgislation nationale, au moyen de contrles sur la route et dans les entreprises qui peuvent donner lieu au retrait des autorisations de transport.. Dans cette capacit, il utilise une banque de donnes des entreprises belges autorises, appele Transis (consultable depuis peu sur le site internet du SPF : http://mobilit.fgov.be). En outre, il est linstance responsable pour lchange de donnes dans le cadre de larrangement administratif Euro Contrle Route (cf. supra: section 2). En outre, il recense sous forme de statistiques mensuelles, trimestrielles et annuelles, les rsultats des contrles quil a effectus. Il agrge le nombre de contrles, de disques de tachygraphe contrls, dinfractions constates, de procs- verbaux et de perceptions immdiates selon une srie de critres dont lorigine du conducteur (Belge vs rsident UE vs rsident non appartenant lUE), le type de transport (marchandises vs personnes, professionnel vs compte pro-

En ce qui concerne les diffrents paquets de comptences, nous renvoyons au vade-mecum qui a t tabli dans le cadre du Plan d'Action du 20 novembre 2001.
5

En ce qui concerne les partenaires de la Police fdrale et locale, il faut dabord un examen du cadre lgal de lchange ventuel de donnes (autres que celles anonymes); cest pourquoi les systmes dalimentation (qui sont pour une part encore en cours de dveloppement) ne sont pas encore repris dans cet aperu. Page 13 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

pre), la nature de linfraction, etc. Enfin, il prend les initiatives dans le cadre du Plan dActio n et le projet Agora qui en rsulte en vue de la cration dune banque de donnes pour le transport routier. Sources de donnes oprationnelles. Si le contrleur constate une infraction, il tablit un formulaire avec les dtails suivants: lieu, date, heure, contrleur; travailleur(s)/conducteur: nom, nationalit, date et lieu de naissance, adresse, numro de carte didentit, numro de permis de conduire; employeur/transporteur: nom et adresse; vhicule : (e.a.) marque, chssis, numro de plaque, numro du certificat de visite (du tracteur et du semi-remorque), lieu de dpart et de destination, propritaire; constatations: infractions quelles dispositions (marques dune croix dans la liste propose formulaires diffrents selon transport de personnes ou de marchandises), nombre de PV, montant ventuel de la perception immdiate, autres sanctions prises. Les donnes de ce formulaire ne sont pas traites systmatiquement dans une banque de donnes lectronique. Llment correspondant du Contris-software qui a t dvelopp au sein du SPF et dans lequel les contrleurs peuvent retrouver la lgislation qui les intresse, nest pas utilis couramment pour linstant, mais pourrait devenir dans le futur une source dalimentation pour le datawarehouse. Toutefois, sans phase pralable au cours de laquelle une telle banque de donnes oprationnelle est dveloppe et utilise (et dans laquelle les donnes de contrle du Service de Contrle du Transport routier de la Direction gnrale Transport terrestre pourraient tre dabord systmatiquement saisies), limplmentation dun datawarehouse commun est notre avis difficilement ralisable. Les donnes statistiques prcites sont tablies priodiquement en MS Excel. Un second formulaire plus concis sert de base pour la collecte des donnes brutes. Etant donn quil sagit l dinformations chiffres agrges qui font donc abstraction dentreprises individue lles, ce processus nest pas dutilit directe pour lalimentation du datawarehouse. Toutefois, dans le futur, il devrait tre possible de gnrer les mmes statistiques de manire automatique partir du datawarehouse, ce qui pourrait constituer un allgement administratif. Cela ne sera certainement pas un lment de la prsente phase de projet mais nous tiendrons dj compte de cette ventuelle application future dans le projet de banque de donnes. Sources additionnelles/externes. Nous avons dj abord ci-dessus la banque de donnes des autorisations, Transis. Cest une source prcieuse dinformation pour le datawarehouse, parce quelle fournit une liste complte des entreprises belges de transport. En reprenant les numros de TVA, il est possible dtablir un lien avec dautres sources de donnes, perme ttant ainsi denrichir plus avant les donnes. 6 En outre, elle permet de valider les donnes de contrle manant dautres services ; lintroduction des donnes permettrait de tirer une liste demployeurs contrls posant problme qui ne figurent pas dans la liste des transporteurs autoriss. Enfin, le systme informatique permet aussi laccs aux donnes des vhicules inscrits au nom dun transporteur. Lintroduction des donnes des plaques dimmatriculation

Nous noublions pas non plus la Banque-Carrefour des Entreprises (BCE) qui aura aussi son influence sur le systme Transis (cf. SPF Economie, PME, Classes moyennes et Energie, site internet : http://mineco.fgov.be). Page 14 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

dans le datawarehouse permet une validation supplmentaire des donnes entres. Ces donnes sont rassembles au sein du mme SPF mais par la Direction pour lImmatriculation des Vhicules (D.I.V.).

4.2. Douanes & Accises


Missions de contrle effectues. LAdministration des Douanes & Accises du SPF Finances exerce plusieurs missions de contrle en matire de transport routier, tant au niveau de particuliers (des voitures sont aussi contrles) quau niveau dentreprises. Le personnel de la brigade effectue cet effet des contrles le long de la route et chez les garagistes. Leurs comptences principales englobent: le contrle des mouvements de marchandises sur le plan de la douane, des accises et/ou de la TVA; le contrle du diesel routier par la prise dchantillons; le contrle de la taxe de circulation et de lEurovignette. A cela sajoute un certain nombre dautres missions (mme non ficales) (p.ex drogue, immigration, ). Sources de donnes oprationnelles. Au moyen dun rapport de contrle, des donnes sont recueillies sur le terrain : lieu, date, heure, brigade et quipe dintervention; nature du contrle: contrle statique/dynamique/de routine/cibl/opration; employeur/transporteur: numro de TVA (ventuellement aussi celui du donneur dordre); vhicule: type (voiture, camionnette, camion, autobus, mobilhome, tracteur et/ou semiremorque), plaque dimmatriculation et nationalit (spars pour une combinaison tracteur/semi-remorque); constatations/suite : dispositions contrles (marques dune croix dans une liste de choix); indication si oui ou non il y a infraction et tablissement dun PV (si dapplication). Ensuite, ces rapports de contrle sont traits lectroniquement la brigade et envoys tous les mois au S.C.G.I. (Service central de gestion de linformation) o les donnes sont utilises pour le suivi des brigades. Cette banque de donnes est implmente en MS Access. Nous remarquons que lidentit du conducteur nest pas enregistre. Sources additionnelles/externes. Le service dispose dinformations externes sur les entreprises provenant de ladministration centrale de la TVA et de lapplication Bel-first du Bureau van Dijck. Il y a galement un accs (limit) aux donnes relatives aux plaques dimmatriculation de la D.I.V.

4.3. Office national de Scurit sociale (O.N.S.S.)


Missions de contrle effectues. LO.N.S.S. est le gestionnaire dune banque de donnes de tous les employeurs belges, appel le rpertoire des employeurs. Les services dinspection de lO.N.S.S. ont principalement une mission de contrle administratif portant sur lexactitude de la dclaration des travailleurs et des salaires par les employeurs (y compris ceux du secteur du transport) ; la plupart du temps, un tel contrle est effectu la demande des propres services internes et parfois la demande d'une instance externe (notamment aussi lI.L.S. et
Page 15 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

lI.S.). Pour linstant, lO.N.S.S. neffectue pas (encore) lui- mme de contrles routiers. Les catgories de contrles qui sont potentiellement des donnes importantes pour le datawarehouse sont : le contrle de lassujettissement (travailleurs): vrais ou faux indpendants ; le contrle de lassujettissement (salaires): indemnits de frais comme salaire dguis; la non-introduction de la dclaration (muets). Sources de donnes oprationnelles. A ladministration centrale de Bruxelles, il y a une banque de donnes et une application Oracle-/Powerbuilder, appele DBEO, qui permet de suivre les demandes de contrle et la suite (majoritairement administrative) qui y est donne. On y conserve les donnes suivantes: date de mise en route et de clture, contrleur excutant; nature du contrle: origine (ex. instance qui a demand le contrle); employeur/transporteur (li au fichier des employeurs): numro ONSS, nom, adresse et secrtariat social; constatations: objet du contrle (exemples : voir ci-dessus) et suite (notamment, dclaration, avis rectificatif ventuellement avec mention du montant , pro justitia, avertissement, enqute complmentaire). Chaque contrleur dispose dune application Lotus Notes pour le support de ses activits, la rdaction des rapports et la gestion des dossiers ; ce dernier point na pas dintrt pour le datawarehouse. Sources additionnelles/externes. Le rpertoire des employeurs de lO.N.S.S. est une banque de donnes importante qui contient les donnes didentification de base de chaque employeur et qui indique la catgorie demployeurs laquelle il appartient. Cette information est donne par lemployeur lors de son inscription auprs de lO.N.S.S. ; lhistorique des modifications est galement conserv. Ce fichier des employeurs constitue une source de donnes importante pour le rseau gr par la Banque-Carrefour de la Scurit sociale (BCSS). Tant lI.L.S. que lI.S. lutilisent lors de leurs activits de contrle. Nous remarquons galement que le numro dentreprise unique est inscrit dans le fichier, de sorte quun lien peut tre tabli avec la Banque-Carrefour des Entreprises (BCE). Une deuxime banque de donnes importante est la dclaration DIMONA et le registre lectronique du personnel qui en rsulte. La dclaratio n DIMONA a pour but de transmettre immdiatement par voie lectronique lO.N.S.S. le dbut et la fin dune relation de travail. DIMONA est lacronyme de Dclaration Immdiate/Onmiddellijke Aangifte et est accessible via le portail de la Scurit sociale, www.securitesociale.be. La dclaration contient des informations concernant lemployeur, le travailleur (si possible identifi par son numro didentification unique pour la scurit sociale), le lieu doccupation dun tudiant, le numro de la commission paritaire et la date laquelle le travailleur est entr en fonction ou a quitt son employeur. Grce DIMONA, certaines obligations incombant lemployeur en matire de documents sociaux ont t simplifies ou supprimes (notamment suppression du registre papier du personnel). Lensemble de la banque de donnes DIMONA est videmment consultable par les contrleurs de lO.N.S.S., de lI.L.S. et de lI.S. Une des activits des contrleurs de lI.L.S. et de lI.S est de vrifier systmatiquement si les conducteurs viss lors dun contrle routier sont bien inscrits comme travailleur dans le systme DIMONA (cf. infra).
Page 16 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Une source externe additionnelle et intressante laquelle tant lO.N.S.S.que lI.L.S. et lI.S ont accs, est la Banque-Carrefour du droit pnal social. Elle permet de consulter des donnes concernant les sanctions pnales appliques en matire de droit du travail. Ce systme doit permettre aux contrleurs de suivre comment les dossiers transmis sont traits par les auditeurs du travail. A ce propos, nous insistons sur le fait quune telle information napparat pas dans aucune des sources de donnes oprationnelles tudies dans cette section et les suivantes : on se limite toujours la mention pro justitia.

4.4. Inspection des Lois sociales (I.L.S.)


Missions de contrle effectues. Le service Inspection des Lois sociales (I.L.S.) fait partie du SPF Emploi, Travail et Concertation sociale (lancien Ministre fdral de lEmploi et du Travail), et est un des trois services dinspection du travail. Il effectue des contrles dans le domaine du droit du travail. LI.L.S. compte une administration centrale et 24 directions externes (13 dans la Rgion flamande, 10 dans la Rgion wallonne et 1 dans la Rgion de Bruxelles-Capitale). Deux directions ont reu spcifiquement lordre de soccuper du secteur du transport, savoir celles de Malines et de Huy. Quelques infractions typiques qui peuvent tre constates par le service concernent : le travail en noir (non-communication DIMONA (voir plus haut), paiement en noir des prestations), faute dans le paiement du salaire, des jours fris ou des indemnits de dplacement, la mise jour incorrecte des feuilles de prestations, ltablissement incorrect des comptes individuels, lemploi de travailleurs de nationalit trangre sans permis de sjour ou sans carte ou permis de travail et le non-respect des rglements europens en matire de temps de conduite et de repos et dusage du tachygraphe, une comptence que lInspection partage avec la plupart des autres services. Sources de donnes oprationnelles. Les donnes suivantes sont collectes: date de mise en route et de clture, inspecteur; nature du contrle: motif, origine, protocole; travailleur(s)/conducteur : pas disponible directement (cf. infra); mais bien le nombre concern dhommes/femmes, douvriers/employs, de travailleurs temps partiel, etc. par le contrle; employeur/transporteur: numro ONSS, code NACE, nom, adresse, forme juridique, etc.; vhicule: pas disponible directement (cf. infra); mais bien le nombre de vhicules contrls (1 pour un contrle routier) et le nombre de disques contrls; constatations: pour chaque dossier, les diffrentes visites et leurs rsultats sont enregistrs, avec mention du lieu (entreprise, secrtariat social ou autre dans cette catgorie, on trouve les contrles sur la route), code des dispositions lgales contrles, la suite donne (avertissement, rgularisation, pro justitia, pas dirrgularits ou transmission une autre direction) et, si dapplication, le montant de rgularisation ou le numro de PV. Nous avons remarqu que la banque de donnes ne comprend actuellement pas de champs distincts qui permettraient didentifier automatiquement un conducteur et son vhicule qui a t contrl le long de la route : le nom, le numro didentification unique pour la scurit sociale (ou numro du registre national), la plaque dimmatriculation et dautres donnes supplmentaires sont bien nots par le contrleur sur le terrain, mais ces lments peuvent tout au plus tre inscrits ultrieurement dans un champ de texte de commentaire et ne sont donc pas directement extractibles de la banque de donnes dfinitive (celle-ci ntant pas cible exclusivement sur le domaine du transport).
Page 17 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Le systme actuel est implment en Omnis (prcdemment du Blythe Software anglais, maintenant chez Raining Data; voir http://www.omnis.net), un environnement intgr de dveloppement dapplications et de banque de donnes qui prvoit aussi les facilits dextractions ncessaires. Une difficult est que les donnes ne sont pas actuellement centralises dans une grande banque de donnes; des fichiers semestriels sont recueillis toutefois sur bandes partir des diverses directions locales. Cest pourquoi, il est propos de saisir dans une premire phase de datawarehousing, uniquement les donnes provenant de Malines et de Huy. Dans une deuxime phase, on pourrait instaurer un systme qui extrait priodiquement les fichiers pertinents de toutes les directions pour le datawarehouse, donnes qui seraient ensuite transmises lectroniquement ladministration centrale qui les fusionnerait et les enverrait la Direction gnrale Transport terrestre. Sources additionnelles/externes. LI.L.S. utilise le rpertoire des employeurs de lO.N.S.S., la banque de donnes DIMONA et a galement accs la Banque-Carrefour du Droit pnal social ; ces systmes ont t dcrits dans la section 4.3.

4.5. Inspection sociale (I.S.)


Missions de contrle effectues. LInspection sociale fait partie du SPF Scurit sociale et a pour mission de contrler le respect de la lgislation en matire de scurit sociale des travailleurs. A cet effet, elle enqute auprs des employeurs, des travailleurs et des organismes de scurit sociale. En ce qui concerne plus spcifiquement le secteur du transport, elle effectue galement des contrles routiers. Ses comptences de contrle stendent aux catgories suivantes: cotisations de scurit sociale: dclaration correcte travailleurs (DIMONA) et salaires; enqute sur indpendants apparents; octroi vacances annuelles et paiement pcule de vacances; non-dlivrance documents assurance maladie- invalidit; obligations en matire dallocations familiales; mise jour et conservation des documents sociaux (registre du personnel, registre de prsence, comptes individuels); accidents de travail : assurance et dclaration accident de travail; travail temps partiel : communication et respect de lhoraire de travail; occupation illgale/sjour de travailleurs de nationalit trangre; empchement du contrle. Nous remarquons que les contrles des tachygraphes ny figurent pas. Sources de donnes oprationnelles. Bien que des donnes additionnelles concernant les conducteurs et leurs vhicules puissent tre recueillies sur le terrain, et plus particulirement lors de contrles routiers, la banque de donnes actuelle (SIS) est axe particulirement sur le suivi des missions de contrles au niveau des employeurs. On retient ventuellement le nom, le numro de registre national et ladresse dun intress individuel mais aucune donne concernant le vhicule. Lemployeur qui fait lobjet dune enqute est identifiable sur la base de son numro dO.N.S.S. et de TVA. Les donnes de lemployeur sont compltes avec des donnes dexploitation et de contact officielles ; en outre, on mentionne les fonds, la compagnie dassurances, le secrtariat social, etc., auxquels lemployeur est affili. En ce qui concerne la na ture du contrle, on indique sil a t demand par une autre instance (si oui,
Page 18 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

laquelle), la suite dune plainte ou linitiative de linspection sociale, par quelle cellule il a t effectu (ex. cellule transport dun bureau prcis), et o dapplication, dans le cadre de quel protocole (ex. transport, en ce qui concerne spcifiquement les contrles routiers). Les constatations et la suite qui y est donne sont encodes comme suit. Une distinction est faite entre un nombre de catgories principales ( dans la sous-section prcdente : missions de contrle effectues ), et ensuite entre un nombre de sous-catgories. Pour chacune des catgories principales, on indique : 1 (vrifi et en ordre); 2 (vrifi et rgularis ou avertissement); 3 (vrifi et PV tabli). Pour les constatations du type 2 et 3, on indique selon la catgorie prcise: oui/non; le montant de la rgularisation; le nombre de personnes concernes; une certaine combinaison des lments prcits. Enfin, il est tabli une liste des services qui sont mis au courant. Nous avons remarqu quune nouvelle version de systme est actuellement en cours de dveloppement et implmente en Oracle/Business Objects. Des informations complmentaires ce sujet doivent encore tre recueillies. Sources additionnelles/externes. Les sources de donnes externes auxquelles lI.S. a accs sont les mmes que celles pour lI.L.S. (voir plus haut).

4.6. Police fdrale et Police locale


En ce qui concerne les partenaires de la Police fdrale et de la Police locale, il convient d'abord d'examiner de faon plus approfondie le cadre lgal dans lequel un change de donnes (autres que les donnes rendues anonymes) serait possible. L'objectif du datawarehouse suppose, en effet, que certaines donnes d'identification (p. ex. la plaque d'immatriculation) soient communiqus. C'est la raison pour laquelle les systmes (partiellement encore en cours de dveloppement) de la Police fdrale et de la Police locale ne sont par repris en dtail dans le prsent document. Il est toutefois vident que pour ces deux partenaires, le registre des PV pourrait tre une source d'information utile pour certaines catgories de constats relatifs au transport de marchandises et de personnes par la route. Nous pensons ici par exemple des donnes de PV relatives au tachygraphe, au contrle technique, au chargement, l'ADR et au permis de conduire.

5. Projet de modle et commentaire


Malgr le fait que certains systmes sources ne sont pas cibls spcifiquement sur le domaine du transport et ne peuvent donc fournir que peu dinformations concernant le vhicule ou le conducteur, nous sommes toutefois davis que la surcharge administrative gnre par le transfert manuel de telles donnes ne semble pas contrebalancer les donnes plus compltes qui pourraient ainsi tre obtenues. Cest pourquoi, nous voudrions opter pour un systme dans lequel le datawarehouse est aliment principalement par lextraction automatique partir dun certain nombre de systmes sources dcrits dans la section 4 (uniquement en ce qui concerne les donnes de contrle du Transport terrestre et celles fournies dans le cadre de larrangement administratif 'Euro Contrle Route', il faudra peut-tre recourir (provisoirement) une introduction manuelle ou dans le premier cas, un dveloppement plus pouss dun systme de banques de donnes). Dans notre proposition modle, nous tentons toutefois

Page 19 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

de tenir compte au maximum de lextension future ventuelle des donnes disponibles dans les systmes sources oprationnels. Nous voulons aussi viter des redondances inutiles par rapport aux systmes existants. Les divers services disposent dj chacun dune large compilation de donnes dentreprises pertinentes pour leurs activits. Il ne nous semble pas indiqu de dupliquer toutes ces donnes dans le datawarehouse. Nous prfrons proposer de prvoir les champs de donnes ncessaires qui permettront didentifier sans quivoque une entit (entreprise, vhicule, conducteur) dans les systmes actuels, ainsi que ceux qui sont souhaits comme critres de slection pour les recherches et les analyses, afin dviter des redondances inutiles. Le projet de modle propos est bas dans les grandes lignes sur les mthodes dcrites dans la section 3. Il distingue deux tables de faits centrales, respectivement pour les contrles effectus (controles) et leurs rsultats (vaststellingen), autour desquelles sagglutinent un certain nombre de tables pour les dimensions temps (tijd), vhicule (voertuig), conducteur (bestuurder), entreprise (onderneming) et disposition lgale (bepaling) ; cette dernire table de dimension sont lies hirarchiquement les tables Disp. Catgories Agora (Bep_AgoraCategorieen) et Disp. Catgories Euro (Bep_EuroCategorieen) (cf. schma flocon de neige, p.9). La structure relationnelle qui en dcoule est illustre dans la figure 6 (elle montre une impression cran dun prototype simple tabli en MS Access, voir fichier dans annexe : AgoraDB.mdb).

Figure 5 : projet de proposition datawarehouse; structure relationnelle

Page 20 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Nous commentons plus avant quelques-uns des choix, et en premire instance ceux qui drogent quelque peu au cadre mthodologique dcrit dans la section 3. Une spcification plus complte des tables et de leurs attributs se trouve en annexe (voir Appendice A: fichier Agora-01-082_Appendice A_DW-Model.xls). Contrles vs constatations. Lenregistrement des contrles effectus et des enqutes nest pas group dans une seule table de faits mais dans deux tables : contrles (controles) et constatations faites cette occasion (vaststellingen). Prenons lexemple dun contrle : un conducteur x dans un vhicule y travaillant pour lentreprise z est arrt par un contrleur du service d la date t. Pour chacune des dispositions lgales contrles (ayant pour rsultat la constatation dune infraction, cf. infra), il y a une ligne dans la table des constatations, avec mention de la suite qui y est donne. Sans choisir une telle solution normalise et sans scinder la table des faits, il faudrait, pour chaque constatation effectue lors du contrle, rpter les cls temps, conducteur, vhicule et employeur ainsi quun certain nombre dautres donnes non cls. En outre, beaucoup danalyses qui sont concevables ne doivent pas se faire au niveau des constatations individuelles mais uniquement au niveau des contrles effectus. Pour modeler ensuite le rapport 1-sur-n entre les tables rsultantes, nous dfinissons dans la table de contrle une cl primaire non significative, appele la cl de contrle (ControleSleutel), laquelle nous rfrons dans la table des constatations (vaststellingen). Contrles dans les entreprises vs contrles sur les routes; rapport avec travailleurs/vhicules. Pour garder la structure la plus simple possible, nous proposons de grouper les contrles sur les routes et dans les entreprises dans la mme table de faits (comme cest le cas dans la plupart des systmes sources). Cette table contient un champ Nature (Aard), qui indique de quel type de contrle il sagit. Pour les contrles routiers, la possibilit didentifier le conducteur et son vhicule est prvue. Les contrles dans les entreprises concernent toutefois en rgle gnrale plusieurs travailleurs et/ou vhicules. En principe, ils font lobjet de constatations spcifiques (i.e., on pourrait pour chaque infraction constate indiquer de quel travailleur individuel et/ou de quel vhicule il sagit). Dans la pratique, cette information nest toutefois pas disponible dans les systmes sources. On ne retrouve des informations que sur le nombre de travailleurs et de vhicules concerns. LI.L.S. et lI.S. enregistrent tant le nombre total de travailleurs concerns (classs ensuite par statut) que les no mbres partiels par constatation. Le nombre total de vhicules contrls (donc pas par constatation) napparat que dans la banque des donnes de lI.L.S. On opterait donc au maximum pour la solution suivante, savoir, l o les donnes sont disponibles : le nombre total de vhicules et de travailleurs contrls au niveau de la table contrles, et plus spcifiquement, chaque fois aussi le nombre de travailleurs concerns lors de constatations individuelles. Si dans le futur, davantage de donnes dtailles taient disponibles, le projet de datawarehouse conu peut tre adapt ultrieurement afin de les intgrer toutes fins utiles. Dimension entreprise. Comme expliqu dans la section 3.2, linformation textuelle est en principe reprise dans les tables de dimension. Dans certains cas, la duplication dans la table de faits est admise, par exemple pour des raisons defficience ou comme solution pour le modelage historique des modifications de dimensions. Dans notre cas, il se pose toutefois un problme supplmentaire, savoir la dlimitation et lidentification unique du contenu des tables de dimension. Prenons par exemple la population dentreprises de transport. On peut identifier sans quivoque les entreprises belges au moyen du numro de TVA (ou de la BCE) ou vent uellement aussi partir du numro O.N.S.S. Identifier une entreprise par son nom

Page 21 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

savre plus risque parce que le nom peut tre not de manire inconsistante. En ce qui concerne les entreprises trangres, ces moyens didentification ne sont pas disponibles ; certains services ne ciblent dailleurs que des employeurs belges. Toutefois, le rapportage 'Euro Contrle Route' prvoit la communication du nom de lentreprise lorsque des infractions (graves) commises par des transporteurs routiers trangers sont constates. Plutt que dessayer denregistrer toutes les entreprises sous forme de lignes dans la table de dimension (avec le risque davoir des doublons et par consquent des analyses fautives la majorit des donnes ne peut en outre tre utile que pour les entreprises belges), nous proposons denregistrer uniquement un sous-ensemble bien dfini dentreprises contrlables dans la table de dimension entreprises ( savoir les entreprises de transport autorises telles que celles reprises dans la banque de donnes Transis) ; en ce qui concerne les autres entreprises, on indiquerait directement que le nom et la nationalit dans la table des faits contrles , et ce surtout des fins de rapportage et non danalyse. 7 Dans le futur, un lien peut tre tabli avec diverses sources externes dinformations sur les entreprises via le numro de lentreprise, par exemple des fins denqute. Dimension conducteur (contrles routiers). Un problme analogue se pose pour les conducteurs contrls. En ce qui concerne les travailleurs assujettis au rgime de scurit sociale belge, le numro didentification unique pour la scurit sociale (ce qui correspond pour les personnes habitant en Belgique au numro du registre national) peut servir dans le futur de moyen didentification. En ce qui concerne les travailleurs dentreprises trangres de transport, dautres modes didentification sont videmment dapplication. En outre, il faut signaler que tous les services ne notent pas (ou ne peuvent pas noter) le num ro unique ou le numro du registre national et quactuellement aucun des services ne peut offrir automatiquement cette donne partir de la banque de donnes oprationnelle disponible. La protection de la vie prive est un aspect complmentaire quil faut encore examiner dans ce contexte. Dans loptique des finalits dutilisation du datawarehouse (o lanalyse du comportement de lentreprise prime sur celle des travailleurs individuels), nous proposons, dans une premire phase, de commencer sans la table de dimension conducteur et de lintgrer plus tard ds que les objections pratiques et lgales auront t balayes. Pour satisfaire aux exigences du rapportage 'Euro Contrle Route', nous prvoyons dj deux champs pour le nom et ladresse du conducteur contrl dans la table des faits. Ils ne doivent pas tre adapts ultrieurement mais refltent la situation au moment du contrle. Dimension vhicule (contrles routiers). Pour les contrles routiers, deux champs sont prvus dans la table des faits contrles en ce qui concerne le vhicule contrl (deux tels champs sont ncessaires pour les combinaisons tracteur/semi-remorque). Lidentification unique peut se faire sur la base de la plaque dimmatriculation (et de la nationalit). En ce qui concerne les vhicules immatriculs en Belgique, cette table de dimension peut tre remplie sur la base de la banque de donnes des plaques dimmatriculation de la DIV et ensuite tre complte priodiquement (pas de suppressions, cf. conservation de lhistorique des contrles). Cette procdure permet de valider les donnes de contrle recueillies o apparat linformation relative la plaque dimmatriculation. Pour tout vhicule tranger non contrl auparavant, une ligne peut chaque fois tre ajoute. En ce qui concerne les donnes de lI.L.S.

Une autre solution serait de prvoir une table de dimension supplmentaire pour la catgorie restante dentreprises. Page 22 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

et lI.S., il faut examiner la possibilit dun systme permettant de transmettre systmatiquement aussi les donnes didentification des vhicules. 8 Dimension temps. Pour les contrles dans les entreprises, on note la date de dbut et de clture du contrle ; pour les contrles routiers, il sagit du mme jour. Pour faciliter la consultation, quelques champs redondants sont prvus dans la table temps pour le mois, le trimestre et lanne. Il faut souligner que des contrles de longue dure dans une entreprise entranent une difficult additionnelle dextraction : des contrles qui ne sont pas encore clturs peuvent subir des modifications dans la priode suivante (par ex. nouvelles constatations la suite de visites supplmentaires). Les procdures dextraction doivent tenir compte de cette possibilit et ne peuvent pas recueillir les enregistrements ajouts ou modifis dans la nouvelle priode sans certaines adaptations des enregistrements prcdents. A moins de dcider de charger les donnes quaprs la clture du contrle, il faut par la force des choses droger au principe que seul des nouveaux faits sont ajouts de prfrence un datawarehouse, sans modification des existants. Dimension Dispositions. Chaque service a son propre schma de codage pour les dispositions lgales dont il contrle le respect. Pour rendre les rsultats comprhensibles et perme ttre lanalyse dinfractions relevant de plusieurs services, il est indiqu de rpertorier ces schmas dans un schma de classification commun. Toutefois, il reste peut-tre ncessaire de conserver aussi les codages propres chaque service, surtout pour des considrations de flexibilit : la rpartition peut tre ainsi adapte simplement sans rupture avec les anciennes donnes ou des classifications additionnelles peuvent tre prvues. Dans la table dispositions (bepalingen), on garde les dispositions lgales spcifiques chaque service auxquelles il est fait rfrence dans la table des constatatio ns. 9 Deux champs dans la table des dispositions rfrent deux sortes de classification que nous estimons actuellement utiles pour le datawarehouse, savoir le codage utilis dans le cadre de larrangement Euro Contrle Route (voir table Disp. catgories Euro - Bep_Eurocategorieen), et une nouvelle classification pour le projet mme de datawarehouse (voir table Disp. catgories Agora Bep_Agoracategorieen). Bep_Eurocategorieen (dispositions catgories Euro). Cette premire table contient les codes prescrits pour lchange dinformations entre les pays participant Euro Contrle Route. Bep_Agoracategorieen (dispositions catgories Agora). La classification ci-dessus ne couvre pas tout lventail des contrles auxquels sont soumises les entreprises belges de transport par les partenaires du projet de datawarehouse, do la ncessit dune classification

Nous voulons souligner que la non-saisie ou la saisie non structure dun certain nombre de donnes importantes didentification dans les systmes sources font que le datawarehouse, dans le contexte actuel, ne contiendra invitablement que des donnes incompltes. Par consquent il serait recommand que tous les partenaires, dans la mesure du possible et dans les limites de leurs comptences spcifiques, sefforcent denregistrer systmatiquement certaines de ces donnes additionnelles didentification (ex. numro de scurit sociale du conducteur contrl et plaque dimmatriculation) dans leurs versions de systme futures.
9

Des accords clairs doivent tre pris avec chacun des partenaires en ce qui concerne la maintenance (i.e., la transmission de codes nouvellement introduits). Page 23 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

complmentaire, sur la base de laquelle on aurait une image plus large du type dinfractions constates et de leur frquence. Sur la base des informations recueillies auprs des divers services, nous voulons proposer la classification Agora initiale suivante : 1. Absence dautorisation de transport; 2. Lettre de voiture/ document de transport; 3. (Sur)charge; 4. Rglementation A.D.R. ; 5. Transport exceptionnel : autorisation; 6. Transport de personnes: attestation compte propre; 7. Transport de personnes: autorisation communautaire / contrle de qualit/ permis dexploitation/ feuille de route; 8. Contrle technique/ certificat de visite; 9. Tachygraphe: temps de conduite et de repos & interruptions; 10. Tachygraphe: utilisation appareil; 11. Code de la route; 12. Permis de conduire/ slection mdicale; 13. Attestation de conducteur pour ressortissant dun pays tiers; 14. Immatriculation vhicule/ plaque dimmatriculation; 15. Assurance; 16. Taxe de circulation; 17. Eurovignette; 18. Contrle du gasoil routier; 19. Documents de douane : carnet TIR/ documents T/ document daccompagnement; 20. Accises/ T.V.A.; 21. Dclaration DIMONA dbut/fin relation de travail; 22. Dclaration salaires ONSS (DMFA); 23. Assujettissement : faux indpendants/ salaires dguiss ; 24. Rglement du travail : tablissement/ conservation; 25. Travail partiel: horaire; 26. Conservation documents sociaux : registre du personnel/registre de prsences/ comptes individuels/ ...; 27. Paiement du salaire et indemnits diverses; 28. Jours fris : paiement/ rcupration; 29. Vacances annuelles/ pcule de vacances ; 30. Accidents de travail : assurance/ dclaration; 31. Occupation illgale/sjour travailleurs trangers; 32. Assurance maladie- invalidit; 33. Allocations familiales; 34. Empchement contrle; 35. Dcret sur lemploi des langues; 36. Autres. Lors de leur adhsion respective au systme, les services participants doivent valider cette liste et si ncessaire ladapter ensuite en fonction de lvolution des besoins. Un exercice important auquel chaque partenaire doit sastreindre est de dterminer quelle catgorie appartient chaque disposition individuelle (telle quelle est utilise dans leur propre banque de donnes). Cette information de classification peut ensuite tre introduite dans la table de dispositions du datawarehouse (comme illustr dans la section suivante). Un autre lment concerne

Page 24 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

lincorporation ventuelle de mcanismes de filtrage qui nautorisent lapprovisionnement en informations dtailles que pour les matires relevant de chaque service en particulier.

6. Proof-of-concept : traitement des donnes douanires


Pour illustrer la prsente proposition de datawarehousing, un processus unique de ETL (extraction, transformation, loading) a t implment pour un des sous-trajets, plus particulirement pour un ensemble partiel des donnes de contrle recueillies par les Douane & Accises (cf. section 4.2). Un tel exercice peut dailleurs mettre davantage en lumire le degr de difficult de lensemble du projet ou les problmes imprvus avec les banques de donnes sources. En outre, il est utile de dvelopper une interface simple lintention de lutilisateur pour la consultation des rsultats. Un tel moyen de dmonstration permet lutilisateur final de se faire une meilleure ide des possibilits de query et danalyse et des limitations du datawarehouse final.

6.1. Implmentation ETL


Nous utilisons titre de test les donnes des contrles routiers recueillies durant le premier trimestre 2003. La table 1 donne la liste des champs de donnes disponibles dans la table source. La table 2 indique le codage utilis (cf. champs SORTE DE CONTROLE et CONSTATATION) et indique la rfrence de la classification Agora propose dans la section 5 (cf. numros dordre) et de Euro Contrle Route (avec lequel il y a peu de points communs ; on na pu tablir un lien quavec D03 Absence of technical inspection). Vu quil nentrait pas encore dans nos intentions dimplmenter une procdure rpter dans le temps, il na pas t prvu de mcanisme pour saisir lors dune extraction ultrieure ventuelle que les donnes plus rcentes ou modifies. Ces donnes sources ont t fournies dans un format MS Access et sont charges aprs traitement intensif dans le prototype prcit (galement en MS Access). Le code ETL a t dvelopp au moyen de Borland Delphi 7 (voir: http://www.borland.com/delphi/), vu que nous ne disposions pas dun purpose tool spcial.

Page 25 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Attribut

Type

Description Contrles (routiers) brigades de douane

NUMERO D'ORDRE CODE FORS DATE INPUT DAT CONTROLE HEURE EQUIPE POINT DE CONTROLE IMPORTATEUR EXPORTATEUR TRANSPORTEUR VEHICULE

Nombre Texte Date Date Texte Texte Texte Texte Texte Texte Texte

NATIONALITE TYPE DE CONTROLE

Texte Nombre

NATURE DU CONTROLE NOM DE CODE SORTE DE CONTROLE

Nombre Texte Texte

CONSTATATION A115 A122 A132 A145 A380 NUMERO DE DOSSIER BATCH

Texte Texte Texte Texte Texte Texte Texte Oui/non

Numro d'ordre contrle dans le mois (par code fors) Code Fors de la brigade Date laquelle le rapport de contrle a t entr Date laquelle le contrle a t effectu Indication heure contrle Plaque d'immatriculation du vhicule de service ou nom d'appel du team fixe Description lieu du contrle (ex, "Gand-Bruges E17") Numro TVA importateur/destinataire* Numro TVA exportateur/expditeur* Numro TVA transporteur* Information structure concernant vhicule contrl; type1/plaque d'immatriculation1/nationalit1;type2/plaque d'immatriculation2/nationalit2 (types : 1: voiture; 2: camionnette; 3: camion; 4: autobus; 5: mobile home; 6: tracteur; 7: semi-remorque; 8: autres) Description nationalit* Type de contrle: 1: dynamique (interception du vhicule); 2: statique 1 (le long de la route; slection); 3: statique 2 (le long de la route; tous) Nature contrle: 1: routine; 2: cibl (sur une disposition spcifique, cf. infra); 3: opration (evt. coordonne) Detail nature contrle: dtermination contrle cibl ou nom de code opration (ex, 210 ou "ZW VERV LOKPOL ZOTTEGEM") Liste codes dispositions contrles (chaque sous-code est prcd d'un point -virgule ex, ";210;320;340"); voir ailleurs pour aperu des codes utiliss liste codes dispositions pour lesquelles une infraction a t constate (doit tre une sous-liste de la liste ci-dessus) Info dtaille disposition 115 (transport produits d'accises - autres: ...) Info dtaille disposition 122 (droits d'importation - produits viss: ...) Info dtaille disposition 132 (contrle TVA - produits viss: ) Info dtaille disposition 145 (missions non fiscales - autres: ) Info dtaille disposition 380 (contrle moyen de transport - autres: ) (numro de rfrence pour usage interne) (usage interne) *pas disponible ou seulement de manire non systmatique dans le set de test

Table 1: spcification table source donnes de contrle douane (voir aussi Appendice B)

Page 26 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Code 111 112 113 114 115 121 122 131 132 133 134 141 142 143 144 145 210 220 230 240 310 311 320 330 340 350 360 370 380 410 510 520 530

Catg. AgoCatg.Euro. ra. Transport produits daccises Tous les produits 20 Transport produits daccises Alcool 20 Transport produits daccises Huiles minrales 20 Transport produits daccises Tabac 20 Transport produits daccises Autres 20 Droits dimportation Tous les produits 19 Droits dimportation Produits viss () 19 Contrle TVA Tous les produits 20 Contrle TVA Produits viss () 20 Contrle TVA rdaction PV 108 Contrle TVA rdaction PV 109 Missions non fiscales Drogues 36 Missions non fiscales Immigration 36 Missions non fiscales CITES 36 Missions non fiscales Patrimoine culturel 36 Missions non fiscales Autres 36 Contrle carburant Sur la voie publique 18 Contrle carburant Dans les stations-services 18 Contrle carburant Petit chantillon diesel pour labo 18 Contrle carburant Grand chantillon diesel pour labo 18 Contrle moyen de transport Taxe de circulation 16 Contrle moyen de transport Taxe de circulation complmentaire 16 Contrle moyen de transport Trafic rmunr 36 Contrle moyen de transport Assurance 15 Contrle moyen de transport Eurovignette 17 Contrle moyen de transport Certificat dimmatriculation 14 Contrle moyen de transport Contrle technique 8 D03 Contrle moyen de transport Permis de conduire 12 Contrle moyen de transport Autres 36 PV concernant douane et accises rdaction PV Non-poursuite du contrle Moyen de transport vide (camion, coffre, ) Non-poursuite du contrle Autres produits que ceux cibls Non-poursuite du contrle Empchement service, dlit de fuite, 34 etc. Description

Table 2: schma codage; mapping vers classification Agora et Euro Contrle Route Vu lobjectif de lexercice, la transformation des donnes et le data-cleaning a demand le plus de travail. Lanalyse (parsing) et le nettoyage des informations sur les vhicules (la figure 7 montre un exemple simple de la transposition), qui servent de base pour remplir la table de dimension Vhicules demandent pas mal de codes pour un certain nombre de raisons. Premirement, le codage du type de vhicule (1: voiture, etc.) nest pas toujours bien suivi (on a galement retrouv des descriptions en texte). Cest pourquoi notre code distingue chaque fois un certain
Page 27 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

nombre de synonymes possibles pour chaque type de vhicule. Deuximement, les immatriculations ont dabord d tre traites pour viter des doublons, notamment en liminant les espaces, les traits dunion, etc. Troisimement, la nationalit du vhicule nest pas enregistre de manire consquente. Nous trouvons par exemple belge, belgi, belgique, B, etc. pour indiquer la nationalit belge. Pour rsoudre ce problme, nous avons rassemb l dans un tableau (NationMapping.mdb) toutes les descriptions (environ 130) apparues dans le set de test ; chaque description a t relie un des codes standards des pays. Deuximement, nous avons recherch une nationalit correspondante dans la liste standardise des pays (abrviation ISO de trois lettres ou nom complet du pays). Si linformation sur la nationalit ma nque dans le champ VEHICULE, on tente dutiliser le contenu du champ NATIONALITE pour lidentification. Enfin, nous avons opt pour la nationalit belge lorsque aucune indication nest donne et si limmatriculation correspond au format utilis en Belgique (trois lettres suivies de trois chiffres). Nous constatons que le traitement des donnes est souvent dava ntage la rgle que lexception lors de la ralisation de projets de datawarehousing, et que par consquent, 100% dinformations exactes peuvent rarement tre garanties. La qualit de linformation recueillie peut tre amliore terme en appliquant ces aspects de cleaning le plus possible la source mme, mais la littrature sur le datawarehousing nous apprend quil ne faut pas attendre cela la plupart du temps.
VEHICULE: ";6/HIX220/Belgi;7/UJJ317/Belgi"

(information source douane)

Contrles Cl Vhicule 82 Vhicules Cl Vhicule 82 83 Cl Vhicule Semi-remorque 83

Catgorie Vhicule Plaque dimmatriculation Nationalit 1 HIX220 150 1 UJJ317 150

Figure 7 : exemple transposition donnes vhicule Lidentification de lemployeur fut un autre problme (pour remplir la table de dimension entreprises). Bien quun champ soit prvu dans la table source des donnes pour lenregistrement du numro de TVA, cette information na pas t recueillie jusqu prsent sur le terrain au cours de la priode de test (premier trimestre 2003). Cette limitation fait que dans le contexte de cette tude, il a t impossible de lier les contrles et les infractions constates aux entreprises individuelles. Si on faisait appel une seconde source, savoir la banque de donnes des plaques dimmatriculation de la DIV, linformation recueillie sur les vhicules (voir plus haut) permettrait bien didentifier quoique indirectement - les transporteurs belges. Ce nest videmment pas une solution pour les entreprises trangres (et le rapportage europen). Les partenaires concerns doivent tudier le problme pour dterminer dans quelle mesure il peut tre rsolu dans lavenir par une adaptation des procdures sur le terrain et une extension de la banque de donnes de la douane. Plus haut, nous avons dj soulign que la douane, comme la plupart des autres services, nenregistre pas de donnes concernant lidentit du conducteur contrl. Les champs correspondants du datawarehouse restent donc vides.

Page 28 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

En annexe, nous donnons un aperu des donnes du datawarehouse extraites du set douane et leur origine (cf. Appendice C), ainsi que le code Delphi-datamodule requis cet effet (cf. Appendice D). 10 Veuillez remarquer que vu lobjectif du datawarehouse, on na retenu que les donnes concernant le trafic de personnes et de marchandises. Cette slection a lieu sur la base des informations disponibles concernant les vhicules : on retient les catgories camionnette, camion, tracteur, semi-remorque et autobus, pas les catgories voitures, mobile homes et autres. Limplmentation ETL dcrite ci-dessus, a t intgre dans une interface graphique simple (lapplication AgoraETLDouane), qui permet den tester la fonctionnalit (cf. figure 9). Cette application Delphi tablit le lien entre la banque de donnes source et la banque de donnes rsultante (respectivement TestDataDouane.mdb et AgoraDB.mdb, mettre dans lapplication directory). Pour permettre lutilisateur de raliser un nouveau processus ETL, vers une banque de donnes rsultante sans donnes de contrle, le menu Maintenance contient une srie de sujets permettant deffacer nouveau le contenu de AgoraDB.mdb (Delete Agora Table: Controles, Vaststellingen, Tijd, Voertuigen) et de remplir nouveau la table temps (Auto- fill tijd). La logique ETL peut tre teste soit sur lenregistrement slectionn dans la banque de donnes douane (entre menu : ETL Test), soit dans son ensemble (entre menu : ETL Execute). Au cours de ce dernier processus, une srie davertissements est consigne en outre dans un fichier texte (Log.txt), qui peut par exemple tre utilis ultrieurement des fins de validation (voir figure 8). Les numros de rfrence du systme source mis entre parenthses permettent didentifier lenregistrement original (la composition de ce champ est dcrite dans Appendice C).
Execution started at 12/27/2003 0:42:07. Warning (2-255182300-2003-02-136): replaced missing country code with Belgium for nummerplaat "SPF224" Warning (2-255180500-2003-02-822): replaced missing country code with Belgium for nummerplaat "QAZ014" Warning (2-255180500-2003-02-821): replaced missing country code with Belgium for nummerplaat "GME946"

() Figure 8 : fragment fichier de journalisation Lexcution de lETL prend videmment un certain temps et cest pourquoi une fentre de progression est montre. A titre indicatif, la banque de donnes sources contient 44657 enregistrements de contrle, dont aprs slection (voir plus haut), 14602 contrles ont t retenus dans la banque rsultante et lis 56194 constatations individuelles (positives ou ngatives). Le formulaire permet de surfer dans les donnes sources et rsultats. Pour un mode de consultation convivial, nous vous renvoyons la section suivante.

10

Il nous semblait peu judicieux de reprendre dans lannexe textuelle le code interface de lutilisateur ou le code de lapplication dcrite dans la section suivante. Lannexe ne contient donc quune partie de limplmentation. Page 29 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Figure 9: exemple cran interface utilisateur implmentation ETL

6.2. Consultation des donnes cibles environnement dmonstratif


Paralllement au processus ETL dcrit ci- haut, nous avons dvelopp une interface graphique pour consulter et analyser les donnes de rsultat. Cette dernire na pas la prtention dtre complte mais elle sert surtout avoir un meilleur aperu des possibilits et des limitations du datawarehouse et valider les donnes de rsultat. Lcran principal (voir figure 10) est conu comme un formulaire de recherche : sur la base de certains critres de recherche prciser par lutilisateur (par exemple, la date, transport de choses/personnes, la nationalit du vhicule, la plaque dimmatriculation11 , le type d'infraction), une slection est opre dans les constatations de contrle recueillies. 12 Un join-query

11

Un critre incomplet de slection est aussi possible au moyen de jokers, savoir % pour remplacer plusieurs signes ou _ pour un signe.
12

Nous nous sommes limits la base des donnes disponibles. Par exemple, nous navons pas prvu de critre de recherche pour lentreprise de transport concerne (par ex. numro de TVA ou nom) pour la bonne et simple raison que ces donnes ne sont pas encore disponibles dans les donnes sources. Page 30 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

est ralis en run-time dans les tables de faits et de dimensions du datawarehouse. Le rsultat de la recherche est donn sous la forme dun spreadsheet.

Figure 10 : exemple cran; cran de recherche Plus de dtails sur le contrle slectionn dans laperu et sur les constatations y affrentes (voir figure 11) peuvent tre demands en cliquant sur le bouton situ en dessous de la fentre. Dans la fentre suivante, lutilisateur peut choisir entre trois codages pour les constatations : le codage spcifique au service, la classification Agora (cf. exemple illustr) et le codage de larrangement administratif 'Euro Contrle Route'. Dans une implmentation dfinitive, un systme de recherche comparable pourrait tre offert via le web aux divers services, moyennant introduction des mcanismes de scurisation et de filtrage requis.

Page 31 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Figure 11: exemple cran; dtail cran Paralllement ces possibilits de recherche, lenvironnement dvelopp permet galement dtablir un certain nombre de rapports dexemple partir des donnes recueillies. Ils peuvent tre slectionns au moyen du menu situ en haut de la fentre principale. Un premier rapport dexemple est la rpartition des frquences des nationalits de tous les vhicules repris dans le datawarehouse (pour autant que les nationalits soient disponibles) sous la forme dun cla ssement et dun diagramme circulaire. Un second rapport dexemple donne les frquences des infractions constates au cours du premier trimestre 2003 et enregistres dans le datawarehouse selon les catgories Agora. La figure 12 montre une impression de ce rapport. Un troisime rapport dexemple donne lvolution, pour le premier trimestre 2003, du nombre de contrles effectus versus le nombre de contrles positifs (voir figure 13). Si lors de limplmentation dfinitive, on peut utiliser un outil de datawarehousing plus puissant, de tels rapports pourraient ventuellement tre composs de manire relativement simple par lutilisateur au moyen dune interface point-and-click. Dans le prsent exercice, nous

Page 32 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

avons d nous limiter ltablissement manuel des queries ncessaires (qui ne peuvent pas tre personnaliss davantage par lutilisateur).

Figure12 : exemple cran; rpartition frquence catgories dinfractions Agora

Page 33 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Figure13 : exemple cran; volution trimestrielle nombre de contrles (positifs) Pour terminer, les donnes recueillies permettent des analyses pluridimensionnelles, au moyen de tableaux croises montrant des (sous-)totaux et des moyennes pour un certain no mbre de dimensions slectionnables. Une telle prsentation permet lutilisateur de reconnatre activement les tendances et les relations possibles. A cet effet, nous utilisons les classes de composantes de TDecisionCube qui font partie des composantes de support de dcision livres avec lenvironnement Delphi. Les figures 14 et 15 montrent deux exemples dcran. Dans la figure 14, le nombre de contrles a t agrg par mois (colonnes) et par catgorie de transport (lignes) ; la somme de chaque catgorie (pour les mois indiqus) apparat dans la dernire colonne. En cliquant sur le signe +, ces totaux peuvent tre scinds selon quune infraction a t constate ou non. La table rsultante est illustre dans la figure 15. Cette application permet galement de demander la nationalit. Ensuite, toutes les dimensions peuvent tre rarranges entre elles via drag-and-drop, tant au niveau de lordre de succession quau niveau des lignes et des colonnes, afin dtablir diffrents rapports possibles. Enfin, lutilisateur peut aussi choisir une autre valeur, plus particulirement le nombre de procsverbaux (en cliquant droite et en choisissant le sujet dans le menu qui apparat alors). Ceci nest donn qu titre dillustration ; dans un environnement de support de dcision compltement dvelopp, il devrait tre possible de choisir la carte entre tous les attributs des tables de dimensions disponibles (pour la rpartition en lignes et colonnes) et les valeurs (pour les cellules des valeurs).

Page 34 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Figure14 : exemple cran; nombre de contrles par mois/catgorie de transport

Figure15 : exemple cran ; nombre de contrles par mois/catgorie de transport

7. Conclusion : situation actuelle et recommandations pour la suite


7.1. Sur le plan lgislatif et juridique
La loi relative la protection de la vie prive est dapplication sur les donnes caractre personnel qui sont recueillies. Par consquent, il faudra demander lavis de la Commission de la protection de la vie prive pour mettre en oeuvre et dvelopper la banque de donnes. Il faudra examiner avec le parquet et les auditorats dans quelle mesure lenregistrement de donnes relatives des infractions saccorde ou peut tre accord avec le secret de linstruction en matire pnale. Pour effectuer la liaison avec les banques de donnes oprationnelles gres par lInspection des Lois sociales et lInspection sociale et plus tard, avec les sources additionnelles de donnes dans le cadre du rseau gr par la Banque-Carrefour des Entreprises (BCE) (comme le registre du personnel gnr lectroniquement par la dclaration DIMONA), il sera indiqu lavenir de noter dans la banque de donnes, le numro didentification unique de scurit sociale du travailleur contrl. Il est possible que dans une premire phase, on note aussi le

Page 35 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

numro O.N.S.S. de lemployeur. Une demande sera introduite pour ces deux donnes auprs du Comit de gestion de la BCE. Cette demande peut par exemple tre labore en collaboration avec les partenaires de O.N.S.S. Dans loptique de la reprise du numro dentreprise (Banque-Carrefour Entreprises), des informations complmentaires doivent tre demandes au gestionnaire du systme propos dexigences ventuelles de procdure. Pour rendre oprationnel le plan daction du 20 novembre 2001, savoir lchange de donnes entre les partenaires susmentionns, des arrts dexcution complmentaires sont ncessaires. Il faut souligner quil nexiste pas de prcdent en ce qui concerne lchange de donnes autres que celles anonymes avec la police fdrale et locale.

7.2. Sur le plan du contenu et sur le plan technique


Lors de linventaire des sources de donnes disponibles dans les divers services, nous avons constat quelques manquements importants qui entravent le dveloppement dun systme de datawarehouse pour les contrles des transports routiers. En premier lieu, il nexiste pas actuellement encore de banque de donnes oprationnelle au Transport terrestre, ce qui est une condition imprative pour mettre en oeuvre et alimenter dans une phase ultrieure un datawarehouse. Pour raliser rapidement cette phase pralable, un support additionnel serait indiqu ; ce support serait aussi utile lors du dveloppement du datawarehouse. Des problmes ont aussi t constats dans les systmes des autres partenaires et compliquent la saisie automatique des donnes. A lI.L.S., les donnes ne sont pas centralises dans une seule grande banque de donnes. Cest pourquoi, nous avons propos, de ne prendre en compte que les donnes de Malines et de Huy dans une premire phase de datawarehousing, avant de dvelopper un systme dapprovisionnement plus tendu. En outre, nous avons constat que les systmes sources disponibles ne peuvent fournir que trs peu de donnes didentification relatives au vhicule et au conducteur. Par consquent, le datawarehouse ne pourra contenir, dans le contexte actuel que des donnes incompltes. Il est donc recommand que tous les partenaires sefforcent, dans la mesure du possible et dans les limites de leurs comptences spcifiques, dajouter systmatiquement certaines des ces donnes additionnelles didentification dans leurs versions de systme futures. A la police locale et fdrale, les nouveaux systmes qui peuvent servir alimenter le datawarehouse prvu sont toujours partiellement en cours de dveloppement. Une concertation plus troite simpose, notamment pour faire connatre nos besoins et pour avoir un meilleur aperu du cadre lgal.

7.3. Sur le plan organisationnel et budgtaire


Un projet aussi important de datawarehouse na de chances de russir que si les moyens ncessaires y sont affects. Il ressort de la prsente tude que limplmentation des routines dextraction des donnes ainsi que lorganisation du processus dalimentation sera une tche consquente, vu le caractre htrogne des systmes sources disponibles. En outre, un tel datawarehouse doit, mme aprs le dveloppement dune premire version, continuer vo-

Page 36 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

luer en fonction des besoins et des sources dalimentation disponibles ; il faut disposer dun staff continu pour lalimentation priodique, la correction des fautes, lanalyse, le rapportage et larchivage des vieilles donnes. Nous voulons insister sur le fait que des efforts ne sont pas uniquement requis du service qui a pris linitiative mais aussi des autres partenaires, pour pouvoir mettre en oeuvre et (surtout) entretenir un tel systme. Des accords clairs doivent tre pris concernant lorganisation de la fourniture des donnes, le renvoi et le traitement des donnes si des fautes sont constates lors de la saisie, la communication des nouveaux codes spcifiques aux services pour les infractions, etc. Le dveloppement plus avant du datawarehouse devrait en plus constituer un facteur important dinput pour la prise de dcisions concernant la propre infrastructure de banque de donnes, vu que loffre actuelle en donnes livrables est encore trs limite.

7.4. Aperu des tapes suivantes ventuelles


Linventaire des donnes disponibles, un projet de modle pour la structure du datawarehouse et un proof-of-concept ont t faits. Il faudrait maintenant approfondir le volet lgislatif et juridique ainsi que le volet dveloppement. En ce qui concerne ce second volet, il faudrait dabord dvelopper et mettre en oeuvre une banque de donnes oprationnelle au sein du Transport terrestre. Le dveloppement du datawarehouse proprement dit se fait typiquement selon un processus itratif ; on commencerait avec le dveloppement complet du trajet pour un des partenaires, sur la base duquel le projet initial peut ventuellement tre adapt. Dans une premire phase, nous songeons surtout lInspection des Lois sociales (avec laquelle il existe dj une collaboration troite) et/ou la douane pour laquelle lessai dimplmentation ci-haut a t dvelopp. Linspection sociale et la police fdrale peuvent suivre dans une deuxime phase. Les donnes de la police locale et des services de contrle de lO.N.S.S. sont provisoirement moins pertinentes pour le contrle des transports routiers. Chacun des soustrajets suppose le dveloppement des tapes suivantes : (1) extraction des donnes; (2) transformation des donnes; (3) alimentation du datawarehouse; (4) post traitement. En outre, il faut prvoir les facilits de consultation et de rapportage ncessaires. Pour terminer, nous faisons remarquer que, mis part le prsent projet de datawarehousing pour les contrles et les infractions, il existe dautres opportunits pour un meilleur change des informations, savoir lamlioration de laccs aux banques de donnes existantes, par exemple celles des plaques dimmatriculation et des autorisations dune part et de la DIMONA dautre part.

Page 37 de 38

SPP Politique scientifique/Agora/01/082 datawarehouse contrles des transports routiers: rapport final et explication du projet de modle (3/2/2004)

Bibliographie
Inmon, W. H. (1996), Building the Data Warehouse, second edition, Wiley, N.Y., 401 pp. Vandenbulcke, J.A. en Lemahieu, W., Databasesystemen voor de praktijk, zevende druk, Ten Hagen en Stam, Den Haag, 560 pp.

Abrviations et acronymes
S.C.G.I. Administration de la Douane et Accises, Service Central de Gestion de l'Information (C.D.I.B. Administratie der Douane & Accijnzen, Centrale Dienst voor Informatiebeheer) DIMONA - La Dclaration IMmdiate de l'emploi (De ONmiddellijke Aangifte van tewerkstelling) D.I.V. - Direction pour l'Immatriculation des Vhicules (Dienst voor Inschrijving van de Voertuigen) I.L.S. Inspection des Lois Sociales (I.S.W. Inspectie Sociale Wetten) O.N.S.S Office National de Scurit Sociale (R.S.Z. Rijksdienst voor Sociale Zekerheid) I.S. Inspection Sociale (S.I. Sociale Inspectie)

Annexes
Les annexes peuvent tre obtenues auprs de l'quipe de recherche l'adresse suivante: KU Leuven Dpartement Sciences conomiques appliques Naamsestraat 69 3000 Leuven e-mail: christphe.mues@econ.kuleuven.ac.be ou jan.vanthienen@econ.kuleuven.ac.be

Page 38 de 38

Agora/01/082 datawarehouse "contrles du transport routier", appendice A: projet de proposition datawarehouse (03-02-2004)

TABLEAU/ATTRIBUT
Contrles ContrleCl

TYPE

D ESCRIPTION
tableau central des faits comprenant les contrles routiers et enqutes en entreprise effectus par divers services.

Nombre attribu automatiquement Nombre

Numro contrle identification, attribu automatiquement

ServiceContrle

Service qui a effectu le contrle; voir tableau ContrleServiceCodes (0: non dfini; 1: Transport terrestre; 2: Douane; 3: ILS.; 4: I.S.; 5: ONSS.; 6: Police fdrale; 7: Police locale; 8: Euro Contrle Route) District au sein du service de contrle (0 = si non d'application); voir tableau DistrictCodes (p.ex. 1: ILS-Mechelen) Genre du contrle; voir tableau ContrleGenreCodes (1: contrle routier; 2: inspection en entreprise) Origine du contrle; voir tableau OrigineCodes (0: non dfini; 1: contrle de routine; 2: contrle cibl; 3: opration coordonne; 4: demande d'une instance externe; 5: plainte; 6: propre enqute) Nom -code e l'opration au sein de laquelle le contrle a eu lieu (le champ reste vierge si non disponible ou non applicable). Serie-caractre qui permet d'identifier le record-contrle original dans le systme-source oprationnel. Rfrence nombre cl relative la date d'introduction du recordcontrle dans le datawarehouse; voir tableau DimensionTemps Rfrence nombre relative la date du dbut du contrle routier / de l'inspection en entreprise; voir tableau DimensionTemps Rfrence nombre cl relative la date de clture du contrle routier / de l'inspection en entreprise ( savoir identique la date de dbut dans le cas d'un contrle routier); voir tableau DimensionTemps Endroit o le contrle a eu lieu (p.ex. "Gent-Brugge E17"; uniquement d'application dans le cas d'un contrle routier; non standardis; vierge si non disponible ou non d'application). Rfrence nombre cl relative au vhicule contrl ou, pour un vhicule articul, au tracteur (uniquement d'application lors d'un contrle routier; 0 lorsque non d'application ou non disponible); voir tableau DimenstionVhicules Rfrence nombre cl relative la semi-remorque (uniquement d'application en cas de contrle routier d'un vhicule articul; 0 lorsque non d'application ou non disponible); voir tableau DimensionVhicules Rfrence nombre cl relative au conducteur, si celui-ci est identifiable de faon unique sur base de son NISS (uniquement d'application lors dun contrle routier, 0 lorsque non dapplication ou non disponible); voir tableau DimensionConducteurs Nom et prnom du conducteur (le champ reste vierge lorsque non disponible / non d'application; pas de contrle sur l'identification unique) Adresse du conducteur (le champ reste vide si non disponible ou non applicable) Rfrence nombre cl l'entreprise de transport (belge) contrle; voir tableau DimensionEntreprises; 0 si non identifiable dans ce dernier.

District Genre Origine

Nombre Nombre Nombre

OprationCodeNom SourceSystmeRf DateEnregistrementCl

Texte Texte Nombre

DateDbutCl

Nombre

DateCltureCl

Nombre

LieuDescription

Texte

ClVhicule

Nombre

SemiremorqueCl

Nombre

ChauffeurCl

Nombre

NomChauffeur

Texte

AdresseChauffeur EmployeurCl

Texte Nombre

Pagina 1 van 4

agff082ap_fr.doc

Agora/01/082 datawarehouse "contrles du transport routier", appendice A: projet de proposition datawarehouse (03-02-2004)

TABLEAU/ATTRIBUT
NomEmployeur Texte

TYPE

D ESCRIPTION
Nom de l'entreprise contrle; permet p.ex. le rapportage concernant les contrles routiers d'entreprises trangres (qui ne sont pas reprises dans le tableau DimensionEntreprises); vide si non disponible Code nombre pour la nationalit de l'entreprise contrle; voir tableau Codes Pays (p.ex. 150 = Belgique; 999 = non dfini) Variable oui/non: oui: entrepris e belge; non: non belge; vide: lorsque l'information n'est pas disponible Variable oui/non: oui: entreprise d'un pays Euro Contrle Route; non: autre; vide: lorsque l'information n'est pas disponible Variable oui/non: oui: entreprise UE; non: non UE ; vide: si l'inform ation n'est pas disponible Variable oui/non qui indique si une infraction a t constate lors du contrle; vide lorsque l'information n'est pas disponible Valeur de mesure: nombre de vhicules contrls; toujours 1 lors d'un contrle routier; 0, 1 ou suprieur pour une enqute en entreprise; vide lorsque l'information n'est pas disponible Valeur de mesure: nombre d'em ploys contrls; vide lorsque l'information n'est pas disponible Valeur de mesure: nombre de PV'x tablis dans le cadre du contrle; vide lorsque l'information n'est pas disponible Valeur de mesure: montant (total) peru en Euro; 0 lorsque il n'y a pas de perception immdiate; vide lorsque l'information n'est pas disponible Valeur de mesure: montant (total) rgularis en Euro; 0 s'il n'y a pas de rgularisation; vide lorsque l'information n'est pas disponible tableau dimension contenant l'information de temps relative aux contrles excuts

EmployeurNationalit

Nombre

Belge EuroContrleRoutePays UE Infraction

Oui/non Oui/non Oui/non Oui/non

NombreVhiculesContrls

Nombre

NombreEmploysContrls NombrePVx PontantPeru

Nombre Nombre Nombre

MontantRgularisation

Nombre

Temps TempsCl Nombre (attribu automatiquement) Date Nombre Nombre Nombre

Numro d'identification du record attribu automatiquement

Date Mois Trimestre Anne Vhicules VhiculeCl

Date (p.ex., 31/5/2003) Mois sous forme de chiffre (p.ex 5) Trimestre (p.ex. 2) Anne (p.ex. 2003) tableau dimension contenant des informations dtailles relatives aux vhicules contrls

Nombre (attribu autom atiquement) Nombre

Numro d'indentification du record vhicule attribuer automatiquement (0 est rserv pour les renvois zro dans le tableau des FaitsContrles) Catgorie du vhicule: choses / personnes; voir tableau CodesCatgorieVhicule (0 = non dfini; 1 = choses; 2= personnes) Numro de plaque d'immatriculation (max. 10 caractres) Code nombre Nationalit; voir tableau Codes Pays (p.ex. 150 = Belgique; 999 = non dfini) tableau dimension contenant des informations dtailles relatives aux conducteurs contrls identifis sur base de leur NISS Numro d'identification du record conducteur attribuer automatiquement (0 est rserv aux rfrences zro dans le tableau des FaitsContrles) Numro d'identification de la scurit sociale (NISS); vide lorsque non d'application ou non disponible

CatgorieVhicule

PlaqueImmatriculation Nationalit Conducteurs ConducteurCl

Texte Nombre

Nombre (attribu automatiquement) Texte

NISS

Pagina 2 van 4

agff082ap_fr.doc

Agora/01/082 datawarehouse "contrles du transport routier", appendice A: projet de proposition datawarehouse (03-02-2004)

TABLEAU/ATTRIBUT
Nom DateDbut DateFin Nationalit Statut Entreprises EntrepriseCl Texte Date Date

TYPE

D ESCRIPTION
Nom et prnom du conducteur Date de dbut de la priode de validit des donnes conducteurs cidessous Date de fin de la priode de validit des donnes conducteurs cidessous; 12/31/2999 tant que non modifi Code nombre pour la nationalit du conducteur; voir tableau CodesPays (p.ex. 150 = Belgique; 999 = non dfini) Statut social du conducteur; voir tableau CodesStatutConducteur (0 = non dfini; 1 = employ; 2 = indpendant; 3 = intrimaire) tableau dimension contenant des informations dtailles relatives aux entreprises de transport belges Numro d'identification du record de l'entreprise de transport (belge) attribuer automatiquement (0 est rserv aux rfrences zro dans le tableau des FaitsContrle) Nom officiel de l'entreprise Numro ONSS Numro BCE (Banque Carrefour des Entreprises); remplace le numro de TVA tableau des faits contenant les constatations faites lors des contrles

Nombre Nombre

Nombre (attribu automatiquement)

Nom Numro_ONSS Numro_BCE Constatations ContrleCl DfinitionCl

Texte Texte Texte

Nombre Nombre

Rfrence nombre cl au numro d'identification du contrle du tableau des faits attribu automatiquement Rfrence nombre cl aux dispositions respectives (propres au service) dont l'application a t contrle lors du contrle; voir tabeau Dispositions Variable Oui/non qui indique si lors du contrle il y a eu oui ou non constat d'une infraction la disposition prcite (remarque: en cas de non-infraction il n'y aura pas toujours un record de disponible ce sujet dans la source oprationnelle) Faon dont il a t donn suite la constatation; voir tableau CodesSuite (0 = non dfini; 1 = aucune; 2 = avertissement; 3 = rgularisation; 4 = perception immdiate; 5 = pro-justitia; 6 = transmis sion; 7 = autres) Nombre d'employs concerns; vide lorsque non disponible Montant peru/rgularis (en fonction de la valeur "suite") en Euro pour la constatation en question; 0 si pas de perception immdiate ou de rgularisation; vide lorsque l'information n'est pas disponible tableau reprenant les codifications utilises par les services en ce qui concerne les dispositions lgales contrlables Numro d'identification du record pour la disposition lgale (propre au service) attribu automatiquement Codification de la disposition propre au service (p.ex. "D20811") Libell de la disposition (p.ex. "temps de repos insuffisant moins de 11 heures art. 8.1., 1 er alina 62 Euro par priode de 30 minutes) Service de contrle qui applique la disposition / le code; voir tableau CodesContrleService (1 = Transport terrestre; 2 = Douane et Accises; 3 = I.L.S.; 4 = I.S.; 5 = O.N.S.S.; 6 = Police fdrale; 7 = Police locale; 8 = Euro Contrle Route) Date d'introduction (valeur par dfaut: 1/1/1800, si dj d'application avant entre en vigueur du datawarehouse)

Infraction

Oui/non

Suite

Nombre

NombreEmploys Montant

Nombre Nombre

Dfinitions Df_Cl Nombre attribu automatiquement Texte Texte

Code Description

Service

Nombre

DateDbut

Date

Pagina 3 van 4

agff082ap_fr.doc

Agora/01/082 datawarehouse "contrles du transport routier", appendice A: projet de proposition datawarehouse (03-02-2004)

TABLEAU/ATTRIBUT
DateFin CatgorieAgora Date

TYPE

D ESCRIPTION
Date de radiation lorsque le code n'est plus utilis; 12/31/2999 tant qu'utilis Rfrence nombre cl des catgories de contrles communes encore convenir par les partenaires; voir tableau Df_CatgoriesAgora Rfrence nombre cl au code Euro Contrle Route correspondant; voir tableau Df_CatgoriesEuro (0 si la disposition ne fait pas partie de ces catgories) tableau avec la catgorisation commune des dispositions dfinir par les services Numro code d'identification attribuer automatiquement ( convenir en commun) pour la catgorie d'ensemble des dispositions Description (p.ex. Tachygraphe: temps de conduite et de repos & interruptions) Date d'introduction Date de suppression lorsque le code n'est plus utilis; 12/31/2999 tant qu'utilis Explication optionnelle tableau reprenant la catgorisation des dispositions utilises dans le cadre d'Euro Contrle Route Numro de code d'identification attribuer automatiquement pour les catgories de dispositions utilises dans le cadre de l'Euro Contrle Route Codification de la catgorie (p.ex. "A04") Date d'introduction Date de suppression lorsque le code n'est plus utilis; 12/31/2999 tant qu'utilis Entte sous laquelle la catgorie est reprise (p.ex. European Social Regulations) Description de la catgorie (en dtail) ("Daily rest") tableaux de codes du datawarehouse

Nombre

CatgorieEuro

Nombre

Df_CatgoriesAgora Cat_Cl Nombre (attribu automatiquement) Texte Date Date Texte

Cat_Descirption DateDbut DateFin Cat_Explication Df_CatforiesEuro Cat_Cl

Nombre attribu automatiquement Texte Date Date Texte Texte

Cat_Code DateDbut DateFin Cat_Entte Cat_DetailTexte ConducteurStatutCodes ContrleGenreCodes ContrleServiceCodes DistricCodes SuiteCodes, PaysCodes OrigineCodes VhiculeCatgorieCodes

Pagina 4 van 4

agff082ap_fr.doc

Agora/01/082 datawarehouse "contrles transport routier", appendice B: spcification banque de donnes test douane

ATTRIBUT

TYPE

D ESCRIPTION
Contrles (routiers) brigades de douane

NUMERO D'ORDRE CODE FORS DATE INPUT DATE CONTROLE HEURE EQUIPE POINT DE CONTROLE IMPORTATEUR EXPORTATEUR TRANSPORTEUR VEHICULE

Nombre Texte Date Date Texte Texte Texte Texte Texte Texte Texte

Numro d'ordre contrle dans le mois (par code fors) Code Fors de la brigade Date laquelle le rapport de contrle a t entr Date laquelle le contrle a t effectu Indication heure contrle Plaque d'immatriculation du vhicule de service ou nom d'appel du team fixe Description lieu du contrle (ex, "Gand-Bruges E17") Numro TVA importateur/destinataire* Numro TVA exportateur/expditeur* Numro TVA transporteur* Information structure concernant vhicule contrl; type1/plaque d'immatriculation1/nationalit1;type2/plaque d'immatriculation2/nationalit2 (types : 1: voiture; 2: camionnette; 3: camion; 4: autobus; 5: mobile home; 6: tracteur; 7: semi-remorque; 8: autres) Description nationalit* Type de contrle: 1: dynamique (interception du vhicule); 2: statique 1 (le long de la route; slection); 3: statique 2 (le long de la route; tous) Nature contrle: 1: routine; 2: cibl (sur une disposition spcifique, cf. infra); 3: opration (evt. coordonne) Detail nature contrle: dtermination contrle cibl ou nom de code opration (ex, 210 ou "ZW VERV LOKPOL ZOTTEGEM") Liste codes dispositions contrles (chaque sous -code est prcd d'un point -virgule ex, ";210;320;340"); voir ailleurs pour aperu des codes utiliss liste codes dispositions pour lesquelles une infraction a t constate (doit tre une sous -liste de la liste ci-dessus) Info dtaille disposition 115 (transport produits d'accises - autres: ...) Info dtaille disposition 122 (droits d'importation - produits viss: ...) Info dtaille disposition 132 (contrle TVA - produits viss: ) Info dtaille disposition 145 (missions non fiscales - autres: ) Info dtaille disposition 380 (contrle moyen de transport - autres: ) (numro de rfrence pour usage interne) (usage interne) * pas disponible ou seulement de manire non systmatique dans le set de test

NATIONALITE TYPE DE CONTROLE NATURE DU CONTROLE NOM DE CODE SORTE DE CONTROLE CONSTATATION A115 A122 A132 A145 A380 NUMERO DE DOSSIER BATCH

Texte Nombre Nombre Texte Texte Texte Texte Texte Texte Texte Texte Texte Oui/non

Pagina 1 van 1

agff082apB_fr.doc

Agora/01/082 datawarehouse "contrles transport routier", appendice C: documentation ETL test-implmentation

TABLEAU/ATTRIBUT
Contrles ContrleCl

TYPE
Nombre

ATTRIBUTION/O RIGINE
Valeur cl attribue automatiquement: numro prcdent + 1 (procdure implmentation: voir ClTGnrateur-classe); uniquement les contrles qui concernent le transport de personnes et de marchandises sont pris en compte. La slection se fait sur base du type de vhicule (voir tableau "Vhicules"). 2 (code pour le service de contrle Douanes et Accises) 0 (pas d'application) 1 (contrle routier) Champ-source: GENRECONTROLE; 1-> 1 (contrle de routine); 2 -> 2 (contrle cibl); 3 -> 3 (opration coordonne) Champ-source: CODENOM Champs -source: CODE FORS; DATE DU CONTROLE; NUMERO D'ORDRE Exemple: 2-255182300-2003-02-1391, avec - 255182300: code fors brigade motorise - 2003: anne - 02: fvrier - 1391: numro d'ordre dans le mois pour la brigade Valeur cl (cf. tableau "temps") date excution processus ETL Champ-source: DATE CONTROLE; transpose vers la valeur cl correspondante dans le tableau "temps". Identique DateClDmarrage (d'ailleurs uniquement contrles routiers) Champ-source: LIEU CONTRLE Champ-source: VEHICULE; procdure cleansing/parsing implmentation,: ParseVhiculeField; procdure-implmentation recherche record existant dans le tableau "Vhicules (cf. infra) ou ralisation d'un nouveau record en cas de non-identification: UpdateTableauVhicules (cl d'identification secondaire: Plaque d'immatriculation, Nationalit). Le rsultat est une rfrence nombre cl au vhicule contrl ou, pour un vhicule articul, au tracteur (0 lorsque non disponible). Champ-source: VEHICULE; transformation similaire ci-dessus; rfrence nombre cl la semi-remorque si VEHICULE contient une deuxime donne ce sujet; si non 0 (notez que ces semiremorques forment un record distinct dans le tableau "Vhicules"). 0 (non disponible dans le systme source) Vide (id.) Vide (id.) 0 (non disponible systmatiquement dans le systme source) Vide (id.) 999 (id.) Non implment Non implment Non implment Valeur 'Oui' si, aprs traitement des champs -source GENRE CONTRLE et CONSTATATION (cf. tableau "Constatations") une infraction a t enregistre dans au moins une des constatations relates au contrle; dans le cas contraire: 'Non'

ServiceContrle District Genre Origine CodeNomOpration SourceSystmeRf

Nombre Nombre Nombre Nombre Texte Texte

DateEncodageCl DateDmarrageCl DateCltureCl DescriptionLieu VhiculeCl

Nombre Nombre Nombre Texte Nombre

VhiculeSemiremorqueCl

Nombre

ConducteurCl NomConducteur AdresseConducteur EmployeurCl NomEmployeur NationalitEmployeur Belge PaysEuroControleRoute UE Infraction

Nombre Texte Texte Nombre Texte Nombre Oui/Non Oui/Non Oui/Non Oui/Non

Pagina 1 van 3

agff082apC_fr.doc

Agora/01/082 datawarehouse "contrles transport routier", appendice C: documentation ETL test-implmentation

TABLEAU/ATTRIBUT
Contrles NombreVhiculesContrls NombreEmployeursContrls NombrePVx

TYPE
Nombre Nombre Nombre 1 (contrle routier)

ATTRIBUTION/O RIGINE

Vide (non disponible dans le systme source) Nombre de PV'x tablis dans le cadre du contrle; complt aprs traitement des constatations (cf. champs -source GENRE CONTROLE et CONSTATATION); dans le cadre de cette implmentation-test nous avons considr que si 133 (PV 108), 134 (PV 109) ou 410 (PV Douane et Accises) apparaissent comme codes partiels, un PV doit tre tabli; une validation complmentaire est souhaite. Vide (non disponible dans le systme source) Vide

MontantPeru MontantRgularis

Nombre Nombre

Temps TempsCl Nombre Numro d'identification-record attribu automatiquement; dans notre implmentation-test: le nombre de jours depuis le 1er janvier 1995; une procdure distincte (FillTableauTemps) a t prvue pour complter ce tableau. Date (p.ex., 31/5/2003) Mois sous forme de chiffre (p.ex., 5) Trimestre (p.ex., 2) Anne (p.ex., 2003)

Date Mois Trimestre Anne

Date Nombre Nombre Nombre

Vhicules VhiculeCl Nombre Numro d'identification-record vhicule attribu automatiquement: numro prcdent + 1 (procdure-implmentation: voir TclGnrateur-classe); 0 est rserv pour les renvois zro. Champ-source: VEHICULE; procdure partielle cleansing/parsing: ParseCatgorieStr - remplacement des synonymes code - transposition: 2 (camionnette.), 3 (camion.), 6 (tracteur.), 7 (smi-remorque.) -> 1 (choses); 4 (autobus) -> 2 (personnes); 1 (voiture.), 5 (mobilhome) ou autres: non retenus Champ-source: VEHICULE; procdure partielle cleansing/parsing: ParsePlaqueStr - transposition en majuscules - enlever les signes contrle (espaces, traits d'union, ) - contrle selon longueur min. et max. Champ-source: VEHICULE; procdure partielle cleansing/parsing: ParseNationStr; dcrite dans la section 6.1. du texte du rapport; fait usage de la banque de donnes "NationMapping.mdb".

CatgorieVhicule

Nombre

PlaqueImmatriculation

Texte

Nationalit

Nombre

Conducteurs Non complt (non disponible dans le systme source)

Entreprises Non complt

Pagina 2 van 3

agff082apC_fr.doc

Agora/01/082 datawarehouse "contrles transport routier", appendice C: documentation ETL test-implmentation

TABLEAU/ATTRIBUT
Constatation ContrleCl DfinitionCl

TYPE

ATTRIBUTION/O RIGINE

Nombre Nombre

Rfrence au numro d'identification du contrle attribu automatiquement au dpart du tableau Contrles -faits Constats. Champ-source: GENRE CONTROLE; la liste spare ";"-est d'abord subdivise (cf. procdure ParseListString); pour chaque subcode qui en rsulte, un record est ralis, la valeur-cl correspondante est recherche dans le tableau "Dfinitions", ensuite il y est fait rfrence; procdure-implmentation: UpdateTableauConstatations. Champs -source: GENRE CONTROLE / CONSTATATION; valeur 'Oui' en cas de prsence de la dfinition dans les deux listes de codes; dans le cas contraire 'Non'; le traitement de la deuxime liste est similaire ci-dessus. 0 (indfini): non disponible ce niveau de dtail Vide Vide

Infraction

Oui/Non

Suite NombreEmploys Montant

Nombre Nombre Nombre

Dfinitions Contenu ralis pralablement l'excution du processus ETL; dcrit dans la section 6.1. du texte du rapport.

Def_CatgoriesAgora Contenu ralis pralablement l'excution du processus ETL; dcrit dans la section 5 du texte du rapport.

Def_CatgoriesEuro Contenu ralis pralablement l'excution du processus ETL

ConducteurStatutCodes, ContrleGenreCodes, ServiceContrleCodes, DistrictCodes, SuiteCodes, PaysCodes, OrigineCodes, VhiculeCatgorieCodes Contenu ralis pralablement l'excution du processus ETL.

Pagina 3 van 3

agff082apC_fr.doc

Appendix D: ETL-datamodulecode proof-of-concept douane

unit ETLDataMod; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, ADODB, ProgressDlgs, DateUtils, Variants, StrUtils; type TControleDienst = (cdVervoerTeland, cdDouane, cdISW, cdSI, cdRSZ, cdFedPol, cdLokPol, cdEurControlRout); TControleAard = (caWegControle, caBedrijfsOnderzoek); TOorsprong = (osRoutineControle, osGerichteControle, osGecoordOperatie, osAanvraagExtInst , osKlacht, osEigenOnderzoek); TGevolg = (gGeen, gWaarschuwing, gRegularisatie, gOnmidInning, gProJustitia, gDoorverzending, gAnder); TBestuurderStatuut = (bsWerknemer, bsZelfstandige, bsInterim); TVoertuigTypeDouane = (vtPersonenWagen, vtLichteVrachtWagen, vtVrachtWagen, vtAutobus, vtMobilHome, vtTrekker, vtOplegger, vtAndere); TVoertuigCategorie = (vcZaken, vcPersonen, vcAndere); TVoertuigData = class public DouaneCategorie: TVoertuigTypeDouane; AgoraCategorie: TVoertuigCategorie; NummerPlaat: string; NationCodeSleutel: Integer; Oplegger: TVoertuigData; constructor Create; destructor Destroy; override; end; //TVoertuigData TSleutelGenerator = class private ADOTable: TADOTable; SleutelName: string; NewSleutelValue: Integer; public constructor Create(AnADOTable: TADOTable; ASleutelName: string); procedure Reset; function GetNewSleutelValue: Integer; end; const OnbepaaldCode = 0; OnbepaaldPlaatStr = ''; OnbepaaldLandCode = 999; BelgiumLandCode = 150; ControleDienstCodes: array[TControleDienst] of Integer = (1, 2, 3, 4, 5, 6, 7, 8); ControleAardCodes: array [TControleAard] of Integer = (1, 2); OorsprongCodes: array[TOorsprong] of Integer = (1, 2, 3, 4, 5, 6); GevolgCode: array[TGevolg] of Integer = (1, 2, 3, 4, 5, 6, 7); BestuurderStatuutCodes: array[TBestuurderStatuut] of Integer = (1, 2, 3); VoertuigCategorieCodes: array[TVoertuigCategorie] of Integer = (1, 2, 0); FromYear = 1995; ToYear = 2010; MaxNummerPlaatLength = 10; type TETLDataModule = class(TDataModule) DouaneConnection: TADOConnection; AgoraConnection: TADOConnection;

Appendix D pag. 2 van 13

DouaneTable: TADOTable; AgoraControles: TADOTable; AgoraVaststellingen: TADOTable; AgoraTijd: TADOTa ble; AgoraVoertuigen: TADOTable; NationMapConnection: TADOConnection; DouaneLandenMap: TADOTable; LandCodes: TADOTable; AgoraBepalingen: TADOTable; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); private { Private declarations } FromDate: TDateTime; WritingToLog: Boolean; LogFile: TextFile; CurrentDouaneBronSysteemRef: string; //used for logging function GetDouaneBronSysteemRef: string; function GetTijdSleutelValue(ADate: TDateTime): Integer; function GetMaxSleutelValue(ADOTable: TADOTable; SleutelName: string): Integer; function UpdateVoertuigenTabel(VoertuigData: TVoertuigData; var SleutelValue: Integer): Boolean; function ParseVoertuigField(VoertuigStr: string): TVoertuigData; procedure UpdateVaststellingenTabel(ControleSleutelValue: Integer; ControlSoortStr, VaststellingStr: string; var Overtreding: Boolean; var PVCount: Integer); procedure ExtractCurrentControleRecord; public { Public declarations } procedure FillTijdTabel; procedure DeleteADOTable(ADOTable: TADOTable); procedure TestETL; procedure ExecuteETL; function LocateAgoraTargetRecord: Boolean; function LocateDouaneSourceRecord: Boolean; end; var ETLDataModule: TETLDataModule; VoertuigSleutelGenerator, ControleSleutelGenerator: TSleutelGenerator; {==============================================================================} implementation {$R *.DFM} {---- TVoertuigData ----} constructor TVoertuigData.Create; begin inherited Create; Oplegger := nil ; end; destructor TVoertuigData.Destroy; begin if Oplegger <> nil then Oplegger.Destroy; inherited Destroy; end; {---- TETLDataModule ----}

Appendix D pag. 3 van 13

procedure TETLDataMod ule.DataModuleCreate(Sender: TObject); const ADOConnectStr = 'Provider=Microsoft.Jet.OLEDB.4.0;' + 'Data Source=%s;' + 'Persist Security Info=False'; var ExeFilePath: string ; begin FromDate := EncodeDate(FromYear, 1, 1); //base date for time key value calculation WritingToLog := False; CurrentDouaneBronSysteemRef := ''; VoertuigSleutelGenerator := TSleutelGenerator.Create(AgoraVoertuigen, 'VoertuigSleutel' ); ControleSleutelGenerator := TSleutelGenerator.Create(AgoraControles, 'ControleSleutel' ); ExeFilePath := ExtractFilePath(Application.ExeName); DouaneConnection.Close; AgoraConnection.Close; NationMapConnection.Close; DouaneConnection.ConnectionString := Format(ADOConnectStr, [ExeFilePath + 'TestDataDouane.mdb']); DouaneConnection.Open; DouaneTable.Open; AgoraConnection.ConnectionString := Format(ADOConnectStr, [ExeFilePath + 'AgoraDB.mdb' ]); AgoraConnection.Open; AgoraControles.Open; AgoraVaststellingen.Open; AgoraBepalingen.Open; AgoraTijd.Open; AgoraVoertuigen.Open; NationMapConnection.ConnectionString := Format(ADOConnectStr, [ExeFilePath + 'NationMapping.mdb']); NationMapConnection.Open; DouaneLandenMap.Open; LandCodes.Open; end; procedure TETLDataModule.DataModuleDestroy(Sender: TObject); begin DouaneTable.Close; DouaneConnection.Close; AgoraControles.Close; AgoraVaststellingen.Close; AgoraBepalingen.Close; AgoraTijd.Close; AgoraVoertuigen.Close; AgoraConnection.Close; DouaneLandenMap .Close; LandCodes.Close; NationMapConnection.Close; VoertuigSleutelGenerator.Free; ControleSleutelGenerator.Free; end; {---- Sleutelberekening ----} function TETLDataModule.GetDouaneBronSysteemRef: string; begin Result := Format('%d-%s-%s-%s', [ControleDienstCodes[cdDouane], DouaneTable.FieldByName('FORSCODE').AsString, //code motorbrigade FormatDateTime('yyyy"-"mm', DouaneTable.FieldByName('CONTROLEDATUM').AsDateTime),

Appendix D pag. 4 van 13

//year and month of CONTROLEDATUM (not INPUTDATUM!) DouaneTable.FieldByName('VOLGNUMMER').AsString]); //order within month end; function TETLDataModule.GetTijdSleutelValue(ADate: TDateTime): Integer; begin Result := DaysBetween(ADate, FromDate) + 1; end; function TETLDataModule.GetMaxSleutelValue(ADOTable: TADOTable; SleutelName: string): Integer; var Q: TADOQuery; begin Q := TADOQuery.Create(Self); try Q.SQL.Clear; Q.SQL.Add(Format( 'SELECT MAX(%s) AS MaxSleutel', [SleutelName])); Q.SQL.Add(Format( 'FROM %s', [ADOTable.TableName])); Q.Connection := AgoraConnection; Q.Open; if Q.RecordCount = 0 then Result := 0 else Result := Q.FieldByName('MaxSleutel').AsInteger; Q.Close; finally Q.Free; end; end; constructor TSleutelGenerator.Create(AnADOTable: TADOTable; ASleutelName: string); begin ADOTable := AnADOTable; SleutelName := ASleutelName; NewSleutelValue :=0 end; procedure TSleutelGenerator.Reset; begin NewSleutelValue := ETLDataModule.GetMaxSleutelValue(ADOTable, SleutelName); end; function TSl eutelGenerator.GetNewSleutelValue: Integer; begin Inc(NewSleutelValue); Result := NewSleutelValue; end; procedure TETLDataModule.FillTijdTabel; var FillDate, ToDate: TDateTime; SleutelValue: Integer; begin AgoraTijd.DisableControls; Screen.Cur sor := crHourGlass; try ToDate := EncodeDate(ToYear, 12, 31); FillDate := FromDate; while FillDate <= ToDate do begin SleutelValue := GetTijdSleutelValue(FillDate); with AgoraTijd do

Appendix D pag. 5 van 13

if not Locate('TijdSleutel', SleutelValue, []) then begin Append; FieldByName('TijdSleutel').AsInteger := SleutelValue; FieldByName('Datum').AsDateTime := FillDate; FieldByName('Maand').AsInteger := MonthOf(FillDate); case MonthOf(FillDate) of 1..3: FieldByName('Kwartaal').AsInteger := 1; 4..6: FieldByName('Kwartaal').AsInteger := 2; 7..9: FieldByName('Kwartaal').AsInteger := 3; 10..12: FieldByName('Kwartaal').AsInteger := 4; end; //case FieldByName('Jaar' ).AsInteger := YearOf(FillDate); Post; end; //if FillDate := IncDay(FillDate); end; finally AgoraTijd.EnableControls; Screen.Cursor := crDefault; end; end; procedure TETLDataModule.DeleteADOTable(ADOTable: TADOTable); var Q: TADOQuery; //using query here because DeleteRecords-method doesn't work on ADOTable begin ADOTable.Close; Q := TADOQuery.Create(Self); try Q.SQL.Clear; Q.SQL.Add(Format( 'DELETE FROM %s', [ADOTable.TableName])); if ADOTable = AgoraVoertuigen then Q.SQL.Add('WHERE VoertuigSleutel > 0'); //prevent deletion of zero-record Q.Connection := ADOTable.Connection; Q.ExecSQL; finally ADOTable.Open; Q.Free; end; end; function TETLDataModule.UpdateVoertuigenTabel(VoertuigData: TVoertuigData; var SleutelValue: Integer): Boolean; begin with VoertuigData, AgoraVoertuigen do if not Locate('Nummerplaat;Nationaliteit', VarArrayOf([NummerPlaat, NationCodeSleutel]), [loCaseInsensitive]) then begin Append; SleutelValue := VoertuigSleutelGenerator.GetNewSleutelValue; FieldByName('VoertuigSleutel').AsInteger := SleutelValue; FieldByName('VoertuigCategorie').AsInteger := VoertuigCategorieCodes[ AgoraCategorie]; FieldByName('Nummerplaat').AsString := NummerPlaat; FieldByName('Nationaliteit').AsInteger := NationCodeSleutel; Post; Result := True; end else begin SleutelValue := FieldByName('VoertuigSleutel').AsInteger;

Appendix D pag. 6 van 13

Result := False; end; end; function TETLDataModule.ParseVoertuigField(VoertuigStr: string): TVoertuigData; var PosSemiColon: Integer; procedure ParseVoertuig(AStr: string; VoertuigData: TVoertuigData); var Pos1stSlash, Pos2ndSlash: Integer; procedure ParseCategorieStr(CatStr: string); begin {Cleanse:} if (CatStr = '1') or SameText(CatStr, 'Voiture') or SameText(CatStr, 'Personenwagen') then VoertuigData.DouaneCategorie := vtPersonenWagen else if (CatStr = '2') or SameText(CatStr, 'Camionette') or SameText(CatStr, 'Lichte vrachtwagen') then VoertuigData.DouaneCategorie := vtLichteVrachtWagen else if (CatStr = '3') or SameText(CatStr, 'Camion') or SameText(CatStr, 'Vrachtwagen') then VoertuigData.DouaneCategorie := vtVrachtWagen else if (CatStr = '4') or SameText(CatStr, 'Autobus') then VoertuigData.DouaneCategorie := vtAutobus else if (CatStr = '5') or SameText(CatStr, 'Mobilhome') then VoertuigData.DouaneCategorie := vtMobilHome else if (CatStr = '6') or SameText(CatStr, 'Tracteur') or SameText(CatStr, 'Trekker') then VoertuigData.DouaneCategorie := vtTrekker else if (CatStr = '7') or SameText(CatStr, 'Remorque') or SameText(CatStr, 'Oplegger') then VoertuigData.DouaneCategorie := vtOplegger else if (CatStr = '8') then VoertuigData.DouaneCategorie := vtAndere else begin VoertuigData.DouaneCategorie := vtAndere; if WritingToLog then Writeln(LogFile, Format('Warning (%s): voertuigtype "%s" not recognized', [CurrentDouaneBronSysteemRef, CatStr])); end; {Convert to Agora code:} with VoertuigData do case DouaneCategorie of vtLichteVrachtWagen, vtVrachtWagen, vtTrekker, vtOplegger: AgoraCategorie := vcZaken; vtAutobus: AgoraCategorie := vcPersonen; vtPersonenWagen, vtMobilHome, vtAndere: AgoraCategorie := vcAndere; end; //case end; //ParseCategorieStr procedure ParsePlaatStr(PlaatStr: string); begin {Cleanse:}

Appendix D pag. 7 van 13

PlaatStr := UpperCase(PlaatStr); //convert to capitals PlaatStr := StringReplace(PlaatStr, ' ', '', [rfReplaceAll]); //remove spaces PlaatStr := StringReplace(PlaatStr, '-', '', [rfReplaceAll]); //remove dashes PlaatStr := StringReplace(PlaatStr, '_', '', [rfReplaceAll]); //remove underscores if Pos('+', PlaatStr) > 0 then begin if WritingToLog then Writeln(LogFile, Format( 'Warning (%s): data following "+" in nummerplaat "%s" removed', [CurrentDouaneBronSysteemRef, PlaatStr])); PlaatStr := LeftStr(PlaatStr, Pos('+', PlaatStr) - 1); end; if Length(Plaat Str) > MaxNummerPlaatLength then begin if WritingToLog then Writeln(LogFile, Format('Warning (%s): nummerplaat "%s" is truncated to %d chars', [CurrentDouaneBronSysteemRef, PlaatStr, MaxNummerPlaatLength])); Plaa tStr := LeftStr(PlaatStr, MaxNummerPlaatLength); end; if PlaatStr = '' then begin PlaatStr := OnbepaaldPlaatStr; if WritingToLog then Writeln(LogFile, Format('Warning (%s): nummerplaat data missing', [CurrentDouaneBronSysteemRef])); end; VoertuigData.NummerPlaat := PlaatStr; end; //ParsePlaatStr procedure ParseNationStr(NationStr: string); begin VoertuigData.NationCodeSleutel := OnbepaaldLandCode; if VoertuigData.NummerPlaat <> OnbepaaldPlaatStr then begin NationStr := Trim(NationStr); //remove leading and trailing spaces if any {first try looking for it in the provided mapping table:} if DouaneLandenMap.Locate('LandBeschrijving', NationS tr, [loCaseInsensitive]) then VoertuigData.NationCodeSleutel := DouaneLandenMap.FieldByName('LandCode'). AsInteger else {if it has two chars, look for it in the ISO-code list} if Length(NationStr) = 2 then begin if LandCodes.Locate('ISO', NationStr, [loCaseInsensitive]) then VoertuigData.NationCodeSleutel := LandCodes.FieldByName('LandCode').AsInteger end else {look for it in full description} if LandCodes.Locate('Naam', NationStr, [loCaseInsensitive]) then begin VoertuigData.NationCodeSleutel := LandCodes.FieldByName('LandCode').AsInteger end else {if the string is empty, try two more things...} if NationStr = '' then begin {try looking up NATIONALITEIT-field next to VOERTUIG -field instead} if DouaneTable.FieldByName('NATIONALITEIT').AsString <> '' then if DouaneLandenMap.Locate('LandBeschrijving', DouaneTable.FieldByName( 'NATIONALITEIT').AsString, [loCaseInsensitive]) then begin VoertuigData.NationCodeSleutel := DouaneLandenMap.FieldByName('LandCode'). AsInteger; if WritingToLog then Writeln(LogFile, Format('Warning (%s): replaced missing country code ' + 'with %s for nummerplaat "%s" based on adjacent NATIONALITEIT field',

Appendix D pag. 8 van 13

[CurrentDouaneBronSysteemRef, DouaneLandenMap.FieldByName( 'LandBeschrijving').AsString, VoertuigData.Nummerplaat])); end else //give up else begin {if no nationality data are present, assume Belgian nationality if nummerplaat has the right format (3 characters followed by 3 digits} with VoertuigData do if (Length(Nummerplaat) = 6) then if (Nummerplaat[1] in ['A'..'Z']) and (Nummerplaat[2] in ['A'..'Z']) and (Nummerplaat[3] in ['A'..'Z']) and (Nummerplaat[4] in ['0'..'9']) and (Nummerplaat[5] in ['0'..'9']) and (Nummerplaat[6] in ['0'..'9']) then begin NationCodeSleutel := BelgiumLandCode; if WritingToLog then Writeln(LogFile, Format('Warning (%s): replaced missing country code ' + 'with Belgium for nummerplaat "%s"', [CurrentDouaneBronSysteemRef, Nummerplaat])); end; end; end; if (VoertuigData.NationCodeSleutel = OnbepaaldLandCode) and WritingToLog then Writeln(LogFile, Format('Warning (%s): "%s" not identified as valid country code ' + 'for nummerplaat "%s"', [CurrentDouaneBronSysteemRef, NationStr, VoertuigData. Nummerplaat])); end; end; //ParseNationStr begin //ParseVoertuig Pos1stSlash := Pos('/' , AStr); Pos2ndSlash := PosEx('/', AStr, Pos1stSlash + 1); if Pos2ndSlash = 0 then Pos2ndSlash := Length(AStr) + 1; //if second slash is missing, assume remainder is nummerplaat, not nationality ParseCategorieStr(LeftStr(AStr, Pos1stSlash - 1)); if VoertuigData.AgoraCategorie <> vcAndere then //we're only interested in transport of goods or persons (cf. infra) begin ParsePlaatStr(Copy(AStr, Pos1stSlash + 1, Pos2ndSlash - Pos1stSlash - 1)); ParseNationStr(RightStr(AStr, Length(AStr) - Pos2ndSlash)); end else //save time by not parsing other types of vehicles begin VoertuigData.NummerPlaat := OnbepaaldPlaatStr; VoertuigData.NationCodeSleutel := OnbepaaldLandCode; end; end; //ParseVoertuig begin //ParseVoertuigField Result := TVoertuigData.Create; Result.Oplegger := nil; if LeftStr(VoertuigStr, 1) = ';' then Delete(VoertuigStr, 1, 1); //remove leading ';' PosSemiColon := Pos(';', VoertuigStr); if PosSemiColon = 0 then //geen geleed voertuig ParseVoertuig(VoertuigStr, Result) else begin //geleed voertuig ParseVoertuig(LeftStr(VoertuigStr, PosSemiColon - 1), Result);

Appendix D pag. 9 van 13

Result.Oplegger := TVoertuigData.Create; ParseVoertuig(RightStr(VoertuigStr, Length(VoertuigStr) - PosSemiColon), Result.Oplegger); if Result.Oplegger.Nummerplaat = '' then begin //if parsing of second vehicle fails, remove reference Result.Oplegger.Free; Result.Oplegger := nil; end; end; end; //ParseVoertuigField function ParseListString(ListStr: string; Separator: Char): TStringList; {parses ListStr into a stringlist (e.g., ParseListString('a; b;c', ';') returns a stringlist containing: 'a', 'b', 'c'; returns a one-element list containing the empty string, if ListStr is empty; do not forget to free the newly created result -stringlist after its use} var Pos1stSep, Pos2ndSep: Integer; ItemStr: string ; begin Result := TStringList.Create; Pos1stSep := 0; repeat Pos2ndSep := PosEx(Separator, ListStr, Pos1stSep + 1); if Pos2ndSep = 0 then Pos2ndSep := Length(ListStr) + 1; ItemStr := Copy(ListStr, Pos1stSep + 1, Pos2ndSep - Pos1stSep - 1); ItemStr := Trim(ItemStr); Result.Add(ItemStr); Pos1stSep := Pos2ndSep; until Pos1stSep = Length(ListStr) + 1; end; procedure TETLDataModule.UpdateVaststellingenTabel(ControleSleutelValue: Integer; ControlSoortStr, VaststellingStr: string; var Overtreding: Boolean; var PVCount: Integer); var ControleSoortLijst, VaststellingenLijst: TStringList; ControleSoort: string; i, DouaneBepCode: Integer; begin Overtreding := False; PVCount := 0; ControleSoortLijst := ParseListString(ControlSoortStr, ';'); VaststellingenLijst := ParseListString(VaststellingStr, ';' ); try for i := 0 to ControleSoortLijst.Count - 1 do begin ControleSoort := ControleSoortLijst.Strings[i]; if ControleSoort <> '' then if TryStrToInt(ControleSoort, DouaneBepCode) then if AgoraBepalingen.Locate('Code;Dienst', VarArrayOf([DouaneBepCode, ControleDienstCodes[cdDouane]]), [loCaseInsensitive]) then with AgoraVaststellingen do begin Append; FieldByName('ControleSleutel').AsInteger := ControleSleutelValue; FieldByName('BepalingSleutel').AsInteger := AgoraBepalingen.FieldByName('Bep_Sleutel').AsInteger; FieldByName('Overtreding').AsBoolean := (VaststellingenLijst.IndexOf( ControleSoort) <> -1); //overtreding yes/no if VaststellingenLijst.IndexOf(ControleSoort) <> -1 then Overtreding := True; if (DouaneBepCode = 133) {PV 108} or (DouaneBepCode = 134) {PV 109} or

Appendix D pag. 10 van 13

(DouaneBepCode = 410) {PV douane & accijnzen} then Inc(PVCount); //no data available on "Gevolg", "AantalWerknemers" or "Bedrag" at this level Post; end //with else //Locate failed begin if WritingToLog then Writeln(LogFile, Format('Warning (%s): non-identifiable ' + 'code %d found in CONTROLESOORT/VASTSTELLING' , [CurrentDouaneBronSysteemRef, DouaneBepCode])); end else //TryStrToInt failed begin if WritingToLog then Writeln(LogFile, Format('Warning (%s): non-numeric entry "%s" found in ' + 'CONTROLESOORT/VASTSTELLING', [CurrentDouaneBronSysteemRef, ControleSoort])); end else //do nothing end; finally ControleSoortLijst.Free; VaststellingenLijst.Free; end; end; procedure TETLDataModule.ExtractCurrentControleRecord; var VoertuigData: TVoertuigData; CurrentControleSleutelValue: Integer; VoertuigSleutelValue, VoertuigOpleggerSleutelValue: Integer; Overtreding: Boolean; PVCount: Integer; begin VoertuigData := ParseVoertuigField(DouaneTable.FieldByName( 'VOERTUIG').AsString); try if VoertuigData.AgoraCategorie <> vcAndere then //we're only interested in transport of goods or persons with AgoraContr oles do begin CurrentControleSleutelValue := ControleSleutelGenerator.GetNewSleutelValue; CurrentDouaneBronSysteemRef := GetDouaneBronSysteemRef; Append; FieldByName('ControleSleutel').AsInteger := CurrentControleSleutelValue; FieldByName('ControleDienst').AsInteger := ControleDienstCodes[cdDouane]; FieldByName('District').AsInteger := OnbepaaldCode; FieldByName('Aard' ).AsInteger := ControleAardCodes[caWegControle]; case DouaneTable.FieldByName('CONTROLEAARD').AsInteger of 1: FieldByName('Oorsprong').AsInteger := OorsprongCodes[osRoutineControle]; 2: FieldByName('Oorsprong').AsInteger := OorsprongCodes[osGerichteControle]; 3: begin FieldByName('Oorsprong').AsInteger := OorsprongCodes[osGecoordOperatie]; FieldByName('OperatieCodeNaam').AsString := DouaneTable.FieldByName( 'CODENAAM').AsString; end; else FieldByName('Oorsprong').AsInteger := OnbepaaldCode; end; //case FieldByName('BronSysteemRef').AsString := CurrentDouaneBronSysteemRef; FieldByName('InvoerDatumSleutel').AsInteger := GetTijdSleutelValue(Today); FieldByName('OpstartDatumSleutel').AsInteger := GetTijdSleutelValue( DouaneTable.FieldByName('CONTROLEDATUM').AsDateTime); FieldByName('AfsluitDatumSleutel').AsInteger := GetTijdSleutelValue(

Appendix D pag. 11 van 13

DouaneTable.FieldByName('CONTROLEDATUM').AsDateTime); //wegcontrole: opstartdatum = afsluitdatum FieldByName('PlaatsOmschrijving').AsString := DouaneTable.FieldByName( 'CONTROLEPUNT').AsString; UpdateVoertuigenTabel(VoertuigData, VoertuigSleutelValue); if VoertuigData.Oplegger <> nil then UpdateVoertuigenTabel(VoertuigData.Oplegger, VoertuigOpleggerSleutelValue) else VoertuigOpleggerSleutelValue := OnbepaaldCode; FieldByName('VoertuigSleutel').AsInteger := VoertuigSleutelValue; FieldByName('VoertuigOpleggerSleutel').AsInteger := VoertuigOpleggerSleutelValue; UpdateVaststellingenTabel(CurrentControleSleutelValue, DouaneTable.FieldByName('CONTROLESOORT').AsString, DouaneTable.FieldByName('VASTSTELLING').AsString, Overtreding, PVCount); FieldByName('BestuurderSleutel').AsInteger := OnbepaaldCode; //data not available in douane-database FieldByName('WerkgeverSleutel').AsInteger := OnbepaaldCode; //data almost never entered in douane-database FieldByName('Overtreding').AsBoolean := Overtreding; FieldByName('AantalPVs').AsInteger := PVCount; FieldByName('AantalGecontrolVoertuigen').AsInteger := 1; //wegcontrole {GeindBedrag en RegularisatieBedrag not available} Post; end; //with finally VoertuigData.Free; end; end; procedure TETLDataModule.TestETL; begin ControleSleutelGenerator.Reset; VoertuigSleutelGenerator.Reset; ExtractCurrentControleRecord; CurrentDouaneBronSysteemRef := ''; end; const MAXRECORDS = MaxInt; //testing: set to lower value to extract only first MAXRECORDS records var CURRENTRECORDS: Integer; procedure TETLDataModule.ExecuteETL; var ProgressDlg: TProgressDialog; begin DouaneTable.Dis ableControls; AgoraControles.DisableControls; AgoraVoertuigen.DisableControls; ProgressDlg := TProgressDialog.Create(nil); AssignFile(LogFile, ExtractFilePath(Application.ExeName) + 'Log.txt' ); try Rewrite(LogFile); WritingToLog := True; Writeln(LogFile, Format('Execution started at %s.', [DateTimeToStr(Now)])); try DouaneTable.First; CURRENTRECORDS := 1; //testing ControleSleutelGenerator.Reset;

Appendix D pag. 12 van 13

VoertuigSleutelGenerator.Reset; with ProgressDlg do begin Title := 'Processing Test Data'; Options := [prShowProgress, prCancel]; Open; end; //with while not DouaneTable.EOF do begin with ProgressDlg do begin Text := Format('%d of %d records completed', [DouaneTable.RecNo - 1, DouaneTable.RecordCount]); PercentageCompleted := Round(100*(DouaneTable.RecNo - 1)/ (DouaneTable.RecordCount)); end; //with ExtractCurrentControleRecord; Application.ProcessMessages; if ProgressDlg.Cancelled then Abort; if CURRENTRECORDS >= MAXRECORDS then Abort; //testing DouaneTable.Next; Inc(CURRENTRECORDS); //testing end; //while if WritingToLog then Writeln(LogFile, Format('Execution completed succesfully at %s.', [DateTimeToStr(Now)])); except on E:Exception do begin if WritingToLog then if E is EAbort then Writeln(LogFile, Format('Execution aborted at %s.', [DateTimeToStr(Now)])) else Writeln(LogFile, Format('Execution failed at record %s. %s.', [CurrentDouaneBronSysteemRef, E.Message])); raise; end; end; finally DouaneTable.EnableControls; AgoraControles.EnableControls; AgoraVoertuigen.EnableControls; ProgressDlg.Free; CloseFile(LogFile); WritingToLog := False; CurrentDouaneBronSysteemRef := ''; end; end; function TETLDataModule.LocateAgoraTargetRecord: Boolean; var DouaneRef: string; begin DouaneRef := GetDouaneBronSysteemRef; Result := AgoraControles.Locate('BronSysteemRef', DouaneRef, [loCaseInsensitive]); end;

Appendix D pag. 13 van 13