Créer une liste déroulante dynamique - Cloud - 8.0

Code Java personnalisé

Version
Cloud
8.0
Language
Français
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java
Gouvernance de données > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java
Qualité et préparation de données > Systèmes tiers > Composants Custom Code (Intégration) > Composants Custom Code Java
Last publication date
2024-02-21
Dans le premier scénario, vous avez codé en dur la liste dans un composant tJava. Cependant, les éléments de la liste peuvent provenir d'une source de données. Par exemple, les éléments peuvent être stockés dans une table de base de données et leur nombre peut être inconnu.

Ce Job va contenir les composants suivants :

  • un tMysqlInput pour effectuer une requête sur les informations relatives aux personnes, depuis la table employee,
  • un tJavaFlex pour préparer la liste déroulante dynamique et stocker la valeur sélectionnée par l'utilisateur·trice lors de l'exécution dans la variable de contexte,
  • un second tMysqlInput pour générer les informations traitées par le tJavaFlex,
  • un tLogRow pour afficher les résultats dans la console.

Procédure

  1. Déposez un composant tMysqlInput et un tJavaFlex de la Palette dans l'espace de modélisation graphique. Reliez les deux composants à l'aide d'un lien Row > Main.
  2. Déposez un second composant tMysqlInput et un tLogRow de la Palette dans l'espace de modélisation graphique. Reliez les deux composants à l'aide d'un lien Row > Main. Reliez le premier sous-Job au second à l'aide d'un lien Trigger > On Subjob Ok.
  3. Cliquez sur l'onglet Context et définissez une variable de contexte de type String, que vous nommez named :
  4. Double-cliquez sur le premier tMysqlInput et configurez-le comme dans l'exemple ci-dessous :
    1. ajoutez la requête suivante dans le champ de requête :
      "select name from employee"
    2. Modifier le schéma et configurer ce schéma.
  5. Cliquez sur le tJavaFlex pour ouvrir sa vue Basic settings et ajouter le code suivant.
    1. Dans la zone Start code :
      java.util.ArrayList<String> list=new
                                          java.util.ArrayList<String> ();
    2. Dans la zone Main code :
      list.add(row1.name);
    3. Dans la zone End code :
      String [] nameList=new String[list.size()];
                                      nameList=list.toArray(nameList);
                                      JFrame frame = new JFrame("Input Dialog Example");
                                      String returnValue = (String) JOptionPane.showInputDialog(frame,
                                      "Select the name you want to query?","Employee Information",JOptionPane.QUESTION_MESSAGE,null,nameList,nameList[0]);
                                      context.name=returnValue;
  6. Dans l'onglet Advanced settings du tJava, importez le chemin complet de la classe utilisée dans ce Job.
  7. Configurez le second tMysqlInput pour effectuer une requête sur les informations relatives aux personnes, depuis la table employee et utilisez le tLogRow pour afficher les résultats dans la console, comme dans le scénario ci-dessus.
  8. Exécutez le Job. Tous les noms dans la table seront les éléments de la liste, comme ci-dessous :
  9. Par exemple, sélectionnez Nicolas dans la liste. Les informations relatives à Nicolas sont interrogées depuis la table et affichées dans la console.