Procedimiento para actualización de entorno 6.1.3

Comprobaciones antes de aplicar el entorno:

  • A partir del entorno 6.1.3 es necesario usar una versión de Oracle 11g o superior.
  • Si la versión de entorno instalada es anterior a la 6.1.2, en primer lugar hay que actualizar al entorno 6.1.2 y desde ahí actualizar al 6.1.3. Procedimiento de actualización de entorno 6.1.2: http://blog.edisa.com/entorno/procedimiento-para-actualizacion-de-entorno
  • MUY IMPORTANTE: Las sqls únicamente se pueden pasar usando un sqlplus de versión 10 o superior, por tanto si, al ejecutar el sql en la cabecera pone “SQL*Plus: Release 8.0.6.0.0 – Production”, NO PASAR LAS SQLS, lo ideal es tener instalado el cliente de Oracle de versión 10g ó 11g o usar el de la propia base de datos en el caso de estar en un Windows.

Pantalla de Sql*Plus con el que no se puede actualizar entorno

  • En instalaciones arrancadas hay que hacer una copia de seguridad de la carpeta L y de la base de datos. Nunca ha sido necesario echar atrás una actualización de entorno, pero si fuese necesario es de ayuda disponer de esa copia.
  • En caso de que esté parametrizado ver procesos en menú y usarse el menú integrado con CRM hay que actualizar también el CRM.
  • Asegurarse que no hay nadie conectado a LIBRA, si hay alguien conectado puede ser que la actualización quede incompleta, en ese caso se puede volver a pasar la actualización completa sin problemas.
  • Asegurarse de disponer de un equipo con Forms Builder, esto es totalmente necesario para que en caso de producirse algún problema podamos detectarlo en el menor tiempo posible.
  • Comprobar que en el raíz del directorio donde se encuentren los programas de Libra (normalmente L:\) no se encuentre ningún archivo que comience por menu, si existe se debe de borrar.
  • En caso de que en el cliente también utilice Libra en Forms11g asegurarse que se tienen los programas para la versión de entorno que se va a instalar compilados en Forms11g.
  • En caso de que en el cliente también utilice Libra en puestos que estén configurados en UTF8 asegurarse que se tienen los programas para la versión de entorno que se va a instalar compilados en UTF8.
  • MUY IMPORTANTE: Comprobar que no existan filas de menús con padres mal creados (si las hay, se deben de arreglar):
    • SELECT * FROM menus WHERE cod_padre = codigo;
    • SELECT * FROM menus_perfiles WHERE cod_padre = codigo;
  • En caso de usarse el módulo de alertas se debe de parar el Job antes de aplicar la actualización.

Pasos

  • Crear carpeta c:\temp\libra
  • Descomprimir archivo en c:\temp\libra, comprobar que las sqls se encuentren en c:\temp\libra\sqls, si no se encuentran ahí quiere decir que está mal.
  • Conectar con sqlplus al usuario de Oracle que contiene LIBRA
  • Pasar la sql c:\temp\libra\fichero.sql de la siguiente forma: @c:\temp\libra\fichero.sql
  • Copiar las carpetas fmxs, iconos, jars, lv_fmbs, mmxs, plls, plxs en el directorio en que se encuentren los programas de Libra y sobreescribir los objetos existentes.

En instalaciones donde se utilice la impresión de números en texto en polaco, es necesario realizar un paso adicional.

  • Abrir una consola de comandos (inicio -> Ejecutar -> cmd.exe)
  • set NLS_LANG=Spanish_Spain.UTF8
  • sqlplus @c:\temp\libra\sqls\pknum2letra.sql

Pasos específicos para Cliente / Servidor

  • Hay que descargar (IMPORTANTE: sólo descargar, no hace falta descomprimir) en la carpeta en donde se encuentran los archivos .jar (normalmente L:\jar) el siguiente archivo: jre.zip
  • En el archivo libra6.ini, hay que añadir en la variable CLASSPATH la ruta a los archivos: activation-1.1.jar y javax.mail.jar (Este proceso se puede automatizar desde parámetros generales – U_MPRMEN).

