Paramétrer une condition assertive pour l'exécution d'un Job
Ce scénario décrit comment paramétrer une condition assertive dans le composant tAssert afin d'évaluer si l'exécution du Job a réussi ou non. De plus, vous pouvez également trouver comment deux résultats différents d'évaluation s'affichent et comment les lire. Le scénario utilise un tAssert, mais aussi :
-
un tFileInputDelimited et un tFileOutputDelimited. Les deux composants constituent le Job principal, duquel le statut d'exécution est évalué. Pour plus d'informations détaillées concernant les deux composants, consultez tFileInputDelimited et tFileOutputDelimited.
-
un tFileCompare. Il réalise la comparaison entre le fichier de sortie du Job principal et un fichier de référence standard. Le résultat comparatif est évalué par le tAssert par rapport à la condition assertive configurée dans ses paramètres. Pour plus d'informations à propos du tFileCompare, consultez tFileCompare.
-
un tAssertCatcher. Il capture l'évaluation générée par le tAssert. Pour plus d'informations concernant le composant tAssertCatcher, consultez tAssertCatcher.
-
un tLogRow. Il vous permet de lire l'évaluation capturée. Pour plus d'informations concernant le tLogRow, consultez tLogRow.
Afin de créer le Job principal, procédez comme suit :
-
Préparez un fichier délimité .csv comme fichier source lu par votre Job principal.
-
Modifiez deux lignes dans ce fichier. Les modifications n'ont pas d'importance, vous pouvez uniquement simplifier le contenu.
-
Nommez-le source.csv.
-
Dans le Studio Talend , créez un Job, que vous appellerez JobAssertion.
-
Placez un tFileInputDelimited et un tFileOutputDelimited dans l'espace de modélisation graphique.
-
Connectez-les à l'aide d'un lien Row Main afin de créer le Job principal.
-
Double-cliquez sur le tFileInputDelimited pour ouvrir sa vue Component.
-
Dans le champ File Name de la vue Component, renseignez le chemin d'accès à votre fichier source.csv.
-
Toujours dans la vue Component, configurez Property Type à Built-In et cliquez sur à côté de Edit schema pour déterminer les données à passer au tFileOutputDelimited. Dans ce scénario, sélectionnez les données présentées dans le fichier source.csv que vous avez créé.
Pour plus d'informations concernant les types de schémas, consultez Schéma Built-in et Schéma Repository.
-
Définissez les autres paramètres dans les champs correspondants, selon le fichier source.csv que vous avez créé.
-
Double-cliquez sur le tFileOutputDelimited afin d'ouvrir sa vue Component.
-
Dans le champ File Name de la vue Component, renseignez le chemin d'accès à votre fichier de sortie et laissez les autres champs comme définis par défaut.
-
Appuyez sur F6 afin d'exécuter le Job principal. Il lit votre fichier source.csv, passe les données au tFileOutputDelimited et écrit un fichier délimité de sortie, out.csv.
Continuez à modifier votre Job, afin de voir comment le tAssert évalue le statut d'exécution du Job principal.
-
Renommez le fichier out.csv en reference.csv. Ce fichier est le résultat attendu de l'écriture du Job principal.
-
Placez un tFileCompare, un tAssert et un tLogRow dans l'espace de modélisation graphique.
-
Connectez-les à l'aide d'un lien Row Main.
-
Connectez le tFileInputDelimited au tFileCompare avec un lien OnSubjobOk.
-
Double-cliquez sur le tFileCompare afin d'ouvrir sa vue Component.
-
Dans la vue Component, renseignez les chemins d'accès dans les champs File to compare et Reference file correspondants et laissez les autres champs comme définis par défaut.
Pour plus d'informations concernant le tFileCompare, consultez tFileCompare.
-
Cliquez ensuite sur le tAssert, puis cliquez sur l'onglet Component, au bas de l'espace de modélisation graphique.
-
Dans la vue Component, modifiez la condition row2.differ==0, dans le champ expression ainsi que la description de l'assertion.
Dans le champ expression, row2 constitue le flux de données transmis du tFileCompare au tAssert, differ est une colonne du schéma du tFileCompare qui affiche si les fichiers comparés sont identiques. 0 signifie qu'aucune différence n'a été détectée entre le fichier out.csv et le fichier reference.csv par le tFileCompare. Les fichiers comparés sont donc identiques, la condition assertive est remplie, le tAssert conclut que le Job principal a été exécuté avec succès. Sinon, il conclut qu'il a échoué.
La colonne differ fait partie du schéma, en lecture seule, du tFileCompare. Pour plus d'informations concernant son schéma, consultez tFileCompare.
-
Appuyez sur F6 pour exécuter le Job.
-
Vérifiez les résultats présentés dans la vue Run.
La console affiche les résultats de la comparaison du tFileCompare : Files are identical. Mais l'évaluation du tAssert n'est visible nulle part.
Vous avez donc besoin du composant tAssertCatcher pour capturer l'évaluation.
-
Placez un tAssertCatcher et un tLogRow dans l'espace de modélisation graphique.
-
Connectez-les à l'aide d'un lien Row Main.
-
Utilisez la configuration par défaut du tAssertCatcher dans sa vue Component.
-
Appuyez sur F6 pour exécuter le Job.
-
Vérifiez les résultats présentés dans la vue Run. Vous pouvez voir que les informations sur le statut du Job ont été ajoutées :
.2010-01-29 15:37:33|fAvAzH|TASSERT|JobAssertion|java|tAssert_1|Ok|--| The output file should be identical with the reference file
La description du JobAssertion dans la console est organisée selon le schéma du tAssertCatcher, lequel comprend des colonnes correspondant au temps d'exécution, à l'identifiant de processus, au nom du projet, au langage du code, à l'origine de l'évaluation, au résultat de l'évaluation, aux informations détaillées de l'évaluation et au message descriptif de l'assertion. Pour plus d'informations concernant le schéma du tAssertCatcher, consultez tAssertCatcher.
La console indique que le statut d'exécution du Job JobAssertion est Ok. En plus de l'évaluation, vous pouvez toujours voir les informations descriptives du JobAssertion, parmi lesquelles la description que vous avez saisie dans la vue Basic settings du tAssert.
Effectuez ensuite quelques opérations pour que le Job principal ne puisse pas générer le fichier attendu. Pour ce faire, procédez comme suit dans le même Job que celui que vous avez exécuté :
-
Effacez une ligne de votre fichier reference.csv.
-
Appuyez sur F6 pour exécuter votre Job à nouveau.
-
Vérifiez les résultats présentés dans la vue Run.
.2010-02-01 19:47:43|GeHJNO|TASSERT|JobAssertion|tAssert_1|Failed|Test logically failed|The output file should be identical with the reference file
La console indique que le statut d'exécution du Job principal est Failed (a échoué). L'explication détaillée suit peu après, Test logically failed (échec logique du test).
Vous pouvez donc avoir une idée simple du statut de votre Job : il n'a pas pu générer le fichier attendu à cause de l'échec logique. Cet échec logique peut provenir d'une erreur logique lors de la création du Job.
Le statut et ses explications sont présentés respectivement dans les colonnes status et substatus du schéma du tAssertCatcher. Pour plus d'informations concernant les colonnes, consultez tAssertCatcher.