> Tech > Automatisation des tâches avec System i Access for Web

Automatisation des tâches avec System i Access for Web

Tech - Par iTPro - Publié le 31 mai 2012
email

Bien que l'appel de ces tâches puisse s'effectuer en cliquant simplement sur une icône dans une page Web, ou par l'appel d'une adresse de navigateur Web, l'action interactive d'un utilisateur est requise.

Automatisation des tâches avec System i Access for Web

En V6R1 System i Access for Web fournit un programme java permettant d’automatiser l’exécution de ces demandes préenregistrées : iWATask.jar se trouvant dans le répertoire /QIBM/ProdData/Access/Web2/lib/.

Pour éviter l’intervention de l’utilisateur et ainsi planifier l’exécution de la requête quand bon nous semble, il nous faudra lancer la requête en lui fournissant des paramètres. Ces paramètres doivent être préalablement écrits dans un fichier texte appelé fichier « Propriété ».

Exemple de contenu de ce fichier « Propriété » pour appeler notre précédente  requête :

url=http:// <nom_système_i5OS>:2020/webaccess/iWADbExec
user=PTHOMAS                                         
password=MOTDEPASSE                                    
parm.request=EmployeeList                                 
output=sqlOutput.pdf

Le fichier de propriétés contient les éléments suivants :
–    L’adresse de navigateur Web du servlet et/ou de la tâche System i Access for Web à appeler
–    Un ID et mot de passe utilisateur i5/OS que System i Access for Web utilise pour s’authentifier auprès du système i5/OS
–    Le nom de la tâche à exécuter
–    Un fichier de sortie dans lequel seront écrits les résultats de la tâche (par défaut SqlOutput.pdf dans le répertoire utilisateur).

Ainsi, pour exécuter notre tâche depuis une ligne de commande donc du WRKJOBSCDE, on lancera :

QSH(‘java –jar /QIBM/ProdData/Access/Web2/lib/iWATask.jar monfichierProprietes’)

Vous pouvez créer ce fichier texte à partir du bloc notes Windows® ou avec les commandes natives. La seule contrainte, ce fichier doit être en ASCII standard (CCSID 819) ou en ASCII Windows® (CCSID 1252). Aussi, je vous recommande d’appeler ce fichier texte task.properties.

Exemple de création du fichier avec les commandes natives

D’abord créez un répertoire dans /home possédant le nom de votre profil utilisateur.
Ex : MKDIR ‘/home/pthomas’ sur une ligne de commande.

Entrez sous QSH puis tapez cd ~ afin d’être positionné dans votre répertoire, vérifiez en tapant pwd.
Tapez   touch   -C  819  task.properties ce qui permet de créer le fichier à vide en ASCII standard. Sortez de QSH, puis, depuis une ligne de commande CL, tapez :
EDTF ‘/home/pthomas/task.properties’ pour en éditer le contenu. Insérer les 5 lignes comme montré dans le précédent exemple.

Testons sous QSH l’exécution de la tâche :
java  -jar  /QIBM/ProdData/Access/Web2/lib/iWATask.jar  task.properties

Pour obtenir plus d’informations sur l’exécution (génération d’un log) utilisez plutôt :
java –jar -Dcom.ibm.as400.webaccess.iWATask.log.category=all  
QIBM/ProdData/Access/Web2/lib/iWATask.jar  task.properties

Suite à l’une de ces précédentes commandes, vous devez obtenir un fichier PDF dans l’IFS dont le nom et le répertoire dépendent des informations renseignées dans le paramètre OUTPUT= du fichier propriété (si aucun chemin n’a été précisé, c’est le répertoire de l’utilisateur par défaut qui est pris en compte, le fichier par défaut étant sqlOutput). De surcroît, si vous avez demandé un envoi par courrier dans System i Access for the Web, un mail avec le PDF en attachement sera envoyé.

Vous pouvez aussi intégrer le fichier propriété à l’intérieur du programme iWATask.jar.
Un fichier .jar est une archive, comme l’est un fichier .zip ou .rar. Nous avons la possibilité d’encapsuler le fichier propriété à l’intérieur de l’archive, le fichier propriété une fois encapsulé n’étant plus utile, n’a plus de raison de se trouver dans l’IFS. Pour permettre l’intégration du fichier Propriété dans l’exécutable, ce dernier doit impérativement s’appeler « task.properties ».

Pour copiez iWATask.jar  dans votre répertoire, utilisez la commande CL CPY ou sous  QSH en tapant :

Cp   /QIBM/ProdData/Access/Web2/lib/iWATask.jar  EmployeeList.jar

Puis encapsulez le fichier propriété à l’intérieur du programme (ajout de task.properties à l’archive) avec la commande shell :

Jar -uf  EmployeeList.jar  task.properties

Une fois encapsulé, vous pourrez directement lancer : Java -jar  EmployeeList.jar

Côté sécurité, l’amélioration est moindre, car on peut extraire le fichier task.properties de l’archive avec Jar ou directement avec Winzip ou Winrar et ainsi obtenir l’utilisateur et le mot de passe.

Le programme Java iWATask.jar peut-être appelé depuis l’IBM i ou  à partir de toute autre plateforme disposant de Java™ Runtime Environment Version 1.5, entre autres Microsoft® Windows®, et Linux®.

Vous pouvez donc prendre cet exécutable et le remonter sur votre PC (par les dossiers partagés, FTP, iSeries Navigator etc..) et le placer sur le bureau ou dans un répertoire quelconque et l’exécuter pour produire le résultat attendu.

Une autre façon d’encapsuler le fichier propriété dans iWATask.jar est d’utiliser l’interface de System i Access for the Web. Dans la liste de vos demandes, cliquez sur l’icône   (Création de tâche automatisé). On vous invite à saisir les informations nécessaires à l’exécution comme montré c-dessous. Le programme  .jar vous sera proposé en téléchargement. Placer l’exécutable le sur votre PC.

Si votre PC dispose d’une version Java 1.5 minimum (java –version pour le vérifier sur une ligne de commande dos), l’exécution du .jar génèrera le document dans le même répertoire que l’exécutable. Vous pouvez ainsi planifier son exécution dans le gestionnaire de tâche Windows® sur votre PC ou directement sur un serveur Windows, Linux ou Unix.

Si vous planifiez l’exécution depuis l’ IBM i, dans ce dernier cas, il ne vous manque plus qu’à planifier l’appel du .jar dans le WRKJOBSCDE. Ex : QSH(‘java –jar /QIBM/ProdData/Access/Web2/lib/iWATask.jar  task.properties’) ou QSH(‘java –jar EmployeeList.jar’) si le fichier propriété a été intégré au programme avec l’option jar -uf ou par l’interface Web.

Notez bien que le fichier de « Propriété » contient un user/password, il vous faudra donc sécuriser ce fichier (ou le .jar dans lequel il est encapsulé) sur la plateforme où il est enregistré afin que seuls les utilisateurs autorisés puissent y accéder.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 31 mai 2012