domingo, 9 de junio de 2013

Configurar Webutil para Oracle Forms 11g

Como desarrolladores en Oracle Forms 11g sabremos la importancia de la librería Webutil en nuestras formas, es por ello que daré a continuación los pasos necesarios para instalar exitosamente esta librería  la siguiente configuración aplica para ambientes de desarrollo como para ambientes de despliegue:


  1. Para la compilación de la librería webutil.pll es necesario tener un esquema de base de datos que contenga el paquete contenido en el archivo create_webutil_db.sql que se encuentra en el directorio ORACLE_HOME/forms es por ello que luego de la creación del esquema se deberá correr el archivo mencionado.

  2. Luego que ya tenemos nuestro esquema de base de datos configurado será necesario conseguir los archivos de jacob que utilizaremos para la configuración. Dependiendo el Release de nuestro Forms así sera el jacob que deberemos conseguir:

    1. Forms11gR1 11.1.1.X -> jacob 1.10.1 
      http://sourceforge.net/projects/jacob-project/files/jacob-project/1.10.1/jacob_1.10.1.zip/download

      Forms11gR2 11.1.2.X -> jacob 1.14.3
      http://sourceforge.net/projects/jacob-project/files/jacob-project/1.14.3/jacob-1.14.3.zip/download

  3. Descomprimimos el zip descargado y colocaremos el archivo jacob.jar en la carpeta de la ruta ORACLE_HOME/forms/java

  4. Ahora deberemos firmar el archivo jacob.jar para ello haremos: ORACLE_INSTANCE\bin\sign_webutil.bat ORACLE_HOME\forms\java\jacob.jar    

  5. Si el ambiente que estamos configurando es para desarrollo debemos asegurarnos que ORACLE_HOME/forms/java/frmwebutil.jar
     se encuentre en la variable FORMS_BUILDER_CLASSPATH 
    del regedit

  6. Ahora colocaremos el archivo jacob.dll que se encuentra en la carpeta que descomprimimos a su carpeta destino dependiendo del Release de la versión de Forms utilizada:

      FormsR1:
      jacob.dll ->  ORACLE_HOME/forms/webutil

      FormsR2:
      jacob-1.14.3-x86.dll ->  ORACLE_HOME/forms/webutil/win32
      jacob-1.14.3-x64.dll ->  ORACLE_HOME/forms/webutil/win64

  7. Luego agregamos ORACLE_HOME/forms/java/frmall.jar a la variable CLASSPATH que se encuentra en el archivo default.env

  8. Realizaremos la siguientes modificaciones a la configuración [webutil] del archivo formsweb.cfg:

      a. Agregamos los archivos frmwebutil.jar y jacob.jar al parámetro WebutilArchive. En algunas versiones este paso ya esta hecho.

      b. Especificamos que utilizaremos la forma webutil_demo.fmx como forma por defecto para la configuración de [webutil]

  9. Ahora descargamos la forma de webutil_demo desde el siguiente enlace:  http://www.oracle.com/technetwork/developer-tools/forms/webutil-090641.html  y colocamos la forma webutil_demo.fmb en la ruta ORACLE_HOME/forms
Artículo completo aquí.

