Oracle - Problema lectura Excel en Forms 11.1.2

   
Vista:

Problema lectura Excel en Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 18/01/2016 13:49:12
Hola a todos,

tengo una aplicación que lee datos de Excel para importarlas en Oracle Forms.

Esta aplicación está desplegada en varios servidores de aplicaciones dependiendo del cliente como por ejemplo:
- OAS 10.1.2.3.0
- Forms 11g (11.1.1) sobre Weblogic 10.3.3.0
- Forms 11g (11.1.2) sobre Weblogic 10.3.6.0

Para la interacción con Excel he utilizado la librería Webutil, con la versión correspondiente dependiendo de la versión de Forms utilizada.
- OAS 10.1.2.3.0: Jacob 1.0.6
- Forms 11g (11.1.1) sobre Weblogic 10.3.3.0: Jacob 1.10.1
- Forms 11g (11.1.2) sobre Weblogic 10.3.6.0: Jacob 1.14.3

Tanto en OAS 10.1.2.3.0 como en Forms 11g (11.1.1) sobre Weblogic 10.3.3.0 todo me funciona correctamente utilizando la instrucción
1
cell_value :=Client_OLE2.get_char_property(cell, 'Value');
siempre se lee el valor real escrito, no el que se muestre en Excel si tiene algún formato (alfanumérico, numérico, fecha,...)

Pero en el caso de Forms 11g (11.1.2) sobre Weblogic 10.3.6.0 tengo un problema de lectura de valor de celda ya que parece que internamente realiza algún tipo de conversión pues si en una celda con formato General tiene un número entero como por ejemplo el valor
1
15
el valor leído por Forms mediante Webutil es
1
15.0
, añade el .0 del final mientras que en los otros servidores de aplicaciones se lee correctamente.

También pasa lo mismo con las fechas ya que si la celda tiene el valor
1
10/10/2010
el valor leído por Forms mediante Webutil es
1
Sun Oct 10 00:00:00 CEST 2010
cuando en los otros servidores de aplicaciones el valor leído es
1
10/10/2010

En el caso de numéricos si utilizo la función
1
get_num_property
lee correctamente el contenido, excepto cuando es un decimal con entero 0 donde por ejemplo en lugar de leer 0.15 lee .15, pero es un mal menor.

He intentado buscar, sin éxito, alguna forma de obtener el tipo/formato de la celda para utilizar
1
get_char_property
o
1
get_num_property
pero no sé qué hacer por ejemplo con las fechas.

- Ha alguien le pasa lo mismo?
- Alguna idea de cómo arreglarlo?

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Excel Forms 11.1.2

Publicado por Rafael (177 intervenciones) el 18/01/2016 13:54:54
Puede ser debido a la configuracion regional del weblogic, lo tienes instalado sobre windows o sobre linux ???

Tienes que ver los parametros de configuracion regional como sea.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 18/01/2016 14:34:06
Hola Rafael,

muchas gracias por la respuesta tan rápida.

Utilizo Suse Linux como sistema operativo del servidor de aplicaciones

1
2
3
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 2

A continuación indico los valores configurados en el fichero de entorno asociado a la aplicación:

1
2
3
4
5
6
7
8
9
10
11
12
13
ORACLE_HOME: /home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1
ORACLE_INSTANCE: /home/oracle/app/oracle/product/11.1.2/Middleware/asinst_1
TNS_ADMIN: /home/oracle/app/oracle/product/11.1.2/Middleware/asinst_1/config
FORMS_PATH: /home/oracle/aplicacion/bin:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/forms:/home/oracle/app/oracle/product/11.1.2/Middleware/asinst_1/FormsComponent/forms
WEBUTIL_CONFIG: /home/oracle/app/oracle/product/11.1.2/Middleware/asinst_1/config/FormsComponent/forms/server/webutil.cfg
FORMS_RESTRICT_ENTER_QUERY: TRUE
CLASSPATH: /home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/forms/java/frmall.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/forms/j2ee/frmsrv.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/ldapjclnt11.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/debugger.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/ewt3.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/share.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/utj.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/zrclient.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/reports/jlib/rwrun.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/forms/java/frmwebutil.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jlib/start_dejvm.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/opmn/lib/optic.jar:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/jre/lib/rt.jar
PATH: /home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/bin:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/bin
LD_LIBRARY_PATH: /home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/lib:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/jre/lib/amd64:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/jre/lib/amd64/server:/home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/jre/lib/amd64/native_threads
LD_PRELOAD: /home/oracle/app/oracle/product/11.1.2/Middleware/Oracle_FRHome1/jdk/jre/lib/amd64/libjsig.so
NLS_LANG: SPANISH_SPAIN.WE8MSWIN1252
NLS_NUMERIC_CHARACTERS: .,
NLS_DATE_LANGUAGE: SPANISH

