Code javascript dans pentaho data integration
paulaz
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
ngounou25 Messages postés 96 Date d'inscription Statut Membre Dernière intervention -
ngounou25 Messages postés 96 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fais une transformation dans laquelle je dois insérer un bout de code java mais je peine ,quelqu'un peut m'aider?
j'explique :
je dois affichicher tout les n°cpt du client même s'il en a jusquà 10.
mais lorsque j'extrais le fichier il se présente comme ceci
nom prenom idclient n°cpt
xxxx ccccc 0101 2222
xxxx ccccc 0101 3333
xxxx ccccc 0101 4444
rrrrrr hhhhhh 6325 1111
rrrrrr hhhhhh 6325 5555
jjjjjjj kkkk 3222 7777
jjjjjjj kkkk 3222 99999
or voila la structure du fichier que je veux en sortir
nom prenom idclient n°cpt
xxxx ccccc 0101 2222 3333 4444
rrrrrr hhhhhh 6325 1111 5555
jjjjjjj kkkk 3222 86522 35258 54433
merci!!
j'ai fais une transformation dans laquelle je dois insérer un bout de code java mais je peine ,quelqu'un peut m'aider?
j'explique :
je dois affichicher tout les n°cpt du client même s'il en a jusquà 10.
mais lorsque j'extrais le fichier il se présente comme ceci
nom prenom idclient n°cpt
xxxx ccccc 0101 2222
xxxx ccccc 0101 3333
xxxx ccccc 0101 4444
rrrrrr hhhhhh 6325 1111
rrrrrr hhhhhh 6325 5555
jjjjjjj kkkk 3222 7777
jjjjjjj kkkk 3222 99999
or voila la structure du fichier que je veux en sortir
nom prenom idclient n°cpt
xxxx ccccc 0101 2222 3333 4444
rrrrrr hhhhhh 6325 1111 5555
jjjjjjj kkkk 3222 86522 35258 54433
merci!!
A voir également:
- Code javascript dans pentaho data integration
- Code ascii - Guide
- App data - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
1 réponse
Salut,
Je te suggère de créer une classe "Client", avec comme attributs 3 chaînes de caractères représentant respectivement : le nom, le prénom et l'identifiant du client, après quoi, tu créeras un attribut supplémentaire de taille dynamique (un ArrayList<String> par exemple) dans lequel tu enregistreras tous les comptes du client donné.
Dans ton programme principale, tu créera une nouvelle structure dynamique pour stocker les clients du fichier source (ArrayList<Client>).
L'astuce ici sera de lire le fichier source en filtrant directement les doublons. Ainsi, à l'écriture, y aura rien de spécial à faire (à par réaliser l'écriture proprement dite). A chaque fois que tu liras donc une nouvelle ligne de ce fichier source, tu parcourras ta liste de clients et :
- si tu trouve un client associé à cette ligne, alors tu ajoute simplement le compte à la liste de ses comptes ;
- sinon, c'est un nouveau client : tu l'ajoute à ta liste de clients.
Apercu tu code principale (pour la lecture sélective) est donc le suivant :
Ta liste sera donc sans doublon, et ton nouveau problème sera de la rendre persistante dans ton fichier destination ... Problème que j'estime beaucoup plus abordable :).
RQ : On peut aisément faire mieux (sur le plan complexité). Mais, cette solution, je l'estime assez aisément assimilable ;-) .
Je te suggère de créer une classe "Client", avec comme attributs 3 chaînes de caractères représentant respectivement : le nom, le prénom et l'identifiant du client, après quoi, tu créeras un attribut supplémentaire de taille dynamique (un ArrayList<String> par exemple) dans lequel tu enregistreras tous les comptes du client donné.
Dans ton programme principale, tu créera une nouvelle structure dynamique pour stocker les clients du fichier source (ArrayList<Client>).
L'astuce ici sera de lire le fichier source en filtrant directement les doublons. Ainsi, à l'écriture, y aura rien de spécial à faire (à par réaliser l'écriture proprement dite). A chaque fois que tu liras donc une nouvelle ligne de ce fichier source, tu parcourras ta liste de clients et :
- si tu trouve un client associé à cette ligne, alors tu ajoute simplement le compte à la liste de ses comptes ;
- sinon, c'est un nouveau client : tu l'ajoute à ta liste de clients.
Apercu tu code principale (pour la lecture sélective) est donc le suivant :
while(/* fin du fihchier non atteind */) { 1. String ligne = /* Lire la ligne courante */ 2. La transformer en tableau de caractères (String[] tabClient = ligne.split(" ", ' ')) 3. Chercher le client en supposant qu'il n'existe pas (Boolean existe = false) for(Client client : listeClients) { if(client.getIdClient.equals(tabClient[2])) { // le client est déjà enregistré dans ta liste existe = true // tu ajoutes simplement le compte parmi ses comptes client.getComptes().add(tabClient[3]) } } if(! existe) { // le client n'est pas encore enregistré dans ta liste // c'est un nouveau client : tu l'ajoute listeClients.add(new Client(tab[0], tab[1], tab[2], tab[3])) } } // end while
Ta liste sera donc sans doublon, et ton nouveau problème sera de la rendre persistante dans ton fichier destination ... Problème que j'estime beaucoup plus abordable :).
RQ : On peut aisément faire mieux (sur le plan complexité). Mais, cette solution, je l'estime assez aisément assimilable ;-) .