25584313 Manual Generador Java

Embed Size (px)

Citation preview

Manual Generador JAVA

Enero, 2000

GENERADOR JAVA

GENEXUS

Copyright ARTech Consultores 1988-2000.Todos los derechos reservados. El presente documento no puede ser duplicado de ninguna forma sin el expreso consentimiento de ARTech Consultores SRL. La informacin contenida en este documento es para uso personal de lector. TRADEMARKS Todos los productos mencionados en este documento son propiedad de sus respectivos dueos.

1

GENERADOR JAVA

GENEXUS

Tabla de ContenidoINFORMACIN GENERAL SOBRE JAVA.............................................................................................. 8 INFORMACIN GENERAL SOBRE EL GENERADOR JAVA ........................................................... 10 IMPORTANTE................................................................................................................................................ 11 REQUERIMIENTOS DE HARDWARE.................................................................................................... 11 INSTALACIN Y CONFIGURACIN DEL SOFTWARE NECESARIO............................................ 12 SOFTWARE NECESARIO ................................................................................................................................ 12 Navegadores ........................................................................................................................................... 12 Java Development Kit Compiladores .................................................................................................. 12 Drivers JDBC ......................................................................................................................................... 12 Otros ....................................................................................................................................................... 12 INSTALACIN DE LOS SDKS/JDKS PARA JAVA ............................................................................................ 12 JDK de Sun ............................................................................................................................................. 12 SDK de Microsoft.................................................................................................................................... 13 Jikes de IBM ........................................................................................................................................... 13 INSTALACIN DEL SOFTWARE NECESARIO PARA ACCESO CLIENTE SERVIDOR ............................................... 13 JDBC/ODBC Bridge............................................................................................................................... 14 Informix Thin Driver............................................................................................................................... 15 Oracle Thin Driver ................................................................................................................................. 15 AS/400 JDBC Native Driver ................................................................................................................... 16 AS/400 Toolbox for Java ........................................................................................................................ 16 HiT JDBC/400 ........................................................................................................................................ 17 i-net Software.......................................................................................................................................... 17 Weblogic jdbcKona................................................................................................................................. 17 Merant DataDirect SequeLink Java Edition........................................................................................... 18 CONFIGURACIN TCP/IP DEL SQL SERVER ................................................................................................ 19 CONFIGURACIN DE LAS OPCIONES DE EJECUCIN DENTRO DE GENEXUS...................... 20 JAVA OPTIONS ............................................................................................................................................. 20 Platform .................................................................................................................................................. 20 EXECUTE SETTINGS ...................................................................................................................................... 21 Applet...................................................................................................................................................... 21 WEB BROWSER SETTINGS............................................................................................................................ 22 WEB PANEL EXECUTE SETTINGS ................................................................................................................. 22 COMPILER SETTINGS .................................................................................................................................... 22 Compiler path ......................................................................................................................................... 22 Make Path............................................................................................................................................... 22 Customize................................................................................................................................................ 22 Classpath ................................................................................................................................................ 23 EJECUCIN DESDE FUERA DE GENEXUS ....................................................................................................... 24 SDK de Microsoft.................................................................................................................................... 24 JDK de Sun ............................................................................................................................................. 24 EJECUCIN DENTRO DE UN WEB BROWSER .................................................................................................. 24 Como instalar automticamente la Mquina Virtual de Microsoft ........................................................ 25 SIGNIFICADO DE LAS PREFERENCES ................................................................................................ 26 REORGANIZE SERVER TABLES ..................................................................................................................... 26 JDBC LOG FILE ........................................................................................................................................... 26 MAXIMUM OPEN CURSORS PER CONNECTION ............................................................................................... 26 2

GENERADOR JAVA

GENEXUS

SMTP SERVER (FOR MAIL FUNCTIONS) ....................................................................................................... 27 ADDITIONAL JAVA CLASSES ........................................................................................................................ 27 JAVA PACKAGE NAME ................................................................................................................................. 27 GENERATE MAKEFILES ................................................................................................................................ 27 JDBC DRIVER ............................................................................................................................................. 28 DATABASE URL .......................................................................................................................................... 28 DATABASE NAME ........................................................................................................................................ 28 USER ID ....................................................................................................................................................... 28 USER PASSWORD ......................................................................................................................................... 28 LIST OF REMOTE PROGRAMS (JDBC) ........................................................................................................... 28 AS/400 SPECIFIC / LIBRARY LIST ................................................................................................................ 28 FIELD EXIT ................................................................................................................................................... 29 REFRESH KEY .............................................................................................................................................. 29 SHOW FORM ................................................................................................................................................ 29 DEFAULT USER INTERFACE .......................................................................................................................... 29 JFC LOOK & FEEL ....................................................................................................................................... 29 USE .GIFS INSTEAD OF .BMPS ..................................................................................................................... 30 CLICK TO SORT IN SUBFILE (WORKPANEL) ................................................................................................... 30 COLOR IN READ-ONLY FIELDS .................................................................................................................... 30 MANEJO DE LA INTERFAZ DE USUARIO ........................................................................................... 31 CONSIDERACIONES ACERCA DE WFC .......................................................................................................... 31 CONSIDERACIONES ACERCA DE JFC ............................................................................................................ 32 CONSIDERACIONES ACERCA DE AWT.......................................................................................................... 32 LLAMADAS A PROCEDIMIENTOS EXTERNOS ................................................................................. 33 LLAMADAS A PROCEDIMIENTOS JAVA NO GENERADOS POR GENEXUS ......................................................... 33 COMANDO JAVA ........................................................................................................................................ 35 PASAJE DE PARMETROS EXTERNOS ............................................................................................................ 35 LLAMADAS A PROGRAMAS EXTERNOS (STORED PROCEDURES)................................................................. 36 Ejecucin de procedimientos almacenados en el AS/400 utilizando mltiples generadores por modelo37 REORGANIZACIN................................................................................................................................... 37 ACTUALIZACIN DE LAS GXDB++ ...................................................................................................... 38 PASAJE DE ARRAYS COMO PARMETROS ...................................................................................... 38 IDENTIFICACION DE VERSIONES........................................................................................................ 38 REPORTES................................................................................................................................................... 39 WEBPANELS ............................................................................................................................................... 40 POR QUE WEB PANELS EN JAVA?............................................................................................................... 40 FUNCIONALIDAD ADICIONAL DISPONIBLE EN JAVA....................................................................................... 40 Compresin de pginas Web .................................................................................................................. 40 Manejo de sesiones ................................................................................................................................. 41 REQUERIMIENTOS ........................................................................................................................................ 41 PREFERENCES .............................................................................................................................................. 42 Servlet Directory..................................................................................................................................... 42 Images Directory .................................................................................................................................... 42 Auto compress web pages ....................................................................................................................... 42 Protocol specification ............................................................................................................................. 42 Subfile Transparency .............................................................................................................................. 43 Use Tables .............................................................................................................................................. 43 3

GENERADOR JAVA

GENEXUS

Include Tags ................................................................................................................ 43 Include standard header ......................................................................................................................... 44 Include standard footer........................................................................................................................... 44 CONSIDERACIONES ADICIONALES................................................................................................................. 44 CONFIGURACIN CON DIFERENTES ENTORNOS ............................................................................................. 45 JavaServer Web Development Kit 1.0..................................................................................................... 45 JRun ........................................................................................................................................................ 45 LIMITACIONES ACTUALES ............................................................................................................................ 48 EJECUCIN EN MULTIPLES CAPAS.................................................................................................... 49 DEFINICIN DE LOCATIONS .......................................................................................................................... 49 PREFERENCES .............................................................................................................................................. 49 Distributed Execution ............................................................................................................................. 49 GXDB++ Location ................................................................................................................................. 50 Automatic Remote Procedures Host ....................................................................................................... 50 Name Server Host ................................................................................................................................... 50 ORB Connection timeout (seconds) ........................................................................................................ 50 Application Server Log File.................................................................................................................... 50 Application Namespace .......................................................................................................................... 50 ARQUITECTURA DE LAS APLICACIONES DISTRIBUIDAS.................................................................................. 51 UTILIZACIN DE CORBA ............................................................................................................................ 51 CLASSPATH .................................................................................................................................................. 52 UTILIZACIN DE RMI................................................................................................................................... 53 SOPORTE PARA RMI CON SDK DE MICROSOFT ........................................................................................... 53 UTILIZACIN DE DCOM .............................................................................................................................. 54 CONFIGURACIN RECOMENDADA ................................................................................................................ 55 Ejecucin en Internet .............................................................................................................................. 55 Ejecucin en red local ............................................................................................................................ 55 INSTALACIN/EJECUCIN DEL SERVIDOR DE APLICACIONES ............................................... 56 INSTALACIN DEL SERVIDOR DE APLICACIONES .......................................................................................... 56 CONFIGURACIN DEL SERVIDOR DE APLICACIONES ..................................................................................... 56 EJECUCIN DEL SERVIDOR DE APLICACIONES DESDE LA LNEA DE COMANDOS ........................................... 67 CONNECTION POOLING ......................................................................................................................... 68 LDAP ............................................................................................................................................................. 71 PREFERENCES .............................................................................................................................................. 71 Autenticate users using LDAP - No/Yes................................................................................................. 71 LDAP URL.............................................................................................................................................. 71 LDAP Autentication Method................................................................................................................... 72 LDAP Principal Template....................................................................................................................... 72 Use LDAP user for userid('server')......................................................................................................... 72 Lista de valores de las preferences para diferentes servidores LDAP ................................................... 72 INSTALACIN AUTOMTICA DE APLICACIONES EN EL CLIENTE .......................................... 73 COMO OBTENER CERTIFICADOS DE PRUEBA ................................................................................................. 73 Netscape.................................................................................................................................................. 73 Internet Explorer..................................................................................................................................... 74 DEPLOYMENT WIZARD ................................................................................................................................ 75 Browser Deployment............................................................................................................................... 79 JAR Deployment ..................................................................................................................................... 85 IBM Win32 Native Java Compiler .......................................................................................................... 85 Transferencia de archivos....................................................................................................................... 87 EJECUCIN EN INTERNET A TRAVS DE PROXIES .......................................................................................... 87 4