y el fichero webutil.cfg tiene el siguiente contenido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 1. Server Side Logging Options for logging errors and log messages
logging.file=/home/oracle/tmp/webutil.log
logging.enabled=TRUE
logging.errorsonly=FALSE
logging.connections=TRUE
 
# 2. Installation Options
install.syslib.location=/webutil
install.syslib.location.0.0=/webutil/win32
install.syslib.location.0.1=/webutil/win64
 
install.syslib.location.client.0.0=webutil\syslib\$(SERVERHOST)\win32
install.syslib.location.client.0.1=webutil\syslib\$(SERVERHOST)\win64
 
install.syslib.0.0.7.1=jacob-1.14.3-x86.dll|102400|1.14.3|true
install.syslib.0.1.7.1=jacob-1.14.3-x64.dll|117760|1.14.3|true
install.syslib.0.0.9.1=JNIsharedstubs.dll|45056|1.0|true
install.syslib.0.1.9.1=JNIsharedstubs.dll|58368|1.0|true
install.syslib.0.0.9.2=d2kwut60.dll|81920|1.0|true
install.syslib.0.1.9.2=d2kwut60.dll|102400|1.0|true
 
# 3. Upload / Download options
transfer.database.enabled=TRUE
transfer.appsrv.enabled=TRUE
transfer.appsrv.workAreaRoot=/home/oracle/tmp/webutil
transfer.appsrv.accessControl=TRUE
transfer.appsrv.read.1=/home/oracle/aplicacion/tmp/
transfer.appsrv.read.2=/home/oracle/tmp/webutil
transfer.appsrv.write.1=/home/oracle/aplicacion/tmp/
transfer.appsrv.write.2=/home/oracle/tmp/webutil
 
# 4. Others
BlockAllowHeartBeat=False

La única configuración que entiendo que puede afectar referente a números y fechas son los valores de las siguientes variables de sistema:

1
2
3
NLS_LANG: SPANISH_SPAIN.WE8MSWIN1252
NLS_NUMERIC_CHARACTERS: .,
NLS_DATE_LANGUAGE: SPANISH

pero que me funcionan correctamente para la aplicación en general.

Entiendo que la configuración regional del sistema operativo no debe afectar, no?

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Rafael (177 intervenciones) el 19/01/2016 08:56:08
El resto de tus servidores usan lo mismo ???

1
2
3
NLS_LANG: SPANISH_SPAIN.WE8MSWIN1252
NLS_NUMERIC_CHARACTERS: .,
NLS_DATE_LANGUAGE: SPANISH

Ahora dices usar la WebUtil puedes ver esta seccion de como configurar estos parametros para la aplicacion aqui
https://docs.oracle.com/cd/E15523_01/web.1111/e10240/basics.htm#FSDEP151
Seguramente estos parametros a pesar de ser variables de entorno no estan siendo asumidos al momento de hacer el despliegue de la aplicacion.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 19/01/2016 11:55:52
Aparte del indicado en el primer post y que no funciona tengo varios entornos y a continuación indico la configuración de ellos y si funciona o no:

OAS 10.1.2.3.0 (Funciona bien)
- BBDD
1
NLS_CHARACTERSET: UTF8
- Fichero entorno:
1
2
3
NLS_LANG: SPANISH_SPAIN.UTF8
NLS_NUMERIC_CHARACTERS: .,
NLS_LENGTH_SEMANTICS: CHAR

Oracle Forms 11.1.1 (Funciona bien)
- BBDD
1
NLS_NCHAR_CHARACTERSET: AL16UTF16
- Fichero de entorno
1
NLS_LANG: SPANISH_SPAIN.WE8ISO8859P1

Oracle Forms 11.1.2 (No funciona bien)
- BBDD
1
NLS_NCHAR_CHARACTERSET: AL16UTF16
- Fichero de entorno
1
NLS_LANG: SPANISH_SPAIN.WE8ISO8859P1

