Talend - Logo C2M

Flux de création de la page d'Accueil

Afin de créer une page d'Accueil qui donne accès à la page de chaque Espace (devenu Catégorie), je me suis lancé dans la partie finalement la plus compliquée de cette migration. Au moins au niveau du Job Talend. Si vous n'avez pas beaucoup d'Espaces, il est en fait bien plus rapide de le faire à la main ! Sinon, ou bien si vous voulez explorer Talend, allons-y ! Talend - Flux 2 - Espaces Fig. 5 : Flux : Page d'Accueil

On repart donc d'un composant tMysqlInput, permettant de récupérer la liste des Espaces : "select SPACES.SPACENAME,SPACES.SPACEKEY,CONTENT.TITLE from SPACES,CONTENT where SPACES.HOMEPAGE=CONTENT.CONTENTID"

Comme dans le flux précédent, on fait correspondre le résultat de la requête au format d'import de MediaWiki, via un tMap. La liste des Espaces est ensuite triée par ordre alphabétique, via un tSortRow. Talend - Flux 1 - Pages - Map Fig. 6 : Map entre la requête issue de Confluence et la structure de MediaWiki : Espaces

Un petit composant tJavaRow (qui permet de traiter chaque ligne par du code Java) permet de concaténer dans un champ la liste des Espaces : output_row.spacename = input_row.spacename; output_row.revisionid = input_row.revisionid; output_row.timestamp = input_row.timestamp; output_row.contrib_username = input_row.contrib_username; output_row.contrib_id = input_row.contrib_id; output_row.comment = input_row.comment; output_row.space = input_row.space; output_row.id = input_row.id; output_row.title = "Accueil"; if (output_row.body==null) output_row.body=""; input_row.spacename+"]]\n"; output_row.body+= "* [:Catégorie:"+input_row.comment+"]\n"; globalMap.put("lastSpaceId", output_row.revisionid);

La variable globale 'lastSpaceId' (gérée via un tSetGlobalVar) me permet de garder l'identifiant de la dernière ligne, et ainsi identifier celle qui sera gardée.

Enfin, on trie (tSortRow) et on filtre (tFilterRow) avec comme condition : revisionid==(Integer)globalMap.get("lastSpaceId")

Ce flux, résumé à un seul enregistrement, puisque ne générant qu'une seule page d'Accueil, est ensuite enregistré dans un fichier XML au format d'import de MediaWiki grâce au composant tAdvancedFileOutputXML.

VOIR AUSSI