Welcome Guest! Log in
×

Notice

The forum is in read only mode.
Stambia versions 2.x, 3.x, S17, S18, S19 and S20 are reaching End of Support January, 15th, 2024. Please consider upgrading to the supported Semarchy xDI versions. See Global Policy Support and the Semarchy Documentation.

The Stambia User Community is moving to Semarchy! All the applicable resources have already been moved or are currently being moved to their new location. Read more…

Topic-icon Question Récupération dynamique des "bind variables"

More
24 Oct 2018 17:08 #1 by Nicolas.Duret
Récupération dynamique des "bind variables" was created by Nicolas.Duret
Bonjour,

Est-ce possible de récupérer d’une quelconque manière la liste des "bind variables" utilisables à la suite d’un Direct Bind Link après une opération SQL ?

--> Je souhaite passer un SQL à exécuter en paramètre d’un traitement puis pouvoir traiter chaque ligne en sortie via un script.
--> Pour ce faire je dois connaitre le nom des colonnes retourné par le SQL, mais je ne connais pas le nom des colonnes au moment du développement.

Salutations,
--
Nicolas
More
25 Oct 2018 17:44 #2 by Thomas BLETON
Replied by Thomas BLETON on topic Récupération dynamique des "bind variables"
Il y a des possibilités en scripting, en utilisant notamment
rs=__ctx__.getSourceResultSet();

et
rs.getMetadata();


Mais pour moi (attention ce n'est qu'un avis personnel) cela ne ressemble pas à une utilisation typique de Stambia.
Pourquoi ne pas se baser sur des metadata + la génération de code ?
Le fait d'avoir des metadata peut sembler contraignant, mais associé à l'analyse d'impact et aux user defined functions (entre autres), cela permet de faire des choses assez puissantes.
More
29 Oct 2018 18:11 #3 by Nicolas.Duret
Replied by Nicolas.Duret on topic Récupération dynamique des "bind variables"
Merci pour ces précieuses informations :-)
Je pense que je vais réussir à faire ce que je veux avec ça merci :-)

En fait, je cherche un moyen de créer rapidement des contrôles de qualité des données sans devoir faire un nouveau développement Stambia à chaque nouveau contrôle.
L'utilisation des métadonnées ne semble donc pas possible dans ce cas puisque je ne connais pas à l'avance le SQL à exécuter.
Je veux donc un traitement unique qui prend en paramètre un SQL et une adresse email (par exemple).
Et si le SQL passé en paramètre renvois des lignes, je veux alors renvoyer le résultat formaté par email.
Je pourrai ensuite stocker mes couples SQL/EMAIL dans une table, puis boucler dessus et juste ajouter des nouveaux SQL lorsque nécessaire sans avoir besoin de modifier mon traitement.

J'ai déjà un traitement qui fait ce travail de formatage d'email lorsque le SQL est connu à l'avance et j'essai donc de l'adapter pour qu'il fonctionne dynamiquement.




J'ajoute une copie écran pour montrer un exemple d'utilisation des commandes __ctx__.getSourceResultSet(); et rs.getMetadata();

Cet exemple montre quelques type d'informations qu'il est possible de récupérer et publie autant de variables que de ligne et colonnes retourné par le SQL.



Références:
docs.oracle.com/javase/8/docs/api/java/s...sultSetMetaData.html
docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html
Attachments:
More
31 Oct 2018 16:54 #4 by Thomas BLETON
Replied by Thomas BLETON on topic Récupération dynamique des "bind variables"
OK,
C'est donc un cas d'utilisation de type "extraction de données sous forme de rapport / email", pas vraiment de l'intégration de données au sens usuel. Je comprends maintenant l'aspect générique.
Merci pour le partage :)