GENERADOR JAVA

GENEXUS

Ejecucin con RMI ................................................................................................................................. 87 Ejecucin con DCOM............................................................................................................................. 88 Ejecucin con CORBA............................................................................................................................ 88 APPLICATION SERVER MONITOR....................................................................................................... 89 FUNCIONES DE EXCEL............................................................................................................................ 92 FUNCIONES DE MAIL............................................................................................................................... 95 FUNCIONES DE FTP .................................................................................................................................. 99 FUNCIONES DE TEXTO.......................................................................................................................... 100 ARCHIVOS ASCII DELIMITADOS................................................................................................................ 100 LECTURA DE ARCHIVOS ASCII DELIMITADOS ............................................................................................ 101 GRABACIN DE ARCHIVOS ASCII DELIMITADOS........................................................................................ 104 CONSIDERACIONES SOBRE LOS ARCHIVOS ASCII DELIMITADOS ................................................................ 107 DEVELOPER MENU ................................................................................................................................ 108 CONSIDERACIONES ESPECIALES DE LA VERSIN ACTUAL DEL GENERADOR ................ 109 CARACTERSTICAS QUE NO SON SOPORTADAS AN .................................................................................... 109 CARACTERSTICAS SOPORTADAS POR GENEXUS Y NO IMPLEMENTABLES EN JAVA .................................. 109 SOLUCIN A ERRORES COMUNES ............................................................................................................... 110 BUGS CONOCIDOS ...................................................................................................................................... 111 OTRAS CONSIDERACIONES ......................................................................................................................... 112 ANEXO I ..................................................................................................................................................... 115 DNDE OBTENER EL SOFTWARE NECESARIO?........................................................................................... 115 Navegadores ......................................................................................................................................... 115 Virtual Machine .................................................................................................................................... 115 Java Development Kits ......................................................................................................................... 115 Drivers JDBC ....................................................................................................................................... 115 Soporte para CORBA............................................................................................................................ 115 Soporte para RMI ................................................................................................................................. 115 Java Foundation Classes (JFC)............................................................................................................ 116 Web panels............................................................................................................................................ 116 Utilitarios.............................................................................................................................................. 116 LDAP .................................................................................................................................................... 116 EJECUCIN CON DCOM ............................................................................................................................ 116

5

GENERADOR JAVA

GENEXUS

6

GENERADOR JAVA

GENEXUS

Tabla de FigurasFigura 1: Dilogo de Opciones de Ejecucin.................................................................................................. 20 Figura 2: Formas de ejecucin application/applet........................................................................................ 21 Figura 3: Programa de Administracin del JRun ............................................................................................ 46 Figura 4: Configuracin JRun - JSE General Settings ................................................................................... 47 Figura 5: Configuracin JRun - Service Manager Settings ............................................................................. 48 Figura 6: Configuracin de DCOM ................................................................................................................ 54 Figura 7: Configuracin Servidor Aplicaciones GeneXus - General 1 ........................................................... 57 Figura 8: Configuracin Servidor Aplicaciones GeneXus - General 2 ........................................................... 59 Figura 9: Configuracin Servidor Aplicaciones GeneXus NT Service........................................................ 60 Figura 10: Configuracin Servidor Aplicaciones GeneXus - Namespaces ..................................................... 62 Figura 11: Namespace Configuration - General Information.......................................................................... 63 Figura 12: Namespace Configuration - Database Information........................................................................ 65 Figura 13: Namespace Configuration - Select Namespace ............................................................................. 66 Figura 14: Namespace Configuration - Pool Information ............................................................................... 66 Figura 15: GeneXus Deployment Wizard 1/4................................................................................................. 76 Figura 17: GeneXus Deployment Wizard 2/4................................................................................................. 77 Figura 19: GeneXus Deployment Wizard 3/4................................................................................................. 78 Figura 21: GeneXus Deployment Wizard 4/4................................................................................................. 79 Figura 23: Browser Deployment - Generacin del .CAB para IE................................................................... 80 Figura 25: Browser Deployment - DCOM Client Configuration .................................................................... 82 Figura 26: Browser Deployment - Generacin del .JAR para Netscape ......................................................... 83 Figura 27: Browser Deployment - Creacin de Paquetes................................................................................ 84 Figura 28: JAR Deployment ........................................................................................................................... 85 Figura 29: IBM Win32 Native Java Compiler ................................................................................................ 86 Figura 30: Transferencia de archivos.............................................................................................................. 87 Figura 31: Proxy Settings en Internet Explorer............................................................................................... 88 Figura 32: GeneXus Application Server Monitor ........................................................................................... 89 Figura 33: GX App. Monitor - Read-Only Pool Information.......................................................................... 90 Figura 34: GX App. Monitor - Read-Write Pool Information ........................................................................ 91 Figura 35: Developer Menu .......................................................................................................................... 108 Figura 36: "About" en el Dev. Menu ............................................................................................................ 109

7

GENERADOR JAVA

GENEXUS

INFORMACIN GENERAL SOBRE JAVAJava es un lenguaje creado por Sun Microsystems. Desde el punto de vista de los usuarios de GENEXUS, sus caractersticas mas importante son las siguientes:Interpretado El cdigo Java se escribe en fuentes con extensin .java, y se compila a clases con extensin .class. En tiempo de ejecucin se interpretan y ejecutan los .class. Portable

Para ejecutar una aplicacin Java es necesario tener una mquina virtual que interprete y ejecute el cdigo Java. Estas mquinas virtuales son las que traducen las instrucciones de los .class a las instrucciones nativas del sistema operativo. Existen mquinas virtuales para prcticamente todos lossistemas operativos. Es posible realizar llamadas a cdigo nativo de cada plataforma, lo que permite aprovechar las ventajas especficas de cada sistema operativo, pero le quita la portabilidad.

Orientado a ejecucin en Internet Las aplicaciones Java pueden ejecutarse de modo que el cdigo se va descargando de un servidor Web a medida que es necesario ejecutarlo. Esto tiene como ventaja que no se descarga mas cdigo que el necesario, y que la distribucin de las aplicaciones deja de ser un problema, ya que cambiando la aplicacin en el servidor, se actualizan para todos los clientes de forma automtica. Como contrapartida, cada .class se transfiere en una operacin de descarga independiente (en un requerimiento HTTP distinto), lo que implica una carga agregada importante. Para evitar esto se pueden instalar automticamente en el cliente las clases necesarias para ejecutar la aplicacin. Por otro lado, Java tiene en sus bibliotecas estndar, clases para utilizar TCP-IP de una forma sencilla, lo que simplifica la programacin de aplicaciones que utilicen Internet como medio de comunicacin, y clases para permitir la ejecucin distribuida de las aplicaciones. Seguro Las aplicaciones Java que se descargan de Internet, ejecutan en una caja que no les permite realizar diversas operaciones, como por ejemplo leer/escribir el disco duro del usuario. Esto da a los usuarios de aplicaciones Java la tranquilidad de que su mquina no corre ningn peligro Las diferentes versiones de Java en el mercado estn dadas por los Java Development Kit (JDKs). Los JDKs son especificados y desarrollados por Sun Microsystems, y portados a diferentes plataformas/navegadores. La versin 1.0 es la ms soportada por los navegadores, comenzando con Netscape 2.0 e Internet Explorer 3.0 La versin 1.1 incluye mejoras muy importantes para la realizacin de aplicaciones para empresas, fundamentalmente JDBC (Java Data Base Connectivity) que es el API para acceso a base de datos (el equivalente a ODBC en Windows), y RMI (Remote Method Invocation) que permite la ejecucin de aplicaciones distribuidas. Es soportado por Internet Explorer 4. Netscape soporta JDK 1.1 desde su versin 4.06. Las aplicaciones GeneXus requieren JDK 1.1 o superior para poder ejecutar.

8

GENERADOR JAVA

GENEXUS

La versin 2 (tambin conocida como 1.2) incluye un IDL (Interface Definition Language) para ejecutar aplicaciones distribuidas con CORBA, y las JFC (Java Foundation Classes) que son un conjunto de bibliotecas para interfaz grfica, adems de tener mejoras en casi todas las reas. Ningn navegador hasta la fecha soporta Java 2, pero es posible ejecutar las aplicaciones en los navegadores utilizando un producto de Sun que instala la mquina virtual de Sun (1.1 o 2) en cualquier navegador. Existen en el mercado diferentes implementaciones de Java Development Kits. Para Windows existen bsicamente 3: los de Sun, los de IBM y los de Microsoft. Para compilar/ejecutar las aplicaciones GeneXus es necesario tener alguno de los tres. El cdigo compilado con cualquier JDK es compatible con todas las mquinas virtuales, por lo que no es necesario compilar y ejecutar con el mismo JDK. Para obtener mas informacin sobre Java se pueden consultar las siguientes URLs: http://metalab.unc.edu/javafaq/ http://www.javasoft.com http://developer.javasoft.com : : : Caf au Lait - FAQs y noticias del mundo Java Pgina oficial de Java Java Developer Connection informacin para desarrolladores

