Para lograr una mayor facilidad en la
conversión a Java de las aplicaciones Windows Cliente/Servidor
tradicionales, como ser Visual Basic o Visual FoxPro, se implementaron varias
funcionalidades. La más destacable es que se introduce una alternativa al
diálogo a pantalla completa que se asemeja bastante a la validación campo a
campo (Por más detalles referirse al documento Validación a nivel de Cliente).
También se implementó en este generador el tipo de
datos DBConnection que
permite manejar las conexiones en forma dinámica para aplicaciones Windows dos
capas.
Ejemplo:
Sea &MyConn de tipo DBConnection
Event
'Conectar'
&myConn = GetDataStore("Default")
&myConn.UserName =
trim(&Usuario)
&myConn.UserPassword =
trim(&Password)
&myConn.JDBCDriverName='com.inet.tds.TdsDriver'
&myConn.JDBCDriverURL='jdbc:inetdae:barbanegra:1433?database=testemp2'
&myConn.ShowPrompt
= 2
&Res = &myConn.Connect()
Do case
Case &Res =
0
&ConnOk = 'S'
return
Otherwise
&ConnOk = 'N'
msg('No se
pudo conectar, reintente...')
Endcase
EndEvent // 'Conectar'
Existen otras nuevas funcionalidades en el
generador que facilitan la conversión, como ser el comando
submit, el calendario y calculadora,
y algunas propiedades del modelo del grupo de interfaz win:
? Maximum workfile lines
? Autocenter objects in
(0,0)
? Field Exit = Enter, Tab, Shift-tab
? Field Exit = Passing last
char
? Prompt Key = FX (por ejemplo F8)
? Menubar = Caller's.
En cuanto a las facilidades introducidas
para las aplicaciones en tres capas, se destaca la posibilidad de
ejecutar el evento load de un work panel en el servidor, con sólo cambiar una
propiedad del mismo.
Al trabajar en una aplicación distribuida, para
lograr una buena performance, como regla general hay que tratar de ejecutar la
mayor cantidad de código en el servidor; básicamente pasar al servidor todo el
código salvo el correspondiente a la interfaz.
Para los objetos batch como procedimientos y
reportes (sin interfaz) no hay problema porque se definen como remotos tan solo
especificando una propiedad. En cuanto a objetos que manejan interfaz, para
transacciones y aquellos reportes con printblocks enviados a pantalla, existen
facilidades para su optimización.
Sin embargo, para los work panels estaba quedando
pendiente el evento load, que contiene código que claramente debería ejecutarse
en el servidor y no necesariamente en el cliente. Para optimizar, era necesario
reprogramarlo, por ejemplo pasando todo el código a un procedimiento y que éste
se defina como remoto.
A partir de esta versión, configurando una nueva
propiedad del work panel -Execute Load Events in the Application
Server- se puede determinar que también se ejecute toda la lógica del
evento Load en el servidor automáticamente, además de los accesos a la base de
datos.
Estas son las principales funcionalidades
implementadas en el generador Java en su versión 8.0.