Pasos específicos para versión en Forms 11g

  • Hay que actualizar los iconos de Libra y las librerías de Java a la última versión (las librerías ya están firmadas por EDISA por lo que no es necesario volver a firmarlas), para ello hay que hacer lo siguiente:
    • cd $ORACLE_HOME/forms/java
    • rm libraiconos.jar*
    • rm libraiconos2.jar*
    • rm libra613.jar*
    • rm libracsweb613.jar*
    • rm formsgraph.jar
    • wget --no-check-certificate https://googledrive.com/host/0B4ft2CuJaF7nREpiY0NYMlVBcVk -O libraiconos.jar
    • wget --no-check-certificate https://googledrive.com/host/0B4ft2CuJaF7nejJiNDRzRlRyVk0 -O libraiconos2.jar
    • wget --no-check-certificate https://googledrive.com/host/0B4ft2CuJaF7nX0ZWdVl3SUhFX00 -O libra613.jar
    • wget --no-check-certificate https://googledrive.com/host/0B4ft2CuJaF7nTUlUSERWMTIzN0U -O libracsweb613.jar
    • wget --no-check-certificate https://googledrive.com/host/0B4ft2CuJaF7nLWYzQ0FRRVEzaVE -O formsgraph.jar
  • Revisar las librerías de Java necesarias:
    • Editar el archivo $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config/libra.env
      • En la configuración de la variable CLASSPATH deben estar incluidas las siguientes librerías (normalmente se encontrarán en la ruta /libra/jars): 
        • poi.jar
        • poi-ooxml.jar
        • ojdbc6.jar
        • xmlbeans.jar
        • poi-ooxml-schemas.jar
        • dom4j.jar
        • libracs.jar
        • libracsweb.jar
        • activation-1.1.jar
        • javax.mail.jar
    • Editar el archivo $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config/formsweb.cfg
      • Versiones de Libra anteriores a 5.3.3:
        • La variable WebUtilArchive debe ser: WebUtilArchive=jacob.jar,frmwebutil.jar
        • La variable archive debe ser: archive=frmall.jar,frmoracle_laf.jar,laf_11112.jar,qtjava.jar,formsgraph.jar,libraiconos.jar,libra613.jar,libracsweb613.jar
      • Versión de Libra 5.3.3:
        • La variable WebUtilArchive debe ser: WebUtilArchive=jacob.jar,frmwebutil.jar
        • la variable archive debe ser: archive=frmall.jar,frmoracle_laf.jar,formsgraph.jar,libraiconos2.jar,libraiconos.jar,libra613.jar,libracsweb613.jar

Posibles problemas.

  • ORA-01007 al entrar en Libra.
    • Hay que abrir con el forms builder y recompilar la pklibpnt.pll contra la base de datos del cliente, generar la plx y copiar la pll y plx recompilada en L:\plls y L:\plxs
  • ORA-04062 o al entrar en Libra.
    • Si el menú que se usa es el menú con integración con CRM, asegurarse que se ha actualizado también el módulo CRM.
    • Si después del paso anterior sigue pasando abrir con el forms builder y recompilar las librerías pklibpnt.pll y pklibmenu.pll contra la base de datos del cliente, generar las plxs y copiar las plls y plxs recompiladas en L:\plls y L:\plxs
  • ORA-01436 al entrar en los programas. Quiere decir que hay menus que son padres de si mismos, hay que borrarlos:
    • DELETE FROM menus_perfiles WHERE cod_padre = codigo;
    • DELETE FROM menus_perfiles mp WHERE EXISTS (SELECT 1 FROM menus m WHERE m.codigo = mp.codigo_menus AND m.codigo = m.cod_padre);
    • DELETE FROM menus WHERE codigo = cod_padre;
  • Si después de actualizar entorno a algún usuario no le valida la password puede ser pensase que tiene una password de más de 10 caracteres, pero en versiones antiguas del entorno la password estaba limitada a 10 caracteres y como el usuario al escribirla veía únicamente * no se daba cuenta que se estaba truncando. Por ejemplo, si su password era 123456789012345, para entrar tiene que teclear únicamente los 1234567890. Más adelante cuando actualice versión completa recibirá un mantenimiento de usuarios en el que se puede introducir passwords de más de 10 caracteres.
  • Al pulsar en el botón “Soporte Edisa (www.edisa.com)” no hace nada: Meter en Parámetros generales del menú (programa U_MPRMEN) en el campo COMANDO_EJECUTA lo siguiente (cambiar <ruta> por el valor correspondiente, normalmente L:\): <ruta>\ejecuta.exe. También se podría indicar puesto por puesto modificando el archivo LIBRA6.INI la siguiente entrada: COMANDO_EJECUTA=<ruta>\ejecuta.exe
  • No compila la vista V_ARCHIVOS_ERP_BUSQUEDA. No está instalado Oracle Text. Hay que pasar la vista: @c:\temp\libra\sqls\workaround\v_archivos_erp_busqueda_no_oracle_text.sql
  • No compila el paquete PKENCRIPTA. Hay que dar permisos de ejecución sobre DBMS_CRYPTO: GRANT EXECUTE ON DBMS_CRYPTO TO <usuario>; (Ejemplo: GRANT EXECUTE ON DBMS_CRYPTO TO LIBRA;).