9

GENERADOR JAVA

GENEXUS

INFORMACIN GENERAL SOBRE EL GENERADOR JAVAEsta versin del generador Java genera work panels, procedimientos, reportes, web panels y menubars. Las transacciones sern incorporados en una prxima versin del generador. No se van a generar Menes. A efectos de poder compilar las aplicaciones existentes sin problemas, se generan programas vacos para transacciones . El generador solo generar aplicaciones cliente-servidor (no habr una versin que genere programas con acceso a base de datos local como Access o DBFs). Las aplicaciones pueden generarse en 2 capas utilizando JDBC (el equivalente Java a ODBC) o en 3 capas utilizando CORBA, DCOM o RMI como protocolo de comunicacin entre las capas. Actualmente el generador ha sido probado con los drivers JDBC de Oracle (contra ORACLE), con el JDBCODBC bridge (ORACLE y DB2/400, no funciona con SQL Server), con el Borland DataGateway (ORACLE), el SequeLink de Merant (SQL Server, Oracle y DB2), el JDBC Weblogic (SQL Server e Informix) , los drivers de i-net para SQL Server y el AS400 Toolbox para DB2/400. Para el manejo de la interfaz de usuario existen 3 alternativas en el mundo Java. La primera, que es la nativa de Java y que est desde la primer versin es AWT (Abstract Windowing Toolkit). La segunda, son las Java Foundation Classes (JFC) que son un nuevo conjunto de clases que desarroll Sun Microsystems. La tercera, son las Windows Foundation Classes (WFC) que fueron desarrolladas por Microsoft y solo funcionan en plataformas Windows. Mas adelante se explicar el soporte del generador para estas clases. A la fecha, las aplicaciones generadas con el generador Java funcionan correctamente utilizando el JDK de Sun Microsystems, la mquina virtual del Internet Explorer 4 y el Netscape Navigator versin 4.06 o posterior. Es posible tambin usar la mquina virtual del IE4 con el IE3. El generador Java se apoya en las GXDB++ para realizar el acceso a la base de datos. Las GXDB++ son un conjunto de clases Java, generadas en tiempo de creacin/reorganizacin, que encapsulan los accesos a la base de datos y luego son utilizadas por los programas generados. En las siguientes versiones del generador tambin encapsular las frmulas y controles de integridad. Adicionalmente se publicar una especificacin de dichas clases para que puedan ser utilizadas independientemente de los programas generados por GENEXUS. Un detalle importante que se debe tomar en cuenta es que las GXDB++ deben estar sincronizadas con el modelo. O sea, si se modifica algo en diseo y luego se hace un copy model a un modelo de prototipo, las clases no quedan sincronizadas con este modelo. Es necesario realizar una reorganizacin (si se desea, puede utilizarse la preference Reorganize Server Tables = No). Las aplicaciones Java pueden ejecutarse de dos formas. Como applets o como applications. En el primer caso se ejecutan dentro de un web browser, los programas compilados java residen en el server y son bajados al cliente cuando este los necesita ejecutar, o bien se pueden instalar en el cliente utilizando un utilitario que se provee con el generador llamado Deployment Wizard. En el segundo caso, se ejecuta como una aplicacin independiente, y los programas compilados estn en el disco del cliente (o de algn file server al que pueda acceder). Es necesario tener la versin 6.0 patch 7 o posterior de GENEXUS para utilizar el generador. El generador Java genera programas fuente con nombres largos (de mas de 8 letras), por lo que el modelo debe crearse en una unidad de disco que soporte nombres largos.

10

GENERADOR JAVA

GENEXUS

Importante1. Si al correr el GXAUTHOR para solicitar la clave de autorizacin del generador, ste no aparece en la lista de generadores a seleccionar, ser necesario aplicar los patches #11 o #2 del Development Environment de GeneXus 6.0 o 6.1 respectivamente para poder obtener el cdigo. Esto se debe a que las versiones anteriores del generador no tienen proteccin, Si se est utilizando GeneXus 6.0 es necesario bajarse (de la pgina de download en http://www.artech.com.uy/betatest/abs_java.htm) algunos archivos (dlls60.zip) para poder utilizar el generador. Estos deben ser copiados al directorio de instalacin de GeneXus.. Si se instala una versin del generador en un equipo en que ya exista una versin anterior seguir las siguientes instrucciones, de lo contrario no se podr compilar ningn objeto con la versin nueva. 3.1. Es necesario realizar una creacin de la base de datos con Java, dado que luego de que sta se ejecuta correctamente se crean las clases de acceso a la base de datos (GXDB++) que los programas generados utilizan. Si no se desea crear la base de datos fsica, utilizar la preference Reorganize Server Tables = No. 3.2. Si se haba haba ejecutado una aplicacin GeneXus como applet desde el Internet Explorer, habr un conflicto entre las clases GeneXus que se instalan automticamente en el Internet Explorer al ejecutar un applet GeneXus y las clases que se distribuyen con la nueva versin. Para solucionar esto existen dos posibilidades. La primera es ir al directorio Windows\Downloaded Program Files, posicionarse sobre Genexus Java Standard Classes, presionar el botn derecho y seleccionar Remove. La otra opcin es generar algn objeto cualquiera, y antes de compilar ejecutarlo como applet. Probablemente la aplicacin no funcione correctamente, pero se actualizarn las clases standard GeneXus con las de la nueva versin del generador. 3.3. Si se gener una aplicacin, se cre un .cab con el Deployment Wizard, se ejecut como applet de modo que las clases se instalara en la mquina del usuario, y luego se quiere volver a generar/compilar el modelo correspondiente, el compilador encontrar dichas clases antes que las generadas por GeneXus. Es necesario removerlas del directorio "Downloaded Progam Files" antes de volver a trabajar con el modelo.

2.

3.

REQUERIMIENTOS DE HARDWAREPara utilizar las aplicaciones generadas, es necesario tener un mnimo de 32MB de RAM, recomendndose que se tengan 48MB o ms. Para compilar las aplicaciones, en caso de utilizar el SDK de Microsoft, se necesita un mnimo de 32MB de RAM. Para utilizar el JDK de Sun es necesario un mnimo de 48MB. El procesador en principio no es tan crtico como la memoria RAM, pero se recomienda utilizar al menos un Pentium de 133 para compilar/ejecutar las aplicaciones.

11

GENERADOR JAVA

GENEXUS

INSTALACIN Y CONFIGURACIN DEL SOFTWARE NECESARIOSoftware necesarioPara trabajar con el Generador Java es necesaria la instalacin y configuracin de Software que se describen a continuacin. Adems en el Anexo I de este documento se puede encontrar las direcciones en Internet de dnde poder obtenerlos.

NavegadoresNo es necesario tener ningn navegador para utilizar el generador Java,. Sin embargo, se recomienda tener ambos para probar el correcto funcionamiento de la aplicacin como applet. Netscape se soporta desde la versin 4.06 en adelante.

Java Development Kit CompiladoresPara la compilacin y ejecucin de los programas es necesario tener el JDK 1.1.8 o JDK 1.2.2 de Sun, el SDK 3.1 de Microsoft, el JDK 1.1.7B de IBM o posteriores. No es necesario tener todos los development kits, aunque es recomendable tener por lo menos el JDK 1.1.x de Sun y el SDK de Microsoft. El compilador de Microsoft es ms rpido que el de Sun, por lo que se puede utilizar dicho compilador y ejecutar en el ambiente de Sun. Actualmente, el JDK 1.1.8 es mucho mas estable que el JDK 1.2.2 de Sun, por lo que se recomienda utilizar el primero.

Drivers JDBCEl generador GeneXus Java solamente genera aplicaciones Cliente/Servidor. Por lo que es necesario contar con alguno de los DBMS soportados por GeneXus (en cualquiera de sus generadores Client/Server), que son los siguientes: DB2/400, DB2/Common Servers, Informix, Oracle y SQL Server. Dependiendo del DBMS y del tipo de acceso a la base de datos que se utilizar, puede ser necesario obtener uno u otro driver JDBC para el acceso al mismo.

Otros Protocolos de Comunicacin: soporte para RMI y CORBA Java Foundation Classes (JFC)

Instalacin de los SDKs/JDKs para JavaJDK de SunPara instalar el JDK de Sun, bajar la versin para Win32 del JDK del web site de Sun (ver Anexo I). Para la instalacin simplemente ejecutar EXE que se haya bajado y seguir las instrucciones.

12

GENERADOR JAVA

GENEXUS

SDK de MicrosoftHay dos formas de bajar el SDK de Microsoft, con un SDK Setup Wizard, que baja e instala los componentes automticamente, o bajar los ejecutables para luego instalarlos. Esta ultima opcin es la que se recomienda, dado que luego puede instalarse en otros equipos, o reinstalarse en el mismo equipo. La pgina en la que se puede bajar el SDK de esta manera es : http://www.microsoft.com/java/download Es necesario bajar los siguientes archivos: Microsoft SDK for Java, versin 3.2 Microsoft virtual machine for Java Se debe instalar primero el SDK y luego la virtual machine. La ltima versin liberada a la fecha es el build 3186 (5.0.0.3186). Se recomienda tener esta versin para el correcto funcionamiento de las aplicaciones generadas.. Es imprescindible la versin 5.0.0.3177 o posterior para usar las funciones de interfaz con Office (ver Anexo I).

