Download 1 - Comunidad de Madrid
Document related concepts
no text concepts found
Transcript
Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 IcmXVisorExcel Versión 1.3 Aplicación de ejemplo icmxvisorexcel OCT 2006 Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 1 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO ................................................................................................ 2 2 DESCRIPCIÓN DEL PROYECTO ................................................................................... 3 3 2.1 El ActiveX .......................................................................................................................... 3 2.2 El ejemplo .......................................................................................................................... 3 ENTORNO TECNOLÓGICO DEL SISTEMA .................................................................. 4 3.1 4 Entorno operativo ............................................................................................................. 4 DESCOMPOSICIÓN EN MÓDULOS ............................................................................... 2 4.1 Diagrama de clases ........................................................................................................... 2 4.2 Paquete icmxvisorexcel.controlador ............................................................................... 2 4.3 Paquete icmxvisorexcel. acciones................................................................................... 3 4.4 Paquete icmxvisorexcel. bean.......................................................................................... 3 4.5 Paquete icmxvisorexcel.modelo ...................................................................................... 4 4.6 Paquete icmxvisorexcel.util ............................................................................................. 5 5 FICHERO DE CONFIGURACIÓN ................................................................................... 5 6 JSP del ActiveX .............................................................................................................. 8 7 RESUMEN ....................................................................................................................... 9 7.1 Pasos a seguir para utilizar el ActiveX. ........................................................................... 9 Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 2 Ejemplo IcmXImpresorPDZ 2 FRAMEWORK JAVA 2.1 DESCRIPCIÓN DEL PROYECTO 2.1 El ActiveX El ActiveX IcmXVisorExcel permite fusión de datos en una hoja de cálculo de MS Excel. El ActiveX recoge a través de un parámetro propio el contenido en base 64 de un fichero zip, el cual contiene el/los ficheros/ dbf que contienen los datos, el fichero xls y un fichero de texto donde se le indican las opciones de fusión. Al fichero zip lo denominaremos fichero V2H, al fichero de texto lo denominaremos INI. El fichero INI, es un fichero de configuración que contiene información de los ficheros a imprimir, número de copias y tipo de ordenación. Un ejemplo de fichero INI: [General] Operacion=V Hoja=G3.XLS SolapaInicio=1 Tablas=60 [Tabla1] nombre=Tabla1.dbf localizacion=12![A,21] [Tabla2] nombre=Tabla2.dbf localizacion=2![B,21] [Tabla3] nombre=Tabla3.dbf localizacion=2![C,21] [Tabla4] nombre=Tabla4.dbf localizacion=2![D,21] [Tabla5] nombre=Tabla5.dbf localizacion=2![B,41] 2.2 El ejemplo El ejemplo suministrado es un proyecto Java donde se utiliza el ActiveX. Las plantillas de excel y los datos que se fusionan en ellas se encuentran almacenados en dos tablas de oracle: DATOS_AMORTIZACION y HOJAS_EXCEL Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 3 Ejemplo IcmXImpresorPDZ 3 FRAMEWORK JAVA 2.1 ENTORNO TECNOLÓGICO DEL SISTEMA 3.1 Entorno operativo Servidor de aplicaciones: oc4j El siguiente diagrama muestra la arquitectura del desarrollo: Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 4 Ejemplo IcmXImpresorPDZ 4 FRAMEWORK JAVA 2.1 DESCOMPOSICIÓN EN MÓDULOS La aplicación sigue el modelo de arquitectura MVC, utilizado en el framework 2.1. 4.1 Diagrama de clases A continuación se muestra el diagrama de clases. IcmXVisorExcel - Diagrama de Clases 4.2 Paquete icmxvisorexcel.controlador En este paquete se aloja la clase Controlador. Ésta clase se encarga de procesar todas las peticiones de los clientes de la aplicación. La clase Controlador hereda de la clase ControladorPublico, perteneciente a las librerías genéricas que constituyen la arquitectura proporcionada por ICM para el desarrollo de aplicaciones J2EE. Nombre: Controlador Funcionalidad: Procesa las peticiones de los clientes. Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 2 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 Métodos Nombre Tipo Definición Controlador Constructor Constructor por defecto 4.3 Paquete icmxvisorexcel. acciones En éste paquete se alojan las acciones TrataTRB y AbreActiveX. Nombre: TrataTRB Funcionalidad: Es la acción encargada de generar el fichero pdz. Para ello utiliza la clase sistemas.impresorpdz.GestorPDZ. Después carga una jsp que a su vez hace una petición a la acción AbreActiveX Jsp: blanca.jsp Métodos Nombre Tipo Definición TrataTRB Constructor Constructor por defecto procesar public String Método principal de la clase. Nombre: AbreActiveX Funcionalidad: La acción AbreActiveX se encarga de codificar el fichero V2H en base 64 y establecer el resto de atributos del bean ActiveXBean; éste bean se establecerá como parámetro a la jsp donde está incrustado el ActiveX. Jsp: AbreActiveX.jsp Métodos Nombre Tipo Definición AbreActiveX Constructor Constructor por defecto procesar public String Método principal de la clase. 4.4 Paquete icmxvisorexcel. bean En éste paquete se alojan los beans utilizados en la aplicación. Nombre: VarBean Descripción: Bean que contiene datos relativos al tipo de fusión que se va a realizar, lista de tablas dbf, nombre del ficher ini, nombre del fichero xls...Éste bean no se pasa como Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 3 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 parámetro a ninguna jsp, sino que se pasa parámetro entre las diferentes clases del ejemplo. Atributos Nombre codigo idamortizacion operacion numTablas nombreXLS nombreINI nombreDBF cadenaINI nombreV2H listaTablas Tipo String String String String String String String Definición Código de la plantilla excel en base de datos Código de los datos que se van a fusionar en la hoja. Tipo de operación (Visualizar, Imprimir) Número de tablas dbf que van a componer la fusión Nombre temporal del fichero xls Nombre temporal del fichero ini Nombre de la tabla dbf a utilizar. (En caso de que fuera más de una habría que utilizar un listaTablas) String Contenido del fichero INI. String Nombre del fichero V2H LinkedList Lista que contiene el nombre de las tablas dbf. Nombre: ActiveXBean Descripción: Bean que contiene la información de versión y url de descarga del activex así como el contenido del fichero v2h en base 64. Atributos Nombre codebase version nombreV2H v2hB64 Tipo String String String String Definición URL del fichero IcmXVisorExcel.cab Código de versión del fichero IcmXVisorExcel.cab Nombre del fichero V2H Contenido en base 64 del vichero V2H Nombre: TablasBean Descripción: Bean que contiene la información del nombre de cada dbf y su futura localización en el fichero XLS. Atributos Nombre nombreTabla localizacion Tipo String String Definición Nombre de la tabla dbf Celda desde donde se empiezan a pegar los registros 4.5 Paquete icmxvisorexcel.modelo Nombre: NucleoDAO Funcionalidad: La clase NucleoDAO, realiza las operaciones de descargar de Oracle, la plantilla excel y guardar en un dbf los datos a insertar en la misma. Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 4 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 Métodos Nombre Tipo generaDBF public void obtenerPlantillaXLS public byte[] Definición Descarga los datos de oracle a un dbf Descarga de oracle la plantilla XLS y la devuelve en un byte[] 4.6 Paquete icmxvisorexcel.util Nombre: MetodosSueltos Funcionalidad: La acción MetodosSueltos ofrece la funcionalidad de generar el fichero V2H y guardar en disco la plantilla XLS. Métodos Nombre generaINI generaV2H guardarFicheroHD 5 Tipo private void public void public void Definición Genera el fichero INI. Genera el fichero V2H Guarda la plantilla XLS en disco. FICHERO DE CONFIGURACIÓN ##################################################### # Grupo de variables constantes de una aplicacion # ##################################################### WEB_ROOT = http://icmweb01/icmxvisorexcel WEB_HOME = /usr/aplic_ICM/prod/web/home8049/icm/icmxvisorexcel/icmxvisorexcel CHARACTER-ENCODING = ISO-8859-1 IMG_ROOT = %WEB_ROOT%/images WEB_TEMP=/usr/aplic_ICM/prod/web/temp/pdf FICHERO_VISTAS = %WEB_HOME%/WEB-INF/conf/vistas.conf ############################ # Base de Datos # ############################ bd.url = jdbc:oracle:thin:@ICM21:1521:DENIVEL2 bd.usuario = usuario bd.clave = 009C4E09A412CF35 #Driver que va a usarse para crear las conexiones# bd.driver= oracle.jdbc.driver.OracleDriver #ATENCION! si se cambia el driver habra que poner las librerias necesarias en el ClassPath# ###################################### Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 5 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 #Configuracion del Pool de Conexiones# ###################################### bd.pool.minConexiones=1 bd.pool.maxConexiones=3 bd.pool.maxEncolados=50000 bd.pool.tiempoEsperaConexion=60000 bd.pool.recogerEstadisticas = false bd.pool.estadisticas.tempo=60000 bd.pool.estadisticas.directorioSnapshots=/usr/aplic_ICM/prod/web/temp/pdf bd.pool.estadisticas.urlSnapshots=http://icmweb01.icm.es/download bd.pool.timeout=300000 bd.pool.liberar=true ######################################################### # Variables de configuracion general de la aplicacion # ######################################################### aplicacion.nombre=IMPR aplicacion.paquete=icmxvisorexcel.acciones aplicacion.opcion.defecto=TrataHTML aplicacion.menu=/WEB-INF/conf/menu_aplicacion.xml aplicacion.usarMenu=true aplicacion.shutdown=true aplicacion.activeX.version=1,3,0,0 aplicacion.activeX.url=%WEB_ROOT%/ocx/IcmXVisorExcel.cab ################################################## # Variables para la descarga de ficheros # ################################################## aplicacion.directorio.temporal=/usr/aplic_ICM/prod/web/temp/pdf aplicacion.download=http://icmweb01.icm.es/pdf ######################################################## # Acciones comunes # ######################################################## ListaValoresJSP=sistemas.framework.acciones.comunes CalendarioJSP=sistemas.framework.acciones.comunes Menu=sistemas.framework.acciones.comunes MuestraMenuAplicacion=sistemas.framework.acciones.comunes TrataHTML=sistemas.framework.acciones.comunes EjecutaIdMenu=sistemas.framework.acciones.comunes ######################################################## # Definición del portal # ######################################################## portal.integrar = true portal.definicion = portal.xml portal.clase = sistemas.portal.generico.PortalGenerico portal.clasesNoIntegrables=ListaValores;Calendario ################################################### # Variables para la configuracion de las trazas # ################################################### Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 6 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 trazas.tipo=BRSLMET trazas.minNivel=1 trazas.grabarLog=true trazas.fichero.banned= trazas.maxCaracteres=500 trazas.capturarSalidaEstandar=false trazas.ficheroLog = /usr/aplic_ICM/prod/web/log/8049/icmxvisorexcel ################################################# # Variables para la definicion del calendario # ################################################# calendario.tabla.festivos=CATA_FESTIVOS calendario.color.festivo=bgcolor=#EBEBEB calendario.color.laborable=bgcolor=#FFBB33 calendario.color.hoy=bgcolor=#FFDD33 calendario.anno.inicio=1980 calendario.anno.fin=2010 Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 7 Ejemplo IcmXImpresorPDZ FRAMEWORK JAVA 2.1 6 JSP del ActiveX A continuación se muestra la jsp que contiene el ActiveX. En el fichero vistas.conf es necesario añadir la linea que asocia el valor que devuelve el método AbreActiveX.procesar() con la JSP: icmx_visorexcel = IcmXVisorExcel.jsp <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859"> <jsp:useBean id="actXBean" scope="request" class="icmxvisorexcel.bean.ActiveXBean" /> </head> <TITLE>Gestión de documentos</TITLE> <body bgcolor="#ffffff" scroll="no"> <TABLE border="0" alig="center" width="100%"> <TR> <TD align="center"> <OBJECT object classid="clsid:05A85BB2-B690-4A80-B88D-A3A07243F107" codebase="<%=actXBean.getCodebase()%>#version=<%=actXBean.getVersion()%>" id="coIcmXVisorExcel1" width=450 height=321 align=center hspace=0 vspace=0 > <PARAM NAME="URL" VALUE="<%=actXBean.getNombreV2H()%>"> <PARAM NAME="V2H_B64" VALUE="<%=actXBean.getV2hB64()%>"> </OBJECT> <SCRIPT> // comprobar OCX function EstaActiveXInstalado(){ esta = false; if(typeof(coIcmXVisorExcel1) == "object"){ if(coIcmXVisorExcel1.object != null){ esta = true; } } return esta; } // comprobar si está instanciado if (EstaActiveXInstalado() ){ document.coIcmXVisorExcel1.ComprobarDlls(); Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página 8 Servicio Web SSMS_WSl FRAMEWORK JAVA 2.1 document.coIcmXVisorExcel1.VisualizaExcel(); //window.close(); history.go(-2); } else { alert("No se ha podido descargar el componente ActiveX.\n\n" + "Si es la primera vez que le aparece este mensaje refresque la pantalla.\n" + "Si ya le ha aparecido más veces, por favor, notifique el error."); } </SCRIPT> </TD> </TR> </TABLE> <!--HR--> </body> </html> 7 RESUMEN 7.1 Pasos a seguir para utilizar el ActiveX. Añadir al proyecto Java una acción equivalente a TrataTRB.java y la acción AbreActiveX.java. Añadir los beans AbreActiveXBean, TablasBean y VarBean. Añadir al paquete modelo, la clase NucleoDAO.java Incluir en el fichero de configuración las variables: o o o aplicacion. activeX.version=1,3,0,0 aplicacion. activeX.url=%WEB_ROOT%/ocx/IcmXVisorExcel.cab aplicacion.directorio.temporal=/usr/aplic_ICM/prod/web/temp/pdf Incluir un directorio ocx con el fichero IcmXVisorExcel.cab al mismo nivel que el directorio WEB-INF. Incluir la página IcmXVisorExcel.jsp. Incluir en el fichero vistas.conf la linea icmx_visorexcel=IcmXVisorExcel.jsp Área de Integración y Arquitectura de Aplicaciones Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales Subdirección General de Desarrollo, Tecnología e Infraestructuras Página: 9