He probado con varios valores de NLS_LANG sin éxito.

Sobre los parámetros de WebUtil son los siguientes y se pasan correctamente a la página html

1
2
3
4
5
6
7
WebUtilArchive: frmwebutil.jar
WebUtilMaxTransferSize: 16384
WebUtilTrustInternal: true
WebUtilDispatchMonitorInterval: 5
WebUtilErrorMode: Alert
WebUtilLoggingDetail: normal
WebUtilLogging: on

A continuación indico los ficheros adjuntos:
- webutiljpi.htm: fichero utilizado para la aplicación
- webutilfinal.htm: fichero con la sustitución de los valores de los parámetros

Me parece más bien que es un problema de la versión de jacob utilizada. He probado con otras versiones de jacob.dll pero me da errores.

Nadie utiliza Excel con una versión 11.1.2 de Oracle Forms y se ha encontrado con estos problemas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 10/03/2016 17:36:43
Después de seguir investigando sigo teniendo el mismo problema.
No hay nadie que le pase lo mismo?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Lucciano (3 intervenciones) el 26/09/2016 13:40:19
Buenas, me he encontrado con el mismo problema luego de la migración de 10 oas a 11 wls y aun no encuentro ninguna solución.
De momento tuve que reemplazar la instrucción:

1
Recell_value :=Client_OLE2.get_char_property(cell, 'Value');

por

1
Recell_value :=Client_OLE2.get_char_property(cell, 'Text');

Es un paliativo hasta que encuentre como resolverlo pero no aparece nada.
Si ya diste con alguna solución me serviría que la compartas.

Muchas gracias y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 26/09/2016 14:39:26
Hola Lucciano,

en su día hice la misma pregunta en https://community.oracle.com y el día 14/09/2016 me preguntaron si lo había solucionado porque había una persona que le ocurría lo mismo. No sé si escribiste tú el post.
En dicho hilo, https://community.oracle.com/message/14025243, comento la respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Lucciano (3 intervenciones) el 26/09/2016 16:03:11
Hola Jordi, en mi caso tengo una PLL dentro del FORM llamada EXPORTAR_EXCEL, que incluye a la WEBUTIL para poder utilizar la función CLIENT_OLE2.OBJ_TYPE y así, poder interactuar con los objetos Ole, en este caso del Excel.

Si bien entiendo lo que hiciste tu fue eliminar el archivo JAR que llamaba a la DLL hecha en C y utilizar las mismas clases que ofrece la WEBUTIL de la versión 11.1.2?

Tendría que ver como aplicar tu solución a mi problema ya que mi librería si utiliza el ultimo jar de la webutil

Muchas gracias.
Lucciano.

PD: No fui yo el que posteo en MOS el problema similar, aunque hace tiempo que estoy buscándole una solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Jordi (7 intervenciones) el 27/09/2016 08:34:08
Hola Lucciano,

en mi caso tengo una aplicación desarrollada en Forms&Reports 6i, la cual se está ejecutando en OAS y en Weblogic.
El caso es que quise probar que con la nueva versión de java, la 8, la aplicación funcionaba correctamente.

Sin realizar ninguna modificación vi que al entrar en según qué pantallas me daba el error FRM-92091 y que era debido a unos java beans que tenían dichas pantallas. Entre esos java beans había uno para interactuar con Excel.
Para solucionar el problema me dediqué a sustituir las funciones de los java beans por funciones de Webutil.

Fue en ese momento cuando me di cuenta de que algunos datos del Excel no se leían bien.
Dándole vueltas volví a dejar el java bean de Excel y vi que las pantallas que mostraban el error funcionaban correctamente, por lo que el error que daba era por otro java bean, así que dejé el java bean de Excel.

En mi caso Forms interactúa con un java bean que a su vez utiliza una dll para interactuar con Excel.
Lo que comento en el post de Oracle es que se podría hacer que el java bean interactúe directamente con Excel sin la utilización de ninguna dll utilizando Apache POI por ejemplo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel Forms 11.1.2

Publicado por Lucciano (3 intervenciones) el 04/10/2016 19:31:55
Muchas gracias Jordi. Hare algunas pruebas mas entonces!!!
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar