TALEND_PRO

1. Cas : déplacement de fichiers pdf puis archivage puis suppression des fichiers d'origine

depl1 depl2 depl3 depl4 depl5 depl6

2. Cas : Cas d'utilisation : job fils , job père

perefils1 perefils2 perefils3

On peut copier le shéma de sortie du job fils perefils4 perefils5

3. Cas d'utilisation : Gestion de l’erreur OutOfMemory

OutOfMemory1 Il faut cocher sur la case "Utiliser les arguments JVM spécifiques OutOfMemory2 Puis changer la valeur "-Xmx 1024M" OutOfMemory3 OutOfMemory4 OutOfMemory5 OutOfMemory6 OutOfMemory7

4. Cas d'utilisation : Filtre des colonnes

tfiltercolumns1

5. Cas d'utilisation : Filtre des lignes

tfilterrow1

6. Cas d'utilisation: insertion de plusieurs fichiers dans une base de donnée

integration_plusieurs_fichiers

7. Cas d'utilisation: update d'une table

Il y a deux manières de faire un update :

  • soit à partir d'un fichier client

update1 Vous devez obligatoire choisir une clé pour faire la mise à jour et choisir les valeurs à mettre à jour. update2

  • soit du composant TDBRow

update4 update3

  • soit avect tmap en forçant les valeurs :

update5 update6

Dans cet exemple, j'essaie de forcer avec une mise à jour le numéro identifiant(IDClub) du club d'un joueur de football.

Attention : vous devez spécifier au moins une colonne comme clé primaire sur laquelle baser les opérations Update ou alors Delete.

8. Cas d'utilisation: suppression d'une ou des lignes d'une base de donnée avec un fichier pivot

Dans cet exemple, j'essaie de supprimer la ligne d'un consommateur à l'aide de son identifiant et de son nom mis dans un fichier.

suppression

suppression_tmap

Attention : comme pour une mise à jour, la suppression demande une clé de suppression. Pour ma part, j'ai choisi l'identifiant du joueur(ID).

suppression_tdbouput

suppression_tdbfilterrow

9. Cas d'utilisation: extraction mensuelle ou trimestrielle

tJava

context.DateLancement =  TalendDate.getCurrentDate();

Date FirstDayMoisPrecedent = TalendDate.getFirstDayOfMonth(TalendDate.addDate(context.DateLancement,-1,"MM"));
 
context.FirstDayMoisPrecedent = TalendDate.formatDate("dd-MM-yyyy", FirstDayMoisPrecedent);

context.LastDayMoisPrecedent = TalendDate.formatDate("dd-MM-yyyy", TalendDate.getLastDayOfMonth(FirstDayMoisPrecedent)) ;

context.AnneeMoisPrecedent = TalendDate.getPartOfDate("YEAR", FirstDayMoisPrecedent);

Cas d'utilisation: sélectionnez plusieurs fichiers csv ou txt pour faire qu'un fichier xls

Pour le composant tFileOutputExcel, n'oubliez pas de cocher "Ajouter à la feuille existante". Pour le composant tInputDelimited_2, sélectionnez "...CURRENT_FILEPATH..." de "tFileList" pour le mettre dans le "Nom de fichier/Flux".

gestion_fichiers

gestion_fichiers2

Routines

