0

Talend – Utilisation de librairie .NET

Avec Talend Open Studio for Data Integration, il est possible d’instancier et d’utiliser des classes .NET.

Dans un premier temps nous allons créer une librairie (.dll) en .NET. Pour cela, ouvrez Visual Studio puis cliquez sur FILE > New > Project…

Dans la fenêtre New Project, dans le menu de gauche, développer le nœud Templates, puis sélectionnez Visual C#. Dans la liste des modèles sélectionnez Class Library.

Donnez un nom et un emplacement à votre projet, puis cliquez sur OK pour créer le projet :

image Une fois le projet créé, renommez la classe par défaut Class1. Par exemple, RoutineLibrary :

image

Modifier le code de la classe RoutineLibrary, pour qu’il corresponde à l’exemple simple suivant :

using System;
 
namespace CustomRoutineForTalend
{
    public class RoutineLibrary
    {
        private string _message { get; set; }
        public RoutineLibrary(string message)
        {
            this._message = message;
        }
 
        public string GetMessage()
        {
            return _message;
        }
    }
}

Compiler votre projet pour obtenir la DLL CustomRoutineForTalend.dll dans le répertoire de sortie. Pour compiler, faire un clic droit sur le projet CustomRoutineForTalend, dans le Solution Explorer et sélectionner Build.

image

Dans Talend, créez un nouveau Job. Clic droit sur Job Designs, puis Create job. Dans la fenêtre New Job, saisissez un nom pour le job puis cliquez sur Finish :

image

Pour utiliser une librairie .NET dans notre Job, nous allons pour cela utiliser deux composants inclus dans Talend Open Studio :

· tDotNETInstantiate qui permet d’instancier un objet .NET.

· tDotNETRow qui permet l’envoie de données à partir de bibliothèques et vers des bibliothèques et des classes .NET ou d’autres fichiers DLL personnalisés.

Pour utiliser ces composants, vous devez d’abord installer les fichiers DLLs d’exécution, par exemple janet-win32.dll, sous Windows 32 bits et janet-win64.dll sous Windows 64 bits, disponible dans le package redistribuable Microsoft Visual C++, afin d’éviter les erreurs telles que UnsatisfiedLinkError sur les DLL dépendants.

Assurez-vous que le DLL d’exécution et tous les autres DLL dont dépend le DLL à appeler sont entièrement installées et que leurs versions sont en adéquation.

Remarque : Les DLL d’exécution requis peuvent être installés dans le dossier System32 ou dans le dossier bin du JRE à utiliser. Si vous devez exporter un Job utilisant ce composant pour l’exécuter hors du Studio Talend, vous devez spécifier le conteneur d’exécution souhaité en configurant l’argument -Djava.library.path.

Ajouter les composants tDotNETInstantiate, tDotNETRow et tLogRow à votre Job :

image

Connectez le tDotNETInstantiate au tDotNETRow à l’aide d’un lien Trigger > OnSubjobOk. Faites un clic droit sur le composant tDotNETInstantiate_1 et sélectionnez Trigger > OnSubjobOk puis cliquez sur tDotNETRow_1 pour créer le lien.

image

Reliez le tDotNETRow au tLogRow à l’aide d’un lien Row > Main. Faites un clic droit sur la composant tDotNETRow_1 et sélectionnez Row > Main, puis cliquez sur tLogRow_1 pour créer le lien.

image Double-cliquez sur le composant tDotNETInstantiate_1 pour afficher sa vue Basic settings et définir ses propriétés de base.

Remarque : Si le message « This component tDotNETInstantiate requires at least one external jar to be installed » apparaît dans la fenêtre Basic settings, cliquez alors sur le bouton Install…

image

Quand la fenêtre d’installation des modules complémentaires apparaît, sélectionnez le composant janet-java-1.0-SNAPSHOT.jar et cliquez sur Download and Install ou directement sur Download and install all modules available :

image

Dans la fenêtre Review Licenses, sélectionnez I accept the terms of the selected license agreement et cliquez sur Finish :

image

Après l’installation du module, cliquez sur OK pour terminer.

image

Dans la vue Basic settings, cliquez sur le bouton […] à côté du champ Dll to load et parcourez votre système jusqu’au fichier dll à charger. Dans notre exemple, il s’agit de CustomRoutineForTalend.dll générer précédemment. Vous pouvez également renseigner le champ avec une Assembly.

Dans le champ Fully qualified class name, saisissez un nom de classe valide à utiliser. Dans notre exemple, saisissez « CustomRoutineForTalend.RoutineLibrary« .

Cliquez sur le bouton [+] sous la table Value(s) to pass to the constructor afin d’ajouter une ligne pour la valeur à passer au constructeur. Toujours pour notre exemple, saisissez : « Hello world! ».

image

Double-cliquez sur le composant tDotNETRow_1 afin d’afficher sa vue Basic settings et définir ses propriétés de base.

Dans Basic settings, cochez la case Propagate data to output. Puis cochez également la case Use an existing instance et sélectionnez tDotNETInstantiate_1 dans la liste Existing instance to use. Dans le champ Method Name saisissez le nom de la méthode à utiliser. Dans notre exemple, « GetMessage« .

image Cliquez ensuite sur le bouton […] à côté du champ Edit schema pour ajouter une colonne au schéma. Cliquez sur le bouton [+] afin d’ajouter une colonne au schéma. Renommez la colonne newColumn, par exemple resultColumn, et cliquez sur OK pour sauvegarder les modifications.

image Valider la fenêtre Propagate en cliquant sur Yes.

imageSélectionnez la colonne resultColumn dans la liste Output value target column. Laissez les autres paramètres par défaut.

image

Double-cliquez sur le tLogRow_1 afin d’afficher sa vue Basic settings et définir ses propriétés de base. Cliquez sur le bouton Sync columns afin de récupérer le schéma défini dans le composant précédent et sélectionnez Table dans la zone Mode.

image

Sauvegardez votre Job et appuyez sur la touche F6 pour l’exécuter. Vous pouvez constater, dans les résultats, que le texte Hello world! est bien affiché :

image Remarque : Si l’erreur Exception in thread « main » java.lang.UnsatisfiedLinkError: no janet-win64 in java.library.path apparaît, c’est que les DLL pré-requises n’ont pas été installées, janet-win32.dll ou janet-win64.dll.

Voilà, vous savez désormais utiliser vos librairies .NET avec Talend.

Rock’n’Roll.

gbrout

Architecte, formateur MCT et expert sur la gamme Visual Studio ALM qu'il met en œuvre sur l'ensemble des projets. Il travaille pour la société Itelios, spécialisée dans les technologies Microsoft et le commerce connecté. Il accompagne quotidiennement de nombreuses équipes et projets dans différents domaines et technologies : Windows 8, Windows Phone, ASP.NET MVC, Dynamics CRM... Passionné par le développement, ses domaines de prédilections sont avant tout l'expertise technique, l'industrialisation des développements avec la gamme Visual Studio ALM, l'analyse des performances, les tests et tout ce qui a trait à la qualité. Son expertise sur les  technologies Microsoft sa passion pour les nouvelles technologies et les développements novateurs l'a conduit à l'écriture d'un livre accessible et opérationnel sur le développement pour Windows 8 à l'aide d'HTML5 et JavaScript. Il anime également des conférences et sessions techniques telles que des live meeting en ligne ou lors d’événements comme les Techdays.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *