> Tech > Requête SQL avec paramètres

Requête SQL avec paramètres

Tech - Par Renaud ROSSET - Publié le 31 mai 2012
email

Bien que l’assistant SQL de System i Access for the Web accepte la notion de paramètres, l’exécution d’une tâche avec iWATask.jar ne permet pas d’envoyer des paramètres.

Requête SQL avec paramètres

En effet, une page HTML est construite dynamiquement afin de demander à l’utilisateur de saisir les paramètres manquants afin d’exécuter cette tâche. Dans le cas d’une procédure automatisée, l’intervention d’un utilisateur est proscrite.

De plus, il serait fort intéressant et productif de pouvoir passer en paramètre l’intégralité d’une requête SQL, un titre, ainsi que l’adresse mail du ou des destinataires du résultat avec attaché un fichier PDF ou Microsoft Excel®.

Pour permettre cela, je vous ai préparé un script shell iWASql dont vous pourrez trouver le code dans le Club Abonnés System iNEWS.

Cet utilitaire permet d’exécuter une tâche préenregistrée dans System i Access for the Web en appelant iWATask.jar et de substituer des paramètres qui seront codés entre deux crochets []
Pour bien comprendre son fonctionnement, nous allons créer une nouvelle tâche nommée « SQLtoPDF » dans System i Access for the Web.

–    Dans la zone « Instruction SQL » saisir [1] qui représente le 1er paramètre, il doit être entre deux crochets et sans espace.
–    Choisissez le type de sortie PDF puis Paramètres. Prenez l’orientation Paysage, et dans la zone « Entête de Table » saisissez [2]. Pour finir, dans la zone « Bas de Page », saisissez Fin de l’édition [2].
–    Choisissez la cible « Courrier » puis Paramètres.  Pour le destinataire saisissez [3], et pour l’objet Document [2] par mail, dans le corps du mail  mettez ce que vous voulez.

Enregistrez votre demande sous le nom SQLtoPDF. Si vous ne désirez pas envoyer le document par mail, enlevez toutes les informations relatives au mail. Dans ce cas, pour le choix de la cible optez pour « Navigateur ».

Copier l’utilitaire dans votre répertoire /home/user en supprimant l’extension .txt. Sous QSH ou via la commande CL QSH, exécutez-le en lui passant les paramètres attendus.
iWASql –s SQLtoPDF –p MOTPASSE ‘Select * from jeudessai.employee where sex = `F` ’ ‘Liste des employes’ ‘patrick30.thomas@laposte.net’

Dans cet exemple, la tâche SQLtoPDF va s’exécuter avec en paramètre 1 : La requête SQL a exécuter, en 2 : le titre de l’état et en 3 : l’adresse mail du ou des destinataires.

Si ma requête avait été fixe, excepté pour la clause Where, nous aurions pu renseigner dans System i Access for the Web : Select * from jeudessai.employee Where sex = ‘[1]’ et ainsi l’exécuter avec les paramètres suivants :

iWASql –s SQLtoPDF –p MOTPASSE F  ‘Liste des employes’ patrick30.thomas@laposte.net

Les quotes sont utiles quand un paramètre comporte des espaces. Remarquez aussi le paramètre ‘Select * from jeudessai.employee where sex = `F` ’ l’utilitaire remplacera le caractère ` par une quote. Nous aurions pu aussi utiliser ?Select * from jeudessai.employee where sex = ‘F’?

Vous trouverez la documentation complète de cet utilitaire dans l’utilitaire lui-même.

Conclusion

iWATask.jar nous permet de planifier depuis n’importe quelle plateforme (Unix, Linux, Windows, IBM i) l’exécution d’une requête SQL sur l’IBM i et de produire le résultat attendu sous la forme de documents variés issus des standards du marché (XLS, PDF, XML, CSV, etc…). Le document produit peut-être aussi acheminé par e-mail à plusieurs destinataires, sans qu’il soit nécessaire de savoir programmer ou de créer le moindre programme.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 31 mai 2012