row1.FirstName+' '+row1.LastName 
StringHandling.DOWNCASE(row1.FirstName+row1.LastName)+"@gmail.fr" 
!Relational.ISNULL(row1.Prenom)&& !Relational.ISNULL(row1.Nom)&&!Relational.ISNULL(row1.SIRET) 
StringHandling.LEN(row1.Prenom)>5 &&StringHandling.LEN(row1.Nom)> 5 
StringHandling.LEN(row1.NSS) == 13 || StringHandling.LEN(row1.NSS) == 15
StringHandling.LEFT("chaîne à vérifier", n premiers caractères d'une chaîne de caractères)
StringHandling.RIGHT("chaîne à vérifier", n derniers caractères d'une chaîne de caractèr)
TalendDate.getDate("CCYY-MM-DD")
### Age actuel selon date de naissance
TalendDate.diffDateFloor(TalendDate.getCurrentDate(),row4.BirtthDay,"YYYY") 

row1.email.equals("xxx") / !row1.email.equals("xxx")
Relational.ISNULL(Xxxx) / ! Relational.ISNULL(Xxxx)
Xxxx.isEmpty() / ! Xxxx.isEmpty()
Xxxx.startsWith ("xxx") / Xxxx.endswith ("xxx")
Xxxx.contains ("xxx")

### Conversion d'un string en int
Integer.valueOf("xxxx") : 
### Conversion d'un int en string
String.valueOf(xxxx)
### Conversion d'un int ou float en string
variable.toString()
### Conversion d'un char en float
Float.parseFloat("xxxx")
### Conversion en BigDecimal (de string ou integer)
BigDecimal("xxxx" ou xxxx)
### Conversion d'un string en date en précisant le format du string
TalendDate.parseDate("dd/MM/yyyy","01/01/2021")

Dates

System.out.println(TalendDate.getDate("yyyy-MM-dd'T'HH:mm:ss"));
System.out.println(TalendDate.getDate("yyyy-MM-dd'T'HH:mm:ss'Z'"));
System.out.println(TalendDate.formatDate("yyyy-MM-dd",TalendDate.parseDate("yyyy-MM-dd'T'HH:mm:ss","2024-01-12T00:00:00")));
System.out.println(TalendDate.formatDate("yyyy-MM-dd'T'HH:mm:ss",TalendDate.parseDate("yyyyMMdd","20240112")));

Output:

2024-04-17T11:13:01
2024-04-17T11:13:01Z
2024-01-12
2024-01-12T00:00:00

Cas d'utilisation: Insertion ou mise à jour d'une catégorie de produit

save_cat

Gestion de l’erreur : Error Handling

handling1 handling3 handling2

tFlowMeter

tFlowmeter renseigne sur le job en lui même (heure , nombre de ligne qui sont poussées au moment de l'execution , nom du projet , nom du job , nombre de ligne(count), version ...)

tFlowMeter

tLogCatcher

tLogCatcher a pour but de capter tous les exceptions du tWarn , du tDie et Java tlogcatcher

tStatCatcher

Le tStatCatcher est basé sur le schéma prédéfini et regroupe les métadonnées de traitement du Job au niveau du Job et au niveau du composant, lorsque la case tStatCatcher Statistics est cochée.

Il y a une autre possibilté d'avoir tous les logs et stats du job: allstats

POSTGRESQL

"SELECT 
  \""+context.postgreschinook1_Schema+"\".\"Artist\".\"ArtistId\", 
  \""+context.postgreschinook1_Schema+"\".\"Artist\".\"Name\"
FROM \""+context.postgreschinook1_Schema+"\".\"Artist\""
"  select Code_Depot_A,Code_Depot_N from TMS_Code_Depot where Code_Depot_A = \'"+context.new1+"\'"

mssql

"SELECT \""+context.connection_ConfigESB_Schema+"\".SFT.Valeur
FROM \""+context.connection_ConfigESB_Schema+"\".SFT
WHERE \""+context.connection_ConfigESB_Schema+"\".SFT.Identifiant='"+context.Identifiant+"'"
"select *
 from M3EPRD.OCUSM1 CL 
 left outer join M1EPRD.OCUSAD on OPCONO=OKCONO and OPADRT=1 and OPADID='ADR1' 
 left outer join M1EPRD.OCHCUS on OSCONO=OKCONO and OSCUNO=OKCUNO and OSFVDT<='"+ ((String)globalMap.get("DateDernierTraitement")) +"' and OSLVDT>='"+ ((String)globalMap.get("DateDernierTraitement")) +"'
 left outer join M1EPRD. OCUSCH  on OQCONO=OKCONO and OQCUNO=OKCUNO and OQCRID='PFE' 
 where OKCONO=100 
 and (OKLMDT>='"+ ((String)globalMap.get("DateDernierTraitement")) +"') "

JRE/JVM

jvm

⚠️ N'oubliez pas de redémarrer Talend après avoir choisi le JDK!

Consommation API sans clé

api1 api2

API avec clé

api12

Planification d'un job sans TAC (Talend Administration Center)

On extraie le job puis après l'avoir dézippé, on lance le fichier bat dans un manager de tâche(Windows) batch1 batch2 batch3

Envoie mail après erreur

mailerror

Consommation SOAP

https://help.talend.com/r/fr-FR/7.3/webservice/webservice-scenario soap2

2 ème exemple soap2a soap3a soap4 soap5

tCreateTempory

createtempory1 tcreatetempory2

Créer une table temporaire

createtable1 createtable2 createtable3

Suppression de fichier selon le nombre de jours

deletefiles1 deletefiles2 Dans cet exemple, nous avons supprimé tous les fichiers qui ont été modifiés ou créés il y a plus de 30 jours.