Jikes de IBMPara instalar el compilador Jikes de IBM, bajar el archivo jikeswin.exe para Windows 95/NT del web site indicado en el Anexo I Para la instalacin simplemente ejecutar este EXE, el cual solicita el directorio en el cual se quiere dejar el compilador (jikes.exe) y documentacin (jikes.htm y license.htm). Por ejemplo se puede dejar en un directorio c:\jikes Para poder utilizar este compilador es necesario que est instalada alguna versin del JDK de Sun, dado que necesita las bibliotecas de clases de este. Este compilador se soporta porque es mas rpido que el compilador del JDK de Sun, y logra compilar algunos objetos GeneXus que no pueden compilarse con el compilador del SDK de Microsoft, dado que este ltimo cancela. Se han detectado problemas en llamadas a procedimientos con muchos parmetros (mas de 60).

Instalacin del software necesario para acceso cliente servidorLas aplicaciones generadas utiliza un API llamado JDBC para interactuar con la base de datos. Existen 4 tipos de driver JDBC: Tipo 1: el bridge JDBC-ODBC provee acceso al JDBC a travs de la mayora de los drivers ODBC. Notar que el cdigo binario de algunos ODBC, y en muchos casos el cdigo del cliente de la base de datos, debe ser cargado en la mquina de cada cliente que use el driver. Tiene como ventaja importante que se pueden utilizar los drivers ODBC existentes, pero la desventaja de que hay que instalarlos en cada mquina. De todos modos, si se opta por una arquitectura de 3 capas, donde el acceso a la base de datos no se hace en el cliente sino en el servidor de aplicaciones, puede ser una alternativa viable. Las implementaciones actuales de estos drivers no son muy fiables, por lo que no se recomienda su utilizacin en ambientes de produccin. Tipo 2: el driver native-API partly-Java convierte llamadas JDBC en llamadas en el API del cliente Oracle, Sybase, Informix, DB2, o cualquier otro DBMS. Notar que, igual que el bridge driver, este tipo de driver requiere que se cargue cdigo binario en la mquina de cada cliente. En teora sera el tipo de driver con mejor performance.

13

GENERADOR JAVA

GENEXUS

Tipo 3: el driver net-protocol all-Java traduce llamadas JDBC en un protocolo de red independiente del DBMS que es luego traducido por el server a un protocolo del DBMS. Este middleware de red del servidor es capaz de conectar todos los clientes Java a diferentes bases de datos. El protocolo especfico usado depende del proveedor. Para su utilizacin hay que instalar en un servidor un software que atiende las llamadas de los programas Java, y las traduce a una llamada nativa al DBMS. Si se instala este servidor en el mismo host donde ejecuta el web server, permite que los applets, que no pueden conectarse con otro host que no sea del que provienen, puedan conectarse a un DBMS que no est en el web server. Tipo 4: el driver native-protocol all-Java convierte llamadas JDBC directamente en el protocolo de red usado por el DBMS. Esto permite llamadas directas desde la maquina del cliente al servidor del DBMS y es una solucin practica para el acceso a Intranets. Dado que muchos de estos protocolos son propietarios, los proveedores de bases de datos son la principal fuente de este tipo de driver. A continuacin veremos como se configuran algunos drivers JDBC. Es importante destacar que ninguno de los drivers fue testeado a fondo, y que la mayora de los tests se hicieron utilizando Oracle, SQL Server y DB2/400. Para configurar estos drivers, muchas veces es necesario conocer el port tcp-ip en el que la base de datos est escuchando los requerimientos. En Windows NT, esta informacin se puede obtener en el archivo c:\winnt\system32\drivers\etc\services. Existe una pgina en Internet donde se puede consultar una lista de drivers JDBC disponibles, (ver en Anexo I)

JDBC/ODBC BridgeSi se utiliza el bridge JDBC/ODBC es necesario instalar los drivers ODBC para el DBMS correspondiente. No se puede utilizar el bridge JDBC/ODBC con una base de datos SQL Server. Hay que setear las siguientes preferences de la siguiente forma: JDBC Driver sun.jdbc.odbc.JdbcOdbcDriver o com.ms.jdbc.odbc.JdbcOdbcDriver jdbc:odbc:

Database URL

Como se observa, el nombre del JDBC comienza con sun, o con com.ms. Estos drivers funcionan solo en el JDK de Sun o el de Microsoft, respectivamente. De todos modos, si se usa uno de estos drivers, y se est ejecutando en la mquina virtual no correspondiente, la aplicacin GENEXUS utiliza el otro. O sea, si est configurado con sun.jdbc.odbc.JdbcOdbcDriver y se ejecuta en la maquina virtual de Microsoft, el programa GENEXUS automticamente utilizar el com.ms.jdbc.JdbcOdbcDriver, y viceversa. Si no se setea la preference JDBC Driver, asume que se quiere utilizar el JDBC/ODBC Bridge. No se recomienda usar este driver en produccin, dado que tiene varios problemas conocidos. Entre ellos, algunos relativos a su utilizacin desde mltiples threads (lo que lo hace peligroso de utilizar en el servidor de aplicaciones), y de conversin de datos (lo que se traduce en que a veces ocurren errores en tiempo de ejecucin del tipo invalid precision o invalid numeric length).

Acceso va ODBC a DB2/400.Para conectarse al AS/400 va ODBC es necesario configurar el Data Source directamente desde el ODBC. Adems de indicar el Nombre del Servidor al que se va a conectar y el usuario a utilizar se debe configurar: 14

GENERADOR JAVA

GENEXUS

En el Tab de Format, setear la opcin Naming Convention en System Naming Convention En el Tab de Performance (Rendimiento), deshabilitar el bloqueo de registros. En el mismo Tab, desmarcar el check sobre "Habilitar bsqueda previa durante ejecucin" (Enable prechecking during execute)

Si se ejecuta con JDK de Sun, no es necesario configurar el Data Source desde el dilogo ODBC, dado que pueden configurarse esos valores directamente en la preference Database URL del modelo de la siguiente manera; jdbc:odbc:;NAM=1;RECBLOCK=0;PREFETCH=0

Informix Thin DriverEs un driver de tipo 4. No necesita una configuracin especial en el cliente. Hay una versin para JDK 1.1.x y superiores, y otra solo para JDK 1.2.x. Hay que setear las siguientes preferences de la siguiente forma:

JDBC Driver Database URL

com.informix.jdbc.IfxDriver jdbc:informixsqli://:/:informixserver=

host = direccin IP del servidor. port = port en el que escucha el DBMS database = nombre de la base de datos server = nombre del servidor Por ejemplo: jdbc:informix-sqli://myhost:1526/mydb:informixserver=ol_myhost

Notas de instalacin:El producto se distribuye en un archivo llamado setup.class. Es necesario ejecutar este archivo con un intrprete Java, por ejemplo: java setup Se presentara un wizard de instalacin. Entre las cosas que pide: Serial nbr = INF#J123456 Key = ABCDEF Directorio destino = , por ejemplo c:\jdbc\informix Luego de instalado, en el directorio LIB habr un archivo ifxjdbc.jar que debe agregarse al CLASSPATH. java setup

Oracle Thin DriverEs un driver de tipo 4. No necesita una configuracin especial en el cliente. Hay que descomprimir el classes111.zip (el nombre de este archivo puede variar con su versin, ej: jdbco73.zip) que viene con el JDBC de Oracle en el directorio C:\JDK11\LIB\ORACLE (luego de la instalacin deben quedar dos directorios debajo del directorio Oracle, uno llamado jdbc y otro sqlnet).

15

GENERADOR JAVA

GENEXUS

Hay que setear las siguientes preferences de la siguiente forma:

JDBC Driver Database URL

oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@::

host = nombre o direccin IP del servidor. port = port en el que escucha el sqlnet, en general 1526, puede ser 1525 o 1521 instance = en general ORCL Por ejemplo: jdbc:oracle:thin:@myserver:1526:ORCL La versin 7.3.4 del driver, que es la primera que se ha liberado sin el carcter de Beta, tiene un problema que causa que si en GENEXUS se graba un valor con el NullValue de un campo Date, luego si se quiere recuperar el dato preguntando por campo = nullvalue(campo) no lo recupera. Esto es porque no es capaz de almacenar la fecha 01.01.0001 que es la que GENEXUS utiliza como NullValue del Date. Esto no ocurre si se usan los drivers SequeLink de Intersolv para Oracle.

AS/400 JDBC Native DriverEs un driver de tipo 2 que debe usarse para acceder a DB2/400 desde cdigo que se ejecuta en el AS/400. Se debe configurar de la siguiente forma: JDBC Driver Database URL com.ibm.db2.jdbc.app.DB2Driver jdbc:db2://systemName/library;

Por ejemplo: jdbc:db2://myas400/mylibrary El driver est incluido en el soporte para Java del AS/400 por lo que no es necesario agregar nada en el CLASSPATH.

AS/400 Toolbox for JavaEs un driver de tipo 4, se debe usar si se quiere acceder a DB2 desde equipos no AS/400. Se debe configurar de la siguiente forma: JDBC Driver Database URL com.ibm.as400.access.AS400JDBCDriver jdbc:as400://systemName/library

