Exportation Conception & implémentation 05/07/2002 - Version 1.0 Importation contrôle Réf. : Page : 2 / 8 Circuit d’approbation Nom Rédigé par : Vérifié par : Approuvé par : Date et visa : Fonction Serré Jérôme Diffusion Externe Diffusion Equipe projet Historique des évolutions Version Date Commentaires 1.0 05/07/2002 Version initiale Changements par rapport à la dernière version Chap / § Changements 582689427 Importation contrôle Réf. : Page : 3 / 8 Table des Matières 1 Description ...................................................................................................................... 4 1.1 Chaîne de traitement ............................................................ 4 2.0 Exécution ....................................................................... 5 3.0 Conception ...................................................................... 5 4.0 Implémentation .................................................................. 7 5.0 Exemple : Ajout d’un nouveau flux « La modulation rotationnelle » ............... 7 582689427 Importation contrôle Réf. : Page : 4 / 8 1 Description Toutes les données venant des ddaf sont insérées dans la base de données interface. Pour les exploiter dans le logiciel PACACS un traitement indépendant est lancé par le biais d’un script UNIX. Ce traitement extrait les données et les écris sous forme de fichier XML. 1.1 Chaîne de traitement Script Unix Client Java (Java) EJB (Java) BD Interface ExpBoucle (Java) Fichier XML 582689427 Importation contrôle Réf. : Page : 5 / 8 2.0 Exécution La classe ExpBoucle assure l’exportation des données de la base interface vers un fichier XML Utilisé par l’importation La méthode suivante assure ce traitement : private static void exportBoucle(String campagne, String codeOrigImportation) { campagne : L’année de la campagne codeOrigineImportation : Le trigramme correspondant à la zone fonctionnelle (AIM, AMC …) 3.0 Conception La classe ExportBoucle récupère, en fonction du code origine importation et de l’année, tous les lots distincts de la table concernée. On passe chaque lot à la classe ExportGenerique qui extrait les données et les écrits dans un fichier XML. 582689427 Importation contrôle Réf. : Page : 6 / 8 Certaines propriétés comme le driver ou le chemin de sortie des fichiers XML sont ecrits dans le fichier ExpGeneric.properties. jdbc.driver=com.sybase.jdbc2.jdbc.SybDriver interface.url=jdbc:sybase:Tds:muesli:4100 interface.user=prepabcp2 interface.pwd=prepabcp2 repertoire.export=/interface/import_inttech En outre, pour améliorer la réutilisabilité, le nom des tables sont rangés par code origine importation et consignés dans le fichier ExpGeneric.xml 582689427 Importation contrôle Réf. : Page : 7 / 8 4.0 Implémentation while (it.hasNext()) { ExpGeneric obj = new ExpGeneric((TLotPK)it.next()); int ret = obj.exportElement(codeOrigImportation); if (ret != 0) { System.out.println("Problème lors de la constitution du fichier XML"); System.exit(2); } } 5.0 Exemple : Ajout d’un nouveau flux « La modulation rotationnelle » 1. Ajout du nouveau flux dans le fichier ExpGeneric.xml ... <AMR> <MODULATION_ROTATIONNELLE table="T_MODROTA"/> </AMR> ... 2. Ajout de la requête dans ExpBoucle private static final String[] reqs = { "select distinct DDAF, LOT from T_MODROTA where CAMPAGNE = ?", "select distinct DDAF, LOT from T_DOSSIER where CAMPAGNE = ?", 3. Ajout du nouveau code origine dans ExpBoucle private static final String[] codes = {« AMR », "AIM","AMC","ALG","AMP","AMD",}; 4. Ajout de la nouvelle table dans NoeudExport public boolean estMaitre() { return ((table.equals("T_MODROTA") || (table.equals("T_DOSSIER") || table.equals("T_LGE") || 582689427 Importation contrôle Réf. : Page : 8 / 8 table.equals("T_MAC") || table.equals("T_MODUL") || table.equals("T_MODUL51"))); } Attention l’ordre dans lequel est inséré la requête et le code origine importation est important. Données de la nouvelle table : Résultats dans le fichier XML : <?xml version="1.0"?> <IMPORT> <CAMPAGNE>2002</CAMPAGNE> <DDAF>001</DDAF> <LOT>1</LOT> <MODULATION_ROTATIONNELLES> <MODULATION_ROTATIONNELLE> <ESSAI1>hello</ESSAI1> <ESSAI2>bonjour</ESSAI2> <NUMPACAGE>001123456</NUMPACAGE> </MODULATION_ROTATIONNELLE> <MODULATION_ROTATIONNELLE> <ESSAI1>hello</ESSAI1> <ESSAI2>bonjour</ESSAI2> <NUMPACAGE>001123456</NUMPACAGE> </MODULATION_ROTATIONNELLE> </MODULATION_ROTATIONNELLES> </IMPORT> 582689427