Bonjour tout l'monde
J'ai un fichier DTA à analyser (un flux à balancer sur une base de données en fait).
J'utilise un fichier XSL pour placer les données sur la BDD en exécutant un batch. Je n'avais pas de problème pour le moment avec mes autres fichiers, car c'était de simples "copies' de données à mettre sur la BDD.
Mais pour ce flux, je dois en fait checker la valeur d'une des colonnes du DTA, si elle est > à 10 000, je vais chercher le libellé associé à cette valeur dans une table de la BDD pour pouvoir insérer dans la table cible (qui possède que 2 champs) la valeur et le libellé.
Le libellé est récupéré via du code java par la méthode getGroupeByTier(valeurColonne2) de la classe GroupeRetriever
Voici un exemple du fichier DTA :
Voici le fichier xsl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "00030 "|"10092 "|1 |"2000-01-01"|"2039-12-31"|" "|" "|" " "00033 "|"10698 "|1 |"2000-01-01"|"2039-12-31"|" "|" "|" " "00035 "|"10018 "|2 |"2000-01-01"|"2039-12-31"|" "|" "|" "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <!-- *************************** Pour chaques lignes************************************************************************* --> <xsl:template match="ligne"> <xsl:element name="ligne"> <!-- ********************* table GROUPE *************************************--> <xsl:element name="table"> <xsl:attribute name="nom">GROUPE</xsl:attribute> <xsl:attribute name="retriever">com.cerpbn.extranet.metier.reglesGestions.GroupeRetriever</xsl:attribute> <xsl:element name="colonne"> <xsl:attribute name="nom">GRO_ID</xsl:attribute> <xsl:attribute name="pk">y</xsl:attribute> <xsl:attribute name="type">INTEGER</xsl:attribute> <xsl:attribute name="size">11</xsl:attribute> </xsl:element> <xsl:element name="colonne"> <xsl:attribute name="nom">GRO_LIBELLE</xsl:attribute> <xsl:attribute name="type">VARCHAR</xsl:attribute> <xsl:attribute name="size">255</xsl:attribute> <xsl:attribute name="join">GRO_ID</xsl:attribute> <xsl:if test="@name = 'GROID'" > 10 000> <xsl:attribute name="method">getGroupeByTier(GRO_ID)</xsl:attribute> <xsl:attribute name="class">com.cerpbn.extranet.metier.reglesGestions.GroupeRetriever</xsl:attribute> </xsl:if> // ligne évidemment fausse, mais c'est l'idée que je veux développer </xsl:element> </xsl:element> </xsl:element> </xsl:template>
Partager