Por ejemplo: jdbc:as400://myas400/mylibrary Con el toolbox se distribuye un archivo llamado jt400.jar o jt400.zip que se debe poner en el CLASSPATH. Para poder utilizar el AS/400 Toolbox for Java, es necesario tener instalados algunos PTFs. La lista de PTFs necesarios est publicada en una pgina de IBM(ver la referencia en Anexo I).

16

GENERADOR JAVA

GENEXUS

HiT JDBC/400Es un driver de tipo 4, se debe usar si se quiere acceder a DB2 desde equipos no AS/400. Se debe configurar de la siguiente forma: JDBC Driver Database URL hit.as400.As400Driver jdbc:as400://;libraries=

Por ejemplo: jdbc:as400://myserver;libraries=mylib

Notas de instalacin :El producto se distribuye en un archivo llamado setup.class. Es necesario ejecutar dicho archivo con un intrprete Java, por ejemplo: jview setup En el directorio donde se instalen las clases, se crear un subdirectorio llamado hitjdbc400\jdk113. Este subdirectorio es el que debe estar en el classpath. Por ej, si se instala el driver en c:\hitas400, el classpath deber quedar apuntando a c:\hit400\hitjdbc400\jdk113

i-net SoftwareEste proveedor fabrica drivers de tipo 4 para SQL Server. Actualmente proveen un driver compatible con JDBC 1.x y otro compatible con JDBC 2.x. Se recomienda utilizar el compatible con JDBC 1.x Se debe configurar de la siguiente forma: JDBC Driver Database URL com.inet.tds.TdsDriver jdbc:inetdae::?database=

Por ejemplo: jdbc:inetdae:myserver:1433?database=test

Weblogic jdbcKonaEste proveedor fabrica drivers de tipo 2 y tipo 4. Se han probado los de tipo 4. Para SQL Server: JDBC Driver Database URL weblogic.jdbc.mssqlserver4.Driver jdbc:weblogic:mssqlserver4:@:

Por ejemplo: jdbc:weblogic:mssqlserver4:test@myserver:1433 Para Informix:

17

GENERADOR JAVA

GENEXUS

JDBC Driver Database URL

weblogic.jdbc.informix4.Driver jdbc:weblogic:informix4:@:

Por ejemplo: jdbc:weblogic:informix4:test@myserver:1526 La versin 3.11 de este driver tiene el mismo problema que el driver thin de Oracle para manejar los nullValues en las fechas de Genexus. Funciona bien si se usa el jdbc-odbc bridge con un driver ODBC de Informix.

Notas de instalacin :Al descomprimir el archivo .zip en el que se distribuye el driver para SQL Server, se crea una estructura de directorios como la siguiente: weblogic mssqlserver4 classes - weblogic connect utils com - examples En el classpath debe indicarse el directorio weblogic\mssqlserver4\classes, o sea, debe indicarse el directorio que tiene los subdirectorios weblogic, connect, utils y com. Para Informix es anlogo, con la diferencia que el directorio de segundo nivel no se llama mssqlserver4 sino informix4.

Merant DataDirect SequeLink Java EditionEs un driver de tipo 3, se ha probado con xito para SQLServer, Oracle y DB2. JDBC Driver : intersolv.jdbc.sequelink.SequeLinkDriver Database URL : Para SQL Server : jdbc:sequelink://:/[SqlServer];Database= Por ej: jdbc:sequelink://myserver:4006/[SqlServer];Database=test; Para Oracle : jdbc:sequelink://:port/[Oracle] Por ej: jdbc:sequelink://myserver:4003/[Oracle] Para DB2 Common Servers: jdbc:sequelink://r:4007/[DB2 on NT]database= Por ej: jdbc:sequelink://myserver:4007/[DB2 on NT]database=test Segn la documentacin del driver hay que poner un ';' antes de 'database', pero de esa forma no funciona. Es posible que se arregle para prximas versiones del driver, por lo que es posible que haya que poner el ';' antes de database. Si la plataforma donde ejecuta el DB2 es Unix, se debe poner "DB2 on Unix" en vez de "DB2 on NT"

18

GENERADOR JAVA

GENEXUS

Notas de instalacin :Como en todos los drivers de tipo 3, el producto consta de dos partes, una que debe instalarse en el cliente, y otra en el servidor. Al bajar el producto, se obtienen dos archivos, uno llamado setup.class que que es el correspondiente al cliente, y otro llamado slkntsrv.zip si se elige bajar el servidor para NT. Al bajar la parte del cliente hay dos opciones, una con weak encryption y otra con strong encryption. Se recomienda bajar la primera, a no ser que realmente sea necesario utilizar la segunda. Adicionalmente, si se desea bajar la versin con strong encryption hay que obtener una contrasea de activacin de un distribuidor de Merant. Para instalar las clases en el cliente, hay que ejecutar un intrprete de Java y pasarle como parmetro el archivo setup.class. Por ejemplo, si se tiene instalada la mquina virtual de Microsoft, hay que ejecutar jview setup. Si se tiene instalada la mquina virtual de Sun, hay que ejecutar java setup. Esto iniciar un programa de instalacin en el que debe ingresarse una password que se obtiene en la misma pgina web en la que se baja el software. Una vez instalado el software, en el subdirectorio driver\classes del directorio de instalacin habr un archivo slje.jar, que hay que incluir en el classpath (en el del cliente si se ejecuta en 2 capas, o en el del servidor de aplicaciones si se ejecuta en 3 capas). Para instalar las clases del servidor, ejecutar el programa de instalacin y seguir las instrucciones. Debe ser instalado en el servidor donde est el DBMS que se desea acceder.

Configuracin TCP/IP del SQL ServerPara utilizar SQL Server desde Java debe configurarse el SQL Server de modo de que acepte conexiones TCP/IP. Para habilitar el protocolo TCP/P se deben seguir los siguientes pasos: Microsoft SQL Server 6.5: En el grupo de programas de SQL Server, ejecutar SQL Setup. En los dos primeros dilogos presionar el botn Continue. En el tercer dilogo, seleccionar Change Network Support. Seleccionar la opcin TCP/IP y presionar el botn Ok En el siguiente dialogo ingresar el port TCP/IP en que quiere que el SQL Server reciba las llamadas (el valor por defecto es 1433). Microsoft SQL Server 7.0: En el grupo de programas de SQL Server, ejecutar SQL Server Network Utility. En la hoja de propiedades General presionar el botn Add Seleccionar la opcin TCP/IP que est debajo de Network libraries Ingresar el port TCP/IP Para asegurarse de que el servidor est escuchando en un servidor/puerto especfico, ejecutar: telnet Si la conexin es denegada, entonces el servidor o el puerto son incorrectos.

19

GENERADOR JAVA

GENEXUS

CONFIGURACIN DE LAS OPCIONES DE EJECUCIN DENTRO DE GENEXUSA continuacin describiremos el significado de las diferentes secciones del dilogo de opciones de ejecucin (ver Figura 1).

Figura 1: Dilogo de Opciones de Ejecucin

Java OptionsPlatformEl dilogo de ejecucin provee la posibilidad de configurar varios ambientes de ejecucin de las aplicaciones Java. Actualmente permite almacenar una configuracin para ejecutar y compilar aplicaciones en: Microsoft Sun JDK 1.1.x Sun JDK 1.2.x IBMs Jikes Compiler Para ejecutar en el ambiente de Microsoft y con el compilador Jikes es necesario utilizar un programa de make. En el dilogo de opciones de ejecucin se permite elegir cual programa de make se quiere utilizar . Se recomienda utilizar el NMAKE, que se distribuye con el SDK de Microsoft para Java.

20

GENERADOR JAVA

GENEXUS

En algunos casos el cdigo generado por la versin actual del compilador de Sun no ejecuta correctamente en el ambiente de Microsoft. El cdigo generado por el compilador de Microsoft ejecuta correctamente en ambos ambientes, por lo que si se quiere que la aplicacin ejecute en ambos ambientes se recomienda utilizar el compilador de Microsoft. En el ambiente de Microsoft, es posible habilitar y deshabilitar el compilador JIT. Hay que tenerlo habilitado (esto se configura en las opciones del Internet Explorer: Advanced/ Java JIT Compiler - Enabled) para que funcione correctamente la compilacin. El compilador de Microsoft es, a la fecha, el mas rpido de todos, seguido por el compilador de IBM y luego el de Sun. En algunos casos, el compilador de Microsoft cancela con un Internal Error (por ejemplo en algunos procedimientos con mas de 50 parmetros). En esos casos, se debe utilizar alguno de los otros dos compiladores.

Execute settingsEn esta seccin se permite elegir si se quiere ejecutar la aplicacin como application o como applet. Application Si se selecciona Application, tal como est seleccionado en el dilogo que se mostr anteriormente, se solicita el path del intrprete. Si se selecciona el ambiente de Microsoft, se pueden poner como intrpretes el JVIEW.EXE y el WJVIEW.EXE. La diferencia entre ambos es que el primero abre una ventana DOS antes de ejecutar la aplicacin, y el segundo no. Aunque queda estticamente mejor que se no se abra la ventana DOS, a veces es necesario hacerlo para poder ver algn mensaje de error. Si se selecciona el ambiente de Sun, las opciones correspondientes son JAVA.EXE y JAVAW.EXE.

