Configuration de la bibliothèque WebUtil avec Oracle Forms 11g

Abderrahmane Abed

Ce tutoriel permet de décrire toutes les étapes pour la mise en place de la bibliothèque WebUtil Oracle Forms 11g.

Vous pouvez commenter le contenu de ce tutoriel sur le forum d'entraide oracle forms : Commentez .

- Titre : Configuration de la bibliothèque WebUtil avec Oracle Forms 11g

- Auteur : Abderrahmane Abed

- Parution : 30 mars 2016

- Mise à jour : 29 avril 2016

- Licence : Copyright ® 2016 Abderrahmane Abed. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Phase 1 : configuration de la bibliothèque webutil

- II-A. Initialisation des objets

- II-B. Signature des fichiers JAR

- III. Phase 2 : utilisation de webutil au niveau d'un module Forms

- IV. Conclusion

- V. Remerciements

I - Introduction

La bibliothèque WebUtil a été mise en place par Oracle afin de pourvoir à certaines fonctionnalités côté client en mode Web.

Par exemple, lors de l'utilisation en mode C/S, on peut faire appel à certaines fonctions telles que HOST, GET_FILE_NAME, etc. Celles-ci réfèrent alors au poste client.

En mode Web, les modules seront servis par le serveur d'application et de ce fait, tout appel de fonction, similaire à HOST par exemple implique les fonctionnalités du serveur et non plus celles du client.

De ce fait et afin de maintenir les mêmes fonctionnalités que nous avons en mode C/S, on mettra en place la bibliothèque WebUtil avec les modifications correspondantes au niveau des modules(1).

Téléchargez la bibliothèque JACOB ici. Cette bibliothèque est très utile pour configurer WebUtil.

Une fois la bibliothèque téléchargée, on va copier le fichier jacob.jar dans le dossier java de Forms indiqué comme suit (C:\Oracle\Middleware\FRHome\forms\java) :

II - Phase 1 : configuration de la bibliothèque webutil

Cette étape concerne la configuration du poste du développeur en vue de l'utilisation de WebUtil.

Copiez le fichier DLL dans le dossier de WebUtil comme indiqué dans cette image.

Le fichier jacob_1.17-M2-x64 doit être copié dans C:\Oracle\Middleware\FRHome\forms\webutil\win64 :

Le fichier jacob_1.17-M2-x32 doit être copié dans C:\Oracle\Middleware\FRHome\forms\webutil\win32 :

Modifiez le fichier de configuration formsweb.cfg. Faites une copie de ce fichier avant de faire toute manipulation. Contrairement à la version 10g, ce fichier se trouve dans le dossier suivant :

C:\Oracle\Middleware\user_projects\domains\FRMdomain\config\fmwconfig\servers\WLS_FORMS\applications\formsapp_11.1.2\config

Ajoutez jacob.jar dans la section archive du fichier formsweb.cfg :

II-A - Initialisation des objets

Création de l'utilisateur WEBUTIL : celui-ci sera le propriétaire du package WebUtil.

Connectez-vous avec le compte sys as sysdba et procédez comme suit :

CREATE USER WEBUTIL IDENTIFIED BY WEBUTIL;
GRANT CONNECT, RESOURCE TO WEBUTIL;

Création du package WEBUTIL_DB : pour cela, exécutez le script create_webutil_db.sql qui se trouve dans C:\Oracle\Middleware\FRHome\forms

Contenu du fichier create_webutil_db.sql :

Connectez-vous avec le compte webutil (pour vous assurer que c'est le bon utilisateur, faites un SHOW USER) :

On voit bien que le package a été créé avec succès sans aucune erreur :

Donnez les GRANT nécessaires pour les utilisateurs de l'application. Reconnectez-vous avec le compte webutil.

GRANT EXECUTE ON WEBUTIL_DB TO PUBLIC ;

Créer un synonyme pour WEBUTIL_DB : reconnectez-vous avec le compte sys as sysdba pour faire cette opération.

CREATE PUBLIC SYNONYM WEBUTIL_DB FOR WEBUTIL_DB

La dernière étape consiste à compiler cette bibliothèque pour générer le fichier webutil.plx. Pour cela, ouvrez le fichier webutil.pll et compilez-le :

On voit bien que le fichier a été compilé et a généré le fichier plx :

II-B - Signature des fichiers JAR

Il faut que les deux fichiers JAR webutil et Jacob.jar soient signés afin que les utilisateurs de votre application ne soient pas requis de valider à chaque fois l'authenticité des bibliothèques.

- Vérifiez que frmwebutil.jar se trouve dans C:\Oracle\Middleware\FRHome\forms\java :

- Assurez-vous que les deux fichiers JACOB.DLL et JACOB.JAR sont copiés(2).

Pour résoudre ce problème :

1. Faites une sauvegarde de votre fichier sign_webutil.bat et ouvrez-le avec l'éditeur NotePad++ et vérifiez les deux commentaires :

REM *** Remove the text after the '=' and replace with your password. ***

2. Localisez la ligne :

JAR_KEY_PASSWORD=<Your private key password>

et spécifiez un mot de passe pour : JAR_KEY_PASSWORD==<yourPassword>

3. Sauvegardez votre script et exécutez-le pour signer les fichiers JAR. Utilisez ce chemin tel que mentionné ici :

ORACLE_INSTANCE\bin\sign_webutil.bat %ORACLE_HOME%\forms\java\jacob.jar

Vous devez ensuite exécuter cette commande pour tous les fichiers jar. Après avoir exécuté les commandes, s'il vous plaît vérifiez la date modifiée des fichiers jar pour vous assurer qu'ils ont tous été signés avec succès.

Exécutez la signature avec les commandes suivantes :

- Ouvrez une fenêtre DOS

- Changez vers C:\Oracle\Middleware\FRMInst\bin

- Exécutez : sign_webutil.bat C:\Oracle\Middleware\FRHome\forms\java\frmwebutil.jar

- Ensuite : sign_webutil.bat C:\Oracle\Middleware\FRHome\forms\webutil\jacob.jar

III - Phase 2 : utilisation de webutil au niveau d'un module Forms

Dans cette partie, on montre comment on utilise la bibliothèque WebUtil.

On va commencer par le téléchargement d'une démo disponible sur le site web d'Oracle à cette adresse :

http://www.oracle.com/technetwork/developer-tools/forms/webutil-090641.html

Testez le fichier webutil_demo.fmb avec Oracle Forms 11g (suivez le guide qui se trouve dans readme.pdf)

Ouvrez le fichier avec Forms 11g :

Exécutez cette form - webutil_demo :

Cliquez sur le bouton « Get Client Info »…

IV - Conclusion

Ce guide spécifie les étapes nécessaires pour l'utilisation de la librairie WebUtil avec Oracle Forms 11g.

V - Remerciements

Tous mes remerciements à toute l'équipe de DVP, en particulier Claude Leloup et Marie-Hélène Delacroix ainsi que l'aide qui m'a été accordée pour la mise en place de ce tutoriel y compris l'hébergement de mon espace personnel DVP.

(1) Il faudrait s'assurer qu'il n'y a pas d'anciennes versions de webutil.olb, webutil.plx, webutil.pll sur votre serveur. La nouvelle bibliothèque de webutil se trouve dans c:\Oracle\Middleware\FRMHome\forms.

(2) Il y a un bogue dans 11g avec l'utilitaire de signature de webutil. En tant que tel, on va d'abord changer les mots de passe dans le fichier sign_webutil puis signer à nouveau tous les fichiers jar dans le dossier \ java.