29 comentarios:

  1. Buen día

    He estado haciendo esta configuración por varios días y ahora me está saliendo el error FRM-40734 y no he podido solucionarlo, la instalación la hice en Windows 7 a 64 Bits, sabe cómo solucionar esto?.


    Gracias

    ResponderEliminar
    Respuestas
    1. Hola Enrique,

      Buen día.

      Puedes verificar varias cosas por ese error, verifica que todos los PLL que estés utilizando hayan sido compilados para generar su PLX respectivo, luego verifica que los PLL y PLX se encuentren en una de las rutas especificadas para el FORMS_PATH, como es desarrollo verifica ésto en el regedit y en el archivo default.env del WLS_FORMS

      Saludos.

      Eliminar
  2. Hola Carlos,

    Buen día

    Ya revisé lo que me dijo, pero todo está bien la verdad este error se me viene presentando hace vario tiempo, sin embargo logré hacer la configuración en una ocasión, pero el cliente me dijo que no le servía que la hubiese hecho en Windows 7 sino que la necesita en Windows 8, y ahora que intento hacer la configuración siguiendo los mismos pasos que en un principio ejecuté me genera e error de PL que le mencioné arriba.

    El problema con el que me encuentro ahora, es que el cliente necesita que se haga la configuración en Windows 8 como lo mencioné antes, pero me encuentro con el mismo error de PL, por casualidad sabe usted si hay que ejecutar otros pasos para que funcione en dicho sistema operativo?.

    Agradezco toda la colaboración que me pueda brindar.

    Gracias.

    ResponderEliminar
  3. Hola Carlos, le cuento ya logré solucionar el error que me salía al ejecutar el Webutil_demo, el error era que en la URL que se abre cuando se ejecuta la forma desde el Builder, no estaba completa es decir no tenía definido la forma (Webutil_demo) que se está probando sino que tiene por defecto la forma de Test.fmx que se puede configurar desde el Enterprise Manager, y el error de PL se presentaba porque al ejecutar la forma no lograba encontrar la forma que se estaba intentando ejecutar (Webutil_Demo).

    Muchas gracias por las respuestas.

    ResponderEliminar
    Respuestas
    1. Hola Enrique,

      Que bueno saber que lograste solucionar tu problema y gracias por compartir como solucionaste eso.

      Ten cuidado con la instalación de Forms en Windows 8 pues a la fecha aún no se encuentra certificado por Oracle.

      Saludos!

      Eliminar
  4. Buenas tardes Carlos Cortez, pues tengo una petición casi de emergencia he seguido tu guía y funciona sin problema alguno, pero funciona en Oracle Developer Suite, he intentado aplicar la misma configuración en Oracle Application Server y no funciona, tienes alguna idea o conoces el proceso para habilitar webUtil a nivel de servidor? de antemano agradezco tu ayuda y sigue adelante, eres una luz al final del túnel para muchos que intentamos embarcarnos en los productos Oracle, Bendiciones y muchos éxitos.

    ResponderEliminar
    Respuestas
    1. Hola,

      Pues fíjate que ésta guía es especifica para versión 11g, para un OAS cambian ciertos pasos, déjame ver como estoy con mi tiempo y subo los pasos para la versión 10g ;)

      Y gracias por tu cumplido, al final intento compartir algo de lo que he ido aprendiendo en el camino.

      Saludos

      Eliminar
    2. Listo smoke, acá esta la guía para OAS 10g:

      http://ccortezsv.blogspot.com/2013/12/configurar-webutil-para-oracle.html

      Saludos.

      Eliminar
    3. Mil gracias has sido de mucha ayuda, Te deseo felices fiestas de navidad y año nuevo y sigue con tu proyecto eres un gran apoyo

      Eliminar
  5. Buen día

    Carlos, como le comenté anteriormente ya hice la configuración de webutil, pero estoy teniendo un problema y es que cuando uso la librería webutil en otro formulario y lo ejecuto, me toca que completar la URL con ?form=nombre_forma&config=webutil lo anterior para que no se ejecute la configuración por DEFAULT del forms y en cambio tome las funcionalidades de la webutil, usted sabe cómo y qué configuraciones se deben realizar para que se levanten las funcionalidades de webutil?

    Lo anterior lo pregunto porque cuando ejecuto la forma desde el forms y no le completo la URL e intento usar una funcionalidad de la webutil, me sale un error interno de PL que se debe a que la forma no puede conectarse a la base de datos.

    ResponderEliminar
    Respuestas
    1. Hola Enrique,

      Básicamente para no tener que estar poniendo cada vez el ?config=webutil desde el Forms Builder debes agregar esa porción a la url por defecto que se muestra en las preferencias del Forms Builder. Luego de agregarla cada vez que ejecutes una forma se mostrara agregada a la parte final de la URL la nueva porción agregada.

      Luego sino quieres tampoco agregar el form=nombre_forma puedes agregar ese parámetro a la entrada de webutil en el archivo formsweb.cfg, para el caso sería como tu forma inicial para tu sistema.

      Saludos

      Eliminar
  6. Hola Carlos,

    Tengo una duda, cómo se ejecutan los reportes desde las formas en la versión 11g de Oracle, es que estamos haciendo una migración de la versión 6i de Forms y Reports a la 11g, pero no hemos podido hacer que los reportes se ejecuten desde las formas, y no hemos podido saber con que librería o con que funciones se debe reemplazar la funciones WIN_API de la librería D2KWUTIL.

    Agradezco cualquier ayuda que me pueda brindar.

    ResponderEliminar
    Respuestas
    1. Hola Enrique,

      Para los reportes puedes utilizar la librería rp2rro.pll que se encuentra en la ruta ORACLE_HOME/forms y hacer uso de sus métodos para invocar los reportes. Con respecto a las funciones de D2KWUTIL, éstas ahora se encuentran incluidas en el Webutil.

      Saludos

      Eliminar
    2. Carlos, pero al intentar usar la librería Webutil en los reportes me sale un error, sabe cómo se debe hacer?

      Eliminar
    3. Hola Enrique,

      Me podrías dar el detalle del error que te aparece al tratar de usar el Webutil con los reportes ?? además que tratas de hacer, tal vez te puedo dar alguna idea.

      Saludos

      Eliminar
  7. hola segui todos los pasos pero al momento de ejecutar la aplicacion me sale el siguiente error: frm-40735 when-custom-item-event trigger raised unhandled exception ora-06502 he buscado información pero no logro resolverlo alguna sugerencia.

    ResponderEliminar
    Respuestas
    1. Hola Alexandra,

      El ORA-06502 es un error que comúnmente sucede cuando le asignamos a una variable un valor mayor al cual puede contener, por ejemplo una variable de tipo varchar2(5) y le asignamos una cadena con longitud de 10 te dará ese error.

      También te puede dar debido a que intentas asignar a una variable un valor que no es del tipo de dato correcto, como por ejemplo intentar asignar una cadena de texto a una variable de tipo numérica.

      Verifica que los valores que asignas a a las variables son de longitud aceptable y que el tipo de dato a asignar es el correcto.

      Saludos!

      Eliminar
  8. Hola CCortez, tengo una consulta, de acuerdo a la configuración que indicas puedo aplicarla para poder iniciar un forms en 6i para inicie desde la web?. Lo que pasa es que en el trabajo hay una aplicacion desarrollada con 6i pero por temas de automatizacion no es muy compatible con 6i, entonces pensaba si podia hacerlo iniciar desde la web con el webconfig y jacob, espero que puedas ayudarme. Gracias!

    ResponderEliminar
    Respuestas
    1. Hola Andryi,

      Pues fíjate que en este caso, según te entiendo la aplicación actualmente está en 6i, en el caso que la quisieras en un entorno Web, que es un ambiente distinto al cliente/servidor que se usaba en versiones anteriores a la 10g, se debe pasar las formas de la versión 6i a una versión 11g para el caso, en otras palabras debe pasar un proceso de migración.

      La configuración del Webutil 11g se realiza sobre una instalación de Forms11g por lo que antes debes haberlo instalado.

      Saludos!

      Eliminar
  9. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  10. Hola carlos
    Quiero saber que tan necesario es jacob.jar para que funcione webutil, hice toda la configuracion y al ejecutar la forma me aparece que jacob.com es desconocido y me bloquea la ejecucion de ls forma, aparcen dos opciones, ejecutar o cancelar el certificado, pero aparecen bloqueadas.

    ResponderEliminar
    Respuestas
    1. Hola,

      Fíjate que es completamente necesario, pues para que funcione correctamente Webutil se requiere de éste archivo jar, pues éste contiene las librerías necesarias para su correcto funcionamiento.

      El error que te aparece, me imagino que es porque estás usando Java 7, desde ésta versión se han agregado varias opciones de seguridad, entre ellas se verifica que todo aquel jar que es descargado a la maquina cliente éste debidamente firmado, para que éste firmado tendrías que comprar un certificado digital y luego realizar el firmado, para este caso saldría algo caro viendo cuanto cuesta un certificado, lo que puedes hacer es lo siguiente:

      - En el punto 4 de ésta guía tu firmas el archivo jacob.jar, el proceso de firmado comprende la creación de un keystore, la creción del keystore comprende también la creación de un certificado autofirmado.
      - Si sacas ese certificado autofirmado y lo insertas en el cliente java instalado en las maquinas cliente ya no te dará problemas, pues ahora tu maquina conoce al servidor el cual tiene el archivo/s jar.

      Eliminar
  11. Buenas tardes Ing. Carlos Cortez, quisiera saber como puedo hacer para que la librería de webutil sea capaz de leer variables del regedit de un cliente windows 8 de 64 bits, actualmente lee perfectamente estas variables en clientes windows 8 de 32 bits, ya he hecho los pasos que usted describe inicialmente en este blog, pero tengo la duda si hay que configurar los archivos: webutil.cfg, webutiljpi.html, webutiljpi o algún otro.

    Agradezco su ayuda oportuna, que pase buen resto de día.

    Atentamente Cristian Padilla

    ResponderEliminar
    Respuestas
    1. Buen día Cristian,

      Antes que nada comentarle que el Windows 8 no se encuentra soportada para la ejecución de aplicaciones Forms, por lo que está haciendo está sujeto a errores de lectura de las funciones.

      Por otra parte también comentar que debe validar si está usando la arquitectura del JRE correcta con respecto a la arquitectura del navegador, en otras palabras si está usando un navegador de 64bits debe usar un JRE de 64bits, si está usando un navegador de 32 debe usar un JRE de 32bits.

      También debe validar que la llave que intenta leer en la versión de 64bits existe, pues sino mal recuerdo algunas llaves cambian cuando la arquitectura del SO es diferente.

      Saludos cordiales.

      Eliminar
    2. Ingeniero Carlos Cortez muchas gracias por su valiosa respuesta, le comento que probe con varias versiones del JRE y el resultado no fue satisfactorio, sin embargo pude notar que la librería de webutil no era capaz de leer las variables del regedit creadas por mi, pero sí las que estaban por defecto del sistema operativo, al final decidí leer el nombre de la maquina para saber si el dispositivo que se estaba conectando a la aplicación era una Tablet o un PC.

      Eliminar
  12. hola, instale el weblogic server wls1036_generic y el forms and reports 64bits, toda la instalacion no dio errores, cuando abro con cualquier navegador la url http://myhost:7001/forms/frmservlet el navegador me dice que falta un plugin y no muestra nada, este error me ocurre con explorer y firefox, solo muestra una X en el navegador.

    ResponderEliminar
    Respuestas
    1. Hola Marcelo, ese mensaje se te muestra cuando tratas de ejecutar una forma y no tienes instalado una versión de Java soportada para su ejecución o el plugin de Java está inhabilitado, por lo que tendras que habilitarlo.

      Te recomiendo usar Firefox o Internet Explorer pues Chrome ya no soporta el plugin de Java.

      Puedes usar la página siguiente para verificar si tu navegador tiene el plugin correctamente instalado o sino instalar uno soportado: https://www.java.com/en/download/installed.jsp

      Saludos!

      Eliminar
  13. Buenas tardes Carlos;
    en mi trabajo han configurado el WEBUTIL; pero cuando intento utilizar la librería para exportar a excel desde un FORM creado con un botón ejecuto: Client_OLE2.create_obj('Excel.Application');
    me aparece el siguiente mensaje: oracle.forms.webutil.ole.Olefunctions bean not found. CLIENT_OLE2.create_obj will not work.

    Gracias por la ayuda.

    ResponderEliminar
  14. Quiuvo Carlos !

    Mi problema es a la hora de firmar los archivos .jar (jacob.jar)
    marca:

    Self-signing Jar files is no longer recommended.
    Jar files should be digitally signed using a trusted certificate.

    Sabes ahora como hay que firmarlos ?

    Gracias !

    Salu2

    ResponderEliminar