AppletSi se selecciona Applet, el dilogo de ejecucin cambia (ver Figura 2) deshabilitando la especificacin del path del intrprete y habilitando las opciones del Web Server.

Figura 2: Formas de ejecucin application/applet Si se selecciona Use Web Server, el navegador utilizar la URL indicada en Web Server Root como base para la ejecucin de las aplicaciones. Esto permite ejecutar el applet en un ambiente ms similar al que lo van a ejecutar los usuarios finales. No se pueden ejecutar reorganizaciones con esta configuracin.

21

GENERADOR JAVA

GENEXUS

Web Browser SettingsSi se marca la opcin Use Default Browser, se ejecutarn los applets utilizando el browser que se tenga por defecto en el sistema. Si no se marca dicha opcin, se puede ingresar el path del browser a utilizar. Adicionalmente, los JDK/SDK incluyen un programa llamado appletviewer que permite ejecutar applets. Por mas informacin sobre que hacer para ejecutar las aplicaciones como applet ver la seccin Ejecucin dentro de un web browser.

Web Panel Execute SettingsEn esta seccin se permite especificar en Web Server Root la URL que el navegador utilizar como base para la ejecucin de los Web Panels.

Compiler settingsCompiler pathSe especifica la ubicacin del compilador Java a utilizar. Para el JDK de Sun el compilador se llama javac.exe y para el de SDK Microsoft jvc.exe. Ambos compiladores estn ubicados en el subdirectorio BIN del directorio donde se instal el JDK/SDK. Para el Jikes de IBM el compilador se llama jikes.exe y se encuentre en el directorio donde este se haya instalado. Normalemente se instala en el directorio jikes.

Make PathPara compilar aplicaciones utilizando el compilador de Microsoft es necesario la utilizacin de un programa de make. Aqu se selecciona cual programa de make se desea usar. Con el SDK de Microsoft se distribuye uno llamado NMAKE, que es el que se recomienda usar. Para la opcin de compilar con el JDK de Sun usando un makefile se puede utilizar el que provee el SDK de Microsoft. Si no se desea utilizar dicho programa de make, puede utilizarse uno que provee en forma gratuita la compaa Cygnus: http://www.cygnus.com/misc/gnu-win32/ Se debe bajar el programa CDK.EXE e instalarlo. Entre otras utilidades se instalar un programa de Make. Es posible que funcione bien con cualquier otro programa de make. Para la opcin de compilar con el Jikes de IBM se sugiere utilizar el que provee el SDK de Microsoft.

CustomizeAqu se pueden especificar parmetros adicionales que se deseen pasar al compilador.

22

GENERADOR JAVA

GENEXUS

Para compilar con el JDK de Sun se recomienda usar el parmetro O que activa la optimizacin de cdigo. Para el SDK de Microsoft, el parmetro /O hace lo mismo. Shared Settings

ClasspathUbicacin de las clases Java necesarias para la ejecucin. El configurar mal esta opcin es la principal razn por la que no compilen/ejecuten los programas generados. El classpath tiene varias partes: 1. Debe indicarse donde estn las clases de soporte del lenguaje java. Las clases en general se agrupan en un nico archivo .ZIP o .JAR. Para las versiones anteriores a la 1.2 del JDK de Sun estn en \\lib\classes.zip. Para el SDK de Microsoft y para el JDK 1.2 de Sun, no es necesario configurar este valor, dado que sabe donde encontrar sus clases de soporte. Debe indicarse donde estn las clases de soporte de GENEXUS. Estas clases se copian al directorio del modelo, y estn en un archivo llamado gxclassr.zip. Debe indicarse el path actual, o sea . Debe agregarse cualquier otro lugar en donde hayan clases que se deseen utilizar. En particular, el lugar donde estn los drivers JDBC a utilizar, o las clases CORBA del producto que se est utilizando. Los drivers JDBC a veces no se distribuyen compactados sino en una estructura de directorios, y en ese caso no se debe poner el .ZIP sino el directorio donde empieza la jerarqua de clases (consultar la documentacin de cada driver JDBC).

2.

3. 4.

Por ejemplo: JDK de Sun: d:\jdk11\lib\classes.zip;gxclassr.zip;.; o d:\jdk11\lib\classes.zip;gxclassr.zip;d:\oracledriver\classes111.zip;.; En el ltimo ejemplo se incluyen los drivers JDBC que estn en el archivo classes111.zip del directorio oracledriver. SDK de Microsoft o JDK 1.2 de Sun gxclassr.zip;d:\oracledriver\classes111.zip;.; En caso de haber algo incorrecto con el seteo del class path se obtendr al ejecutar un mensaje del estilo, cant find class xxxxx, donde xxxxx es el nombre de una clase valida para ser ejecutada, es decir esta disponible el xxxx.class e implementa la funcin externa main. Por el mismo motivo al compilar obtendremos un error del estilo: Package com.GENEXUS not found in import. y/o Superclass GXReorganization of class Reorganization not found. En caso de que se ejecute en Windows 95 puede dar el mensaje out of environment space. Si es as hay que agrandar el espacio de environment para ejecutar con esta opcin. Para esto, modificar el config.sys de modo que quede de la siguiente forma: Shell= /p /e: 23

GENERADOR JAVA

GENEXUS

El path del command.com es en general c:\windows\command.com. El tamao del environment depende de la cantidad de variables de entorno que se tengan. Si no hay ningn valor en el config.sys probar con /e:2048 funciona bien. Si hay algn valor, aumentarlo hasta que funcione bien.

Ejecucin desde fuera de GENEXUSPara ejecutar las aplicaciones generadas desde fuera del ambiente, hay que : Setear la variable de entorno CLASSPATH, tal como se setea cuando se ejecuta dentro de GENEXUS. Agregar al path el directorio donde se encuentre el intrprete, y el compilador Java que se desee usar.

SDK de Microsoft Para compilar es necesario setear la variable de ambiente JAVAC al lugar donde est el compilador Java: SET JAVAC=C:\SDK3.2\BIN\JVC.EXE Para compilar, hay que ejecutar el comando: NMake f .mak Para ejecutar, se debe poner JVIEW Reorganizacin: El programa de la reorganizacin es Reorganization.java. Se debe compilar usando JVC Reorganization y luego ejecutarlo con Jview Reorganization. Luego de ejecutarla, realizar el copy model para actualizar el modelo.

JDK de Sun Para compilar : si se utiliza el JDK 1.1 se debe ejecutar: javac depend .java si se utiliza JDK 1.2 se debe ejecutar: javac .java Para ejecutar, JAVA Para compilar una reorganizacin es necesario ejecutar JAVAC depend Reorganization.java Reorganizacin: Se debe compilar usando JAVAC Reorganization (agregando el parmetro -depend segn la versin del JDK) y luego ejecutarlo con JAVA Reorganization. Luego de ejecutarla, realizar el copy model, para actualizar el modelo.

Es posible compilar con un ambiente y ejecutar en el otro. Por informacin de como pasar parmetros a los programas GeneXus desde la lnea de comandos ver en la seccin 'Pasaje de parmetros externos'.

Ejecucin dentro de un web browserEl generador genera por cada objeto GeneXus main un archivo HTML que invoca a la aplicacin generada.

24

GENERADOR JAVA

GENEXUS

El CLASSPATH seteado en execution settings se ignora cuando ejecutamos en el browser, por lo que es necesario configurar correctamente el valor de la preference Additional Java Classes, tal como se explica en la Seccin Significado de las Preferences/Additional Java Classes. Adems hay que copiar al directorio donde se instalar la aplicacin en el Web Server los siguientes archivos: En el caso de que se haya utilizado el Deployment Wizard, los archivos .cab, .jar y .html generados Estos archivos los transfiere automticamente el Deployment Wizard En caso de que no se haya utilizado el Deployment Wizard, todos los *.class y *.htm y el archivo gxclassr.zip del directorio del modelo Archivos gxclassm.cab y gxclassn.jar que contienen las clases GeneXus. Estos archivos los transfiere automticamente el Deployment Wizard En casode que no se hayan agregado los archivos de imgenes al .cab/.jar creado en el deployment wizard, estos archivos (*.bmp, *.jpg, *.gif) Archivo client.cfg Este archivo lo transfiere automticamente el Deployment Wizard Si la aplicacin se va a ejecutar en 2 capas, hay que copiar los drivers JDBC. Si estan dentro de un .zip, copiar el .zip y agregarlos en la preference 'Additional Java Classes'. Si estn descomprimidos, copiar la estructura de directorios de modo que queden en un subdirectorio del directorio donde reside el web server.

Para ejecutar las aplicaciones Java es necesario tener Netscape 4.06 o posterior, o Microsoft Internet Explorer 4 o superior con la mquina virtual 5.0.0.3177 o superior (ver en Anexo I dnde obtenerla).

Como instalar automticamente la Mquina Virtual de MicrosoftSi se desea asegurar que el cliente tiene la ltima versin de la mquina virtual de Microsoft, se debe agregar lo siguiente al archivo .htm o .html que se vaya a utilizar como entrada a la aplicacin: por ejemplo, si se requiere que el cliente tenga la versin build 3167: Al ingresar a la pgina, si la versin que tiene instalada el usuario es menor a la requerida, se le solicitar autorizacin para instalar la nueva versin. En este ejemplo, el msjavx86.exe debe estar en el mismo directorio que el .htm. Si se desea, se puede poner una URL completa: En http://www.microsoft.com/java/download/msjav86.exe siempre se encuentra la ltima versin de la VM, por lo que se puede utilizar dicha URL.

25

GENERADOR JAVA

GENEXUS

El Deployment Wizard permite incluir este tag html automticamente en el .html que se genera para la instalacin de la aplicacin.

SIGNIFICADO DE LAS PREFERENCESA continuacin se detallar el significado de las preferences especficas de Java, o que tienen un comportamiento particular. Las preferences relativas a la ejecucin distribuda asi como las relativas a Web Panels se explicarn en la seccin correspondiente.

Reorganize Server TablesEn todos los generadores C/S existe esta preference, que lo que hace es decirle al especificador que no es necesario generar informacin de reorganizacin para la tablas del servidor (los valores posibles son Yes/No). En el caso de Java, tiene un significado algo distinto, dado que aunque no se actualicen las tablas del servidor, deben actualizarse las GXDB++ del cliente. Por esta razn el especificador actuar como si fuera a crear las tablas, y el programa de reorganizacin no efectuar las operaciones en el servidor pero actualizar las GXDB++. No ser necesario conectarse al servidor para realizar dicha operacin. Es decir, se debe setear la preference en No si se tiene otro modelo que administra las tablas para que la reorganizaciones se hagan solo una vez.

JDBC Log FileEsta opcin se puede utilizar para debugging de problemas con el DBMS o con el driver JDBC. En caso de que est vaca, no se generar ningn tipo de log. Si se pone un nombre de archivo, en dicho archivo se generar un log con las operaciones JDBC realizadas. Por ahora existe un solo nivel de trace. Para que el log funcione efectivamente se deben utilizar las clases de debug, que estn contenidas en el archivo gxclassd.zip, por lo que se debe cambiar el classpath de las preferencias de ejecucin, de modo que en vez de gxclassr.zip diga gxclassd.zip.

Maximum open cursors per connectionUno de los costos mas importantes en las operaciones JDBC es el de preparar las sentencias SQL. La preparacin incluye la compilacin y validacin de la sintaxis de dicha sentencia por parte del servidor. Los programas generados para Java realizan un manejo inteligente de los cursores abiertos, de modo de que no vuelven a preparar cursores que ya fueron preparados. Para eso mantienen un pool de cursores preparados, que tiene un tamao por defecto de 100 cursores. Si se desea cambiar este nmero, se puede cambiar el valor de esta preference. En caso de que se estn ejecutando las GXDB en el servidor, este nmero de cursores abiertos se mantendr por cada cliente que se conecte al servidor de aplicaciones (verla seccin de ejecucin en mltiples capas mas adelante). Esta preference tambin es utilizada por el esquema de connection pooling (ver la seccin sobre Connection Pooling).

26

GENERADOR JAVA

GENEXUS

SMTP Server (for mail functions)En el generador se implementaron las funciones de mail. Los mails se envan por el protocolo SMTP (no se soporta utilizar MAPI), y para poder hacerlo es necesario especificar que servidor de SMTP se va a utilizar. En caso de que no se especifique ninguno y se est ejecutando la aplicacin como un applet, se intentar utilizar el mismo servidor que cumple las funciones de servidor de web. Por mas informacin sobre el funcionamiento de las funciones de mail, ver la seccin especfica sobre el tema.

Additional Java ClassesEn el .HTM que se genera para cada objeto main, se especifica que las clases GENEXUS las debe ir a buscar a un archivo gxclassr.zip, que se copia al directorio del modelo. Este archivo tiene las clases compiladas sin informacin de debug y comprimidas, de forma que es el que se debe usar para el web. En caso de que se utilice algn driver JDBC que se distribuya en un .ZIP, debe agregarse dicho archivo en esta lista. Si se quiere agregar mas de uno, separarlos por ,.

Java Package NameEsta preference indica al generador en que package Java se quieren generar los programas. Esto es necesario especificarlo cuando se quiere instalar aplicaciones en los navegadores de los usuarios finales. La idea es que si dos proveedores distintos quieren instalar clases Java en la mquina de un usuario final, las clases tienen que tener nombres distintos. La forma de asegurar esto es mediante los Packages. En general, los packages tienen un nombre de la forma: .., por ejemplo com.artech.siscli. Si se especifica un package, los programs fuente sern generados en un subdirectorio del directorio del modelo que refleje el nombre del package. Por ejemplo, en el caso anterior, los fuentes se generarn en el directorio com\artech\siscli del directorio del modelo. La compilacin y ejecucin toman en cuenta el valor de esta preference, por lo que es transparente para el usuario GeneXus. Tambin es tomado en cuenta para generar el .HTM que se utiliza para llamar a la aplicacin como applet.

Generate MakefilesPor defecto, cuando el generador termina de generar los objetos, recalcula todos los makefiles que se deben regenerar y los genera. Los makefiles a regenerar son los correspondientes a los objetos main en cuyo rbol de llamadas estn los objetos generados. Adems, luego de generar los makefiles de cada objeto main, se genera un makefile para el Developer Menu que permite que se compilen todos los objetos del modelo. En modelos muy grandes, tanto el clculo de los makefiles a regenerar como la generacin de los mismos puede demorar un tiempo considerable (un par de minutos). Para evitar este problema, se puede utilizar esta preference. Si se le pone el valor No, no regenera los makefiles al final de la generacin. Obviamente en algunos casos es necesario regenerar los makefiles. Por ejemplo, si se agrega un objeto al modelo, o si agrega un call a un objeto que no estaba en el arbol de llamadas de los mains del objeto al que se agrega el call, o si se marca un objeto como main. En estos casos, se debe poner la preference en el valor Yes para que se vuelvan a regenerar los makefiles.

27

GENERADOR JAVA

GENEXUS

Tampoco es necesario generar los makefiles si se utiliza un compilador que no utliza un comando MAKE para compilar. En general es recomendable tener esta preference en el valor por defecto ("Yes").

JDBC DriverAqu se debe poner el nombre del driver JDBC. Es case sensitive. La sintaxis de este setting para diferentes drivers fue descripta anteriormente en el detalle del uso de cada driver JDBC en la seccin Instalacin del Software necesario para acceso Cliente Servidor.. Si no se indica ningn valor en esta preference, se asume que se quiere utilizar el JDBC/ODBC Bridge.

Database URLAqu se debe poner la URL de la base de datos. Es case sensitive. La sintaxis de este setting para diferentes drivers fue descripta anteriormente en el detalle del uso de cada driver JDBC en la seccin Instalacin del Software necesario para acceso Cliente Servidor.

Database NameEn caso de conectarse a un AS/400 aqui se debe poner el nombre de la biblioteca.

User IdIdentificacin del usuario para conectarse a la base de datos. Si se especifica un valor para esta preference no se solicitar el dialogo de login y se conectar directamente. Es importante tener en cuenta que es posible decompilar un fuente java para ver el valor de esta preference, por lo que debe utilizarse prudentemente.

User PasswordContrasea del usuario para conectarse a la base de datos. En caso de que la conexin se haga en dos capas, directamente desde el cliente, esta contrasea se guardar en el archivo client.cfg, que es accesible por el cliente, por lo que presenta un riesgo de seguridad. Si la conexin es en tres capas,. o sea, a travs de un servidor de aplicaciones, la contrasea se encuentra en el server.cfg, y su valor no es accesible por el cliente.

List of remote programs (JDBC)Esta preference permite especificar una lista de programas almacenados en la base de datos (stored procedures). Se deben especificar los nombres de los programas separados por espacios. Cuando el generador encuentra un call a un programa incluido en la lista, hace un call va JDBC en vez de hacer un call normal. Si se est ejecutando en 3 capas, el call al programa almacenado se hace desde el servidor de aplicaciones, dado que no hay conexin directa entre el cliente y la base de datos.

AS/400 Specific / Library ListAqu se debe especificar la lista de bibliotecas del AS/400. Si se especifica algn valor, se debe agregar siempre *LIBL, para no perder la lista de bibliotecas del usuario.

28

GENERADOR JAVA

GENEXUS

Field exitIndica la forma como se interpretan las teclas para navegar entre los diferentes controles de la pantalla. Los valores posibles son: Tab, Shift-Tab Si se selecciona este valor, para navegar por los controles se usan las teclas Tab y Shift+Tab, y para confirmar un nivel o ejecutar el evento Enter de un Work panel, se presiona la tecla Enter. Enter, Down Arrow, Up Arrow, Tab, Shift-Tab Si se selecciona este valor, con la tecla Enter se pasa al siguiente campo, menos en los botones que se ejecuta el evento asociado. Con las flechas se puede navegar por los controles,. Adicionalmente funciona el Tab y el Shift Tab para pasar al control siguiente/anterior. "+" Key, Down Arrow, Up Arrow, Tab, Shift-Tab El comportamiento es anlogo al anterior, pero la tecla + pasa al siguiente campo en vez de la tecla Enter.

Refresh KeyIndica que tecla se utiliza para disparar el refresh de un Work panel.

Show FormEn todas las aplicaciones GENEXUS, se despliega la pantalla de un work panel/transaccin antes de ejecutar el evento Start. Esto ocasiona que si, por ejemplo, en el evento Start se ocultan objetos en pantalla, se vea en primer lugar la pantalla tal como se dise, con todos los objetos, y luego se vea como se va ocultando cada uno, hasta que la pantalla quede como el desarrollador quiso. Si esta preference se pone en "After Start Event", primero se ejecuta el evento Start y luego se despliega la pantalla, evitando ese efecto. Si se pone el valor Before Start Event se deja el comportamiento habitual de las aplicaciones Genexus. El valor por defecto para Java es After Start Event.

Default user interfaceDetermina que biblioteca de clases se va a utilizar para el manejo de la interfaz de usuario. Las posibilidades son: Best possible (WFC, JFC, AWT) Windows Foundation Classes (WFC) Java Foundation Classes (JFC) Abstract Windowing Toolkit (AWT)

Si se setea el valor Best Possible, en tiempo de ejecucin se decidir que biblioteca utilizar, intentando primero utilizar las WFC, en segundo lugar las JFC, y en tercer lugar las AWT. Por mas detalles sobre las diferencias de cada una de las opciones referirse a la seccin Manejo de la interfaz de usuario.

JFC Look & FeelEn JFC, se puede especificar que Look and feel se quiere utilizar. Existen bsicamente dos opciones. Usar un look and feel especfico de la plataforma (que en Windows aparece como Windows, en Mac como Mac, etc.), o un look and feel igual para todas las plataformas. 29

GENERADOR JAVA

GENEXUS

Si se selecciona la opcin Platforms Native L&F se utilizar el look and feel para Windows en Windows, para Mac en Mac, Motif en Solaris, etc. Si se selecciona la opcin Cross platform L&F se utilizar el mismo look and feel en todas las plataformas.

Use .GIFs instead of .BMPsEl formato .BMP es un formato muy prctico para aplicaciones locales, pero ineficiente para aplicaciones en Internet, dado que el tamao de los archivos .BMP es mucho mayor al de los archivos .GIF o .JPG. Para posibilitar la ejecucin sin modificacin de las aplicaciones actuales se implement soporte para BMPs en el generador Java (no son soportados nativamente por Java). De todos modos, si se quiere poner en produccin la aplicacin, es necesario encontrar otra solucin. Esta preference permite que el generador en vez de usar .BMPs utilice .GIFs. Los valores posibles son: Never Always If .GIF exists Se utilizan siempre .BMP Se utilizan siempre .GIFs Si existe el .GIF, se usa el .GIF, sino el .BMP. Esta solucin es la mas flexible pero es mas lenta, dado que debe chequear la existencia del .GIF.

Durante la prototipacin, se puede usar cualquiera de los valores. Se recomienda que para la puesta en produccin de la aplicacin se conviertan los .BMP a .GIF y se configure esta opcin para que siempre use .GIF. En Genexus es posible utilizar .JPG. Esta preference no tiene ningn efecto sobre los .JPG.

Click to sort in subfile (Workpanel)Indica si al dar click en el ttulo de las columnas del subfile este se ordena por el valor de dicha columna o no. Enabled Disabled Al dar click en la columna del subfile, se ordena Al dar click en la columna del subfile, no se ordena

Color In Read-Only FieldsEsta propiedad se implement para que las aplicaciones puedan ser compatibles con las aplicaciones generadas con Foxpro/Visual Foxpro y Visual Basic. Original Grayed (Windows Default) Los campos deshabilitados o con noaccept se despliegan del mismo color que se defini en GeneXus. Los campos deshabilitados o con noaccept se despliegan en gris.

30

GENERADOR JAVA

GENEXUS

MANEJO DE LA INTERFAZ DE USUARIOEn el mundo Java existen bsicamente tres alternativas para el manejo de la interfaz de usuario: WFC, JFC y AWT. Veremos las ventajas y desventajas de cada una. WFC Maquinas virtuales en las que est Internet Explorer 4.0, con pre-instalado versin de la Java VM posterior a la 5.00.3177 Plataformas soportadas Windows Calidad de la multi-plataforma (se No aplicable ve igual en todas las plataformas?) Capacidad de representar objetos Buena Genexus Performance Buena JFC Ninguna AWT Todas

Todas Buena Buena Regular

Todas Mala Mala Regular

El principal inconveniente de utilizar AWT es que en Windows 95, y usando el ambiente de Sun, los controles de edit tienen un margen a cada lado del texto, por lo que si en Genexus se especific un edit de largo 5 caracteres, en el mismo largo con AWT se ven 3 . Esto no pasa en Windows NT ni con JFC o WFC. Con AWT, si se pone un combobox en un subfile, al obtener el foco, el control queda mas alto que el tamao de la fila del subfile, por lo que se superpone con la fila que est debajo. Esto es porque con AWT el combobox no puede tener un alto menor que un mnimo fijado por AWT. Si se desea utilizar JFC es necesario agregar al CLASSPATH el archivo swingall.jar que se distribuye con la instalacin de las JFC. Actualmente la ltima versin liberada es la 1.1.1 y es la que se recomienda utilizar. Para utilizar las WFC es necesario ejecutar las aplicaciones con el Java de Microsoft. A continuacin se detalla una lista de diferencias en las caractersticas soportadas por cada alternativa de manejo de interfaz de usuario: AWT No No No No No No No No No No Si JFC No No No No No No No Si Si No Si WFC Si Si Si Si Si Si Si Si Si Si No

Propiedad Control Box en Work panels Propiedad Border Style en Work panels Propiedad Maximize Button en Work panels Propiedad Minimize Button en Work panels Propiedad Show in Taskbar en Work panels Fonts nativos de Windows Propiedades FontUnderline y FontStrikethru Controles de Edit que con Frame = None o Frame = Single Aceleradores para los botones ( por ej. &Ok, &Cancel) Acepta archivos .ICO como cono de los work panels Muestra correctamente GIF animados

Consideraciones acerca de WFCa) Soporta las teclas de funcin F1 F20 b) Si se tiene un form cuyo tamao es mayor al de la pantalla, se hace scroll. Esto permite tener forms de largo indefinido

31

GENERADOR JAVA

GENEXUS

c)

La propiedad .Forecolor de los checkboxes tiene efecto solo para el caption del checkbox, no para el cuadrado del check ni la cruz. Esto implica que si se pone un checkbox en un subfile, como no tiene caption, la propiedad .Forecolor no tenga ningn efecto.

Consideraciones acerca de JFCa) Soporta las teclas de funcin F1 F12 b) Soporta Look & Feels intercambiables. Esto es, puede cambiarse la forma en que se dibujan los controles standard para que se parezcan a los de otra plataforma. Por mas informacin ver la preference JFC Look & Feel c) Si el usuario cambia el tamao de un form, los controles ajustan su tamao de forma que se mantenga la proporcin de tamaos.

d) A partir de la versin 1.1.1, en los captions de los Labels, botones y menuitems se puede incluir cdigo HTML, por ejemplo: Label1.Caption = " Label with various text styles
and a new line!";

Consideraciones acerca de AWTa) Soporta las teclas de funcin F1 F12 b) Si el usuario cambia el tamao de un form, los controles ajustan su tamao de forma que se mantenga la proporcin de tamaos.

32

GENERADOR JAVA

GENEXUS

LLAMADAS A PROCEDIMIENTOS EXTERNOSLlamadas a procedimientos Java no generados por GeneXusEs posible realizar llamadas a procedimientos Java no generados por GENEXUS. Existen dos caractersticas de Java que hacen que esta tarea sea algo mas engorrosa que en otros generadores. En primer lugar, en Java se escriben clases, y no se puede ejecutar una clase sino que hay que ejecutar un mtodo particular de una clase. En segundo lugar, Java no pasa los parmetros por referencia, cosa que es necesaria para los procedimientos GENEXUS. Para solucionar el primer problema, siempre que haya un procedimiento externo, se llamar a un mtodo execute, al que se le pasarn los parmetros necesarios. O sea, la clase que tenga el cdigo externo debe tener un procedimiento definido como el siguiente: public void execute( ) { } y un constructor que reciba un parmetro entero public (int remoteHandle) { } Para el segundo problema, en las clases estndar de GENEXUS existen clases para cada tipo de datos primitivo Java, y los parmetros deben pasarse dentro de objetos de esas clases. Las clases se llaman GX . Por ejemplo, si se quiere llamar a un procedimiento, y los parmetros GENEXUS son: &a = N(2) &b = N(4) &c = N(8) &d = D &e = C(10) en este caso el call que generar GeneXus ser de la siguiente forma: // Defino los objetos auxiliares. Esto se hace una sola vez, en el momento de inicializar los // valores del programa generado GXByte _a = new GXByte(); GXShort _b = new GXShort(); GXInteger _c = new GXInteger(); GXDate _d = new GXDate(); GXString _e = new GXString(); // Guardo en los objetos auxiliares los contenidos de las variables a pasar. _a.setValue(&a); _b.setValue(&b); _c.setValue(&c); _d.setValue(&d); _e.setValue(&e) 33

GENERADOR JAVA

GENEXUS

// Llamo al programa new pexterno(remoteHandle).execute(_a, _b, _c, _d, _e); // Cargo en las variables los valores que hay dentro de los objetos. &a = _a.getValue(); &b = _b.getValue(); &c = _c.getValue() &d = _d.getValue(); &e = _e.getValue() Para que la llamada funcione correctamente, el programa externo pexterno.java debe escribirse de la siguiente forma: public pexterno(int remoteHandle) { } public void execute(GXByte a, GXShort b, GXInteger c, GXDate d, GXString e) { (...) } La variable remoteHandle tiene el identificador del proceso en el servidor. Se necesita poner siempre, aunque se ejecute en el cliente. Se pued