RELEASE NOTES GENEXUS 7.

5
Ul t i ma act uali zaci ón: 14/ 02/ 02
I ndi ce
Instalación ___________________________________________________________ 4
Requerimientos ___________________________________________________________________4
Instalación y activación _____________________________________________________________4
GXProtection 2000: Esquema de Administracion de Licencias Centralizadas. ___________________5
Funcionalidades del Development Environment _____________________________ 9
Sección específica Development Environment ___________________________________________9
Integración GeneXus Query con GeneXus _____________________________________________16
Editores __________________________________________________________________20
Editor de estructura - Transacciones __________________________________________________20
Administración de preferencias ______________________________________________________26
Editor de Propiedades _____________________________________________________________38
Editor de Pictures _________________________________________________________________41
Nuevo Editor de forms – Activex ____________________________________________________46
Select object _____________________________________________________________________49
Nuevo “View” de Objetos __________________________________________________________51
Colores del Form Grafico___________________________________________________________55
Diálogos __________________________________________________________________58
Diálogos de creación e impacto ______________________________________________________58
Distribución y Consolidación________________________________________________________59
Listados en XML _________________________________________________________________66
Atributos _________________________________________________________________74
Límite de atributos ________________________________________________________________74
Truncado de objetos y atributos ______________________________________________________74
Variables basadas en atributos _______________________________________________________77
Nuevas Propiedades de atributos _____________________________________________________78
Dominio como array ______________________________________________________________81
Primary Key_____________________________________________________________________84
Comandos ________________________________________________________________88
Comando For To Step _____________________________________________________________88
Comando Submit _________________________________________________________________88
Reglas ___________________________________________________________________91
Regla Prompt On _________________________________________________________________91
Msg y error con expresiones ________________________________________________________92
Definición de parámetros de IN y OUT________________________________________________92
Objetos __________________________________________________________________95
Fechas y Versión del Objeto ________________________________________________________95
2
Ambientes ________________________________________________________________99
Definición de ambientes en un modelo ________________________________________________99
Help ____________________________________________________________________103
HTML Help ____________________________________________________________________103
Ayuda y Documentación HTML para atributos/dominios/variables _________________________111
Tipos de Datos ___________________________________________________________115
Nuevos Tipos de Datos ___________________________________________________________115
Tipo de Datos DBConnection ______________________________________________________115
Tipo de Datos WebWrapper________________________________________________________119
Tipo de Datos WebSession ________________________________________________________122
Tipo de Datos XMLWriter_________________________________________________________125
Tipo de Datos XMLReader ________________________________________________________135
Tipo de Datos para el manejo de planillas Excel ________________________________________143
Tipo de Datos para el manejo de documentos Word _____________________________________152
Tipos de Datos para el manejo de correos _____________________________________________159
Tipo de Datos HttpClient, HttpResponse y HttpRequest __________________________________185
Funciones _______________________________________________________________193
Funciones estándar _______________________________________________________________193
Funcion FileExist()_______________________________________________________________194
Función DeleteFile_______________________________________________________________195
Funciones de lectura y escritura del registro de Windows _________________________________195
Funciones de Encriptación _________________________________________________________197
Función Sleep___________________________________________________________________200
Función StrSearch _______________________________________________________________201
Función StrReplace ______________________________________________________________203
Función Isnull __________________________________________________________________204
Nombres Largos en función UserId() y Workstation() ___________________________________205
Funcionalidades Generales ____________________________________________ 207
Call dinámico ___________________________________________________________________207
Protocolo SOAP_________________________________________________________________208
Reportes PDF___________________________________________________________________214
Consideraciones para manejo de reportes PDF en C/SQL_________________________________215
Consideraciones para manejo de reportes PDF en Visual Basic ____________________________217
Consideraciones para manejo de reportes PDF en Java ___________________________________218
Reportes/Procedimientos con salida XML_____________________________________________223
Funcionalidades para Aplicaciones Web _________________________________ 226
Transacciones Web ______________________________________________________________226
Web Components ________________________________________________________________235
Embedded pages ________________________________________________________________242
Create SSP on request ____________________________________________________________246
WAP__________________________________________________________________________248
Encriptación de Parámetros ________________________________________________________253
Paginado de subfiles en Web Panels _________________________________________________256
Uso de Web Panels en reglas prompt _________________________________________________259
Propiedades______________________________________________________________262
Propiedad OnClickEvent para imágenes ______________________________________________262
Propiedades BackColorEven, BackColorOdd de Subfiles _________________________________264
Propiedad Columns subfiles freestyle ________________________________________________267
Propiedad PageCount _____________________________________________________________269
Propiedad RecordCount ___________________________________________________________269
Propiedad Rows subfiles __________________________________________________________270
Propiedad Cache Expiration Lapse __________________________________________________271
3
Propiedad Enable para botones en objetos web _________________________________________271
Eventos _________________________________________________________________273
Evento refresh con múltiples subfiles ________________________________________________273
Evento click en Text block y Combo _________________________________________________274
Métodos _________________________________________________________________276
Método JSEvent _________________________________________________________________276
Funcionalidades para aplicaciones Win__________________________________ 278
Múltiples Subfiles _______________________________________________________________278
Acceso a las Propiedades de la Menu Bar _____________________________________________283
Opciones Confirm y Close en Menu bar ______________________________________________285
Propiedad When To Refresh _______________________________________________________285
Propiedad Caption en items de controles Radio Button___________________________________286
Propiedades Caption y Visible en Tab Dialogs _________________________________________287
Funcionalidades para aplicaciones Cliente/Servidor ________________________ 288
Múltiples conexiones por modelo ___________________________________________________288
Comando SQL __________________________________________________________________292
Metodos de Conexion con Tecnologia ODBC__________________________________________293
Primary key index clustering _______________________________________________________295
Preferencia Lock Time-out(seconds) _________________________________________________296
Configuración de Trace (GeneXus DB Activity Trace)___________________________________298
Funcionalidades Específicas de los Generadores___________________________ 301
C#______________________________________________________________________301
Sección específica del generador C# _________________________________________________301
C/SQL __________________________________________________________________302
Sección Específica C/SQL_________________________________________________________302
C/SQL - Acceso vía ODBC ________________________________________________________305
Generación de Web Objects como ISAPI _____________________________________________306
Preferencia "Extension for WEB programs" ___________________________________________310
C/SQL- impresión gráfica en windows _______________________________________________311
Java ____________________________________________________________________315
Sección específica del generador Java ________________________________________________315
Transacciones con back-end HTTP __________________________________________________333
Servidores de aplicaciones JAVA 7.0 y 7.5 en el mismo host ______________________________335
Setup para aplicaciones generadas con GXWS Deployment _______________________________337
Propiedad Provider de subfile ______________________________________________________339
Instalación de aplicaciones Java como servicio NT con JSrvAny ___________________________340
Aplicaciones Multi-tier con http como protocolo de comunicación _________________________342
War Deployment ________________________________________________________________348
Visual Basic______________________________________________________________355
Sección Específica del generador Visual Basic _________________________________________355
Generacion de SSP con el Generador Visual Basic ______________________________________360
Integridad referencial en Visual Basic ________________________________________________362
Propiedad "Prompt for Confirmation" ________________________________________________364
Visual Fox Pro ___________________________________________________________366
Sección Específica Generador Visual FoxPro __________________________________________366

4
I nst al aci ón
Requer imient os
Para que est a versi ón funci one correct ament e, es necesari o t ener i nst al ado I nt ernet
Expl or er 6. 0 o post eri or. En el caso de ser necesari a su i nst al aci ón, se i ncluye una
versi ón de di cho soft ware en el di rect ori o Ut ili t i es\ I nt ernet Expl or er 6. 0 del CD. Se
deberá ej ecut ar el archivo I E6SETUP.EXE.

NOTA:
Al gunas “ feat ur es” t i enen r equeri mi ent os pr opios, por l o cual es r ecomendabl e l eer
l a secci ón de “ Requeri mi ent os” de cada una de ell as.

I nst alación y act ivación
I nst al aci ón
La inst al ación de est a ver sión es si milar a la de cual quier ot ra ver sión de GENEXUS.
Una di fer enci a menor con respect o a l as i nst alaci ones ant eri or es es l a creaci ón del
grupo de programas “ GeneXus Ut ili t i es” , que posee short cut s a di fer ent es ut i lit ari os
propor ci onados con l a ver si ón. Di chos ut ili t ari os son l os si qui ent es:

• GeneXus Copy Model
• GeneXus Dat a Vi ew Generat or
• GeneXus DB Act i vi t y Tr ace
• GX Regi st er – Est e ut ilit ari o se usa para regi st rar l a versi ón de
GeneXus desde el l ugar donde se encuent ra. Est o es para el caso en
que se t rabaj e con mas de una versi ón de GeneXus en l a mi sma
máquina.

Para el generador C/ Sql ademas se i nt egra:

• GeneXus CSQL Set up Wi zard

En caso del generador Vi sual Basi c t enemos además:

• GeneXus Vi sual Basi c 6. 0 Rel oad Ut ili t y
Act i vaci ón
Para aut ori zar el GeneXus Devel opment Envi ronment y l os generadores que
requi eran aut ori zaci ón deberá real i zar l os si gui ent es pasos:

1. Ej ecut e el "GeneXus License Manager " que se encuent ra en el menú de
programas de " GeneXus 75" o el Gxl mgr. exe del di rect ori o donde se i nst al ó
GeneXus.
2. Presione Select Comput er e indi que dónde resi di rá la li cencia. Las opci ones
son: Local para l i cenci as l ocal es o Remot e para li cenci as cent ral i zadas
( 1)
.
5
3. Sel ecci one t odos l os product os a aut ori zar.
4. Presi one Aut horize, sel ecci one l a opci ón Request License y cont i núe con l os
pasos del asi st ent e para envi ar l os Sit e Code a su di st ri bui dor. La sol i ci t ud
se puede r eal izar vía web ( aut omát i ca) o puede generar un archi vo con
cada uno de l os si t e code de l os product os y envi ar ese ar chi vo a su
di st ri bui dor vía e- mail .
5. Una vez obt eni do l os Si t e Key o el archi vo con l os mi smos, presi one el
bot ón Aut horize nuevament e y sel eci one l a opci ón Ent er Licenses para
i ngresar l as cl aves de act i vaci ón.

( 1)
Li cenci as Cent rali zadas: si se desea mant ener l as li cenci as en for ma
cent ral i zada, será necesari o inst al ar el GeneXus Prot ect i on Server ( versi ón 2. 0 o
superi or) en un servi dor NT o Wi ndows 2000. La funci onalidad del mi smo es
servi r li cenci as a cual qui er cli ent e de l a red i ndependi ent ement e de donde se
encuent r e i nst al ado el product o ( en un PC l ocal , en el mi smo servi dor y/ o en un
servi dor di fer ent e) .

Por i nformaci ón más det all ada sobre l a prot ecci ón consul t e GXProt ect i on 2000.

GXProt ect ion 2000: Esquema de Administ racion de
Licencias Cent r alizadas.
I nt r oducci ón
El Li cense Manager, que es el admi ni st rado de l i cenci as que se i nst al ada con el
product o que ut ili za GXProt ect i on 2000 ( GeneXus, GXpl or er, et c. ) , puede ser
mani pul ado por cual quier usuari o que t enga acceso al product o. En ci ert os casos es
deseabl e t ener un usuari o o grupo de usuari os que act úen como admi ni st radores de
l as li cenci as y r est ri ngi r de est a f orma el acceso a ot ros usuari os.

A part i r de l a versi ón 1. 4 de GeneXus Prot ect i on Server se di spone de un esquema
para l a admi ni st raci ón de li cenci as cent ral izadas evi t ando así que usuari os no
aut ori zados puedan aut ori zar, desi nst al ar y t ransferi r l as li cenci as.

Al cance
GeneXus 7. 0 upgrade 1 o superi or
GXpl orer 4. 0 o superi or

Descr i pci ón
La admi ni st raci ón de licenci as cent rali zadas permi t e defi ni r un grupo de usuari os
l os cual es podrán ut ilizar el product o
1
, y un grupo de usuari os como
admi ni st radores del Li cense Manager, evi t ando así que usuari os no aut ori zados
puedan aut ori zar, desi nst al ar y t ransferi r l as li cenci as.

1
Con product o en est e document o nos r ef eri mos a cual qui er apli caci ón que ut ili ce
6
GXProt ect i on 2000, por ej empl o, GeneXus y GXpl orer.


Por ser el GENEXUS Prot ect i on Ser ver una apli caci ón DCOM que cor re baj o
Wi ndows NT/ 2000, l a sol uci ón se basa en el esquema de seguri dad propi o del NT y
DCOM.

Hast a ahora cual qui er usuari o que est aba baj o el domi ni o del servi dor que cont i ene
el GENEXUS Prot ect i on Server podía, t omando l as l i cenci as de ese ser v i dor ,
ut ili zar el product o como reali zar cual qui era de l as acci ones del Li cense Manager
( Aut ori zaci ón, Desi nst alaci ón, Transfer enci a, Log Set t i ng) . No se requería reali zar
ninguna confi guraci ón adi ci onal .

Con est a nueva funci onali dad, pri mero se desea mant ener l o ant eri or para aquell os
usuari os que no l es i nt er ese una admi ni st ración segura de l as li cencias, de forma
de evi t ar confi guraci ones i nnecesari as. Para est o, bast a con dej ar marcada l a
propi edad ‘Use Default Access Permi ssi ons’ en l a secci ón ‘Securi t y’ del
Prot SrvSer vi ce en el DCOMCnfg ( es el val or por def ect o) .

Aquell os que adopt en est e esquema de admini st raci ón de l as li cenci as deberán
real i zar al gunos cambi os en el User Manager del NT ( ser vi dor donde se t i ene
i nst al ado el GENEXUS Prot ect i on Server) y en l a confi guraci ón del DCOM en el
mi smo servi dor .

A cont i nuaci ón se expl i can el funci onami ent o de est e esquema de admi ni st raci ón y
más adel ant e se especi fi can l os pasos a r eal izar para l a confi guraci ón del ser vi dor.

Gr upos de Usuar i o
Bási cament e se t i enen que defi ni r dos grupos de usuari os: grupo Admi ni st rador y
un grupo que cont endrá l os usuari os de l a apli caci ón o product o. .

Los usuari os del grupo Admi ni st rador son l os úni cos que pueden mani pul ar l as
li cenci as del servi dor corr espondi ent e, medi ant e el Li cense Manager. O sea, son l os
que t endrán permi sos para Aut ori zar, Desi nst alar y Tr ansf eri r l as li cenci as.

Los usuari os de l a apli caci ón, si est án aut ori zados, pueden:
ver l a i nformaci ón de l as li cenci as del servi dor
confi gurar dónde resi den l a li cenci as ( opci ón Sel ect Comput er)
usar cual qui er product o que t ome l as li cenci as de ese servi dor.

Si el usuari o no t i ene permi sos:
no ve la información de las li cencias ni puede r ealizar ni nguna acci ón con ellas.
no puede usar ni ngún product o que t ome l as li cenci as de ese servi dor .

¿QUI ÉN ES EL ADMI NI STRADOR?
Si exi st e un grupo de usuari os en el NT ( creado medi ant e el User Manager) con
nombr e ‘GXProt Admi n’, ent onces sól o l os usuari os pert eneci ent es a ese grupo
podrán mani pul ar el Li cense Manager.
Si no exi st e un grupo con ese nombre, cual qui er usuari o es el admini st rador.

Not a: El grupo t i ene que t ener exact ament e ese nombre ( no es case sensi t i ve) .
7
¿QUI ÉNES SON LOS USUARI OS?
Aquell os que se den de al t a en el DCOMCnfg con derecho a acceso a l a apli caci ón
‘GXPrt Servi ce’.
En est e caso se pueden dar de al t a usuari os i ndi vidual es o grupos de usuari os.
Puede ser cual qui er grupo de ese domi ni o, i ncluso el GXProt Admi n si se desea que
est os usuari os t ambi én puedan ej ecut ar l a apli caci ón.
COMBI NACI ONES POSI BLES
Exi st en di ferent es ni veles de acceso al Li cence Manager y al product o, dependi endo
si exi st en l os grupos o no, y en caso de que exi st an, si se dan de al t a en el
DCOMCnfg o no.

Las di ferent es combi naci ones son:

1) Si el grupo GXProt Admi n no est a cr eado y est a marcado el ‘Use Defaul t Access
Per mi ssi ons’ en el DCOMCnfg ent ra cual qui er usuari o a l a apli caci ón y cual qui era
es el admi ni st rador ( puede usar el Li cense Manager)

2) Si el grupo GXProt Admi n no est a cr eado y se da permi so a un grupo X en el
DCOMCnfg sól o ese grupo puede ent r ar a l a apli caci ón y además es
Admi ni st rador ( puede usar el Li cense Manager) .

3) Si est a cr eado el grupo GXPr ot Admi n y mar cado el ‘Use Defaul t Access
Per mi ssi ons’ en el DCOMCnfg ent ra cual qui er usuari o a l a apli caci ón per o sól o el
admi ni st rador puede usar el Li cense Manager .

4) Si est a cr eado el grupo GXProt Admi n y se da permi so al grupo X en el
DCOMCnfg Sól o l os usuari os del grupo X pueden usar l a apli caci ón y nadi e
admi ni st ra l as li cenci as.

5) Si est a cr eado el grupo GXPr ot Admi n y se da permi so al grupo X y al grupo
GXProt Admi n en el DCOMCnfg Los usuari os del grupo X más l os usuari os del
grupo GXProt Admi n pueden usar l a apli cación, pero sól o l os de est e úl t i mo
admi ni st ran l as li cenci as.

Not a: Si est a creado VACI O el grupo GXProt Admin nadi e puede admi ni st rar l as
li cenci as.

Conf i gur aci ón del ser vi dor
Est os pasos i mpli can cambi os en l a seguri dad de Wi ndows NT/ 2000 y DCOM por l o
t ant o deben ser real i zados por al gún usuari o que t enga esos derechos, como ser el
Admi ni st rador de l a red.

1. I nst al ar el GENEXUS Prot ect i on Server versi ón 1. 4 o superi or en el servi dor
( ht t p: / / www. gxt echni cal . com/ cgi - bi n/ hdcent er. exe?2, 5, 36, 57 ) . Est e set up
inst al a el servicio ‘Pr ot SrvService’ en el NT.
2. Crear l os grupos ' GXProt Admin' y el de usuari os de l a apli caci ón en el servi dor,
medi ant e el User Manager y agregar l os usuari os corr espondi ent es en cada uno
de el l os. En el pri mero van l os admini st rador es de l as li cenci as y en el segundo
l os usuari os que ej ecut arán l a apli caci ón.
8
3. Ej ecut ar el DCOMCnfg en el servi dor, sel ecci onar l a apli caci ón ‘Prot SrvSer vi ce’ y
en l a secci ón de segur i dad marcar ' Use cust om access permi ssi ons' y con el
bot ón Edi t agregar l os dos grupos creados en 1.
4. Rei ni ci ar el servi ci o ‘Pr ot SrvServi ce’.

Consi der aci ones
• Sobr e el paso 2 de l a secci ón ‘Confi guraci ón del Ser vi dor’:
- Si se est a con Wi ndows 2000 se t i ene que hacer un ‘Log Off’ para que l os
cambi os sean t omados en cuent a.
- El nombre del grupo de usuari os puede ser cual qui era pero el del grupo
Admi ni st rador se debe ll amar ‘GXPr ot Admi n’ ( no i mport a l as mayúsculas y
mi núscul as, sól o el nombre) .

• Si se t i ene más de un product o i nst al ado ( por ej empl o GeneXus y Gxpl or er)
cuyas l i cenci as se encuent ran cent rali zadas en el mi smo servi dor, no es posi ble
ut ili zar el esquema de admi ni st raci ón para un product o y para el ot ro no.

• Si se est á conect ado como ‘Local ’ en el propi o servi dor de l i cenci as, se t i ene
cr eado el grupo ‘GXProt Admi n’ y el usuari o no pert enece a ese grupo, el mi smo
puede mani pul ar el Li cense Manager como si pert eneci era al grupo.

9
Funci onal i dades del Devel opment
Envi r onment

Sección específica Development Environment
Compat i bi l i dad
• En l a ver si ón GeneXus 7. 5 se r eal i zaron vari os cambi os
en l as pref er enci as del model o y DBMS Opt i ons con r espect o a l a ver si ón
7. 0, algunos de est os cambios son:

• Cambi o de val ores por def ect o
• Nuevas pr ef er enci as
• Nuevos val ores de pr ef erenci as
• Eli mi naci ón de pr ef erenci as

Cabe dest acar que el cambio en los val or es por def ect o de las prefer encias
provocarán un cambi o en el compor t ami ent o de l as apl i caci ones que
los ut ilizaran. Por est e mot ivo se recomi enda revi sar det enidament e la
sección del generador XXX en el document o “ Admi ni st r aci ón de
Pr opi edades” .

• Se modi fi caron l os val ores predet er mi nados para Tabl as, Obj et os y At ri but os
ahora son de 30 caract er es. Est e cambi o es not ado al crear una nueva base
de conoci mi ent o. Por más información r ef eri r se a la sección Truncado de
At ri but os y Obj et os.

• Se modi fi có el nombre de l os bot ones Refr esh de Work panel s y Previ ous en
t ransacci ones. Ant es cuando se l os ut ili zaba en l os event os eran bt n_Previ o
y bt n_Refres ahora son bt n_Previ ous y bt n_Ref resh. Est o t rae el probl ema al
convert i r model os que t i enen mét odos o propi edades apli cados sobre l os
bot ones que no especi fi can porque no encuent ran l os cont r ol es dando el
er ror:
Cont rol / obj ect ' Bt n_pr evi o' ( o ' Bt n_r efr es' ) referenced at l i ne 2 not
found/ defined. I s it on t he f orm?
Puede modi fi car el nombre del cont rol o baj ar un ut ilit ari o para cambi ar
aut omát i cament e en t odos l os obj et os. Consul t e el SAC 11143

• En l a versi ón 7. 5 se i ncl uye el l enguaj e C# . Si se crea un model o con est e
l enguaj e ell os y l uego se i nt ent a abri r esa KB con versi ones ant eri or es, al
abri r el model o aparecerá el mensaj e " Er ror: I nvali d model propert y. Choose
Edi t Model from Fil e menu " . Est o es porque el generador de ese model o no
es váli do en ver si ones ant eri ores.

• A part i r de est a versi ón no es más necesari o defi ni r un web panel como
mai n para poder ser ej ecut ado.

10
Se di scont i núa el Generador FoxPro for Wi ndows en est a versi ón. Por más
i nformaci ón consul t e SAC 10671.

Los model os que posean más de 9999 at ri but os no podrán ser abi ert os con
l as versi ones ant eri or es, dando un er ror como el si gui ent e:
I nt ernal er ror 3 i n mdl - c_i e1b
I SAM Err or 0- ?- ?- ?


Nuevas f unci onal i dades

Se modi f i có mensaj e en l a especi f i caci ón
Se modi fi có el si gui ent e mensaj e en el di agrama de navegaci ón:
"A t emporary i ndex wi ll be cr eat ed for Cl i Nom, Cli Addr on t abl e Cli ent es"
por:
' There i s no i ndex for order Cl i Nom, Cli Addr on t abl e Cli ent es, poor perf ormance
may be not i ced. '

Nueva opci ón al especi f i car un úni co obj et o
Se agregó un di ál ogo que permi t e sel ecci onar l as opci ones de especi ficaci ón para
poder cambi arl as o dar OK y usar l os val or es por defect o cuando se t i ene
sel ecci onado un sol o obj et o. Est a opci ón es vál ida cuando se especi fi ca desde: Ct rl -
F8, desde l a t ool bar o con l a ent rada del menú Buil d/ Speci fy curr ent obj ect . Est e
di ál ogo es confi gurabl e en l as User/ Gl obal Preferences en el check Show Opt i ons
when speci fyi ng Current Obj ect .

11


Fi gur a 1 – Set eo de l as opci ones de especi f i caci ón en l as User Pr ef er ences

El di ál ogo que aparece una vez que es i ndi cada l a especi fi caci ón de un obj et o es el
si gui ent e:



12
Fi gur a 2 – Opci ones a conf i gur ar en l a especi f i caci ón

Est e di ál ogo aparece sól o en caso que NO se est é en Di seño, ya que en Di seño l as
opci ones son fi j as ( Vi ew navi gat i on) .

Cambi o del or den de especi f i caci ón del ár bol de cal l s
Se cambi ó el orden de especi fi caci ón. Ahora cuando se manda especi fi car más de
un obj et o, est os se especi fi can en orden i nverso al árbol de call s ( pri mero l as hoj as
del árbol ) .

Dado un conj unt o de Web Panel s a especi fi car, se especi fi can pri mer o l os Web
Component s. Est o, agregado al t ema de que se especi fi ca en orden i nverso al árbol
de call s permi t e expandi r correct ament e un Creat e con vari abl e de Web
Component .

Est o ayuda a r educi r l a cant i dad de er ror es/ war nings rel aci onados con especi fi car al
ll amador ant es que al llamado ( por ej empl o, er rores de parámet ros) .

Se modi f i có el l ar go de l a var i abl e PGMNAME
Dado que l a cant i dad de caract er es si gni fi cat i vos en el nombr e de l os obj et os ahora
puede cambi ar, t ambi én se hi zo que l a vari abl e &PgmName cambi e en l argo en
for ma acorde. Si empre t endrá un ancho de un caráct er más que el especi fi cado
como caract eres si gni fi cat i vos de l os nombr es de obj et os en l a pr ef er enci a
Si gni fi cant Obj ect name l engt h.

Not a: Al cambi ar l a pref er enci a ( Si gni fi cant Obj ect name l engt h) pueden ocur ri r
cambi os en l os l ayout s ( pant all as, li st ados, et c.) que el usuari o deberá arr egl ar.

Li st ado de t abl as y at r i but os
Se agregó una pant all a que permi t e l a sel ecci ón de at ri but os o t abl as al reali zar l os
li st ados de at ri but os o t abl as respect i vament e. La i dea de el l os es poder apli car
al gún filt ro sobr e l a informaci ón a li st ar, así como mej orar el desempeño al
moment o de crear el li st ado.

Se act ual izaron l os li st ados de t abl as y at ri but os, para que al dar bot ón derecho
sobr e una t abl a o un at ri but o y sel ecci onar ' Li st ' se muest ran l os li st ados en
for mat o XML. Lo mi smo sucede al r eal izar el cr oss refer ence sobr e un at ri but o.

Li st ado de t abl as det al l ado muest r a l a i nf or maci ón de pr ompt
En el li st ado de t abl as det al l ado se muest ra l a i nformaci ón de l os prompt s
asoci ados a l a mi sma.

Li st ado de obj et os con f or mat o HTML
Se i mpl ement ó el li st ado de obj et os en format o HTML. Est a opci ón est a di sponi ble
desde l a opci ón de menú Tool s/ Li st Obj ect s. En el caso de l i st ar un obj et o pri vado
13
se muest ra un mensaj e de que el mi smo no puede ser l i st ado.

Opt i mi zaci ón Open/ Cr eat e KB
Se opt i mi zó l a opci ón Fil e Open/ Cr eat e KBase, para aquel l as bases de conoci mi ent o
con vari os model os.

I nt el l i t i ps
Se impl ement aron los int elli t i ps en layout report es y pr ocedimient os.
Se modi fi có el comport ami ent o de l os i nt elli t i ps, sol o quedaron para vari abl es,
propi edades y mét odos. Se agregó el Ct rl - espaci o para que habrá los i nt ellit i ps
sobr e l os cont rol es de pant alla.

I nf ot i ps: I nf or maci on de par ámet r os en el abr e par ent esi s
Se i mpl ement aron l os infot i ps: i nformaci ón de parámet ros y t i pos de dat os para l os
mét odos y funci ones st andar al sel ecci onar el ' ( ' ( abre par ént esi s) .

Por ej empl o al escri bi r el ‘( ‘ l uego de l a regl a defaul t aparece el t ool t i p indi cando l os
paramet ros necesari o y el t ipo de dat o de l os mi smos.



El i mi naci ón múl t i pl e de at r i but os, domi ni os, var i abl es
Es posi bl e eli mi nar más de un At ri but o, Domi ni o o Vari abl e al mi smo t i empo, en sus
respect i vos di ál ogos ( se habilit a el bot ón Remove en l a sel ecci ón múl t i ple) .
Para el caso de l os at ri but os y domi ni os, cuando se presi ona el bot ón Remove sol o
serán el i mi nados aquellos que no est én si endo usados.

Edi ci ón de Hel p en HTML
La edición del help dent ro de GeneXus es en HTML.
Posee l a li mi t aci ón de que no se puede edi t ar el fuent e ht ml , no se accede a l as
propi edades de l as t abl as. Por más i nformaci ón ver Hel p HTML

Li mi t e de l os at r i but os/ v ar i abl es char act er
Se modi fi có el lími t e de l os at ri but os/ vari abl es de t i po caráct er el máximo ahora es
de 9999.

Br ow ser de obj et os
El bot ón Di spl ay Result s que est á en l a opción Tool s/ Browser, queda habili t ado
después de most rar l os r esul t ados. Est o per mi t e ref rescar l a pant all a cuando el
di ál ogo no se ci erra y se r eali zan modi fi caci ones.
14

Nuev as opci ones en el menu de obj et os
En el menú de obj et os ll amado desde el Menu/ Obj ect con el obj et o abi ert o o con
cli c- derecho sobre el obj et o se agr egar on l as si gui ent es opci ones:




• Br ow se ( Cal l Tr ee y Cal l er s Tr ee) - A part ir de l a versi ón 7. 5 es posi bl e
saber, posi ci onado sobre un obj et o en part i cul ar, saber a qui én ll ama y
qui enes l os ll aman. ( se cambi aron t ambi én l as opci ones Cal l es y Call ers por
est as opci ones en el combo del Tool s/ Br owser s)

• Last Nav i gat i on - Permi t e ver l a úl t i ma navegaci ón de ese obj et o.

• Li st - Permi t e ver el li st ado del obj et o en f ormat o HTML.

Li st a de l as úl t i mas Base de Conoci mi ent o abi er t as
Se i ncrement ó l a li st a de l as úl t i mas bases de conoci mi ent os abi ert as en el Menú de
Fil e, pasó de l as 4 úl t i mas a l as 8 úl t i mas. A su vez ahora se sal va l a úl t i ma base de
conoci mi ent o con que se t rabaj ó apenas se abre ést a. Est o permi t e que si por al gún
mot i vo cancel a GeneXus o se sal e en forma anormal , se puede vol ver a sel ecci onar
l a mi sma de l a li st a.

Nuevas Opci ones del Bot ón Der echo – Li st a de Obj et os
Se agr egan l as opci ones “ New Folder” y “ New Obj ect . . .” al pr esi onar el bot ón
derecho sobre el det all e de obj et os de un Fol der s.


15

Cl i c sobr e un obj et o – Li st a de Obj et os
Se compat i biliza el di álogo de l i st a de obj et os al est ándar de Wi ndows al cli quear
sobr e cual qui er obj et o en el di ál ogo de obj et os o presi onando el bot ón F2 se
permi t e modi fi car el nombre del Obj et o.



Modi f i caci ón de l a St at us Bar
Se agr egan dos opci ones sobr e l a St at us Bar.

Se agrega:

• cant i dad de obj et os que exi st en en el fol der
• cant i dad de obj et os sel ecci onados.



Nuevas Opci ones del Bot ón Der echo –Fol der / Di st r i but e
Se agrega l a opci ón Dist ribut e sel ecci onando sobre un Fol der. Se ll ama al di ál ogo
Dist ribut e Obj et s agregando t odos l os obj et os que cont i ene el Fol der sel ecci onado.



Edi ci ón de un Fuent e
Al modi fi car cual qui er fuent e se l e agrega un ast eri sco “ * ” i ndi cando que est a
pendi ent e el sal vado del mi smo.



Nueva opci ón par a ver el úl t i mo Anal i si s de I mpact o
En el menú Tool , se agr egó l a opci ón Li st Last I mpact Anal ysi s, l a cual permi t e ver
el úl t i mo análi si s de i mpact o real i zado.

16
Li st Last Nav i gat i on por Model o
El li st ado de navegaci ón se guarda por Usuari o/ Model o. Por l o t ant o la opci ón Li st a
Last Navi gat i on del Menu Tool s muest ra l a úl t i ma navegaci ón del model o
posi ci onado.
Nuevo i di oma - Chi no
Ahora es posi bl e generar bases de conoci mi ent o en i di oma Chi no. Para
sel ecci onarl o hay que ir en el model o de Di seño a Fil e/ Edi t Model / General . Est a
opci ón est á sol o di sponibl e para l os generador es Java y Vi sual Basi c MDB.

Pr opi edad Cal l Pr ot ocol .

Se agregó a la propiedad el valor “ SOAP” . Por más información consul t ar Prot ocol o
SOAP.

La propi edad Call Prot ocol de procedi mi ent os sól o aparece di sponi bl e en el di ál ogo
de propi edades del obj et o cuando el mi smo es mai n.

Por más información acer ca de la propiedad, consul t ar Call Prot ocol .

I nt egración GeneXus Query con GeneXus
I nt r oducci ón
A part i r de l a versi ón de GENEXUS 7. 5 se i nt egra GENEXUS QUERY a GENEXUS.

Al cance
• GENEXUS QUERY Manager .
• GENEXUS QUERY.
• GENEXUS 7. 5.

Obj et i vo
El obj et i vo de est a feat ure es t rabaj ar con GENEXUS QUERY desde GENEXUS de
for ma i nt egrada. De est a forma i ncorporamos a l as consult as dinámi cas como part e
i nt egrant e del desarr ollo de nuest ras apli caci ones.

Para el l o cada vez que se real i za un i mpact o en l a base de dat os en un model o
GENEXUS, se permi t e generar/ i mpact ar l a met adat a de GX QUERY, asoci ada al
model o, en f orma t ransparent e para el usuari o.
De est a f orma se podr á i nvocar en cual qui er moment o al GENEXUS QUERY que
permi t i rá reali zar consul t as di námi cas sobre t odos l os at ri but os del model o
GENEXUS.

17
Descr i pci ón
Desde GENEXUS se i nvoca aut omát i cament e o a pedi do el GX QUERY Manager
( para generar l a met adat a) y el GX QUERY ( para real i zar consul t as dinámi cas) .

Para el l o al inst al ar el product o GENEXUS QUERY, se agrega aut omát i cament e
nuevas opci ones a GENEXUS en l a barr a de herr ami ent as Tool s.


Fi gur a 3 - Nuev as opci ones

• QUERY Manager : Ej ecut a GENEXUS QUERY Manager .
• GX QUERY: Ej ecut a Excel para ut ili zar GENEXUS Quer y .

¿ Como f unci ona GeneXus Quer y desde GeneXus?

PROTOTI PO
Para l os model os de t i po “ Prot ot ipo” el funcionami ent o de l a herrami ent a es a
pedi do. Una vez real izada l a inst al aci ón l a pri mera vez que se gener e un
i mpact o/ creaci ón de cada model o al fi nalizar la mi sma se despl egará un mensaj e
i ndi cando si se desea ej ecut ar el product o QUERY Manager para cr ear una
met adat a asoci ada al model o, como det all a l a sigui ent e fi gura:


Fi gur a 4 - Reor gani zaci ón de una Met adat a
18

Las posi bilidades son l as si gui ent es

• Yes: Pr ocede a ej ecut ar el QUERY Manager despl egando en l a St at us Bar
de GENEXUS el si gui ent e mensaj e .
• No: Se sal t ea l a ej ecuci ón del QUERY Manager .
• Don’t ask me again: Est a opci ón deci de si se despl egará nuevament e est a
opci ón ant e un nuevo impact o o cr eaci ón de la base de dat os asoci ada al
model o. Est a opci ón i mpli ca que no se ej ecut e nunca o ej ecut arl o si empre.

Es i mport ant e resal t ar que est a opci ón se confi gura por Base de conoci mi ent o /
model o.

Si desea cambi ar est a confi guraci ón podrá acceder a GENEXUS QUERY Manager y
sel ecci onar l a opci ón Tool s, Opt i ons.


Fi gur a 5 – Opci ones de Ej ecuci ón de GeneXus Quer y

Es i mport ant e resal t ar que est a opci ón sol o es vál i da en caso de acceder al
product o desde GENEXUS. Por defect o en la inst al ación se configura el valor Ask me
.

• Ask me: Despli ega l a Figura 4 al fi nali zar una reorgani zaci ón.
• Always: Si empr e ej ecut a QUERY Manager ; es equi val ent e a r esponder Yes
y mar car Don’t ask me again.
• Never: Nunca se ej ecut a; equi val ent e a responder No y mar car Don’t ask
me again.

PRODUCCI ÓN
Para l os model os de t i po “ Producción” el val or por def ect o es ej ecut ar GENEXUS
QUERY Manager si empre; por l o que al finalizar l a act ualizaci ón del model o
di rect ament e se crea/ act uali za l a met adat a. Si desea modi fi car est a confi guraci ón
deberá modi fi car el parámet ro de l a Fi gura 5.

Cat ál ogos y Met adat as
Cada Base de Conoci mi ent o GENEXUS mant eni da con l a versi ón 7. 5 t i ene un
ident ificador de Kb único. GENEXUS QUERY Manager accede a est a i nfor maci ón al
real i zar un i mpact o por l o que l e permi t e saber sobre que met adat a hacer el
i mpact o. Por defect o se genera una met adat a por cada para KB/ Model o, sobre el
19
cat ál ogo que se encuet re act i vo.

El nombre de l a met adat a es l a descri pci ón de di seño con l a descri pci ón del model o
que se est á i mpact ando.

Consi der aci ones
• La i nt egraci ón sól o es vál i da para cual quier Base de Conoci mient o
mant eni da con GENEXUS 7. 5 o superi or .
• La ll amada a GENEXUS QUERY Manager se r eal iza en l as si guient es
condi ci ones en caso que est é confi gurada:
o Después de real i zar el impact o
o Ll amando expl íci t ament e desde Tool s / QUERY Manager .
• La l l amada a GX QUERY es a pedi do y permi t i ra consul t ar t odos l os
at ri but os de l a base de conoci mi ent o.
• Al ej ecut ar el QUERY Manager a pedi do desaparece GENEXUS, y hast a que
no se ci erre est a apl i caci ón no se act i va nuevament e.
• No es posi bl e defi ni r qué at ri but os se van a export ar desde GENEXUS. El
val or pr edet ermi nado es Todos l os At ri but os, si n embargo se puede
confi gurar desde el GxQuery Manager , medi ant e el Wi zard de Carga de
met adat as, una vez set eado est o en el GxQuer y Manager , se mant endrá
si empre que se i mpact e esa met adat a.
• Si GENEXUS QUERY no se encuent ra cor rect ament e i nst al ado aparecerá el
si gui ent e er ror al int ent ar sel ecci onar l as herrami ent as desde el diál ogo
asoci ado “ Error: Tool int erface not support ed” , debi endo real izar una
reparaci ón de l a inst al aci ón desde el Panel de Cont rol.
• No es posi bl e modi fi car el cat ál ogo si se t rabaj a i nt egrado a GENEXUS.
• Como el GENEXUS QUERY Manager anal i za t odas l as t ransacci ones en cada
i mpact o, para model os grandes, el t i empo de carga de l a met adat a puede
ser i mport ant e. En est e caso se recomi enda reali zar l a carga de l a met adat a
a pedi do y no en cada i mpact o.
• Cuando se cr ea l a met adat a se i nfi ere aut omát i cament e de l as preferences
del model o GENEXUS las propi edades de conexi ón. En caso de ut ilizar
Mi crosoft Access se confi gura aut omát i cament e un Dat a Source con nombre
“ KBName- Model Name" referenci ando l a base de dat os.


20
Edi t or es

Edit or de est ruct ura - Transacciones
I nt r oducci ón
A part i r de est a versi ón se modi fi ca el “ l ook and feel ” rel aci onado al edi t or de
est ruct uras.

Al cance
Obj et os: Transacci ones.
Lenguaj es: Todos.
I nt erfaces: Wi n, Web.
Descr i pci ón
Se real i za un cambi o en l a i nt erfaz para el manej o de est ruct ura de t ransacci ones
mant eni éndose l as si guient es consi deraci ones:

• Compat ibilidad: Como pri mer punt o y enfocado a usuari os GeneXus,
permi t e una fáci l ut ili zaci ón t al como es el edi t or de l as versi ones ant eri ores
mant eni endo l a mi sma funci onali dad.
• Look and feel: mej orar el l ook and feel de l a est ruct ura cambi ando l a forma
de despl egar l os dat os, de manera que sea más i nt ui t i va.
• I nformación: dar l a posi bilidad de aument ar l a cant i dad de i nformaci ón
rel aci onada a l a est ruct ura de una t ransacci ón.

Como pri mer punt o y para mant ener el mi smo f ormat o de i nserci ón de at ri but os
ut ili zado en el edi t or ant eri or; el usuari o puede ingresar una est ruct ura digi t ando l a
mi sma cant i dad de caract er es que en el ant eri or.

Por ej empl o: Supongamos que se t i ene una t ransacci ón donde se admi ni st ran l os
di st i nt os art ícul os exi st ent es en l a empresa, det all ando para cada uno de el l os, el
st ock míni mo, máxi mo y una li st a de preci os. Una est ruct ura t ent at i va que model e
est a si t uaci ón podría ser l a si gui ent e:

Art I d*
Art Dsc
Ti pArt I d
Art St kMi n
Art St kAct
( Art FchLt a*
Art PrecLt a)
Fi gur a 6 - Est r uct ur a ej empl o

21
Al grabar l a t ransacci ón, se pi de que el usuari o i ngrese l os di st i nt os t ipos de dat os
asoci ado a l os nuevos at ri but os y post eri orment e l a est ruct ura es despl egada de l a
si gui ent e manera para l a versi ón ant eri or:


Fi gur a 7 - Ant i gua est r uct ur a

Los pasos que se deben segui r son l os si gui ent es:

Art I d < ENTER>
( 1)

Art Dsc < ENTER>
Ti pArt I d < ENTER>
Art St kMi n < ENTER>
Art St kAct < ENTER>
( Art FchLt a < ENTER> < ENTER>

< TAB>
( 1)

Art PrecLt a) < SAVE>
Fi gur a 8 - I ngr eso de una t r ansacci ón

( 1)

GeneXus aut omát i cament e asi gna al pri mer at ri but o de cada ni vel de la
t ransacci ón l a ll ave asoci ada al ni vel . En caso que se qui era agregar más
at ri but os a l a mi sma deberá i ngresarl o manual ment e ant es de presi onar
< Ent er> ut ili zando el bot ón derecho Set Key o di rect ament e ut ilizando el
ast eri sco.

La est ruct ura es despl egada como muest ra l a si gui ent e fi gura:


Fi gur a 9 - Nuev a est r uct ur a

De est a manera, se veri fi ca que el manej o de est ruct uras de t ransacci ones con
respect o a las ver siones ant eri or es no cambió. Si mplement e se mej oró la forma de
most rar l os dat os de manera que sea más i nt ui t i va su represent aci ón agregando
i nformaci ón ext ra como por ej empl o el t i po de dat o de cada at ri but o, descri pci ón, y
en caso que el mi smo sea una f órmul a como est á formada.
22

Además se agrega funci onali dad para mani pul ar si mul t áneament e vari os at ri but os,
faci lit ándol e al usuari o la mani pul aci ón de l os mi smos:

• Mover un conj unt o de i t ems.
• Drag and Drop de i t ems.
• Copi ar un conj unt o de i t ems.
• Borrar un conj unt o de at ri but os.
• Set ear como l l ave un conj unt o de at ri but os.
• Most rar ll aves y fórmul as con íconos di fer ent es.

Para r eal i zar cual qui era de l as operaci ones det all ada en el paso ant eri or, bast a con
sel ecci onar una li st a de at ri but os y ut ilizar las opci ones Special Copy o Move
di sponi bl es en el menú de opci ones:


Fi gur a 10 – Men ú Pop Up de Opci ones

En l as si gui ent es secci ones se especi fi carán l as operaci ones y movi mi ent os
di sponi bl es.

Mov i mi ent os
La si gui ent e fi gura det all a l os posi bl es movi mi ent os a real i zar:


Fi gur a 11 - Movi mi ent os di sponi bl es

23
UP Y DOWN
Se pueden sel ecci onar un conj unt o de at ri but os y moverl os dent ro de su ni vel haci a
arri ba y haci a abaj o ut ilizando l as si gui ent es opci ones:

Move Up = CTRL + UP
Move Down = CTRL + DOWN

Tambi én es possi bl e reali zar di cha operaci ón con el mouse di rect ament e ut ilizando
l a funci onalidad Drag & Drop de Wi ndows.

I NDENTACI ÓN ( LEFT/ RI GHT)
Ut ilizando l a t ecl a de funci ón Tab y SHI FT Tab o l as opci ones del menú pop up
Left / Right es posi bl e i ndent ar o no un at ri but o dent ro de l a est ruct ura. Al presi onar
l a opci ón Left el at ri but o sel ecci onado se el i mina del ni vel donde se encuent ra y se
i ngresa sobre el ni vel superordi nado a cont i nuaci ón del subni vel donde se
encont raba ant eri orment e, mi ent ras que presi onando l a opci ón Right el at ri but o
selecci onado es insert ado en la últ i ma posi ci ón del primer subnivel exist ent e. Si
desea i ngresar un at ri but o sobre un subni vel ya exi st ent e deberá pr esi onar Right
( para que i nsert e un nuevo ni vel ) y post eri orment e Left ( para que cambi e el
at ri but o de ni vel ) .
Al i gual que en el punt o ant eri or es possi bl e reali zar di cha operaci ón con el mouse
di rect ament e ut ili zando l a funci onalidad Drag & Drop.

OPERACI ONES CON EL MOUSE
Todas l as operaci ones que se pueden real izar con t ecl as son t ambi én posi bl es de
real i zar con el mouse. Est as se encuent ran di sponi bl es medi ant e “ Drag & Dr op” o
bot ón derecho, despl egándose un menú pop up ( Fi gura 10) con las di ferent es
opci ones vál i das.

MOVI MI ENTOS
Se debe ut ilizar l a opci ón Drag and Drop, o bot ón derecho y l a opci ón Move ( Fi gura
11)

Move - > Up | Down | Ri ght | Left

COPI A
La opci ón Copi a permi t e copi ar l a defi ni ci ón de uno o vari os at ri but os al
port apapel es. En est e caso se al macena i nt er nament e una est ruct ur a en format o
XML con l a li st a de at ribut os sel ecci onado. Est o posi bili t a l a i nserci ón de at ri but os
en cual qui er part e de l a est ruct ura de l a t ransacci ón.

Por ej empl o, si gui endo el ej empl o del l a Fi gura 9 si se sel ecci onan l os at ri but os
Art I d y Art Dsc, y se presiona Ct rl + C o desde l a opci ón del menu “ Copiar” se
al macena l a si gui ent e est ruct ura:

24

Fi gur a 12 - Copi a de at r i but os

Si reali za l a operaci ón “ Past e” sobre cual qui er obj et o que no sea l a est ruct ura podrá
veri fi car que se i nsert a l íneas si mil ares a l a Fi gura 12.
Si el usuari o l o desea podrá cr ear un archi vo XML i ndi cando l a est ruct ura que desea
para l a t ransacci ón. Al copi arl a y pegarl a sobre l a est ruct ura de t ransacci ones se
act uali za l a vi st a con l os nuevos at ri but os a part i r del at ri but o sel ecci onado.

SPECI AL COPY
La opci ón “ Special Copy” se ut i liza para copi ar el nombre del at ri but o en format o
pl ano. Las opci ones se despl i egan en l a sigui ent e fi gura:


Fi gur a 13 - Speci al Copy

• At t : Copi a el nombre de l a li st a de at ri but os sel ecci onados al port apapel es.
• At t = &At t : para l a li st a de at ri but os sel ecci onado copi a al port apapel es l a
asi gnaci ón de l a vari able al at ri but o. Por Ej empl o si n t engo sel ecci onado el
at ri but o CliCod al ut ili zar est a opci ón se copi a al port apapel es
Cli Cod = &Cl i Cod
• &At t = At t : para l a li st a de at ri but os sel ecci onado se copi a al port apapel es l a
asi gnaci ón del val or de cada at ri but o a l a vari abl e con el mi smo nombre.
Si gui endo el ej empl o ant eri or:
&Cli Cod = Cl i Cod

Oper aci ones
A cont i nuaci ón se det al lan l as oper aci ones vál i das:

EDI T
Permi t e edi t ar el nombre de un at ri but o exi st ent e Se debe sel ecci onar un at ri but o y
presi onar SPACE o haci endo dobl e cl i ck sobr e el mi smo.

Tecl a rápi da ( short cut ) : Space

25
FORMULA
Per mi t e i ngresar l a fór mul a asoci ada al at ri but o sel ecci onado. Est a opci ón es sól o
váli da si se encuent ra sel ecci onado un at ri but o.

LI ST
Despl i ega l a opci ón “ At t ribut e List ing” sobre el at ri but o sel ecci onado. En caso de
real i zar una sel ecci ón múl t ipl e l a operaci ón se r eal iza para el primer at ri but o
sel ecci onado.

CROSS REFERENCE
Obt i ene l a referenci a cr uzada det all ando l os obj et os en donde se encuent ra. Al i gual
que el punt o ant eri or si l a operaci ón se real i za sobre una sel ecci ón múl t ipl e sol o
apli ca al pri mer at ri but o sel ecci onado.

SET KEY
Al sel ecci onar una li st a de at ri but os y presi onar l a t ecl a ‘* ’ ( ast eri sco) se marca
como cl ave l a li st a de at ri but os sel ecci onado. En caso que l os mi smos ya sean cl ave
la selecci ón es eliminada. En caso que se r ealice una múlt iple selección se considera
l a cant i dad de obj et os que t i ene asoci ado una cl ave y dependi endo de est o es l a
operaci ón que se r ealiza. En caso que l a cant i dad de at ri but os secundari os sea
mayor se i nfi ere que el usuari o qui ere marcar l a múlt i pl e sel ecci ón como cl ave, por
l o t ant o se marcan como cl ave. En caso que l a cant i dad de at ri but os si n cl ave sea
mayor se consi dera que el usuari o qui ere el i mi nar t odos l os at ri but os sel ecci onados
de l a ll ave por l o que se el i mi na l a ll ave para t odos. Como regl a general se marca
como cl ave en caso que l a cant i dad de at ribut os si n cl ave sea mayor que l a
cant i dad de cl ave exi st ent es en l a sel ecci ón. Para l os pri mer os at ri but os de cada
ni vel no se real i za est a operaci ón debi do a que es obl i gat ori a l a inclusión de por l o
menos un at ri but o cl ave por ni vel .

Tecl a rápi da ( short cut ) : * ( ast erico)

I NSERT NEW ATRI BUTE
Se encarga de i nsert ar un at ri but o en l a est ruct ura. Si se encuent ra posi ci onado
sobre una at ri but o, se consi dera que se debe insert ar un at ri but o pert eneci ent e al
mi smo ni vel por l o que a cont i nuaci ón se i nsert a un nuevo ít em para i gresar el
at ri but o. En caso que se encuent re sobre l a raíz de un ni vel , se consi dera que se
t i ene que i nsert ar un at ri but o hij o, por l o t ant o se i nsert a un ít em al pri nci pi o del
ni vel .
En el si gui ent e ej empl o se pr esi ona ENTER sobr e el at ri but o Art Dsc, por l o t ant o se
i nsert a un nuevo ít em donde se debe de agregar el nuevo at ri but o, como muest ra
l a Fi gura 14.


26
Fi gur a 14 - I nser t ar un at r i but o

Tecl a rápi da ( short cut ) : ENTER

I NSERT LEVEL
I nsert a un ni vel sobre l a est ruct ura. Si el ít em sel ecci onado es un at ri but o ent onces
se consi dera como un nivel paral el o, de l o cont r ari o es un ni vel subordinado ( hi j o) .

Tecl a rápi da ( short cut ) : ( ( parént esis izquierdo)

DELETE
Permi t e eli mi nar un at ri but o o ni vel de l a est ruct ura dependi endo de donde se
encuent r e. Si se est á sel ecci onando un at ri but o ést e es eli mi nado de l a t ransacci ón.
En caso que se est a sel ecci onando l a raíz de un subni vel se eli mi nan t odos l os
at ri but os subordi nados.

Tecl a rápi da ( short cut ) : DEL

COPY
Permi t e copi ar l a defi ni ci ón de un at rbut o.

Tecl a rápi da ( short cut ) : CTRL. + C

PASTE
Permi t e pegar/ i nsert ar l a defi ni ci ón de un at rbut o.

Tecl a rápi da ( short cut ) : CTRL. + V

Administ ración de preferencias
I nt r oducci ón
En est a versi ón se real i za una reorgani zaci ón de l as pref erenci as en dos ni vel es. Por
un l ado se i nt roduce un nuevo edi t or de propi edades para l a mani pul aci ón de l as
mi smas y se uni fi can t ambi én l a admini st raci ón de l as mi smas.

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Procedimient os, Report es.
Lenguaj es: Todos.
I nt erfaces: Wi n, Web.

27
Descr i pci ón
Como consecuenci a de l a uni fi caci ón de propi edades se r egi st ran l os si gui ent es
cambi os.

• Cambi os en l as opci ones de l as pr ef erenci as ( val or es nuevos o que
cambi an) .
• Cambi os en l as descri pci ones de l as preferenci as.
• Prefer enci as nuevas o preferenci as que se el i minan o sust i t uyen.
• Reagrupaci ón de l as preferenci as por cat egoría ( nuevo agrupami ent o) .

A cont i nuaci ón se det al l an l os cambi os que af ect an a l os generador es. Para cada
propi edad modi fi cada se det al l an l os cambi os reali zados.

Di seño

Nuev as Pr ef er enci as
Si gni fi cant At t ri but e name l engt h
Si gni fi cant Tabl e name l engt h
Si gni fi cant Obj ect name l engt h

Gener ador Jav a
Se r egi st ran l os si gui ent es cambi os para el generador Java.

Cambi o de descr i pci ones de pr ef er enci as
Descr i pci ón Act ual Nuev a Descr i pci ón
Confi rm Confi rmat i on
Set Deci mal Poi nt Deci mal Separat or
Cal cul at or on RBUTTON Cal cul at or on numeri c fi el ds
Report Vi ewer Maxi mi zed Maxi mi zed
Report Vi ewer Al ways on Top Al ways on Top
Di st ri but ed Execut i on Prot ocol
I mages Di rect or y St at i c cont ent base URL
Aut o compress Web pages Aut o compress ht t p t raf fi c(
1
)
Show Connect i on Di al og Show Connect i on Di al og i n Wi nForms
Name Server Host Appli cat i on Server Host

(
1
) - se agrega a ni vel de obj et o en procedi mient os y report es y sól o se muest ra
cuando
l a prefer ence call prot ocol es HTTP.

Cambi o de val or es por def ect o de pr ef er enci as
Pr ef er enci a Val or def aul t Act ual Nuev o v al or def aul t
Deci mal Separat or Poi nt Language Dependent
Dat e Format Defaul t Language Dependent
Year l i mit 0 40
Dat e Format i n CTOD
Funct i on
ENG Language Dependent
28
I ni t i ali ze not refer enced
at t ri but es
No Yes
Show Form Aft er St art Event Bef ore St art Event
Show Menu Bar Yes No
Ski p read onl y col umns Yes No
Add But t on Bi t map gxconfi rm_add. gi f
Del et e Add But t on
Bi t map
gxconfi rm_dl t . gi f
Updat e But t on Bi t map gxconfi rm_upd. gi f

Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón
Ant er i or
Descr i pci ón Act ual
Confi rm each act i on Al ways prompt Confi rmat i on
Do not confi rm each
act i on
Never prompt
mm/ dd/ yy Engli sh Dat e Format
dd/ mm/ yy Spani sh
Yes All Fil es Transact i onal
I nt egri t y No No Fi l es
Yes Al yaws Show Connect i on
Di al og i n
Wi nForms
No Never


Nuev os v al or es en pr ef er enci as
Pr ef er enci a Descr i pci ón
Deci mal Separat or Language Dependent
ANSI ( Y/ M/ D)
I t al i an
Dat e Format
Port uguese
F10 Prompt Key
F12
Language Dependent Dat e Format i n CTOD Funct i on
ANSI ( Y/ M/ D)
Passi ng Last Char
‘+ ’ key, Tab, Shi ft - Tab
Fi el d Exi t
Ent er, Tab, Shi ft - Tab
None
F2
Last Record
F9
Yes Modal ( Report Vi ewer)
No
Exi t Form Esc Key Act i on
None
Yes Cal cul at or on Numeri c Fi el ds
No
I nst al l ed ORB (
1
)
Usi ng st at eful HTTP
Prot ocol
Usi ng st at el ess HTTP

29
(
1
) – La opci ón es el i minada.

Nuev as pr ef er enci as
Fi rst Record
Next Record
Previ ous Record
Aut o Cent er Obj ect s i n 0, 0
Fast Fi rst Row
Encr ypt URL paramet ers
Ht t p back- end base URL
Hel p Mode
Enabl e read- onl y pool
Read- onl y pool si ze unlimi t ed
Maximum number of client s per connect ion
Read- wri t e pool si ze unli mi t ed
On Request SSP Server Di rect ory
On Request SSP Cl i ent URL
Hel p Fil es Base URL
Expand Dynami c cal l s

Pr ef er enci as el i mi nadas
Remot e GXDB+ + Locat i on
Generat e makefi l e
Read- onl y pool
Read- wri t e pool
Mul t i t i er l ocat i on
Aut hent i cat e users usi ng LDAP
Cal cul at or on numeri c fi el ds
Cal endar on dat e fi el ds
Generat e rebui l d redundancy pr ograms
Show i n TaskBar ( SDI )
Ski p Read- Onl y Col umns
Aut omat i c Remot e Procedure Host

Nuevas pr opi edades del DBMS
Mul t i t i er l ocat i on
Lock t i meout
Enabl e Nat i onal Language Support
Connect t o server (
1
)
Oracle Version

(
1
) – A ni vel de Dat a St or e.

Gener ador C/ SQL
Se i mpl ement an l os si gui ent es cambi os para el generador C/ SQL.

Cambi o de descr i pci ón de pr ef er enci as
Descr i pci ón Act ual Nuev a Descr i pci ón
Set Deci mal Poi nt Deci mal Separat or
30
Show Connect i on Di al og Show Connect i on Di al og i n Wi nForms


Cambi o de val or es por def ect o de pr ef er enci as
Pr ef er enci a Descr i pci ón Act ual Nuev a Descr i pci ón
Deci mal Separat or Poi nt Language Dependent
Dat e Format Defaul t Language Dependent
Dat e Format i n CTOD
Funct i on
ENG Language Dependent
I nit iali ze not r ef er enced
at t ri but es
No Yes
Show Connect i on Di alog
i n Wi nForms
Yes Aut omat i c
Pro* C versi on 2. 1 8. 1
Target Operat i ng Syst em Not Speci fi ed Wi ndows

Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón Ant er i or Descr i pci ón Act ual
mm/ dd/ yy Engli sh Dat e Format
dd/ mm/ yy Spani sh
AI X Uni x- ali ke Target
Operat i ng
Syst em
Wi ndows NT Wi ndows
Yes Al ways Show
Connect i on
Di al og i n
Wi nForms
No Never

Nuev os v al or es en pr ef er enci as
Pr ef er enci a Descr i pci ón
Deci mal Separat or Language Dependent
ANSI ( Y/ M/ D)
I t al i an
Dat e Format
Port uguese
Language Dependent Dat e Format i n CTOD
Funct i on ANSI ( Y/ M/ D)
CGI Web Ser ver Modul e Pr ot ocol
I SAPI
Show Connect i on Di alog i n
Wi nForms
Aut omat i c

Val or es el i mi nados en pr ef er enci as
Pr ef er enci a Descr i pci ón
Target Operat i ng Syst em Not Speci fi ed


Nuev as pr ef er enci as
Reorgani ze Server Tabl es
Encr ypt URL Paramet ers
Web Ser ver Modul e Pr ot ocol
31
Ext ensi ons for Web Pr ograms
On Request SSP Server Di rect ory
On Request SSP Cl i ent URL
Generat e Developer menu MakeFile
Hel p Fil es Base URL
Check memory allocat i on
Expand Dynami c cal l s

Nuevas pr opi edades del DBMS
Lock t i meout
Enabl e Nat i onal Language Support
User i d
User password
Connect t o server (
1
)
Oracle Version

(
1
) – A ni vel de Dat a St or e.

Gener ador Vi sual Basi c
Se i mpl ement an l os si gui ent es cambi os para el generador Vi sual Basi c.

Cambi o de descr i pci onesde pr ef er enci as
Descr i pci ón Act ual Nuev a Descr i pci ón
Confirm Confirm Transact ion
Report Vi ewer Al ways on Top Al ways on Top
Report Vi ewer Al ways Maxi mi zed Maxi mi zed
Li st of remot e programs ( ODBC) Li st of remot e programs ( ODBC/ JDBC)
Mai n Web Proj ect Name Web Devel oper Menu Proj ect Name
Show Connect i on Di al og Show Connect i on Di al og i n Wi nForms

Cambi o de val or es por def ect o de pr ef er enci as
Pr ef er enci a Descr i pci ón Act ual Nuev a Descr i pci ón
Dat e Format Defaul t Language Dependent
Dat e Format i n CTOD
Funct i on
ENG Language Dependent
Report Vi ewer Al ways On
Top
No Yes
Maxi mum WorkFil e Li nes - 10000
Show st at us bar Yes Dependi ng on obj ect
t ype
Combo St yl e i n Gri d Combo St yl e i n Gri d Combo St yl e
Show Connect i on Di alog
i n Wi nForms
Yes Aut omat i c

Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón
Ant er i or
Descr i pci ón Act ual
mm/ dd/ yy Engli sh Dat e Format
dd/ mm/ yy Spani sh
32
Yes Al ways Show St at us
Bar No Never
Fi el d Exi t Ent er, Tab, Shi ft - Tab Tab Ent er
Pri nt Met hod VB Nat i ve Pri nt i ng Nat i ve Pri nt ing
Yes Al ways Show
Connect i on
Di al og i n
Wi nForms
No Never

Nuev os v al or es en pr ef er enci as
Pr ef er enci a Descr i pci ón
ANSI ( Y/ M/ D)
I t al i an
Dat e Format
Port uguese
F10 Prompt Key
F12
Dat e Format ANSI ( Y/ M/ D)
Dat e Format i n CTOD
Funct i on
Language Dependent
Show St at us Bar Dependi ng on obj ect t ype
Refr esh Key None
Fi el d Exi t Passi ng Last Char
Show Connect i on Di alog i n
Wi nForms
Aut omat i c

Pr ef er enci as el i mi nadas
Vi sual Basi c Versi on
Generat e Web Panel s as Web Cl asses

Nuev as pr ef er enci as
Decl are Local Ref er ent i al I nt egri t y ( Access)
Procedure and Report Generat i on
Force Generat i on of Devel oper Menu
Mai n Web Proj ect Name
Generat i on Mode
Encri pt i on Key
On Request SSP Server Di rect ory
On Request SSP Cl i ent URL
Hel p Fil es Base URL
Expand Dynami c cal l s

Cambi os específ i cos al gener ador Vi sual Basi c Cl i ent e/ Ser v i dor

Cambi o de val or es por def ect o de pr ef er enci as
Pr ef er enci a Descr i pci ón Act ual Nuev a Descr i pci ón
Tabl es i n Server No t abl es are i n t he
server
All t abl es are i n t he
server
I nit iali ze not r ef er enced
at t ri but es
No Yes

33
Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón
Ant er i or
Descr i pci ón Act ual
Confi rm each act i on Yes Confi rm
Transact i on Do not confi rm each
act i on
No

Nuevas pr opi edades del DBMS
Mul t i t i er l ocat i on
Lock t i meout
Enabl e Nat i onal Language Support
User i d
User password
Connect t o server (
1
)
Oracle Version

(
1
) – A ni vel de Dat a St or e.

NOTAS:
• La prefer enci a “ Aut o Ski p” se eli mi na ya que a part i r de ahora l a propi edad
“ Field Exit ” posee una opci ón que r ealiza lo mismo. El valor es “ Passi ng Last
Char” que permi t e cambi ar el foco al próxi mo cont r ol válido al fi nalizar de
ll enar el campo act ual .
• La propi edad “ Combo St yl e” apli ca sol ament e a combos defi ni dos dent ro de
subfil es.

Gener ador Vi sual Fox Pr o
Se r eal i zan l os si gui ent es cambi os en el generador Vi sual Fox Pro.

Cambi o de descr i pci ones de pr ef er enci as
Descr i pci ón Act ual Nuev a Descr i pci ón
Confi rm Confi rmat i on
Set Deci mal Poi nt Deci mal Separat or
Cal cul at or on RBUTTON Cal cul at or on numeri c fi el ds
Report Vi ewer Maxi mi zed Maxi mi zed
Report Vi ewer Al ways on Top Al ways on Top
GeneXus Gri d Text Gri d Size
Obj ect Menu Bar Show Menu Bar
Combo/ Li st Box St yl e Combo Box St yl e
Show Connect i on Di al og Show Connect i on Di al og i n Wi nForms

Cambi o de v al or es por def ect o en pr ef er enci as
Pr ef er ence Val or def aul t Act ual Nuev o v al or def aul t
Confi rmat i on Do not Confi rm each
Act i on
Never Prompt
Deci mal Separat or Poi nt Language Dependent
Dat e Format Defaul t Language Dependent
Set Exact Off On
Esc Key Act i on Exi t l evel Exi t Form
34
Color in read only fi el ds Original Grayed ( Windows
Defaul t )
Show Connect i on Di alog
i n Wi nForms
Yes Aut omat i c

Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón
Ant er i or
Descr i pci ón Act ual
Confi rm each act i on Al ways Prompt Confi rmat i on
Do not confi rm each
act i on
Never Prompt
mm/ dd/ yy Engli sh Dat e Format
dd/ mm/ yy Spani sh
Esc Key Act i on Exit Level Change Level
Yes Al ways Show Connect i on
Di al og i n
Wi nForms
No Never

Nuev os v al or es en pr ef er enci as
Pr ef er enci a Descr i pci ón
Confi rmat i on Do not Prompt on Fi rst Level
Deci mal Separat or Language Dependent
ANSI ( Y/ M/ D)
I t al i an
Port uguese
Dat e Format
ANSI ( Y/ M/ D)
Passi ng Last Char
‘+ ’ key, Tab, Shi ft - Tab
Fi el d Exi t
Ent er, Tab, Shi ft - Tab
Show St at us Bar Never
Show Connect i on Di al og in
Wi nForms
Aut omat i c

Cambi os específ i cos al gener ador Vi sual Fox Pr o Cl i ent e/ Ser v i dor

Cambi o de descr i pci ones de pr ef er enci as
Pr ef er enci a Descr i pci ón Act ual Nuev a Descr i pci ón
Dat e Format i n CTOD
Funct i on
Engli sh Language Dependent

Cambi o en descr i pci ones de l as pr ef er enci as
Pr ef er enci a Descr i pci ón
Ant er i or
Descr i pci ón Act ual
Confi rm each act i on Al ways Prompt Confi rmat i on
Do not confi rm each
act i on
Never Prompt

Nuev as pr ef er enci as
Expand Dynami c cal l s

35

Nuevas pr opi edades del DBMS
Lock t i meout
User i d
User password
Connect t o server (
1
)
Oracle Version

(
1
) – A ni vel de Dat a St or e.


Gener ador C#
Las preferenci as que apl i can al generador C# const a de:

• t odas l as pr ef er enci as que apli can a Cli ent e/ Ser vi dor.
• específi cas al l enguaj e.

Específ i cas C#
Use .Net Cont rol s
Appli cat i on Namespace
Compil er fl ags

Cont r ol es del For m HTMLJava
A cont i nuaci ón se det all an l as nuevas pr opi edades di sponi bl es en el formul ari o
HTML.

DI SEÑO
Nuev as Pr ef er enci as
Obj et o Gr upo Pr opi edad
Col umnas de Subfil es Appearance Format
Subfil es Appearance Rows

Pr ef er enci as El i mi nadas
Obj et o Gr upo Pr opi edad
Wi dt h At ri but os Appearance
Hei ght
Col umnas de Subfil es Appearance Hei ght

RUNTI ME
Nuev as Pr ef er enci as
Obj et o Gr upo Pr opi edad
Subfil es Appearance BackSt yl e
col umnas de subfi l es Appearance Format

Pr ef er enci as El i mi nadas
36
Obj et o Gr upo Pr opi edad
Wi dt h At ri but os Appearance
Hei ght
Hei ght col umnas de subfi l es Appearance
Ti t l eBackSt yl e

La col umna Grupo hace referenci a a l a agrupaci ón di sponi bl e en el edi t or de
t ransacci ones.

Pr ef er enci as di sponi bl es a ni vel de obj et o
A cont i nuaci ón se det all an l as preferenci as que fueron i mpl ement adas a ni vel de
obj et o a part i r de est a versi ón:

• Aut ocent er obj ect s i n 0, 0
• Beep on er r or s
• Beep on Message
• Generat e FOR UPDATE Cl ause
• Funct i ons
• Call Prot ocol (
1
)
• When t o Ref r esh (
2
)
• Use HTTP back- end
• Encr ypt URL paramet ers

Los val ores posi bl es que pueden t omar l as pri meras ci nco propi edades son:

Descr i pci ón
Use Model ’s pr ef er ence val ue
( 3)

Yes
No

(
1
) – Solo se encuent ra di sponible si el obj et o es main. De lo cont rari o no se
despliega y se ut iliza el valor I nt ernal.
(
2
) – Vál i da sol o para Work Panels. Se ut ili za en conj unt o con l a propi edad
Aut omat ic Refr esh.
(
3
) – No apl i can a l as cuat ro úl t i mas propi edades.


Pr opi edades de Dat a Vi ew s

Cambi o de descr i pci ón
Pr opi edad Descr i pci ón Act ual Nuev a Descr i pci ón Apl i ca a
Tabl e Name Tabl e name Name Access, DB2
6000, DB2 400,
I nf ormix, Oracle,
SQLServer
Fil e Name Fil e Name Name AS400 Nat i ve,
DBCFDI X,
37
DBFI DX
Li brary Dat abase Locat i on Locat i on Access, AS400
Nat i ve, DB2/ 400,
DBFCDX,
DBFI DX,
I nf ormi x,
SQLServer,
ORALCE
I ndex Name I ndex Name Name Access, AS400
Nat i ve, DB2
6000, DB2/ 400,
I nf ormi x,
SQLServer,
ORALCE
TAG Name TAG Name Name DBFI DX
Schema Schema Schema Name I nf ormi x, Oracl e,
SQLServer

38
Compat i bi l i dad
A cont i nuaci ón se det allan l as consi deraci ones a t ener en cuent a al abri r bases de
conoci mi ent o creadas con ver si ones ant eri or es a GENEXUS 7. 5.

• Valor por Def ect o: Si se t i ene set eado el val or por def ect o, puede ocur rir que en
ci ert as propi edades l os val ores cambi en al abrir l a base de conoci mi ent o con la
nueva versi ón. Si desea consul t ar a cerca de qué propi edades cambi an podrá
consul t ar l a secci ón “ Cambio de Valor Por Def ect o” de cada generador.
• Prefer encias Nuevas o Eliminadas: Al gunas de l as propi edades elimi nadas
deberan set ear su val or en un nuevo val or de al guna ot ra propi edad exi st ent e o
nueva. Por ej empl o dej a de exi st i r l a Propi edad Aut oSkip y l a Propi edad Field
Exit agrega un nuevo val or para poder set ear l a opci ón Aut oski p.
• Nuevas Descripciones: Al abri r un model o con l a nueva versi ón de GENEXUS, l as
descri pci ones de l as mi smas son act uali zadas aut omát i cament e y est o no
det ermi na ni ngún cambio de comport ami ent o en el model o.

Edit or de Propiedades
I nt r oducci ón
En l a versi ón GeneXus 7. 0, fue i nt roduci do un nuevo edi t or de propi edades para
admi ni st rar las propiedades r elaci onadas a la configuración de la Base de Dat os, así
como t ambi én l as propi edades rel aci onadas a l os cont r ol es de l os obj et os
desarr oll ados con el edi t or HTML. A part i r de est a versi ón se uni fi can t odos l os
di ál ogos de admi ni st ración de pr opi edades a est e nuevo edi t or.
Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Cobol , RPG, Vi sual FoxPro, Vi sual Basi c, Java, C/ SQL, C#
I nt erfaces: Web, Wi n.

Descr i pci ón
Se uni fi ca l a edi ci ón de propi edades medi ant e la ut ili zaci ón del edi t or incl uído en l a
versi ón 7. 0. Est o i mplica un cambi o en l a forma de guardar, acceder , edi t ar y
agrupar l as defi ni ci ones de propi edades de:

• Model os.
• Obj et os.
• Cont rol es ( en caso de ut ilizar el nuevo edi t or de forms) .

Agr upami ent o de Pr ef er enci as
El cri t eri o de agrupaci ón ut ili zado consi st e en di vi di r l as Pref erenci as en general es o
específi cas de una pl at aforma. El obj et i vo es dar al usuari o mayor cl ari dad y
39
faci lidad de uso.

A cont i nuaci ón se muest ra un ej empl o de confi guraci ón de propi edades para el
generador Vi sual Basi c Cli ent e/ Servi dor.


Fi gur a 15 – Conf i gur ando un model o Cl i ent e/ Ser v i dor

Funci onal i dad
A part i r de est a versi ón el edi t or de propi edades t i ene l a capaci dad de guardar su
est ado ant eri or. Est o permi t e que al abri r el obj et o nuevament e se “ r ecuerde”
( expandi endo/ cont rayendo) el est ado del árbol de propi edades.

Medi ant e l a ut ilizaci ón de l a t ecl a de funci ón F2 ( o bot ón derecho y “ Alphabet ic
View” ) , el usuari o t i ene l a posi bilidad de ordenar al fabét i cament e l as propi edades
no t omando en cuent a l os grupos a l os cuál es pert enece l a mi sma. En caso de
necesi t ar ubi car det ermi nada propi edad en el árbol de pref erenci as, podrá presi onar
nuevament e l a mi sma t ecl a ( F2) . De est a manera se vuel ve a l a vi st a cat egori zada
( “ Cat egorized View” ) al act ualizarse el árbol de propi edades, posi ci onándose en l a
propi edad sel ecci onada en el paso ant eri or. Est o es vál i do en caso que previ ament e
40
se encuent re expandi do el árbol en el cuál se encuent ra di cha propi edad.

Con l a t ecl a de funci ón F3 ( o bot ón derecho y “ Hide Default Column” ) , el usuari o
t i ene l a posi bilidad de vi suali zar/ ocul t ar el ast eri sco que permi t e act uali zar al val or
por def ect o de l as propiedades.

Los val or es que puede t omar l a col umna “ Default ” son l os si gui ent es:

Val or Descr i pci ón

Se t oma el val or por def ect o

I ndi ca que el usuari o cambi ó explíci t ament e
el val or de l a propi edad

La act uali zaci ón de l as propi edades no se real iza hast a que el usuari o presi one el
bot ón “ OK” .

Para moverse ent re l as propi edades es posi bl e ut ili zar l a t ecl a Tab y Shift Tab.

41
Nuevo Edi t or de For ms
Se uni fi ca t ambi én el manej o de propi edades para el nuevo edi t or de forms.
A part i r de est a versi ón se ut ili za el nuevo edi t or para confi gurar l as propi edades de
cual qui er obj et o creado con el nuevo edi t or de Forms.

Al realizar dobl e cli ck o presi onar l a t ecl a Ent er sobre cual qui er cont rol , se abre un
di ál ogo con l as propi edades del mi smo. El orden de apari ci ón de propi edades es el
si gui ent e:

• propiedades r elaci onadas con la posi ci ón del cont rol en el f ormul ario.
• propi edades general es.
• propi edades específi cas del cont rol ( en caso que apli que) .

A cont i nuaci ón se det all a un ej empl o de confi guraci ón de propi edades para un
ComboBox.


Fi gur a 16 - Conf i gur aci ón de pr opi edades de un ComboBox

Edit or de Pict ures
I nt r oducci ón
El obj et i vo de es faci lit ar l a creaci ón de pi ct ures ( máscaras o format os de edi ci ón)
42
sobr e l os at ri but os o vari abl es de Transacci ones, Work Panel s, Web Panel s y
Report es.

Descr i pci ón
Las pi ct ures son máscaras o f ormat os de ent rada sobre l os dat os. En versi ones
ant eri or es, se permi t ía l a edi ci ón de l as mi smas de forma manual . Se i nt egra en
est a versi ón a l a defini ci ón de at ri but o/ variabl e el poder sel ecci onar “ pi ct ures
preest abl eci das” , si endo ést as l as de uso más común y que no dependen del
generador ut ili zado.

Def i ni ci ón de pi ct ur es
Para poder defi ni r una pi ct ures, se debe ut ili zar el TAB Advanced del di al ogo de
cr eaci ón/ edi ci ón de at ri but o/ vari abl e. Dent ro del mi smo se encuent ra el Tag
“ Pi ct ure” , donde se muest ran l as opci ones di sponi bl es dependi endo del t i po de
dat os que se haya sel ecci onado al defi ni r el at ribut o/ vari abl e.




Pr opi edades
Numér i cos
Las si gui ent es propi edades se apli can al t i po de dat o Numer i c.


43

Lef t Fi l l
I ndi ca como han de most rar se l os ceros no si gni fi cat i vos ( ceros a l a i zqui erda)
del número.

Val or es:
• Bl ank : l os cer os no si gni fi cat i vos no se muest r an, per o el número 0 si .
• Bl ank w hen Zer o: l os ceros no si gni ficat i vos no se muest ran, y el
número 0 t ampoco.
• Zer o: se muest ran l os ceros no si gni fi cat i vos.

Ej empl o: consi dérese l a defi ni ci ón de un numéri co de l argo 7 y 2 deci mal es,
N( 7, 2) . Para est a defi nici ón, se muest ra como se defi ne l a pi ct ure y cual es l a
sali da para una seri e de val ores.

I NPUT OUTPUT
N( 7, 2) 0 123. 5
Blank ZZZ9. 99 0. 00 123. 50
Blank when zero ZZZZ. ZZ 123. 5
Zer o 9999. 99 0000. 00 0123. 50

Thousand Separ at or
Det ermi na si se desea i ncorporar separador par a l os mil es o no.

Val or es:
• Tr ue: con separador de mi l es.
• Fal se: si n separador de mi l es.

El separador de mi l es se represent a si empre por una coma, cuando se
escribe la pi ct ure, pero su verdader o valor lo t oma de la Pr opert y del
model o: ‘Deci mal Separat or’ que por defect o es dependi ent e del l enguaj e
del si st ema.

Ej empl o: t omando el ej empl o ant eri or ( vi st o en l a propi edad Left Fill ) , con
Left Fi ll = Bl ank, y con el l enguaj e del si st ema en i ngl és:

I NPUT OUTPUT
N( 7, 2) 456 1123. 5
True Z, ZZ9. 99 456. 00 1, 123. 5
False ZZZ9. 99 456. 00 1123. 5

Pr ef i x
Text o que desea col ocarse ant eri orment e al númer o. Cabe acl arar que no se
real i za ningún cont rol sobr e el t ext o escri t o ( si l a pl at aforma ut i lizada l o
soport a o no) , pero al gunos símbol os pueden provocar un comport ami ent o no
44
esperado. ( por ej empl o en Vi sual Basi c no se admi t e el símbol o ! como
prefi j o) .

Al f anumér i cos
La si gui ent e propi edad se apl i ca a l os t i pos de dat os Char act er y Var Char .



Case
I ndi ca l a forma en que ha de most rarse el t ext o, y en l a que se al macena

Val or es:
• None: most rar y al macenar el t ext o como se ha escri t o y permi t i r l a
combi naci ón de mayúscul as
• Upper : most rar y al macenar el t ext o t odo en mayúscul as.
Ej empl o:


I NPUT OUTPUT
C( 10) “ Hol a Mundo”
None Hol a Mundo
False @! HOLA MUNDO


Fecha y Hor a
El si gui ent e di ál ogo es apli cabl e al t i po de dat o Dat e.




El si gui ent e di ál ogo es apli cabl e al t i po de dat o Dat eTi me.




45
Dat e For mat
Det ermi nar el format o de l a fecha ( bási cament e si se desea most rar con 2 o 4
dígit os para el año. ) .

Val or es:
• None: se muest ra la fecha con el format o por def ect o del generador ( que
es el año con dos di git os) • Year w i t h t w o di gi t s ( 99/ 99/ 9 9) : most rar
l a fecha con dos dígit os en el año
• Year w i t h f our di gi t s ( 99/ 99/ 9999 ) : most rar l a fecha con cuat ro
dígit os en el año.

NOTA: cabe acl arar que, i ndependi ent ement e de cómo se edi t e, la fecha
si empre se al macenará con 4 dígi t os en el año. Si se edi t a con 2 dígit os en el
año ent onces el si gl o se compl et a dependi endo de l a prefer ence “ Fi rst Year of
t he 20t h cent ury”

Hast a l a versi ón 7. 0 incl usi ve para el t i po de dat o Dat eTi me, se modi fi caban
l os campos de l argo y deci mal es para f ormar l a pi ct ure. Est os campos ahor a
aparecen deshabili t ados, y l os val ores son ini ci ali zados a t ravés de l os val ores
t omados de l a pi ct ure. Es deci r, si se sel ecci ona Dat e Format = Year wi t h four
di git s ( 99/ 99/ 9999) , el campo de l argo se i ni ciali za en 10, si Dat e Format =
None, el campo se encuent ra en 0.


Ej empl o:

I NPUT OUTPUT
Dat e 122501
None
Year wit h t wo digit s ( 99/ 99/ 99) 99/ 99/ 99 12/ 25/ 01
Year wit h f our digit s ( 99/ 99/ 9999) 99/ 99/ 9999 12/ 25/ 2001

Hour For mat
Det ermi nar el format o de l a hora.

Val or es:

• Onl y hour ( hh) : most rar sol ament e l a hor a.
• Hour and mi nut es ( hh: mm) : most rar hor as y mi nut os.
• Hour , mi nut es and seconds ( hh: mm: ss) : most rar horas, minut os y
segundos.

I NPUT OUTPUT
Dat eTi me 123699
Only Hour ( hh) 99 12
Hour and minut es ( hh: mm) 99: 99 12: 36
Hour, minut s and seconds
( hh: mm: ss)
99: 99: 99 12: 36: 59


46


Obser v aci ones
En el caso de Obj et os Web l as pi ct ures numéri cas apli can úni cament e en
campos de sol o l ect ura no así en campos de ent rada.

Nuevo Edit or de forms – Act ivex
I nt r oducci ón
La caract eríst i ca fundament al del nuevo edi t or de f orms ( o formul ari os) es que est á
const rui do sobre un cont enedor de cont rol es Act i veX. Est o permi t e que además de
l os cont rol es est ándar ( at ri but os, bot ones, et c. ) puedan ser ut ilizados cont rol es
Act i veX en l a defi ni ci ón de f ormul ari os.
Al cance
Obj et os: Wor k Panel s
Lenguaj es: Java( * ) – Vi sual Basi c – Vi sual FoxPro
I nt erfaces: Web

( * ) El soport e de Act i veX no apl i ca a Java.
Descr i pci ón
Por defect o, t odos l os for ms son creados con el edi t or ant eri or que no soport a
Act i veX. Si n embargo, en l os Work Panel s es posi bl e ut ilizar est e nuevo edi t or. Para
ello se debe configurar la propiedad de los mismos ‘Use New For m Edit or’ en su
val or ‘True’.
47


Luego de est o se debe sal var y cer rar el obj et o; al abri rl o nuevament e se abri rá
present ando el nuevo edi t or.


Not a:
Se sugi ere ut i lizar est e edi t or úni cament e en el caso en que se desee i ncl ui r
cont r ol es Act i veX en el formul ari o.

Cont r ol es en gener al

Para i nsert ar cont rol es en el form, se ut i lizan l os cor r espondi ent es bot ones de l a
pal et a de cont rol es. A di ferenci a del edi t or ant eri or, al presi onar uno de est os
bot ones, el cont r ol es cr eado en f orma i nmedi at a en el form.
Una vez que l os cont r ol es han si do agr egados al form, l a sel ecci ón y el movi mi ent o,
funci onan exact ament e i gual que en el edi t or ant eri or.

El movi mi ent o de l os cont rol es dent ro del form, t ambi én puede reali zarse ut i lizando
l as fl echas del t ecl ado. Si además se pr esi ona l a t ecl a de Mayúscul a ( Shi ft ) se
i gnora el gri d mi ent ras se r eali za el movi mi ent o.

Cont r ol es Act i veX
El bot ón correspondi ent e a l os cont rol es Act i veX es el úl t i mo de l a pal et a:
Ant es de i nsert ar el cont rol , GeneXus present a al usuari o l a li st a de t odos l os
cont rol es i nst al ados y regi st rados en l a máquina, para que ést e eli j a cuál es el que
48
desea i nsert ar.



Una vez el egi do, el cont rol es agr egado al form.


En est e ej empl o se el igió un cont rol para manej ar un cal endari o ( Cal endar Cont rol
8. 0) .

Edi ci ón de Pr opi edades
Junt o con est e edi t or exi st e un nuevo edi t or de propi edades para l os cont rol es.
49
Al dar dobl e cli ck o Ent er sobr e al gún cont rol , se abre un di álogo con l as
propi edades del mi smo.

Consi der aci ones gener al es
No se encuent ra i mpl ement ada l a conversi ón de forms desde/ haci a est e
edi t or.
No se soport a por el moment o parámet ros en l a defi ni ci ón de l os event os
de los cont r oles Act i veX.
Los si gui ent es Act i veX no pueden ser ut ili zados por el moment o:
Act i veMovi eCont rol obj ect
Mi crosoft Net Show pl ayer
Real Vi deo Act i veX Cont rol ( 32 bit s) obj ect .

Act ual ment e sol o se puede especi fi car y generar l os Act i veX que t i enen l a
capaci dad de sal varse " as t ext " . Hay cont rol es que no l o soport an, pues
est a capaci dad es opci onal ( En Vi sual Basi c est os son l os Act i veX que,
cuando se sal van, además del * . f rm, se guardan en un * . f rx) .

Ej empl os
Los ej empl os demuest r an cómo i nsert ar cont r ol es de t i po Tr eevi ew y Progressbar
en un Work Panel así como su funci onami ent o.

Puede obt ener document aci ón y una base de conoci mi ent o que i lust ra su
funci onami ent o baj o est a URL:
ht t p: / / www. art ech. com. uy/ cgi - bin/ webart ech/ hdcver03. exe?S, 31, 0, 481

Select obj ect
I nt r oducci ón
A part ir de est a ver sión se modi fi có el select or de obj et os, permit iendo ver las
descri pci ones de l os obj et os en forma compl et a.
Descr i pci ón
Al sel ecci onar el sel ect or de obj et os se ofr ece una pant all a como l a que se muest ra
a cont i nuaci ón.


50

Fi gur a 17 – Sel ect or de Obj et os

A su vez se permi t e modi fi car el t amaño de la vent ana permi t i endo ver en forma
compl et a l as descri pciones de l os obj et os, una vez modi fi cado conserva esa
di mensi ones hast a una próxi ma modi fi caci ón.
Dent ro de l os obj et os que muest ra se han agregado l os f ol ders, permi t i endo abri r
uno desde est e di ál ogo.
51
Pat r ones de búsqueda
Se permi t e buscar por el i ni ci o de l a descri pci ón de l os obj et os, l a forma de hacerl o
es: < coma> < dos punt os> < pat t er n> como por ej empl o: ,: i



Fi gur a 18 – Búsqueda
Nuevo “ View” de Obj et os
I nt r oducci ón
A part i r de est a versi ón se modi fi ca l a vi st a asoci ada a t odos l os obj et os GeneXus,
pri nci pal ment e para mej orar l a i nt erfaz haci endol a mas cl ara y ami gable al usuari o.
Al cance
Obj et os: Transacci ones, Work Panel s, Web Panel s, Procedi mi ent os, Report es, Dat a
Vi ews, Menues, Menu Bars.
Lenguaj es: Todos.
I nt erface: Wi n, Web.

52
Descr i pci ón
En est a versi ón se cambi a el “ vi ew” de t odos los obj et os GeneXus. Para permi t i r
t ener una represent aci ón más i nt uit i va así como t ambi én una manera de separar
l os di st i nt os aspect os que componen un obj et o, permi t i endo que l os component es
de un obj et o sean mas fáci l ment e accesi bl es l o que mej ora el t rabaj o de defi ni ci ón
de l os mi smos.

A cont i nuaci ón se det al lan l os cambi os r eal i zados.

Tr ansacci ones
Las t ransacci ones per mi t en defi ni r l os obj et os de l a reali dad. A part i r de est a
versi ón, t ambi én es posi bl e generar t ransacci ones di sponi bl es para apli caci ones
I nt ernet ( t ransacci ones en el Web) , obt eni endo t oda l a pot enci a de est e t i po de
obj et os para el ingreso de dat os.
En est e caso se separ an l as di st i nt as part es que conf orman l a t ransacci ón en
di st i nt as vi st as.

A cont i nuaci ón se det al lan l os di st i nt os “ Tabs” que componen el obj et o:



Fi gur a 19 - Tr ansacci ones

• St ruct ure: En est a secci ón se i ngresa l a est r uct ura de l a t ransacci ón. Se
debe det al l ar l os at ri but os pert eneci ent es a l a t ranscci ón, ni vel es que l a
componen y cl ave par a cada uno de l os ni vel es especi fi cados ( Edi t or de
Transacci ones) .
• Form: se det all a el for mul ari o con i nt erface GUI asoci ado a l a est r uct ura
det all ada en el punt o ant eri or.
• Web Form: se det alla el formul ario con int erface WEB ( HTML) asociado a la
est ruct ura defi ni da. Si se sel ecci ona bot ón derecho y Edi t HTML Sour ce se
despl i ega el fuent e HTML asoci ado.
• Rules: En est e t ab se agrupan regl as rel aci onados a l a t ransacci ón.
• Event s: Agrupa l os event os asoci ados.
• Subrout ines: Subrut i nas asoci adas al obj et o.
• Help: secci ón específi ca para i ngresar l a ayuda.
• Document at ion: secci ón especi fi ca donde se i ngresa l a document aci ón
rel aci onada al obj et o.

Al abri r un obj et o Transacci on, el Tab por defect o que se sel ecci ona es l a est ruct ura
en di seño. De l o cont rari o ( prot ot i po/ producci ón) se abre en el Tab Form ( GUI ) si el
generador pri nci pal es Wi n y Web Form si el generador pri nci pal es Web. En caso
que el obj et o sea mai n se abre el Form corr espondi ent e asoci ado a ese ambi ent e.
Los St yl es t i enen el mi smo comport ami ent o de l as t ransacci ones no mai n, donde se
t oma en cuent a el ambient e Default .

53
Repor t es y Pr ocedi mi ent os
Los report es y pr ocedi mient os defi nen procesos no i nt eract i vos de ext racci ón y/ o
act uali zaci ón de dat os. Por un l ado l os procedimient os t i enen l a posi bilidad de
ext raer i nformaci ón y/ o act ual izar l a base de dat os ( procesos bat ch) . Como
cont rapart i da l os report es est án encargados de recuperar l a informaci ón a part i r de
l os dat os al macenados si n t ener l a posi bili dad act ualizarl os.


Fi gur a 20 - Repor t es y Pr ocedi mi ent os

A cont i nuaci ón se det al lan l os di st i nt os Tabs que componen di chos obj et os:

• Layout : especi fi ca el format o r el aci onado a la sali da y t ambi én l a l ógi ca
i nvol ucrada para l a obt enci ón/ act uali zaci ón de l a i nformaci ón.
• Rules: se det all an l as regl as i nvol ucradas en l a obt enci ón de l a informaci ón.
• Subrout ines: agrupan l as rut i nas asoci adas al obj et o.
• Condit ions: det al l a l as condi ci ones apl i cadas.
• Help: ayuda asoci ada al obj et o.
• Document at ion: secci ón específi ca donde se i ngresa l a document aci ón
rel aci onada al obj et o.

Web Panel s
Los Web Panels son obj et os que permi t en const rui r pági nas WEB dinámi cas que
i nt eract úan con l a base de dat os.


Fi gur a 21 - Web Panel s

A cont i nuaci ón se det al lan l os di st i nt os Tabs que l o componen:

• Web Form: Det al l a el formul ari o en format o HTML asoci ado. Si se sel ecci ona
bot ón derecho y Edit HTML Sour ce se despl i ega el fuent e HTML asoci ado. En
est a secci ón el usuari o podrá i ngresar códi go HTML ext ra.
• Rules: en est a secci ón se det all a l as regl as asoci ado al obj et o.
• Event s: especi fi can l os event os r el aci onados al Web Panel .
• Subrout ines: agrupan l as rut i nas asoci adas al obj et o.
• Condit ions: det al l a l as condi ci ones apl i cadas.
• Help: ayuda asoci ada al obj et o.
• Documant at ion: document aci ón asoci ada al obj et o.

Wor k Panel s
Los obj et os Work Panles permi t en defi ni r consul t as i nt eract i vas a l a base de dat os.


Fi gur a 22 - Wor k Panel s
54

A cont i nuaci ón se det al lan l os di st i nt os Tabs que l o componen:

• Form: Se det all a el for mul ari o GUI asoci ado.
• Rules: En est e t ab se agrupan regl as que apli can al Work Panel .
• Event s: especi fi can l os event os r el aci onados al Work Panel .
• Subrout ines: agrupan l as rut i nas asoci adas al obj et o.
• Condit ions: det al l a l as condi ci ones apl i cadas.
• Help: ayuda asoci ada al obj et o.
• Document at ion: document aci ón asoci ada al obj et o.

Menues
Los menues est án encargados de organi zar al rest o de l os obj et os y por l o general
marcan l os punt os de ent rada a l a apli caci ón.


Fi gur a 23 – Menues

Const a de l os si gui ent es Tabs:

• St ruct ure: Det al l a l a est ruct ura del menú.
• Help: ayuda asoci ada al obj et o.
• Document at ion: document aci ón asoci ada al obj et o.

NOTA: Sól o son vál i dos para l os generadores gr áfi cos.

Dat a Vi ew s
Los Dat a Vi ews son obj et os que permi t en manej ar archi vos ext ernos como si
pert eneci eran a l a Base de Conoci mi ent o.


Fi gur a 24 - Dat a Vi ew s

A cont i nuaci ón se det al lan l os Tabs r el aci onados:

• St ruct ure: especi fi ca la est ruct ura rel aci onada al dat a vi ew, det all ando
at ri but os e índi ces rel aci onados así como t ambi én pl at aformas.
• Document at ion: document aci ón asoci ada al obj et o.

Menu Bar
Los obj et os MenuBar permi t en que l os formul ari os hagan uso de su propi a Menu
Bar o Tool Bar.


55
Fi gur a 25 - Menu Bar

A cont i nuaci ón se det al lan l os Tabs r el aci onados:

• St ruct ure: especi fi ca l a est ruct ura rel aci onada del Menu Bar.
• Event s: Permi t e i ngresar event os ut i lizados en el obj et o.
• Help: ayuda asoci ada al obj et o.
• Document at ion: document aci ón asoci ada al obj et o.

NOTA: Sól o son vál i dos para l os generadores gr áfi cos.

Consi der aci ones
En caso que l a base de conoci mi ent o t enga obj et os pri vados se el imi nan ci ert os
t abs dependi endo del obj et o, debi do a que no es posi bl e acceder a esas secci ones
en caso que el mi smo sea pri vado.

A cont i nuaci ón se det al lan l os di st i nt os Tabs que son eli mi nados para cada obj et o.

• Transacciones: Se eliminan los Tabs Rules, Event s y Subrout ines.
• Report es y Procedimient os: Se eliminan t odos los t abs.
• Work Panels y Web Panels: Se eliminan los Tabs Rules, Event s, Subrout ines,
y Condit ions.

Es import ant e r esalt ar que en el modelo donde se consoliden no est arán di sponibles
l as regl as, por l o cual no se t i ene el conoci mi ent o de l os parámet ros que reci be el
obj et o, por l o que result a i mport ant e ent onces defi ni r en l a document aci ón del
obj et o que parámet ros y de que t i po son l os que reci be para su correct a ut ilizaci ón.
Par a l os obj et os Menu, Dat a Vi ew s y Menu Bar l as consi der aci ones
ant er i or ment e menci onadas no apl i can. Si desea obt enér más i nf or maci ón
a cer ca de Obj et os Pri vados podr á consul t ar l as Rel ase Not es de GeneXus 7 .0
en:
ht t p: / / www. art ech. com. uy/ cgi - bin/ webart ech/ hdcver03. exe?S, 31, 0, 275

Colores del For m Grafico
I nt r oducci ón
A part i r de l a versi ón 7. 5 de GeneXus, en l as propi edades de l os cont r ol es del form
( sól o modo gráfi co) se pueden especi fi car colores dependi ent es del esquema de
col ores de Wi ndows. El col or defi nit i vo a ut ili zar se recal cul ará en funci ón del
esquema de col or es en t i empo de ej ecuci ón. Tambi én se pueden especi fi car est e
t i po de col ores en el " Cont rol I nfo" de l os at ri but os.
Al cance
Obj et os: Transacci ones, Work Panel s y Report es.
Lenguaj es: Vi sual FoxPr o, Vi sual Basi c, Java, C/ SQL, C# .
56
I nt erfaces: Wi n Form
Descr i pci ón
En l as pr opi edades de l os cont r ol es dent r o del form gráfi co ( i ncl uyendo el propi o
Form) y Cont rol I nfo de at ri but os se cambi ó l a pal et a para l a sel ecci ón de col ores.
Ahora es posi bl e especi fi car col ores dependi ent e del esquema de Wi ndows. El col or
defi ni t i vo a ut ili zar se recal cul ará en funci ón del esquema de col ores en t i empo de
ej ecuci ón.


Fi gur a 1 - Col or es del si st ema

Con est a opci ón t odas l as pant all as generadas de l a apli caci ón respet an el esquema
de col or es de Wi ndows y cambi an di námi cament e ( val e deci r, si el usuari o final
cambi a el esquema de Wi ndows de col ores, al ej ecut ar nuevament e l a apli caci ón, la
mi sma vuel ve a t omar l os col or es pr edet er mi nados desde Wi ndows) .

Tambi én se i ncl uye una pal et a para l a sel ecci ón de col ores que no dependan del
esquema de Wi ndows de l a máqui na.


Fi gur a 2 - Col or es per sonal i zados
Compat i bi l i dad con ver si ones ant er i or es de GeneXus
Al l eer obj et os sal vados con versi ones ant eri or es o al consol i dar obj et os di st ri bui dos
con versi ones ant eri or es se hacen l as si gui ent es conversi ones:

Cont r ol es del For m
57
Si el col or ( RGB) que t enía el cont rol ( edi t , t ext , col umnas subfil e, et c.) es el mi smo
ut ili zado por el esquema de col ores est ándar de Wi ndows ( ya sea para Wi ndows
95/ 98/ NT o para Wi ndows 2000) , ent onces se asume que era un col or est ándar y
se sust i t uye el RGB por el col or est ándar correspondi ent e a ese cont rol / propi edad.
Si no es el col or predet ermi nado se mant i ene el mi smo col or .

Ej empl o:
Se t enían l os si gui ent es cont r ol es:

1) Form: f oreground = Negro ( RGB( 0, 0, 0) ) , background = Gri s defaul t en Wi n
95/ 98/ NT ( RGB( 192, 192, 192) )
2) Form: f oreground = Verde ( RGB( 0, 255, 0) ) , background = Gri s defaul t en Win
2000 ( RGB( 212, 208, 200) )
3) At ri but o ( cont rol con col ores por defect o) : foreground = Negro ( RGB( 0, 0, 0) ) ,
background = Bl anco ( RGB( 255, 255, 255) )
4) At ri but o ( se modi fi ca el ForeCol or del cont r ol del form, se mant i ene el
BackCol or) : f oreground = Marrón, background = Bl anco ( RGB( 255, 255, 255) )

Quedan convert i dos a:

1) Form: foreground = " Wi ndow Frame" ( COLOR_WI NDOWFRAME) , background =
"But t on Face" ( COLOR_BTNFACE)
2) Form: f oreground = RGB( 0, 255, 0) ( verde) , background = " But t on Face"
( COLOR_BTNFACE)
3) At ri but o ( cont rol en form) : f oreground = " Wi ndow Text "
( COLOR_WI NDOWTEXT) , background = "Wi ndow Background" ( COLOR_WI NDOW) .
4) At ri but o ( cont rol en form) : foreground = Marrón, background = " Wi ndow
Backgr ound" ( COLOR_WI NDOW) .

Cont r ol I nf o de At r i but os
La conversi ón de l os col or es defi ni dos en el Cont rol I nfo del propi o at ri but o ( no del
cont r ol ) se comport a de l a si gui ent e manera:
1. Si el at ri but o es di st ri bui do con versi ones ant eri ores y consol i dado ut ilizando la
versi ón 7. 5, se r eal izan l as si gui ent es conver si ones:
1. 1. Si el col or de "f oreground" coi ncidía con el col or pr edet ermi nado para el
esquema de col ores est ándar ( Bl ack) , se convi ert e a "Wi ndow Text " .
1. 2. Si el col or de "background" coi ncidía con el col or predet er mi nado para
el esquema de col or es est ándar ( Whi t e) , se convi ert e a "Wi ndow
Background".
2. Si el at ri but o es sal vado con ver si ones ant eri ores y abi ert o ( o especi fi cado)
ut ili zando l a versi ón 7. 5, sól o se real i zan l as conver si ones ar ri ba menci onadas en
caso de que ambos col ores coi nci di eran con l os predet ermi nados. En caso cont rari o,
no se convi ert e ni nguno de el l os.
Consi der aci ones
• Al consoli dar en 7. 0 un XPW export ado con l a versi ón 7. 5 o superi or se
pi erde l a informaci ón de col ores. Est o se debe a que ya no se export an l os
col or es “ vi ej os” .

58
Di ál ogos
Diálogos de cr eación e impact o
I nt r oducci ón
A part i r de est a versi ón se modi fi caron l os diál ogos de cr eaci ón de un model o,
cr eaci ón de l a base de dat os e i mpact o de l a base de dat os.

Descr i pci ón

Al moment o de cr ear un model o de prot ot i po o pr oducci ón se muest r a l a si gui ent e
pant all a:




Cuando no exi st e una base de dat os para el model o se genera l a si gui ent e pant all a:




Cuando exi st e un i mpact o pendi ent e, se genera l a si gui ent e pant all a:



59
Dist ribución y Consolidación
I nt r oducci ón
A part i r de l a versi ón 7. 5 de GeneXus se modi fi ca el format o de l os ar chi vos de
export aci ón del Knowl edge Manager ( KMW) . El format o usado hast a el moment o
( XPW) era un f ormat o propi et ari o de ARTech, ahora el mi smo pasa a ser XML.
Los usuari os cont arán con un format o conoci do que puede ser procesado por una
gran cant i dad de herrami ent as hoy en día.

Tambi én ha si do modi ficado el l og de consol i daci ón creándose ahora a part i r de un
XML. De est a f orma se muest ra la información de consolidación en un document o
HTML que se cr ea di námi cament e con la información de los obj et os consolidados.

Se han agregado además al gunos cont rol es en t i empo de consol i daci ón como el de
fechas de modi fi caci ón y pr ef er ences del model o.

Descr i pci ón
El archi vo de export aci ón XPW usando hast a ahora cont enía t oda l a informaci ón de
l os obj et os di st ri bui dos en forma est ruct urada. A part i r de est a versi ón ese
cont eni do se al macena en XML, f ormat o est ándar para el i nt ercambi o de
document os est ruct urados.

Tambi én se al macena en est e format o t oda l a i nformaci ón de consol i daci ón de l os
obj et os, permi t i endo de est a forma poder vi sualizar el l og de consoli daci ón y l as
est adíst i cas en f ormat o HTML.

Di st r i buci ón
Una vez sel ecci onado l os obj et os a di st ri bui r e i ngresado el nombre del archi vo de
di st ri buci ón, se cr ea aut omát i cament e un archi vo compri mi do de ext ensi ón XPZ
( XPW Zi pped) con un archi vo XML dent ro cont eni endo l a i nformaci ón de l os obj et os
y/ o at ri but os di st ri buidos. El archi vo compri mi do se crea con el nombre:
< Di st r i but i on Name> .XPZ y l os xml i nt ernos con nombr e: < Di st r i but i on
Name> _ < nr o de ar chi vo> . XML

Por ej empl o, supongamos que se export a un conj unt o de obj et os y en el
Dist ribut ion Name se l e pone como nombr e MyExport ( no se r equi ere poner
ext ensi ón y además se l e puede especi fi car el pat h donde guardar el archi vo, por
ej empl o, D: \ Di st r\ MyExport o sel ecci onarl o desde el bot ón de búsqueda) .

60

Fi gura 3 – Di st ri but i on Name

GeneXus genera un ar chi vo ll amado MyExport . xpz en el di rect ori o especi fi cado ( si
no se especi fi ca un di rect ori o se genera en el di rect ori o de l a KB) . Si se abre ese
archi vo con una herrami ent a t i po Wi nZip muest ra que cont i ene un archi vo con
nombre MyExport _1. xml


Fi gur a 4 – Ar chi v o de ex por t aci ón XML

TI P: Si al archi vo de dist ri buci ón XPZ se l e i ngresó un coment ari o en la secci ón
“ Descri pci ón” ( ver Fi gura Fi gura 3 – Di st ri but ion Name) , al abri r el archi vo con
Wi nZi p aparecerá una pant alla con el coment ario i ngresado.

61
DI STRI BUTE OPTI ONS
Append t o f i l e
Si en el Dist ribut ion Name del di ál ogo de di st ribuci ón se i ngresa el nombre de un
archi vo que ya exi st e, al sali r del campo se habilit a l a secci ón Dist ribut e Opt ions
para poder agregar l a nueva di st ri buci ón al archi vo exi st ent e.
Si se marca la opción Append, se cr ea un nuevo archi vo XML dent r o del mi smo ZI P.
Si gui endo con el ej empl o ant eri or, se cr earía un archi vo MyExport _2.xml en el
archi vo MyExport . zi p. Si ya exi st e un ar chi vo con ese nombr e dent ro del zi p, se
i ncrement a el sufi j o en uno y se vuel ve a i nt ent ar.

Si no se marca l a opci ón Append, el ar chi vo se reempl aza con l a nueva di st ri buci ón.

XPW For mat
Medi ant e est a opci ón es posi bl e di st ri bui r obj et os con el f ormat o ant eri or de
export aci ón ( XPW) . De est a forma se podrá consol i dar est e ar chi vo en versi ones
7. 0 o ant eri or es de GeneXus. Cabe recordar que aquel l os obj et os que usen
funci onali dades de l a nueva versi ón no podrán ser consol i dados, generando ci ert os
er ror es en el Consol i dat ion Log de l as versi ones ant eri or es.

Encr i pt aci ón
Cuando se export a un conj unt o de obj et os en el cual al guno es Pri vado, t odo el
archi vo de di st ri buci ón es encri pt ado, por t ant o l os archi vos generados dent ro del
XPZ no podrán ser procesados como XML.

Es conveni ent e di st ri buir l os pri vados en forma separada de l os no pri vados, por un
t ema de perf ormance a l a hora de consol i dar.


Consol i daci ón
Una vez sel ecci onado el “ Di st ri but i on Fil e” en el di ál ogo de consoli daci ón, se puede
ver en el campo “ Type” el t i po de archi vo que se va a consoli dar ( ver Fi gura 5 -
Di ál ogo de Consol idaci ón) .

TI P: El bot ón de búsqueda ( ...) para sel ecci onar un archi vo de di st ribuci ón se
posi ci ona en el di rect or i o especi fi cado en el “ Di st ri but i on Fil e” , si no exi st e se
i ni ci a en el di rect ori o de l a KB.

Es posi bl e consoli dar l os si gui ent es t res format os de document os:
1. XPZ
2. XML
3. XPW

XPZ
Cuando se sel ecci ona un archi vo con est e format o, el KMW recor re el cont eni do del
archi vo XPZ y consol i da cada uno de l os ar chi vos i nt ernos, si empre y cuando
t engan el format o XML adecuado.

XML
62
En al gunos casos puede ser necesari o consol idar al gún XML en part i cul ar de t odos
l os que cont i ene el XPZ. Para est e caso se puede descompri mi r y consol i dar
di rect ament e el XML.

XPW
Para poder t ener compat i bilidad con el pasado se cr eo un component e que es el
encargado de real i zar l a conversi ón de un archi vo XPW a un archi vo XML.
El KMW de GeneXus cuando se l e especi fi ca que se qui ere consol i dar un XPW l o que
hace es l l amar al conversor el cuál l e devuel ve un archi vo XML t empor al que l uego
GeneXus consolida. Por t ant o la consolidación de XPW es más lent a que la de XML o
XPZ.

NOTA: Tambi én es posi bl e consol i dar archi vos con ext ensi ón ZI P, y se comport a
i gual que el XPZ, es deci r, sól o puede cont ener dent ro un XML correspondi ent e a
una di st ri buci ón. En caso de que no se corr esponda, al i nt ent ar consoli darl o
aparece el si gui ent e mensaj e:
Er ror: Parsi ng XML fil e < archi vo dent ro del zi p> - > synt ax er ror.

TI P: Es posi bl e arrast rar ( Drag) un archi vo, con cual qui era de l os format os
ant eri or es, desde el Expl orador de Wi ndows y sol t arl o ( Drop) en GeneXus para
ser consoli dado.



Fi gur a 5 - Di ál ogo de Consol i daci ón
Presi onando el bot ón “ Advanced” ser puede ver l a li st a de obj et os a consol i dar
most rando, para cada uno de ell os, el nombre, t i po de obj et o y descri pci ón.
Además, habili t a el “ Adapt From” .

63

Fi gura 6 - Li st a de obj et os a consol i dar


CONTROLES AL CONSOLI DAR
Cont r ol de Fecha de Modi f i caci ón
Se agrega una nueva opci ón: “ Do not overwri t e newer obj ect s” ( ver Fi gura 5 -
Di ál ogo de Consolidación) para no sobr escribir obj et os con f echa de modi fi caci ón
más nueva. Por i nformaci ón más det all ada acerca de est a nueva faci lidad consul t e:
Versi ón y Fechas de Obj et os.

Cont r ol de Pr ef er ences
A part i r de l a versi ón 7. 5 en el archi vo de export aci ón se i ncl uyen l as pref er enci as
de Di seño “ Funct i on” y “ Si gni fi cant At t ri but e/ Obj act / Tabl e Name l engt h” .

Al consol i dar se cont r ola si l a KB dest i no di fi ere de al guno de est os val ores que
vi enen en el archi vo de export aci ón. Si hay alguna di ferenci a, ant es de consol i dar
64
se l e present a al usuari o una pant all a most rando l as mi smas pregunt ando si de
t odas f ormas desea consol i dar o no.
Si el usuari o cancel a, en el l og aparece el er ror de que el model o no fue
consoli dado most rando l as di ferenci as. Si el usuari o confi rma, en el l og se muest ra
al pri nci pi o que el model o no cambi o l os val or es per o con un Warni ng most rando
l as di fer enci as ( ver Fi gura 7 - Log de Consol i daci ón) .


CONSOLI DATI ON LOG
El format o del archivo “ GXI MPORT” , que se cr ea en la consolidación en el di rect orio
del usuari o, es XML. Est o permi t e que el l og de consol i daci ón sea most rado en
for mat o HTML como se puede ver en l a si gui ent e fi gura.


Fi gur a 7 - Log de Consol i daci ón
ESTADÍ STI CAS
Presi onando el bot ón “ St at i st i cs” del di ál ogo de consoli daci ón es posi bl e ver en
for mat o HTML las est adíst icas del result ado de la consolidación: obj et os nuevos,
modi fi cados, no consol idados ( con sus er ror es corr espondi ent es) , no cambi ados,
et c. , por cada t i po de obj et o.

65

Fi gur a 8 - Est adíst i cas

Ej empl os
Si bi en el cont eni do y est ruct ura del XML es anál oga al XPW usado hast a ahora, el
hecho de t ener l a i nformaci ón con est e format o t i ene vari as vent aj as. Por ej empl o,
el usuari o podrá defi nir un XLS para ver el cont eni do de l a export aci ón en un
for mat o personali zado, o abri r el archi vo con I nt ernet Expl orer 5. 5 o superi or , el
cual t i ene su propi o XLS para ver el cont eni do del XML en f orma de ár bol . Con est o
es más fácil localizar un área en part icular de la export ación. En el ej emplo de
abaj o se muest ra la información de la Transacción Client es y se ignora lo demás:
<?xml version="1.0" encoding="UTF-7" ?>
- <ExportFile>
+ <Model>
+ <KMW>
- <GXObject>
- <Transaction>
- <Info>
<Name>Clientes</Name>
<Description>Clientes</Description>
</Info>
<ObjInfo />
+ <PrivateObjInfo>
+ <Documentation>
+ <Help>
<LastUpdate>2001-03-19 09:52:00</LastUpdate>
+ <Structure>
- <![CDATA[
CliCod*
CliNom
CliDir
CliSexo
]]>
+ <Variable>
+ <Variable>
+ <Variable>
+ <Variable>
+ <Variable>
+ <Variable>
+ <Form>
+ <HTMLForm>
66
- <Rules>
- <![CDATA[
Parm( &Clicod , &Mode );
CliCod = &Clicod if Update or Delete;
Noaccept( CliCod ) if Update or Delete;
]]>
</Rules>
</Transaction>
</GXObject>
+ <Attributes>
+ <GXObject>
+ <GXObject>
</ExportFile>
Si además de vi suali zar l a est ruct ura se desea capt urar l a i nformaci ón de l a
export aci ón en una base de dat os se podrá usar el XMLReader para acceder al
cont eni do del xml .

Consi der aci ones
• No es posi bl e consol i dar Obj et os Pri vados di st ri buidos con ver si ones ant eri ores
que est én encri pt ados en el XPW.

List ados en XML
I nt r oducci ón
Los di agramas de i mpact o, navegaci ón y l os li st ados de t abl as, at ri but os, subt i pos y
obj et os se muest ran como HTML.

Descr i pci ón
Los di agramas en se muest ran como HTML l o cual t i ene l as si gui ent es vent aj as:

- Per mi t e l a navegaci ón a l os obj et os de l a base de conoci mi ent o medi ant e
links.
- Se puede per sonal i zar los l i st ados.
- Se puede anal izar l a navegaci ón de un obj et o analizando el XML, por ej . que
t abl as accede, et c.

Al poseer l inks se permi t en acceder a l os obj et os GeneXus, a l as defi ni ci ones de l os
at ri but os, a l as t abl as desde l os di ferent es di agramas y l i st ados. Todos l os li nks que
se pueden real izar en los li st ados y en l as navegaci ones t ambi én acept an bot ón
der echo con l as opci ones pert i nent e a cada caso. A su vez l os di agramas t i enen la
faci lidad de permi t i r ocul t ar o most rar i nformaci ón.

Di agr ama de I mpact o
Al reali zar una i mpact o de l a base de dat os se muest ra un di agrama como el
si gui ent e:

67
Tabl e CLI ENTES conv er si on pr ocedur e

CLI ENTES is new


Table Structure


At t r i but e Ty pe Val ue Tak en Fr om


CliI d N( 4)
Cli Nom C( 30)
CliDi r C( 30)
CliTel N( 6)
Pai sCod C( 4)
I vaCod N( 4)




El símbol o de una ll ave i ndi ca que el at ri but o es cl ave y el símbol o de sol ,
i ndi ca que el at ribut o es nuevo cuando se est a real i zando una reorgani zaci ón como
l o muest ra el si gui ent e di agrama.

Tabl e CLI ENTES conv er si on pr ocedur e

CLI ENTES needs conver sion


Table Structure


At t r i but e Ty pe Val ue Tak en Fr om


CliI d N( 4) CLI ENTES
Cli Nom C( 30) CLI ENTES
CliDi r C( 30) CLI ENTES
CliTel N( 6) CLI ENTES
Pai sCod C( 4) CLI ENTES
I vaCod N( 4) CLI ENTES


Cli Sexo C( 1) Null





Di agr ama de Navegaci ón

El li st ado de navegaci ón muest ra l a i nformación del obj et o, si est a requeri da su
generaci ón, l uego muest ra i nformaci ón del generador. También muest ra
i nformaci ón de l as t abl as que accede y l os prompt s ll amados.

Transaction Clientes Status

Name
Client es
Descri pt i on Client es
St at us Gener at i on i s r equi r ed

Environment

Envi ronment

Vi sual Basi c

Spec. Versi on

7_5_RC3.017

Form Cl ass Graphic
Program Name TClient es
Paramet ers

68
Levels


Level CLIENTES











• CLI ENTES ( CliI d )
o PAI SES ( PaisCod )
o TRATAI VA ( I vaCod )
I nsert int o CLI ENTES
At t ri but es t o updat e : CliI d,Cli Nom,CliDi r,Cli Tel ,CliSexo,Pai sCod,I vaCod
Updat e on CLI ENTES
At t ri but es t o updat e : CliNom,Cli Di r,CliTel ,Cli Sexo,Pai sCod,I vaCod
Del et e from CLI ENTES


Referent i al i nt egrit y cont rol s on delet e:
• LLAMADOS ( LlaCliI d )
• I NSTALAC ( I nsCliI d )
• CONTRATO ( Cont CliI d )
• FACTURA ( CliI d )





Prompts

Tabl e Pr ogr am I n Par amet er s Out Par amet er s
TRATAI VA
Gx00E0
I vaCod
PAI SES
Gx00B0
Pai sCod
CLI ENTES
Gx0010
CliI d



Li st ado de Tabl as
El li st ado de t abl as muest ra l a informaci ón de l os at ri but os, indi cando l a
descri pci ón, el t i po, si ell os son fórmul a, y si son subt i pos. Sel ecci onando l a t abl a se
puede acceder a l a defini ci ón de l a mi sma most rando l os índi ces que posee.
A su vez cl i ckeando en cada uno de l os at ri but os se puede acceder a su defi ni ci ón.

Con el símbol o de ll ave se i ndi ca que el at ri but o es cl ave de l a t abla. Con el
símbol o de fl echa se i ndi ca que el at ri but o es inferi do por el grupo de subt i po.
El símbol o de i ndi ca que el at ri but o es f órmul a y muest ra su composi ción.

Table Instalac

Name I nst alac
Descri pt i on I nst alaciones
I D 9

Table Structure

Name Descr i pt i on Ty pe For mul a Subt y pe of

I nst Nro Nro. I nst al aci on N ( 4. 0)
I nst Fch Fecha I nst al aci on D
I nsCli I d I nsCli I d N ( 4.0) CliI nst .CliI d
69
EqI d Equi po Codi go N ( 4.0)



I nsCli Nom I nsCli Nom C ( 30) CliI nst .Cli Nom

I nst GarFch Vi genci a Garant i a D addmt h( I nst Fch,EpPl azoGar)


En caso de sel ecci onar ver det al l es ( Show Det ail ed Li st ) para l a t abl a se muest ra el
si gui ent e li st ado, el cual muest ra l a i nformaci ón ant eri or agregando l a i nformaci ón
de l os índices, l as subordi naci ones y super ordi naci ones de l a t abla y l os prompt s
asoci ados a l a mi sma.

Table Instalac

Name I nst alac
Descri pt i on I nst alaciones
I D 9

Table Structure

Name Descr i pt i on Ty pe For mul a Subt y pe of

I nst Nro Nro. I nst al aci on N ( 4. 0)
I nst Fch Fecha I nst al aci on D
I nsCli I d I nsCli I d N ( 4.0) CliI nst .CliI d
EqI d Equi po Codi go N ( 4.0)



I nsCli Nom I nsCli Nom C ( 30) CliI nst .Cli Nom

I nst GarFch Vi genci a Garant i a D addmt h( I nst Fch,EpPl azoGar)

Indices

Name Ty pe At t r i but es
I I nst al aci ones Pri mary Key I nst Nro

I I nst al 3 Forei gn Key I nsCli I d

I I nst al 2 Forei gn Key EqI d

CliI nst User I nsCli I d , I nst Nro

Subordinated To

I d Tabl e By :
1 Client es I nsCli I d
6 Equi pos EqI d

Superordinated To

I d Tabl e By :
3 Cont rat 1 I nst Nro
5 Ll amado1 I nst Nro

Associated Prompts

GX0090



Li st ado de At r i but os
El li st ado de at ri but os muest ra el t i po del mi smo, a que t abl as pert enece, en que
obj et os se encuent ra, y cual es el cont rol de ese at ri but o.

Attribute CliSexo

Descri pt i on Sexo
I D 61
Type C ( 1)

70

Name Descr i pt i on
Client es Client es

Tr ansact i ons

Name Descr i pt i on I n
Client es Client es St ruct ure , Form

Pr ompt s

Name Descr i pt i on I n
GX0010 Select i on Li st CLI ENTES Condit i ons


Control Info

Name Val ue
ForeCol or Wi ndow Text

BackCol or Wi ndow Background

Ct rlType Radi o But t on
Options Values
'Femenino' F
'Masculino' M




Li st ado de Subt i pos
El li st ado de subt i pos most rado es el si gui ent e, permi t i endo acceder a l a defi ni ci ón
de l os at ri but os cli ckeando en el mi smo o medi ant e bot ón derecho y l a opci ón Li st .

Group CliCont

At t r i but e Ty pe Super t y pe
Cont Cli I d Pri . CliI d
Cont Cli Nom I nf. Cli Nom


Li st ado de Obj et os
El li st ado de obj et os desde l a opci ón de menú Tool s/ Li st Obj ect s muest r a l a
i nformaci ón del obj et o, l a fecha de creaci ón, el generador asoci ado, l os programas
ll amados, l os ll amadores, regl as, event os, subr ut i nas, condi ci ones. En el caso de
li st ar un obj et o pri vado se muest ra un mensaj e de que el mi smo no puede ser
li st ado.


Name
Descri pt i on Fact ura
Fol der
I d 9
Creat ed 1998- 08- 21 13: 06: 44
Updat ed 1998- 08- 21 13: 06: 44
71
Updat ed 1998- 08- 21 13: 06: 44
Generat ors ( * ) - Visual Basic ( Default )
Layout

header

end
for each FacFch
where FacFch =&facfch

eject
endfor

Rules

parm(&facfch ) ;

Variables

Name Descr i pt i on Ty pe Lengt h Deci mal s Pi ct ur e
Today Today Dat e 8
Time Time Charact er 8
Page Page Number 6 ZZZZZ9
Line Line Number 6 ZZZZZ9
Out put Out put Charact er 3
Pgmname Pgmname Charact er 11
Pgmdesc Pgmdesc Charact er 30
facfch facfch Dat e 8

Cross References

Cal l ed

Cal l by
Emi Fac

72

¿ Dónde es guar dada l a i nf or maci ón de l os di agr amas de
especi f i caci ón y r eor gani zaci ón?
EN LA ESPECI FI CACI ÓN
El especi fi cador graba un archi vo l l amado gxnavi g con format o XML en:
< di r ect or i o KB> \ < gx user >
Est e ar chi vo t i ene t odos l os obj et os que fuer on especi fi cados, el st at us de cada
obj et o y una referenci a al archi vo XML de cada obj et o.
A su vez graba un archi vo XML por cada obj et o especi fi cado en:
< di r ect or i o KB> \ gx spc< numer o model o> \ gen< numer o
gener ador > \ nvg

EN LA REORGANI ZACI ÓN
Al reali zarse una reorganizaci ón se guarda el gxi ar baj o el di rect ori o del usuari o en
l a base de conoci mi ent o.
Los archi vos XML generados son guardados en :
< di r ect or i o KB> \ < gx user > \ mdl < numer o model o> \ gen< numer o
gener ador >

¿ Cómo envi ar una navegaci ón ?
Al ser l a navegaci ón en HTML, se puede real i zar un copy and past e de l a mi sma a
un archi vo HTML. Por ej : se puede pegar en un HTML de Word.


Sel ecci ón de Tabl as, At r i but os y Obj et os
Al sel ecci onar el li st ado de t abl as o at ri but os aparece una vent ana que permi t e
sel ecci onar l as t abl as o at ri but os a li st ar. Est a vent ana permi t e apli car fil t ros sobre
l a i nformaci ón a li st ar, así como mej orar el desempeño al moment o de crear el
li st ado.

73


Fi gur a 26 – Sel ect or de Tabl as

Una vez list ada la infor mación selecci onada se muest ra el si guient e li st ado, t eni endo
l a posi bilidad de agregar mas t abl as medi ant e el bot ón LOAD. Est o permi t e agregar
nuevas t abl as, at ri but os y obj et os a l as ya previ ament e sel ecci onadas en el li st ado.




74
At r i but os

Límit e de at r ibut os
I nt r oducci ón
Se aument ó el límit e de at ri but os a ni vel del model o. Est o resul t a de mucha ut ili dad
para bases de conoci mi ent o corporat i vas donde se requería l a defi ni ci ón de más
at ribut os.

Descr i pci ón
A part i r de est a versi ón el límit e de at ri but os por model o pasó de 9. 999 a 32. 767.

Compat i bi l i dad
Si el número de at ri but os en l a base de conoci mi ent o no supera el lími t e de 9. 999,
l a base de conoci mi ent o es al macenada i gual que en l as ver si ones ant eri ores de
GeneXus.
En cambi o si se superan l os 10. 000 at ri but os se al macena en forma di ferent e el
i dent i fi cador ( I D) de l os at ri but os, quedando i ncompat i bl e l a base de conoci mi ent o
para l as versi ones ant er i ores.

Al querer abri r un model o de l a versi ón GeneXus 7. 5 con más de 9. 999 at ri but os
con versi ones ant eri or es da el si gui ent e er ror:

I nt ernal er ror 3 i n mdl - c_i e1b
I SAM Err or 0- ?- ?- ?

Truncado de obj et os y at ribut os
I nt r oducci ón
A part i r de est a ver si ón se permi t e i ndi car cuant os son l os caract eres si gni fi cat i vos
para det ermi nan l a uni cidad de l os nombres de l os obj et os, at ri but os y t abl as.
Descr i pci ón
Se agregaron t res nuevas propi edades en el model o de di seño, l as cual es permi t en
modi fi car l a cant i dad de caract er es que se consi deran si gni fi cat i vos para i dent i fi car
un nombre, ya sea de at ri but o, obj et o o t abl a.


75


Fi gur a 27 – Pr opi edades di seño
Las propi edades son:

Si gni f i cant At t r i but e name l engt h det er mi na el largo si gni fi cat i vo para l os
at ri but os y l os domi nios, el val or pr edet er mi nado y máxi mo es 30, y el val or
míni mo es 4 caract eres.

Si gni f i cant Tabl e name l engt h det ermi na el val or si gni fi cat i vo para t abl as,
i ndi ces y dat a vi ews, el val or predet ermi nado y máxi mo es 30, y el val or míni mo es
4 caract eres.

Si gni f i cant Obj ect name l engt h det er mi na el val or si gni fi cat i vo para
t ransacci ones, work panel s, web panel s, prompt s, menu, menu bar, report es,
procedi mi ent os, y st yl es, el val or predet ermi nado y máxi mo es 30, y el val or
míni mo es 6 caract eres.

En caso de col ocar un val or menor que el mínimo permi t i do para cada caso muest ra
el si gui ent e mensaj e de err or:



76
Fi gur a 28 – Er r or al col ocar un v al or menor al per mi t i do

Se puede di smi nui r el val or a cuant o t runcar l os at ri but os, obj et os y t abl as si empre
que no exi st a ningún at ri but o, obj et o, t abl a que t enga l os mi smos caract eres
si gni fi cat i vos. Al reali zarl o se present a el si gui ent e mensaj e de er r or.




Fi gur a 29 – Er r or al modi f i car val or es de l as pr opi edades.

Los nombres que no se pueden modi fi car son l os de: Fol der , Gr upos, Model os y
Pr ogr amas ex t er nos que t i enen TODOS los 30 caract eres si gnificat ivos.

Not a: La modi fi caci ón del l argo de at ri but os, t abl as e índi ces no es váli da cuando
se ut ili za como DBMS el AS/ 400, y cuando se ut iliza DBF para esos casos se deben
segui r ut ilizando l os si gui ent es val ores: t abl as e índi ces 10 y at ri but os 10.

En el moment o de r eali zar una creaci ón o reorgani zaci ón donde l os l argos son
mayor es a 10 car act er es aparecen l os si gui ent es mensaj es y l a t abl a no se
cr ea/ r eorgani za.

• Pr obl ems f ound on t abl e ' Nombr e_t abl a' st r uct ur e. I t w i l l not be
cr eat ed/ r eor gan i zed.

• Tabl e name ' Nombr e_t abl a' ex ceeds max i mum name l engt h al l ow ed
by l anguage ( 1 0 char act er s) .

• At t r i but e name ' Nombr e_ at r i but o' ex ceeds max i mum name l engt h
al l ow ed by l anguage ( 10 char act er s) .

Al modi fi car el l argo de l os obj et os t ambi én se est á modi fi cando el l argo de l a
vari abl e PGMNAME. Por más i nformaci ón r ef eri rse a Secci ón específi ca del
Devel opment Envi ronment .
Consi der aci ones
• Para SQL Server no pueden ut ili zarse nombr es l argos ( de mas de 8
caract eres) para obj et os si l a t ecnol ogía de acceso es SQL Embebi do
( generador C/ SQL) .

77
Variables basadas en at ribut os
I nt r oducci ón
En el di ál ogo de defi nici ón de vari abl es se agregó un nuevo bot ón para defi ni r
vari abl es basadas en un at ri but o.
Descr i pci ón
En el di ál ogo de defi ni ci ón de vari abl es se permi t e defini r una vari able basada en
un at ri but o medi ant e el bot ón “ Add Based On” .



Fi gur a 30 – Di ál ogo de def i ni ci ón de v ar i abl es

Al presi onar el bot ón " Add Based On" aparece l a li st a de at ri but os. Sel ecci onando
uno o más at ri but os y presi onando OK, se defi ne una vari abl e Based- On para cada
at ri but o sel ecci onado.

78


Fi gur a 31 – Di ál ogo de sel ecci ón de at r i but os


Nuevas Propiedades de at r ibut os
I nt r oducci ón
Se agr egan nuevas pr opi edades rel aci onadas a l os at ri but os GeneXus. En l a
vent ana de edi ci ón de un at ri but o se agrega un nuevo “ Tab” denomi nado
“ Advanced” que permi t e confi gurar l a descri pción que será ut ilizada en l as di st int as
int erfaces gráficas de los obj et os GeneXus.

Al cance
Obj et os: Transacci ones.
Lenguaj es: Todos.
I nt erfaces: Web, Wi n.

Descr i pci ón
Se agrega un nuevo “ Tab” denomi nado “ Advanced” que permi t e confi gurar l as
si gui ent es opci ones sobre cual qui er at ri but o:
79

• Tit le: Permi t e defi ni r l a descri pci ón ut ilizada en l as est ruct uras pl anas, como
por ej empl o pri mer ni vel de una t ransacci ón, descri pci ón de l as vari abl es en
l os prompt s, t ít ul os de report es generados con el report wi zard ( pri mer
ni vel ) .
• Column Tit le: Permi t e defi ni r el t ít ul o asoci ado al at ri but o en l as columnas
de un subfi l e.

De est a manera se busca ahor rar t rabaj o ya que, general ment e, l a descri pci ón del
at ri but o se modi fi ca en l a mayoría de l os l ugares donde apar ece, cent ral i zando
di chos cambi os en ést as nuevas propi edades.

Por def ect o al cr ear un nuevo at ri but o, en caso que no se i ngrese i nformaci ón en
est as nuevas propi edades se hereda l a descri pci ón det all ada en la propi edad
“ Descript ion” del at ri but o, most rando en el Tab “ Advanced” l a si gui ent e informaci ón
para l as dos propi edades “ Default : At t ribut e Descript ion” . En caso que el usuari o
modi fi que l as descri pciones, di cho cambi o será refl ej ado l a próxi ma vez que el
obj et o sea generado. Ut ilizando l a opci ón podrá vol ver al val or por def ect o.

Est e cambi o afect a el aspect o vi sual de l a mayoría de l os obj et os: Tr ansacci ones,
Prompt s, Web Panel s, Work Panel s en sus est ruct uras pl anas y subfiles así como
t ambi én Report es y Procedi mi ent os.

Tambi én se agrega est a i nformaci ón en el li st ado de at ri but os:


Fi gur a 32 - Li st ado de at r i but os

A cont i nuaci ón se det all a un ej empl o defi ni endo para una t ransacci ón de Art ículos
l as propi edades del at ribut o Art I d. En est e caso se defi ne el t ít ulo de la columna
como “ Art ículo” y el t ít ulo como “ I dent ificador del Art ícul o” .

80

Fi gur a 33 - Tab " Advanced" def i ni endo un at r i but o

A cont i nuaci ón se det all a el l ayout obt eni do para l a t ransacci ón “ Ar t ículos” y un
wor k panel asoci ado “ Trabaj ar con Art ícul os” donde se da un ej empl o de la
ut ili zaci ón de est as pr opi edades.


Fi gur a 34 - Tít ul o

81

Fi gur a 35 – Tít ul o de l a Col umna

Dominio como array
I nt r oducci ón
A part i r de l a versi ón Solís es posi bl e defini r un domi ni o como “ array” ( vect or) para
cual qui er t i po de dat o. Hast a ahora, si bi en una vari abl e podía ser un array, l os
Domi ni os sól o podían ser escal ar es.
Est o puede resul t ar út il para defi ni r vect or es de meses, años, et c y t enerl os en un
domi ni o para “ padroni zarl os” .
Descr i pci ón
Def i ni ci ón de Domi ni os
En el di ál ogo de defi ni ci ón de domi ni os se agregó l a secci ón Dimensi ons dando l a
posi bilidad de defi ni r un domi ni o como array.

82

Fi gur e 1 - Def i ni ci ón de Domi ni o Ar r ay

Vari abl es y ot ros domi ni os pueden est ar basados en un domi ni o array, pero no l os
at ribut os debido a que no t ienen dimensiones.

A cont i nuaci ón se det al lan l as di ferenci as de comport ami ent o de at ri but os, vari abl es
y domi ni os, respect o a si est án basados en un domi ni o array o escal ar.

Domi ni o basado en Domi ni o.
Cuando se defi ne un domi ni o ( DOM_1) en base a un domi ni o ar r ay ( DOM_VEC) ,
el pri mero hereda del segundo t oda l a defi ni ción, t ant o el t i po de dat o ( l o que se
hacía hast a el moment o) , como l as di mensi ones ( fil as y col umnas) . Además DOM_1
no t i ene l a capaci dad para modi fi car esa informaci ón, l as mi smas quedarán
deshabili t adas. De est a forma, cual qui er modi fi caci ón que se real i ce en DOM_VEC,
reper cut i rá aut omát i cament e en DOM_1.

Por ot r o l ado, si el domi ni o base no es ar r ay , ll amémosl e DOM_ESC, l os
domi ni os basados en él heredan el t i po de dat o y además t i enen habili t ada l a
secci ón Dimensions, de forma t al de poder defi ni r sus propi as di mensi ones.

Est o permi t e que se pueda t ener un domi ni o genéri co escal ar, como por ej empl o,
“ Tel éf onos” y l uego def i ni r el domi ni o “ Tel éf onos por cl i ent e” basado en ant eri or
( infi ere el t i po) pero de una di mensi ón ( Fil as = 10) .
83

En est e caso, como DOM_ESC t i ene ot r o domi ni o basado en él ( DOM_2) , DOM_ESC
no t endrá habili t ada l a secci ón Dimensi ones. Est o se debe a que posi bl ement e
DOM_2 pueda t ener a su vez at ri but os basados en él .

Var i abl e basada en Domi ni o
Las vari abl es pueden est ar basadas en cual qui er t i po de domini o ( array o escal ar) .
Las r egl as sobr e l as di mensi ones de l as mi smas son si mil ares al esquema de
domi ni os:

• Una vari abl e basada en un domi ni o defi ni do como array, hereda l a defi ni ci ón de
di mensi ones de di cho domi ni o si n poder sobrescri bi rl a.

• Una vari abl e basada en un domini o si mpl e puede defi ni rse como array, ya que
pueden defi ni rse fi l as y col umnas para l a mi sma.

Una gran di ferenci a que t i enen con l os domi ni os es que l as vari abl es no
deshabili t an l a defi ni ci ón del domi ni o base.

NOTA: Debi do a que las vari abl es no son global es, si no que pert enecen a cada
obj et o, cuando en el domi ni o se r eal i za un cambi o, ést e se propaga a l as vari abl es
en el moment o de apert ura del obj et o ( cuando se l ee l a defi ni ci ón de vari abl es) .

At r i but o basado en Domi ni o
Los at ri but os no t i enen di mensi ones, por l o t ant o, un domi ni o que es defi ni do como
array, no aparecerá en el combo de domi ni os del di ál ogo de defi ni ci ón de at ri but os.

La defi ni ci ón de un at ri but o basado en un domi ni o, i mpedi rá que l as di mensi ones
del domini o puedan ser modi fi cadas para que ést e pase de ser un domini o si mpl e a
array.

Cambi o de Domi ni o Ar r ay a Domi ni o Escal ar
Es posi bl e modi fi car un domi ni o array a escal ar. Los domi ni os y vari abl es basados
en él no modi fi carán su condición de array. Est o si gnifica que el cambio de Filas =
10 a Fil as = 0 en el domi ni o base, no se pr opagará a l os domi ni os y vari abl es
basados, mant eni endo l a defi ni ci ón de Fil as = 10. Est o i mpli ca además que se
habilit e l a secci ón Dimensions de est os úl t i mos.

I mport ant e: Un domi nio array que se modi fi ca a escal ar y t i ene ot ros domi ni os
basados en él , no podrá vol ver a ser array. Est o es por l o coment ado al final de l a
sección “ Dominio basado en Domi ni o” )

Cambi o de Domi ni o Escal ar a Domi ni o Ar r ay
Como se menci onó ant eri orment e, si exi st e un at ri but o o domi ni o basados en el
domi ni o base, ést e no t i ene habili t ada l a secci ón Dimension, por lo t ant o el cambio
no es posi bl e ( quedarían at ri but os basados en domi ni o array l o cual no t i ene
sent i do) . Podría deci rse que est a modi fi cación es posi bl e sól o si es un domi no
84
“ ori ent ado a vari abl es” .

Es i mport ant e t ener en cuent a que l a modi fi cación de l a defi ni ci ón del domi ni o base
afect a a t odas aquel l as vari abl es basadas en él , sean ar rays o no. En el pri mer
caso, sól o verán sobrescri t a su defi ni ci ón de fil as y col umnas por l os val ores del
domi ni o, mi ent ras que en el segundo pasarán además de ser vari abl es escal ares a
arrays. Por est o, cuando se modi fi ca un domi ni o de si mpl e a array se despli ega l a
si gui ent e advert enci a: “ Changes i n domai n rows and col ums will updat e vari abl e
defi ni t i on based on i t ”

La modi fi caci ón en l a defi ni ci ón de una vari able a t ravés de est e mecani smo puede
produci r er rores en el sal vado de obj et os y en l a especi fi caci ón.

Resumen
Domi ni o Base de t i po Escal ar
Vari abl es, at ri but os y domi ni os pueden est ar basados en él .
At ri but os y domi ni os basados en él deshabili t an l a secci ón Dimensión del
domi ni o base.
Vari abl es y domi ni os basados en él pueden modi fi car su propi a defi ni ción de
di mensi ones.
Vari abl es heredan l os cambi os de di mensi ones y t i po de dat os del domi ni o
base; l os at ri but os y domi ni os sól o l os cambi os de t i po de dat o.
No puede pasar a array si hay at ri but os y domi ni os basados en él . Si hay
sól o vari abl es da warni ng.

Domi ni o Base de t i po Ar r ay
Vari abl es y domi ni os pueden est ar basados en él .
No se deshabili t an l as dimensi ones del domi ni o base.
Vari abl es y domi ni os basados en él no pueden modi fi car su defi ni ción de
di mensi ones.
Se heredan l os cambi os de t i pos y di mensi ones.
Se puede pasa a domi ni o escal ar. Las vari abl es y domi ni os basadas en él
mant i enen l os set eos de l as di mensi ones.

Primary Key
I nt r oducci ón
Se permi t e ut ilizar l os at ri but os int egrant es de una cl ave pri mari a si n l a necesi dad
de que se encuent r e en el formul ari o, haci endo la asi gnaci ón corr espondi ent e en l as
regl as.

Al cance
Obj et os: Transacci ones.
Lenguaj es: Todos.
I nt erface: Wi n, Web.
85

Descr i pci ón
Se l evant a l a rest ri cción exi st ent e donde cada at ri but o que i nt egra una ll ave
pri mari a debe est ar en el formul ari o.

A part i r de est a versi ón no se despl i ega un error si l a li st a de at ri but os est a si endo
asi gnado en l as r egl as. En caso que l a asi gnaci ón no se r eali ce en l as mi smas
aparecerá el si gui ent e mensaj e en el report e de especi fi caci ón:

At t r i but e ( At t ) must be pr esent on t he scr een or assi gned by a r ul e.

De est a manera se faci lit a el manej o de obj et os que i nt eract úen con l as
t ransacci ones, dado que en muchos casos no es necesari o o no se desea most rar l a
cl ave pri mari a de una det ermi nada t abl a.

Ej empl o
Se r eali za un work Panel denomi nado “ Trabaj ar con Art ícul os” donde se li st an la
li st a de art ícul os exi st ent es. Para cada uno de l os val ores se permi t e real izar l as
si gui ent es operaci ones:

• Alt a: Permi t e i ngresar un nuevo r egi st ro.
• Modificación: Permi t e l a modi fi caci ón del regi st ro donde se encuent ra
posi ci onado el cursor del subfil e.
• Baj a: Permi t e el i minar el regi st ro act ual .
• Ver: Se muest ran t odos l os dat os rel aci onados al art ícul o sel ecci onado.
• Cer rar: Ci er ra el di ál ogo.

Para cada una de est as opci ones se l l ama a l a t ransacci ón asoci ada “ Art ículos”
det ermi nando para cada uno de el l os el modo ( I nsert , Updat e, Del et e, Di spl ay) . En
caso de ut ili zarse el modo de i nserci ón, cuando el usuari o confi rma l a operaci ón se
ll ama al procedi mi ent o de numeraci ón aut omát i ca de art ícul os.

Para ambos obj et os se defi ni eron l as si gui ent es r egl as:

86

Fi gur a 36- Regl as r el aci onadas al Wor k Panel

Rel aci onado a l as regl as de l a t ransacci ón:


Fi gur a 37 - Regl as r el aci onadas a l a t r ansacci ón

Se ej ecut a el Work Panel obt eni éndose l a si guient e sali da:


Fi gur a 38 - Wor k Panel " Tr abaj ar con Ar t ícul os

Se presi ona el bot ón modi fi car sobre el Art ícul o 1 obt eni éndose el si gui ent e
resul t ado:


87

Fi gur a 39 - Det al l e del " Ar t ícul o 1"



88
Comandos
Comando For To St ep
I nt r oducci ón
A part i r de est a versi ón se ha i mpl ement ado el comando “ For To St ep” el cual es
út il cuando es necesari o i t erar ci ert a cant i dad de veces a part i r de un ci ert o val or .

Al cance
Obj et os: Transact i ons, Work panel s, Pr ocedur es, Report s, Web Panel s
Lenguaj es: RPG, Cobol , Java, VB, VFP, C/ SQL, C#
I nt erfaz: Wi n y Web

Descr i pci ón
Se ha i mpl ement ado el comando “ For To St ep” donde se permit e i ndi car el
comi enzo y el fi n del bucl e, i ndi cando cual es el sal t o.

La si nt axi s es l a si gui ent e:

FOR &Var = < i ni ci o> TO < fi n> [ STEP < sal t o> ]
....
ENDFOR

< i ni ci o> , < f i n> son expresi ones numéri cas.
< sal t o> es una const ant e.

Es un bucl e desde el val or < i ni ci o> de & Var mi ent ras que & Var sea < = que
< f i n> , el mi smo se i ncrement a de a < sal t o> . El val or por def ect o de < sal t o> es
1. El val or de < sal t o> puede ser negat i vo.


Comando Submit
I nt r oducci ón
Hast a l a ver si ón 7. 0 de GeneXus, el comando submi t se ut ili zaba en ambi ent e
Wi ndows para l anzar un proceso en forma asíncroni ca en el AS/ 400.
A part i r de l a versi ón 7. 5 se agrega l a posi bili dad de ut ili zar est e comando para
somet er procesos, t ant o en ambi ent es Wi n como en ambi t es Web.
89
Al cance
Obj et os: Report es, Procedi mi ent os
Lenguaj es: C/ SQL – C# - Vi sual Basi c - Java ( en próxi mas versi ones)
I nt erfaces: Wi n - Web
Descr i pci ón
El comando Submi t , permi t e ej ecut ar pr ogramas en forma asíncr oni ca, l a si nt axis
es l a si gui ent e:

Submit ( ‘Proceso’, ’Submi t Parms’[ , < Parm1> , …, < ParmN> ] )


Pr oceso
Es el nombre del programa a ll amar. Puede ser un obj et o GeneXus o un programa
ext erno. Los obj et os vál i dos dent ro de GeneXus son report es y procedi mi ent os que
no t engan sal i da. Est e parámet ro debe i r ent re comi ll as si mpl es.

Submi t Par ms
Se ut ili za para i ndi car ci ert os parámet ros referent es a l a ubi cación, usuari o,
cont raseña que ut ili zará el proceso i nvocado.
Est e parámet ro es ut ili zado uni cament e en ambi ent e Wi n, por el moment o es
i gnorado por t odos l os generadores.

Par m1 … Par mN
Son l os parámet ros que reci be el programa a l l amar, l os mi smos pueden ser
at ri but os o vari abl es. No se soport a el pasaj e de expr esi ones o const ant es. Es
recomendabl e veri fi car que l a defi ni ci ón de cada uno de l os parámet ros coi nci da
con los t ipos de dat os del programa.

Consi der aci ones Gener al es
El procedi mi ent o o report e l l amado con el comando Submi t , debe se mai n y t ener
confi gurada l a propi edad ‘Cal l prot ocol ’ con el val or ‘Command Li ne’.
Est o se debe a que el llamado con el comando Submit se t raduce como el llamado a
un exe.

Consi der aci ones específ i cas par a el gener ador Vi sual
Basi c
Si se t rabaj a con el generador Vi sual Basi c, y el procedi mi ent o ll amado medi ant e el
comando submi t , se encuent ra en un di rect ori o di ferent e al di rect ori o de l a
apli caci ón ( exe o dll ) , al poner en producci ón l a apli caci ón se debe generar un
archi vo con ext ensi ón I NI para i ndi car l a ubi caci ón del procedi mi ent o.

El archi vo se debe l l amar i gual que el nombre del mai n ( exe para apl icaci ones Wi n
y dll para apli caci ones Web) que real i za l a ll amada medi ant e submi t , y se debe
cr ear una secci ón l l amada [ GxFi l es] con l a ent r ada:
90
Submit Pat h= < Cami no donde est á el exe>

Si se t i ene más de un obj et o mai n que reali za submi t , se debe generar un I NI por
cada uno.
El cami no debe t ermi nar con \ .

Si el ll amado se real i za desde un Web Panel y no se encuent ra el procedi mi ent o se
produce el si gui ent e er r or:

Error Type:
HLLAMO_WebObj (0x800A0035)
File not found
/cgi-bin/hllamo.asp, line 13
Page:
POST 25 bytes to /cgi-bin/hllamo.asp
POST Data:
BUTTON1=Enter&sCallerURL=

Ej empl o:
Se t i ene un obj et o mai n ll amado Pr ueba que r eal i za un submi t a un
procedi mi ent o ll amado Pr oceso.
Cuando se pone en producci ón l a apli caci ón, suponi endo que el exe procedi mi ent o
( proceso. exe) se encuent ra en el di rect ori o c: \ archi vos se debe crear el archi vo
prueba. i ni con l a si gui ent e i nformaci ón:

[ GxFil es]
Submit Pat h= ’c: \ archi vos\ ’

Ej empl os
En el si gui ent e ej empl o se ut ili za el comando submi t para ll amar a un programa
denomi nado ‘Prog’ pasándol e como parámet ros &A y &B.


Event ‘Usr Ev’
Submit ( ‘Pprog’, ’’, &A, &B)
Endevent

91
Regl as

Regla Prompt On
I nt r oducci ón
A part i r de est a versi ón se permi t e defi ni r el cont rol que act i va l a ll amada a un
det ermi nado prompt en obj et os Web, en l ugar del bit map ut ili zado por def ect o.

Est o posi bilit a además l a ll amada desde Web Panel s a prompt s de GeneXus o de
usuari o.
Al cance
Obj et os: Web Panel s, Tr ansact i ones
Lenguaj es: Java, C/ Sql , Vi sual Basi c
I nt erfaz: Web

Descr i pci ón
La regl a PROMPT permi t e especi fi car ( opci onal ment e) el nombre del cont rol que
act i va l a ll amada a un det ermi nado prompt .

La si nt axi s pasa a ser l a si gui ent e:

Prompt ( < program> , [ p1, ] . . . pn) [ on < cont rol > ] ;

En caso de omi t i rse on < cont r ol > se agregará ( en l os ambi ent es que
corr esponda) una i magen, bot ón, et c. a l a der echa del o l os campo( s) que t i enen
prompt , como hast a ahora.

Cuando se especi fi ca on < cont r ol > se ut ilizará el cont rol r ef er enciado. Los
cont rol es posi bl es son aquell os que t engan l a propi edad l i nk ( Text Bl ock, I magen,
et c) .

Al ut ilizarse est a regl a se most raran en el diagrama de navegaci ón l os prompt s
ut ili zados.

Not a: Est a regl a apli ca úni cament e a obj et os que se especi fi quen para i nt erface
Web, en caso que se ut ili ce en ot ros obj et os, se i gnora l a nueva funci onali dad.

92
Msg y error con expresiones
I nt r oducci ón
Las regl as MSG y ERROR y el comando MSG permi t en como parámet ro una
expresi ón, y no sol ament e un st ri ng o vari abl es como en versi ones ant eri or es.
Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox – C/ SQL.
I nt erfaces: Web Form, Wi n Form.
Descr i pci ón
Tant o l as regl as MSG y ERROR ( ut ilizadas para envi ar mensaj es de advert enci a y
er ror al usuari o respect i vament e) como el comando MSG per mi t en t ener
expresi ones como parámet ros de l as mi smas. La expresi ón debe ser de t i po
Charact er.

De est a forma es posi ble escri bi r, por ej empl o, regl as del t i po:

Er ror( St r( A) ) ;
Er ror( Concat ( Concat ( ' El val or' , St r( A* 2/ 100) ) , ' no es correct o' ) ) I F A > = 10;
Msg( Concat ( ' Val or de B: ' , B) ) ;
Msg( Concat ( ' Fecha I ngresada: ' , Dt oC( C) ) ) ;
Msg( Concat ( ' Fecha Hora I ngresada ' , Tt oC( D) ) ) ;

Donde A es de t i po Numeri c, B de t i po Charact er, C de t i po Dat e y D de t i po
Dat et i me.

Est o si mpli fi ca l a programaci ón y puede r esul t ar muy út il para depurar secci ones de
códi go, debi do a que no se requi ere el uso de vari abl es auxili ares para asi gnar
funci ones y/ o expresi ones de t i po Charact er.

Definición de parámet ros de I N y OUT
I nt r oducci ón
Hi st óri cament e, en GeneXus l os parámet ros si empre fueron de Ent rada/ Sali da. Est o
si mpli fi caba l a programaci ón y además se cor r espondía con l os l enguaj es en l os que
se est aba generando.
El obj et i vo de est a f unci onali dad es poder i ndi car el t i po de pasaj e de l os
parámet ros.
93
Al cance
Objetos: Transacciones, Work Panels, Web Panels, Procedimientos, Reportes
Lenguajes: Java, Visual Basic, Visual FoxPro
Interfaz: Web, Win
Descr i pci ón
Est a funci onali dad permi t e defi ni r el t i po de pasaj e de parámet ros, pudi endo el egi r
ent re uno de l os si guient es val or es: ent rada ( i n) , sal i da ( out ) o ent rada/ sali da
( i nout ) . El val or por def ect o será i nout .

La defi ni ci ón del t i po de pasaj e de parámet ros permi t e, por un l ado, una mej or
especi fi caci ón de l a semánt i ca de l as i nt erfaces, y por ot ro l ado, per mi t e opt i mi zar
el pasaj e de parámet ros de l as apli caci ones de acuerdo a l a arqui t ect ura en l a que
ést as se i mpl ement an. En l a mayoría de l os l enguaj es es más efi ci ent e pasar por
referenci a que por val or . Pero en Java, por ej empl o, l os parámet r os sol o se pueden
pasar por val or, por l o que para l ograr l a funcionali dad de pasarl os por ref erenci a
es necesari o hacer conver si ones de parámet ros, l o cual puede r edundar en un
overhead i mport ant e. Por ot ro l ado, cuando se est á ej ecut ando en forma di st ri bui da
( Java, C/ SQL, DCOM, et c) , l a ut ilizaci ón de parámet ros del t i po out t i ene l a vent aj a
de que no es necesari o envi ar di cho parámet r o en l a i nvocaci ón. En cambi o si l os
parámet ros se defi nen de i nout i mpli ca que hay que pasar t odos l os parámet ros.
Est o t i ene como consecuenci a que se envíen más byt es de l os necesari os, l o cual es
bast ant e i nconveni ent e, especi al ment e en ent ornos t al es como I nt ernet .

Si nt ax i s
REGLA PARM

En l a regl a parm se di spone de un nuevo i ndi cador para especi fi car como será el
pasaj e de l os parámet ros. Ej empl o:

parm( out : &par1, i n: &par2, &par3)

En est e ej empl o est amos i ndi cando que el parámet ro &par1 será de sal i da, el
parámet ro &par2 será de ent rada, y el t ercer o ( &par3) será de ent rada/ sali da
puest o que ést e, es el val or por defect o.

Consi der aci ones Gener al es
Pr ogr amas l l amados como UDP/ UDF
En l os programas que son ll amados con UDP o con UDF, el val or por def ect o varía
de generador en generador. En l os generadores: Java, Vi sual Basi c, Vi sual FoxPro,
Fox Pro for Wi ndows y Xbase, el val or por def ect o es i nout para t odos l os
parámet ros, comport ami ent o que puede ser modi fi cado por el usuari o medi ant e la
defi ni ci ón del t ipo de pasaj e. Mi ent ras t ant o, en el rest o de l os generadores ( Cobol ,
RPG, C/ SQL) el val or por def ect o es i n para t odos l os parámet ros, sal vo el úl t imo
94
que es de t i po out , y cual qui er defi ni ci ón del t ipo de pasaj e, por part e del usuari o,
es i gnorada por el generador.
Asi gnaci ones a par ámet r os def i ni dos como i n
El especi fi cador no dej ará especi fi car un programa que asi gne val ores ( en
regl as/ source/ event os) a paramet ros defi ni dos como I n.

Consi der aci ones
No funci ona el indi cador i n con parámet ros del t i po Array.
Un parámet ro defi ni do como I n puede ser pasado como parámet ro a ot ro
programa donde est é defi ni do como Out o I nOut . La especi fi caci ón no est a
cont r ol ando est e caso per o es consi der ado un er r or y será validado en
fut uras ver si ones.

95
Obj et os

Fechas y Ver sión del Obj et o
I nt r oducci ón
Hast a l a ver si ón 7. 0 no se di st i nguía en un obj et o ent re l a fecha de modi fi caci ón y
fecha de consol i daci ón. Est o hacía que cuando un obj et o era consoli dado, l a fecha
de modi fi caci ón o edi ci ón del mi smo se sobr escr i bi era con l a fecha de consoli daci ón,
perdi endo de est a forma i nformaci ón acer ca de su f echa de act uali zación r eal .

A part i r de est a versi ón se mant i ene, en l a KB dest i no, l a fecha de modi fi caci ón del
obj et o de l a KB ori gen, y se agrega además la fecha de consol i daci ón al mi smo.
Est o permi t e, ent re ot ras cosas, saber si un obj et o fue modi fi cado l uego de l a
consoli daci ón, evi t ar consoli dar obj et os más viej os y poder r eali zar comparaci ones
real es ent re obj et os de di ferent es Bases de Conoci mi ent os.

Ot ra i nformaci ón que se agregó al obj et o a part i r de est a versi ón de GeneXus es l a
versi ón con que fue sal vado el mi smo. Est o permi t e det ermi nar al abrir una una KB
o model o si t i ene obj et os de ver si ones más nuevas de GeneXus.

Descr i pci ón
Ver si ón del obj et o
A part ir de la ver sión 7. 5. al salvar un obj et o se graba j unt o con la información del
mi smo l a versi ón de GeneXus con que fue salvado. Est o permi t e dar un mensaj e
más ami gabl e al abri r el obj et o con una ver si ón más vi ej a que l a que fue sal vado.

En el “ Open KB” se avisa si hay al gún obj et o sal vado con una versi ón más nueva
con l a si gui ent e advert enci a:

Warning: Some obj ect s in t his Knowledge Base were saved wit h a GeneXus NEWER
version ( < versi on> ) , t hat cannot be open wit h t his version.
Do you want t o open t he Knowl edge Base anyway?

El mi smo cont r ol se r eal i za cuando se abr e un model o ya que puede haber model os
congel ados que no t i enen ningún obj et o sal vado con una versi ón más nueva.

Fechas del obj et o
Cada obj et o de l a base de conoci mi ent o posee l as si gui ent es fechas:
Fecha de Creaci ón
Fecha de Modi fi caci ón
Fecha de Consolidación
Fecha de Especi fi caci ón

96
La Fecha de Cr eaci ón se al macena al crear un nuevo obj et o. Ent i éndase por cr ear
un nuevo obj et o cuando se hace New Obj ect o cuando se consol i da un obj et o en
una KB que no exi st e.

La Fecha de Especi fi cación es l a que se graba al moment o de especi fi car un obj et o.

Cuando el usuari o act uali za un obj et o se act uali za l a Fecha de Modi ficaci ón con l a
fecha del moment o. Si se consoli da un obj et o, se mant i ene en l a KB ori gen l a
Fecha de Modi fi caci ón del obj et o ( * ) y se graba además l a Fecha de l a
Consoli daci ón.

Est as f echas se pueden consul t ar en el Browser y Li st Obj ect .

( * ) No se consoli da l a fecha de l a úl t i ma modi fi caci ón de l os Fol ders, ya que ést os
t i enen como f echa de modi fi caci ón l a del obj et o más reci ent ement e modi fi cado
dent ro del mi smo.

FECHA DE MODI FI CACI ÓN
Una de l as cosas que permi t e el mant ener l a fecha de modi fi caci ón en l a
consoli daci ón es evi t ar sobr escri bi r obj et os más nuevos. Para est o se agregó en el
di ál ogo de consoli daci ón del Knowl edge Manager l a opci ón:
Do Not Overwri t e Newer Obj ect s

Si l a opci ón est á mar cada y un obj et o que se consol i da t i ene en el archi vo de
export aci ón, una fecha de modi fi caci ón ant eri or a l a fecha de modi fi caci ón en l a KB
dest i no, el obj et o no será consol i dando most r ando el si gui ent e err or en el Log de
consoli daci ón:


Fi gur a 9 - Cont r ol de Fecha de modi f i caci ón


Si l a opci ón no se encuent ra mar cada, para esos obj et os si mpl ement e se most rará
una advert enci a y el obj et o será consol i dado; quedando l os mi smos con f echa de
97
act uali zaci ón i gual a l a de l a KB ori gen.

I MPACT OBJECT
En el di ál ogo de I mpact Obj ect es posi bl e ver l os obj et os que t engan igual fecha de
modi fi caci ón pero di fi eran en l a fecha de consol i daci ón. Para est o se agregó l a
opci ón “ Equal but di fferent consol i dat i on dat e” en l os fi lt ros de di cho di ál ogo ( ver
si gui ent e fi gura) .



TI ME ZONE
I MPORTANTE: Para que el cont r ol de fechas ant es menci onado pueda real i zarse
adecuadament e, es necesari o t ener correct ament e confi gurado el ‘TI ME ZONE’ de
Wi ndows en l os PC ori gen y dest i no.

Todas l as fechas de l os obj et os se al macenan en l a KB con l a fecha/ hora
" coor di n at ed u ni v er sal t i me" UTC ( ant i guament e l l amada GMT o Gr eenwi ch
Mean Ti me) .

Est a caract eríst i ca permi t e envi ar una KB o una export aci ón de un País a ot ro ( o
si mpl ement e máqui nas con di ferent e Ti me Zone) y mant ener correct ament e l as
fechas. A modo de ej empl o, est o si gni fi ca que un obj et o sal vado a l as 10: 00 de
Uruguay en r eal i dad se sal va con hora 13: 00, y si se envía el obj et o o l a KB a
España most rará que el obj et o fue modi fi cado a l as 14: 00.

Si no se t i ene corr ect ament e confi gurado el Time Zone puede suceder que el obj et o
no pueda ser consoli dado, dando el error de que l a fecha de act uali zación es menor
a l a act ual , o sea consol i dado dej ándol e una fecha de modi fi caci ón i ncorrect a.
Compat i bi l i dad
• Lo si gui ent e apli ca a l a pri mer consol i daci ón en GeneXus 7. 5 de obj et os que
98
hayan si do consol i dados con versi ones ant eri ores de GeneXus:

Es import ant e r ecordar que las consolidaciones con versiones ant eri ores
modi fi caban la fecha del obj et o con la fecha de la consolidación. Si se vuel ve a
export ar un obj et o que no ha si do modi fi cado desde l a ul t ima export aci ón, al
consoli dar ( ahora con la ver si ón 7. 5 o superi or ) sobr e l a mi sma KB dest i no con
l a opci ón “ Do not over wri t e newer obj ect s” marcada, dará el mensaj e de err or
de que el obj et o no puede ser sobr escri t o con una versi ón más vi ej a. Est o se
debe a que l a nueva fecha de modi fi caci ón del obj et o no coi nci de con l a de al
KB ori gi nal ( porque es l a de l a ul t i ma consol i daci ón) .

Se puede i gnorar el err or si el obj et o no fue modi fi cado desde la úl t i ma
di st ri buci ón. Ahora, si el obj et o fue act uali zado ent re l a di st ribuci ón y
consoli daci ón ant eri or, ent onces se deberá desmarcar l a opci ón “ Do not
overwrit e newer obj ect ” para act ualizar los cambios en la KB dest ino.

• Los archi vos de export aci ón de versi ones ant erior es ( XPW) export aban l a fecha
de modi fi caci ón con l a fecha l ocal , por l o que si se consoli dan en ot ra Ti me Zone
quedarán con f echa err ónea.


99
Ambi ent es

Definición de ambient es en un modelo
I nt r oducci ón
Se ha modi fi cado el di ál ogo de defi ni ci ón de Model os ( Model Propert i es) en la
versión 7. 5 para facilit ar la definición de modelos en base a ciert as caract eríst icas
que t endrá el mi smo, como ser, l enguaj e a ut ili zar, t i po de i nt erface y DMBS.
Descr i pci ón
Al crear un nuevo model o o edi t ar uno exi st ent e apar ecerá el si gui ent e di ál ogo para
defi ni r l as propi edades del mi smo:


Fi gur a 10 - Def i ni ci ón de Model o


Cada Model o t i ene un ambi ent e pri nci pal , que se usa para l a creaci ón y
reorgani zaci ón de l a base de dat os y como ambi ent e por defect o para l a generaci ón
de l a apli caci ón. Además puede t ener vari os ambi ent es secundari os que se defi nen
en el t ab de Envi ronment s

El ambi ent e princi pal es el que se defi ne en est a pant all a de Model Propert ies ( t ab
General, secci ón Environment ) e incluye l os sigui ent es campos para l a defi ni ci ón
del mi smo:
100
Language
User i nt erface
DBMS

En Language apar ece un combo con t odos l os l enguaj es soport ados por GeneXus,
est os son: C# , C/ SQL, Cobol , Java, RPG, Vi sual Basi c y Vi sual FoxPro, Xbase for
DOS.
Luego de el egi r el l enguaj e, el usuari o podrá sel ecci onar el t i po de int erface que
desea ut ili zar para el ambi ent e pri nci pal ( Wi n o Web Form) y el DBMS. Los val ores
di sponi bl es para User I nt erface y DBMS dependen del Lenguaj e sel ecci onado. A
cont inuación se muest r a una t abla con los valores posibles para cada lenguaj e.

Language User I nt er f ace DBMS
C#
C/ SQL
Web Form DB2 Common Server s
DB2/ 400
I nformix
Oracle
SQL Server
Java Web For m
Win For m
Claudscape
DB2 Common Server s
DB2/ 400
I nformix
Oracle
SQL Server
Visual Basic Web Form
Win For m
Access
DB2 Common Server s
DB2/ 400
I nformix
Oracle
SQL Server
Visual FoxPro Win Form DBFCDX
DBFI DX
DB2 Common Server s
DB2/ 400
I nformix
Oracle
SQL Server
Cobol/ 400
RPG/ 400
Win For m AS/ 400 Nat ive
XBase for DOS Win Form DBFCDX
DBFI DX

En el t ab Environment s exi st en t res col umnas con: ambi ent e, l enguaj e e i nt erface.
Los t i pos de ambi ent e Default y Reorg her edan por def ect o la información del t ab
General, per o es posi ble cambi ar el l enguaj e y for m del ambi ent e Default , así como
agregar nuevos t i pos de ambi ent es. Por ej empl o, l a si gui ent e fi gura muest ra un
model o Vi sual Basi c “ Wi n” al que se l e agrega un nuevo t i po de ambi ent e “ Web”
para l a generaci ón de obj et os Web.

101

Fi gur a 11 - Ambi ent es de un model o


¿En qué ambi ent e se gener an l os obj et os?
Si el obj et o es mai n se genera en el ambi ent e asoci ado a di cho obj et o al defini rl o
como mai n.
Si el obj et o no es mai n, se genera en l os ambi ent es de l os mai ns que lo ll amen. Por
ej empl o, una Transacci ón con form Wi n y Web, será generada en ambi ent e Web si
es l l amada por un Web Panel y/ o en ambi ent e Wi n si es ll amada por un Work Panel .
En cual qui er ot ro caso el obj et o se t rat a de generar usando el Defaul t Envi ronment .

Si el obj et o no se corresponde con ese ambient e, por ej empl o si se t i enen Web
Panel s en un ambi ent e Full Win, el obj et o no se especi fi ca y en l a navegaci ón se
muest ra l a si gui ent e advert enci a: “ Thi s obj ect cannot be generat ed on t hi s
envi ronment . ” Por ot ro l ado, si un programa hace un call a ot ro que no puede ser
generado se emi t e el si gui ent e error de especi fi caci ón: “ Call t o program %1 t hat
cannot be generat ed f ound at li ne %2” . Por ej empl o, si una t ransacci ón generada
con el generador Java Wi n ll ama a un Web Panel , como el Web Panel t i ene que
generarse con un generador Web y no exi st e di cho generador, se produce el er ror.

PROMPT
Un Win Prompt ( Web Pompt ) se genera, en Prot ot i po o Producci ón, sól o si se
especi fi ca una t ransacci ón que l o ut ili ce. Est o qui ere deci r que exi st a una
t ransacci ón que sea generada en ambi ent e Wi n ( Web) .
Cuando al gún model o t i ene Wi n y ot ro Web forms se t i enen ambos prompt s en
di seño.

102
¿Cómo se gener an l os obj et os Web?
Debaj o del di rect ori o del model o ( Dat aXXX) se cr ea un di rect ori o Web que es
donde se guardan t odos l os obj et os generados en ambi ent e Web.

En el caso de l as apli caci ones Vi sual Basi c que usan base de dat os Access, en el
di rect ori o Web sól o se guardan l os obj et os Web, no l a base de dat os. La
GX_DATA. MDB se cont i núa generando en el di rect ori o del model o Dat aXXX, l os
obj et os Web acceden a est e di rect ori o para t omar l os dat os.
Es por est a razón que se recomi enda ut ilizar l a pref erenci a a ni vel de model o “ Local
Dat abase Fil e” para i ndi car l a ubi caci ón de l a base de dat os ( absol ut a o rel at i va) ,
porque si no al poner en producci ón una apli cación Web no se encont rarán l os dat os
( porque se buscarán en el di rect ori o “ padre” del obj et o no en el di rect or i o act ual ) .

F5 – Run
En el di ál ogo de ej ecuci ón ( Run) se puede fi l t rar l a li st a de programas a
compi l ar/ ej ecut ar por ambi ent e.
Compat i bi l i dad con ver si ones ant er i or es
En l a 7. 0 para poder generar Web Panel s se t enían que defi ni r t odos como mai n. Al
pasar a l a 7. 5, ya no es necesari o t enerl os como mai n, pero se mant i ene el check
de mai n en t odos esos obj et os.

Además, para el caso de VB y Jav a, el ambi ent e que se defi ne por def ect o al abri r
l a KB con l a 7. 5 es con i nt erfaz Wi n. Est o haces que t odos l os Web Panel s est én
marcados como mai n pero si n gener ador asoci ado, y el combo par a sel ecci onar
un generador est á vacío dado que no hay un ambi ent e Web defi ni do ( porque no
exi st ía en l a 7. 0) . La sol uci ón en est e caso es modi fi car l as opci ones de est os
obj et os para asoci arl e el ambi ent e correspondi ent e. Para est o, se recomi enda hacer
l o si gui ent e:
Si la mayoría de l os obj et os mai n de l a apli cación se generan en ambi ent e Wi n, se
dej a el ambi ent e Defaul t con User I nt erface Wi n, se cr ea un ambi ent e secundari o
Web y se asoci a est e ambi ent e a l os Web Panel s ( I nfor mat i on- > Opt i on- > Generat ed
for) . Es posi bl e eli mi nar l a propi edad Mai n a aquell os que no l o r equi eran.

Por el cont rari o, si l a int er face de l a mayoría de l os obj et os mai n es web, se cambi a
el User I nt erface del ambi ent e Defaul t a Web, se agrega un ambi ent e secundari o
Wi n y se modi fi ca el I nf ormat i on de l os obj et os Wi n.

Si en al gún caso no se cor responde el ambi ent e con l a i nt erfaz del obj et o, est o será
i ndi cado en l a navegaci ón del mi smo con l a si gui ent e advert enci a:
“ Thi s obj ect cannot be generat ed on t hi s envi ronment . ”


103
Hel p

HTML Help
I nt r oducci ón
A part i r de est a versi ón se cambi a l a forma de generaci ón de l a ayuda, para pasar a
generar en f ormat o HTML. Est e mecani smo permi t e l a defi ni ci ón de ayuda para
apli caci ones en el Web. Además se i ncorpora l a posi bilidad de empaquet ar t oda l a
ayuda generada en un úni co archi vo de format o CHM, con t odas l as caract eríst i cas
que est o acarrea como son l a posi bili dad de buscar en l a ayuda generada, defi ni r
índi ces, et c.

Al cance
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox Pro – C/ SQL –C#
I nt erfaces: Wi n - Web
Descr i pci ón
Se defi nen un nuevo esquema de ayuda, en el que se permi t e sel ecci onar ent r e
dos format os: CHM y HTML.
En est a versi ón, se genera por cada obj et o/ at ri but o/ vari abl e un document o HTML
que cont i ene el t ext o de ayuda defi ni do en GeneXus para el mi smo. En ambos
casos se genera un di rect ori o HELP baj o el di rect ori o del model o, en el que se crea
un archi vo ext ensi ón HTML por cada obj et o/ at ribut o/ vari abl e que t enga ayuda.
En el caso de CHM, se cr ea además un archi vo de nombre APPHLP. CHM en el
di rect ori o del model o.

CHM

Además de l os archi vos HTM, se manej a un archi vo de defi ni ci ón de proyect o ( de
ext ensi ón HHP) , ut ili zado por el compi l ador del HTML Hel p Workshop para l a
generaci ón del CHM.


HTML

La pri nci pal caract eríst ica de est e format o es el poder generar ayuda que no sea
compat i bl e sol o con l a pl at aforma Wi ndows GUI .
De est a manera se abri rá un browser con el HTML correspondi ent e a l a ayuda.
Est o es especi al i mport anci a para apli caci ones Web.

104
Def i ni ci ón de Ay uda
En GeneXus exi st en dos i nst anci as de ayuda, l a ayuda a ni vel de obj et o
( Transacci ón, Work Panel , et c) y l a ayuda de l os di st i nt os at ri but os/ var i abl es dent ro
de est os.

Para defi ni r l a ayuda de un obj et o, se debe hacer sel ecci onar l a Tab Page HELP del
obj et o.



En di cha pági na se present a el edi t or de HTML, si mil ar al edi t or ut ilizado para
realizar los obj et os Web.

La ayuda a ni vel de at ri but o/ vari abl e/ domi ni o se defi nen el di al ogo de
cr eaci ón/ edi ci ón de est os, en l a TAB Page corr espondi ent e, se cuent a con un edi t or
HTML de at ri but os/ vari abl es/ domi ni os con est e fín. .





Gener aci ón de l a Ay uda
La opci ón para generar el hel p de obj et os/ at ri but os GeneXus se encuent ra en l a
barra de herrami ent as, baj o el i t em Buil d.



Al sel ecci onar l a generaci ón de menú se habilit a un wi zard, el que permi t e
i ni ci alizar algunas propi edades sobre el archi vo que cont endrá el hel p de l a
105
apli caci ón.
El wi zard const a de t res pasos

Paso 1

En el pri mer paso se def i nen:
• El t i po de hel p que se qui ere generar.
• El compil ador que ha de ut ili zarse para generar l a apli caci ón.



Type of Hel p

Exi st en dos f ormas: CHM y WEB. La pri ncipal diferenci a ent re ambos es que para l a
generaci ón WEB no se requi ere el uso de un compil ador, si mpl ement e se generan
l os archi vos HTML corr espondi ent es a cada ayuda de obj et o.
CHM
La el ecci ón de est a opción i mpli ca t ener un compil ador de ayuda HTML, a t ravés del
cual generar el archi vo APPHELP. CHM ut ili zado luego por l a apli caci ón GeneXus.

El compil ador con el que se ha t r abaj ado es el HTML Hel p Workshop, que se
encuent ra en el CD del Vi sual St udi o 6. 0, baj o el di rect ori o HTMLHel p.

La ayuda generada se present a en un úni co archi vo de format o CHM, donde cada
obj et o/ at ri but o/ vari abl e con ayuda aparece como un ít em del cont eni do.

106


HTML
La pri nci pal caract eríst ica de est e format o es el poder generar ayuda que no sea
compat i bl e sol o con l a pl at aforma Wi ndows GUI .

En est e caso no se requi ere de un compil ador, si mpl ement e se generarán l os
archi vos HTM.
De est a manera se abri rá un browser con el HTML correspondi ent e a l a ayuda.

Hel p Compi l er Pat h

Ubi caci ón del compil ador del HTML Hel p Wor kshop.
En el caso de l a generaci ón WEB est e campo es deshabili t ado; pero en caso de l a
generaci ón CHM debe especi fi carse el mi smo, o en caso cont rari o no podrá segui r
avanzándose en l a apli caci ón.

Paso 2
Defi ne opci ones que modi fi can propi edades del archi vo de defi ni ci ón del proyect o.

107


Proj ect Set t i ngs
Defi ne opci ones que modi fi can propi edades del archi vo de defi ni ci ón del proyect o.
Est as opci ones apli can sobre t odo para el caso de generar un ar chi vo CHM o
ut ili zaci ón de un act i veX o component e Java para el Web. Sol o apli ca si se
sel ecci onó CHM en el paso 1.
I NCLUDE FULL- TEXT SEARCH
Habili t a l a posi bilidad de real i zar búsquedas de t ext o sobre t odos l os document os
que conforman el CHM. Est a opci ón no es vál i da si se est á generando para el Web.
DEFAULT HTML PAGE
La pági na por defect o es aquell a Defi ni ci ón de la página HTML por defect o, aquel l a
pági na que se muest ra cuando no se ha especi fi cado al gún t ópi co en part i cul ar por
defect o cuando no se ha sel ecci onado ni ngún t ópi co de l a ayuda.
La apli caci ón generaci ón de hel p crea genera una pági na por defect o pero cuyo
cont eni do es muy si mpl e. El usuari o puede de est a f orma se puede defi ni r una
pági na propi a y ut ili zarla.

CUSTOM CONTENTS
Al igual que l a página por defect o, t ambi én se genera un archi vo de cont eni do. El
archi vo de cont eni do defi ne una est ruct ura de árbol que permi t e organi zar l os ít ems
dent ro de l a ayuda.
En GeneXus no hay for ma de i ndi car como agr upar l os ít ems de l a ayuda, así que
por defect o se genera una raíz del árbol , de la que cuel gan t odos l os t ópi cos de
ayuda. Los úni cos ít ems que aparecen ani dados es en el caso de l as vari abl es que
poseen ayuda, en ese caso est os ít ems apar ecen ani dados debaj o de l a ayuda del
obj et o en el cual est án defi ni das.
Est e archi vo de cont eni do puede edi t arse con el HTML HELP Workshop y de est a
for ma cr ear un árbol mej or organi zado personali zado. Si ese archi vo es sal vado con
ot ro nombre, puede ut ilizarse en est a opci ón en vez de generar el archi vo por
def ect o.
108
CUSTOM I NDEX
I dem al archi vo de cont eni do, pero para el archi vo de defi ni ci ón del índice.
En el caso del archi vo de índi ce, puede ut ili zarse el HTML HELP Workshop para
darl e un orden al fabét i co a l os ít ems.

Paso 3
Compil aci ón de l a ayuda.
Est e paso sol o es vali do váli do si se genera l a ayuda en format o CHM, en caso de
generar HTML, el pr oceso t ermi na en el paso 2.

El HTML Hel p Workshop present a una herrami ent a para l a edi ci ón de l os archi vos
ant eri orment e descri t os ( cuya int erfaz es l a si gui ent e fi gura) . Se abre el HTML Hel p
WorkShop para compi l ar l a ayuda generada.



Se inicia el proyect o en el que se muest ran t odos los archivos que se incl uyen así
como l a confi guraci ón del mi smo.
Se debe compi l ar el proyect o por medi o del bot ón o l a opci ón Compi l e del ít em
File del menú. Est o genera un archivo llamado APPHLP. CHM en el di rect orio del
model o.


109

Consi der aci ones gener al es
• La ayuda se defi ne a ni vel de model o, pr ot ot i po/ producci ón.
• Cada vez que se genera l a ayuda, se sobr escri ben TODOS l os archi vos ht m
( aunque no hayan si do modi fi cados) .
• No se borran archi vos HTM. Si se r enombran obj et os/ at ri but os/ vari abl es,
quedan cr eados l os document os con l os nombr es ant eri or es.
• Los document os HHP, HHC, HHK se sobrescri ben si son defaul t ( es decir, si
no son personali zados) .
• Exi st e un document o con ci ert os TI PS sobre el HTML Hel p Workshop, como
son agregar bot ones, poder vi suali zar un CHM desde un browser, et c.
• En el caso de procedi mient os y report es con pr ot ocol o SOAP, l a ayuda es
anexada en el WSDL del mi smo, mas det alles en la document aci ón de SOAP

Consi der aci ones específ i cas de Apl i caci ones WEB
En caso de t rabaj ar con apli caci ones Web, se asoci a al event o pr edefi ni do “ HELP” l a
ayuda del obj et o. Est o qui ere deci r que al di sparar el event o “ HELP” en un obj et o
Web se va a most rar en una nueva vent ana del browser l a ayuda en f ormat o HTML
del mi smo.
El event o “ HELP” puede ser asi gnado a un bot ón o a una i magen.

Para i ncl ui r ayuda en una apli caci ón Web, debemos gener ar l a mi sma como HTML,
ya que l os br owser por def ect o no pueden i nt erpret ar el format o CHM.
Para indi car el di rect orio donde se ubican los archivos de Ayuda ( HTM) se creó la
pref erenci a del model o Hel p Fi l es Base URL, baj o el grupo Web I nf or mat i on.





En di cho di rect ori o, que puede i ndi carse absol ut o o rel at i vo, se deben col ocar l os
110
archi vos de ayuda generados en format o HTM cor respondi ent e a cada obj et o ( no se
t i ene en cuent a l a ayuda a ni vel de vari abl es/ at ri but os)
La ayuda se manej a a ni vel de JavaScri pt , por lo que se debe t ener en el di rect ori o
de l a apli caci ón ( o de archi vos est át i cos en el caso de Java) el JavaScri pt
gx _hel p.j s .


Consi der aci ones específ i cas par a el gener ador Java
En el caso de Java es posi bl e generar l a ayuda en archi vos HTML para apli caci ones
GUI , ya que el CHM no es mult iplat aforma
Por est e mot i vo se han i nst rument ado un conj unt o de propi edades:



Hel p Mode
Est a preferenci a defi ne que t i po de ayuda van a ut ilizar l as apli caci ones, es
independient e de cómo se r ealice la ayuda.

Wi ndow s HTML Hel p
Si se va a generar l a ayuda como CHM
Web HTML Hel p
Si se va a generar l a ayuda como HTML
111

En el caso de t ener est a úl t i ma sel ecci onada se habilit a l a si gui ent e
pref erenci a:

WebHel p base URL
Defi ne l a URL base donde se van a buscar l os HTML de l a ayuda.


Ayuda y Document ación HTML para
at ribut os/ dominios/ variables
I nt r oducci ón
Al defi ni r at ri but os, vari abl es o domi ni os, se permi t e agregarl es t ant o sea ayuda
como document aci ón HTML, con est e fi n exi st en opci ones de edi ci ón de format o
HTML en el di al ogo de defi ni ci ón de l os mi smos.

Al cance
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox Pro – C/ SQL –C#
I nt erfaces: Wi n - Web

Descr i pci ón
Al defi ni r un at ri but o, domi ni o o vari abl e, en l os TAB page Hel p y Document at i on se
encuent ran opci ones de edi ci ón del format o HTML.

112



Opci ones de edi ci ón
1. Ti po de fuent e


Se habili t an t odos l os t i pos de fuent e i nst al ados en el si st ema.

2. Tamaño de l a fuent e


Los val ores váli dos son del 1 al 7, el t amaño real que se apl i ca a l a fuent e para
cada uno de est os val ores est á defi ni do por el I nt ernet Expl or er .

3. Format o de párraf o


La li st a de f ormat os es f i j a. Son váli dos l os si guient es val or es:
• Nor mal
• Headi ng 1
• Headi ng 2
• Headi ng 3
• Headi ng 4
• Headi ng 5
• Headi ng 6
113

4. Negri t a, I t ál i ca y Subrayado


5. Col or


6. Li st as ordenadas y Li st as


7. Decrement o e I ncr ement o de sangría del párraf o


8. Just ificación a la izquierda, cent rada y a la der echa un párrafo


9. Vi suali zaci ón de det al l es


10. I nser ci ón de i mágenes


Se habili t a un diál ogo a t ravés del cual se especi fi ca l a ubi caci ón de l a i magen
que desea i ncorpor arse en el document o. Est e nuevo di ál ogo es propi o del
Act i veX que mani pul a el document o HTML ( es deci r que no corr esponde a
GeneXus) .

11. Edi ci ón del document o HTML en format o t ext o


Se habili t a un nuevo di ál ogo donde puede modi fi carse el document o HTML a
t ravés de un edi t or de t ext o. Los cambi os i nt roduci dos en di cho diál ogo se
refl ej arán en l a vi st a HTML cuando se acept en los mi smos.

Est a es una opci ón a t ravés de l a cual se pueden i ncorporar ot ros el ement os al
document o que no est án habili t ados a t ravés de l os bot ones o short cut s
defi ni dos ( como puede ser l a defi ni ci ón de una t abl a) .


Shor t cut s
1. Sel ecci ón de t odo el document o ( Ct rl + A)
2. Copi ar ( Ct rl + C)
3. Pegado ( Ct rl + V)
4. Cort ar ( Ct rl + X)
5. Búsqueda de t ext o ( Ct rl + F)
6. Deshacer ( Ct rl + Z)
7. Rehacer ( Ct rl + Y)
8. Negri t a ( Ct rl + N)
9. I t ál i ca ( Ct rl + I )
114
10. Subrayado ( Ct rl + U)
11. Bor rar ( Supr or Del et e)


115
Ti pos de Dat os

Nuevos Tipos de Dat os
En est a ver si ón se i ncl uy en nuev os t i pos de dat os par a l a def i ni ci ón de
var i abl es.
Est os nuev os t i pos son:
WebWr apper
WebSessi on
Ex cel Document
Wor dDocument
Xml Wr i t er
Xml Reader
MAPI Sessi on
Out l ook Sessi on
POP3Sessi on
SMTPSessi on
Mai l Reci pi ent
Mai l Message
Ht t pRequest
Ht t pResponse
Ht t pCl i ent
DBConnect i on
Locat i on


Con est a i mpl ement aci ón se pasa a un model o de obj et os y se pueden
cr ear desde GeneXus var i abl es que t i enen como t i po est os obj et os,
conf i gur ar sus pr opi edades y ej ecut ar sus mét odos en v ez de r eal i zar
l l amados a f unci ones ex t er nas.

Tipo de Dat os DBConnect ion
I nt r oducci ón
El obj et i vo del t i po de dat os DBConnect i on es permi t i r que l as opci ones de
confi guraci ón para l as conexi ones ODBC a l a base de dat os puedan ser
det ermi nadas en t i empo de ej ecuci ón.

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Vi sual Basi c – Vi sual Fox – C/ SQL.
I nt erfaces: Web Form, Wi n Form.

116
Descr i pci ón
Para poder modi fi car l as opci ones de confi guraci ón de l os di ferent es dat ast or es en
t i empo de ej ecuci ón desde un obj et o GeneXus, se debe defi ni r una vari abl e del
t i po de dat os DBConnect i on y l uego i nvocar a l os mét odos y propi edades
necesari os.

Pr opi edades:
Dat ast or eName

I ndi ca el dat ast ore GeneXus que est a asociado a la vari able. El valor es de
t i po caráct er.

Est a propi edad es sol o de l ect ura, para asi gnar un dat ast ore a l a vari abl e, se debe
ut ili zar l a funci ón Get Dat ast ore( ) , por ej :

&MyConn = Get Dat ast ore( “ Def aul t )


ODBCDat asour ceName

Asoci a un nombre de dat asource a l a conexi ón. Es vál i do sol ament e cuando
el dat ast ore asoci ado ut ili za un dat asource para conect arse. El val or es de t i po
caráct er.


ODBCFi l eDat asour ceName

Asoci a un nombre de dat asource de archi vo a l a conexi ón. Es váli do
sol ament e cuando el dat ast or e asoci ado ut ili za un dat asource de archi vo para
conect ar se. El val or es de t i po caráct er.


ODBCDr i v er Name

Asoci a un nombre de dri ver a l a conexi ón. Es váli do sol ament e cuando el
dat ast or e asoci ado ut iliza un dri ver para conect arse. El val or es de t i po caráct er.


User Name

Asoci a un usuari o a l a conexi ón. El val or es de t i po caráct er . La propi edad
debe cont ener si empr e el mi smo val or que el ret orno de l a funci on useri d( ' server ' ) .
Est o es ci ert o i nmedi at ament e l uego de r eali zada l a conexi ón y hast a que el
programador event ualment e cambi e su val or, en ese caso el valor podrá ser
diferent e hast a que se ej ecut e el mét odo Connect ( ) .


User Passw or d

Asoci a una cont raseña a l a conexi ón. El val or es de t i po caráct er .
117


Connect i onDat a

El cont eni do de est a propi edad se concat ena al st ring de conexi ón que
GeneXus genera a part i r del rest o de l as propiedades. Se ut ili za normal ment e para
especi fi car parámet ros adi ci onal es para l a conexi ón, por ej empl o l a base de dat os.
El val or es de t i po caráct er.



Show Pr ompt

I ndi ca si se most rará el di ál ogo al reali zarse l a conexi ón. El val or es de t i po
numéri co. Los val or es posi bl es son:

1 Si empre se muest ra el di ál ogo de conexi ón
2 Nunca se muest ra el di ál ogo
3 Se muest ra el di ál ogo si es necesari o, es deci r si fal t an dat os para
que l a conexi ón sea posi bl e.


Er r Code

Devuel ve el códi go del úl t i mo error. El val or es de t i po numéri co. Los
códi gos de er ror se descri ben mas adel ant e.


Er r Descr i pt i on

Devuel ve l a descri pci ón del úl t i mo er ror. El val or es de t i po caráct er.


Mét odos:
Connect ( )

Se real i za l a conexi ón al dat ast or e asoci ado. El val or que devuel ve es de t i po
numéri co, y es cer o en caso de éxi t o. En caso de err or devuel ve el códi go
del mi smo.
Est e mét odo no da error sobre una conexi ón abi ert a, si mpl ement e l a conexi ón
se ci erra y se vuel ve a abri r con l os nuevos val ores.

Di sconnect ( )

Se real i za l a desconexi ón al dat ast ore asoci ado. El val or que devuel ve es de
t i po numéri co, y es cero en caso de éxi t o. En caso de error devuel ve el
códi go del mi smo.
Este método no da error si es utilizado en un programa que esta
118
generado con la preference "Connect at first request" y la
conexión aun no se hizo.

Códi gos de Er r or :

Código Descripción Comentarios
0 No Er r or No hubo err or .
1 Unknown Err or Er ror no conoci do, puede ocur ri r cuando
se pi de l a descri pci ón de un códi go de
er ror que no exi st e.
2 No GeneXus Dat ast ore
at t ached
Se uso un mét odo o propi edad sobre
una vari abl e que no t i ene asoci ado un
dat ast or e. Se sol uci ona asi gnando
previ ament e l a propi edad
Dat ast oreName.
3 I nt ernal Er ror: Funct i on
call fail ed
El mét odo o propi edad reci bi ó un error
comuni cando un val or al acceso a dat os.
Normal ment e se debe a un val or de
parámet ro no váli do o f uera de rango.
Ej empl o
A cont i nuaci ón se det al la un ej empl o de ut ili zación en un obj et o GeneXus:

Var i abl es

&MyConnect i on t i po DBConnect i on

Comi enza Fuent e GX
&MyConnect i on = Get Dat ast ore( "defaul t ")
&MyConnect i on. Di sconnect
&MyConnect ion. User Name = "Administ rador"
&MyConnect i on. Password = "Adm! Password"
&MyConnect i on. ShowPr ompt = 2
&MyConnect i on. Connect
Fi n Fuent e GX

119
Consi der aci ones gener al es

• Sol o est a i mpl ement ado cuando se ut ili za t ecnol ogía de acceso a dat os
ODBC ( para el caso del generador C/ SQL, la pref er enci a “ C/ SQL Access
Met hod” deberá t ener di cho val or) .


• Se debe t ener en cuent a que l os mét odos Connect ( ) / Di sconnect ( ) ci erran l os
cursor es que est én abi ert os en l a conexi ón a l a que apli can.

Por l o ant eri or , no es posi bl e ej ecut ar l os mét odos Connect ( ) y/ o
Di sconnect ( ) dent ro del al cance de un comando For each.

Es r esponsabi li dad del desar rol l ador ut ili zar l a conexi ón/ desconexi ón en
l ugares correct os. Por ej . si se real i za l a desconexi ón en l a mi t ad de un
procedimient o, probablement e la ej ecución cancel ará. También exist e la
posi bilidad de que cont inúe t rabaj ando si el procedi mi ent o se reconect a,
per o en t odo caso l os r esul t ados son i mpredeci bl es.


• Cuando se ut ili za el generador Vi sual Basi c es necesari o haber accedi do a l a
base de dat os ant es de ut ili t ar l a funci ón Get Dat ast ore( ) , de l o cont rari o al
ej ecut arse l a mi sma fallará, y l a propi edad Er rCode quedará con el val or 2.

Tipo de Dat os WebWrapper
I nt r oducci ón
WebWrapper es un nuevo t i po de dat os de GeneXus que permi t e encapsul ar l a
ej ecuci ón de l os obj et os Web ( el códi go HTML generado) . En part i cul ar permi t e
envi ar el cont eni do de un Web Panel por mail .
Al cance
- Obj et os: Transacci ones, Work Panel, Web Panel, Pr ocedimient os
- Lenguaj es: Java - Vi sual Basi c – C/ SQL – C#
- I nt erfaces: Web, Wi n

Descr i pci ón
Para poder envi ar el cont eni do de un Web Panel vía mail desde un obj et o GeneXus
es necesari o defi ni r una vari abl e de t i po WebWrapper, para l uego apli car l os
mét odos y propi edades necesari os.
La i dea es capt urar el cont eni do de un Web Panel en su códi go HTML, y envi ar est e
vía mail , por l o t ant o hay que t ener en cuent a que el cli ent e de corr eo que reci ba el
mail debe t ener l a capaci dad de int erpret ar l enguaj e HTML, en caso cont rari o verá
el códi go del Web Panel .
120


Pr opi edades:

BaseURL Es l a di recci ón Base del Web Panel

La di recci ón base det ermi na el servi dor y di rect ori o vi rt ual al que apunt arán l os
links y a donde se i rá a buscar el Web Panel en caso de que se presi one al gún
bot ón. La di recci ón base es agregada al códi go HTML que devuel ve el mét odo
Get Response.

Obj ect
Obj et o Web a encapsul ar en l a vari abl e de t i po WebWrapper

A l a propi edad Obj ect debe asi gnársel e si empr e el resul t ado de l a funci ón
Creat e( Obj et o, Parámet ros)
Met odos:
Get Response

Ret orna el códi go HTML que devol vería el obj et o Web especi fi cado en la propi edad
Source con l os parámet ros al lí indi cados.

Consi der aci ones Gener al es
Los obj et os Web Panel de GeneXus, no son est át i cos, por est e mot i vo al envi arl os
vía mail , en real i dad se est á envi ando una i magen est át i ca. Por l o t ant o cual qui er
event o que se pr oduzca en el Web Panel que real i ce un post al servi dor ( por
ej empl o hacer cl i ck en un bot ón, di sparar un procedi mi ent o, et c) produci rá que se
abra el web panel en el browser, en l a di recci ón especi fi cada en l a propi edad
BaseURL.

Si se desea hacer un WebWrapper de un Web Panel que i ncluya imágenes, se
puede hacer de dos maneras:
• Poner en el Web Panel las i mágenes en f orma absol ut a, el i nconveni ent e de
est o es que el usuari o debe est ar conect ado en el moment o de l eer el mail .
• Poner en el Web Panel las i mágenes r el at i vas y mandarl as como at achment
en en el mail . En est e caso l a rut a de l a i magen no debe i ncl ui r di rect ori os
( i .e. / i mágenes/ l ogo.j pg) si no hacer r ef er enci a di rect ament e a l a mi sma
( i.e. logo.j pg) .

Si se ut iliza un obj et o WebWrapper para mandar un Web Panel medi ant e mai l , y
di cho Web Panel t i ene un bot ón o event o cl i ck, el comport ami ent o al apret ar di cho
bot ón ( o cont rol con event o cli ck) en Out l ook XP di fi ere del de Out l ook 2000 y
Out l ook Express.

En Out l ook 2000 y Out look Express el comport ami ent o es el esperado: se abre un
browser, se hace el POST al servi dor Web, y en el browser se muest ra l a r espuest a
( incluso puede haber una r edi recci on, call o li nk, en el event o) .
121

En Out l ook XP el comport ami ent o es el si gui ent e: el POST l o hace el propi o Out l ook
( no se abre un browser para hacer el POST) . Luego se abre un browser haci endo un
GET de l a pági na para most rarl a. Pero di cho GET se hace sol ament e si no había una
redi recci ón en el event o que ej ecut ó el POST. ( De t odas formas, el event o se ej ecut a
si empre) .

Por ej empl o, si se t i ene un event o asoci ado a un bot ón que graba al go en l a base de
dat os y asi gna ci ert o val or a una vari abl e que est á en el form. En Out l ook 2000 y
Out l ook Expr ess, al apr et ar di cho bot ón en el mensaj e se ej ecut ará el event o, por l o
que se hará el cambi o a l a base de dat os, y se abri rá un browser donde se verá en el
for m l a vari abl e con el val or que se l e asi gnó en el event o. En Out l ook XP se
ej ecut ará el event o, haci endo el cambi o en l a base de dat os, pero el form de
respuest a nunca se most rará. Luego se abri rá un browser donde se despl egará el
for m SI N MODI FI CAR LA VARI ABLE.

Ot ro ej empl o: el event o asoci ado al bot ón modi fi ca l a base de dat os y hace un call a
ot ro webpanel . En Out l ook 2000 y Out l ook XP, al apret ar el bot ón se hace l a
modi fi caci ón a l a base de dat os y se abre un browser donde se muest ra el Web Panel
ll amado. En Out l ook XP se hace l a modi fi caci ón a l a base de dat os pero no se
muest ra nada, ni si qui era se abre el browser.

Hay dos formas en l as cual es podemos cambi ar nuest ra programaci ón para
asegurarnos de que el comport ami ent o sea el mi smo en l os 3 cl i ent es de mai l :

1) No usar event os. Si empre se pueden usar l inks.

2) Usar un Web Component . Es deci r, el Web Panel que se manda por email est á
compuest o sol ament e por un webcomponent . Di cho WebPanel t endría en el event o
Refr esh al go así:
Ev ent Ref r esh
i f base de dat os fue modificada
w ebcomponent . obj ect = cr eat e( HGr aci as, pars. . .)
el se
w ebcomponent . obj ect = cr eat e( HMai l For m, pars. . .)
endi f
End Ev ent

En el event o de usuari o de HMai l For m se haría l a modi fi caci ón a l a base de dat os
por l a cual se chequea en l a condi ci ón. HGr aci as es el Web Panel al cual se quería
hacer l a redi recci ón al procesar el event o.
Consi der aci ones específ i cas del gener ador C/ SQL
Al ut ilizar el t i po de dat o WebWrapper con el generador C/ SQL, hay que t ener en
cuent a l os si gui ent es fact or es:

• El obj et o Web que se cr ea para envi ar por mail por medi o de l a funci ón
Creat e no puede ser mai n, si puede ser un WebComponent .
• La propi edad BaseUrl debe est ar después de l a funci ón Creat e.

122
Consi der aci ones específ i cas del gener ador Vi sual
Basi c
En caso de t ener en el Web Panel que se envía como Web Wrapper Li nk o
Embedded Pages a obj et os GeneXus del mi smo model o, se debe i ndi car la
pref erenci a del obj et o “ Generat i on Mode” en Smart St at ic Panel.
Ej empl o
El sigui ent e ej empl o es un procedi mi ent o que ilust ra como envi ar por mai l ,
medi ant e Out l ook, el Web Panel Hnot ify para cada regi st ro de l a t abl a CLI ENTE.
Di cha t abl a t i ene cl ave pri mari a CliCod, el cual se pasará como parámet ros al
Hnot ify. Tambi én t i ene ent re sus at ri but os secundari os a CliNom, con el nombre del
cli ent e, y CliMail , con la di recci ón de corr eo el elect r ónico del client e.

Vari abl es Defi ni das:
&Wrap del t i po WebWrapper
&Mai l Msg del t i po Mail Message
&Out l ook del t i po Out l ookSessi on

&Wrap. BaseURL = “ ht t p: / / myserver/ mysyst em/ ”
For each Cli Cod
&Wrap. Obj ect = Creat e( Hnot i fy, Cl i Cod)
&MailMsg. To. New( CliNom, CliMail)
&Mai l Msg. HTMLText = &Wrap. Get Response( )
&Oul ook.Send( &Mail Msg)
EndFor

Tipo de Dat os WebSession
I nt r oducci ón
WebSessi on es un nuevo t i po de dat os de GeneXus que permi t e al macenar dat os
en una sesi ón de usuari o del servi dor Web. De est a manera se pueden t ener
vari abl es gl obal es, accesi bl es mi ent ras l a sesi ón est é act i va.
Al cance
- Obj et os: Transacci ones, Web Panel , Pr ocedi mient os
- Lenguaj es: Java - Vi sual Basi c - C#
- I nt erfaces: Web

Descr i pci ón
Los ser vi dores Web permi t en manej ar el concept o de sesi ón. Una sesi ón se
i dent i fi ca por una cl ave úni ca, que se mant i ene mi ent ras el usuari o cont i núe en el
si t i o Web.
123
El obj et o WebSessi on permi t e al macenar i nformaci ón que será vi si bl e desde
cual qui er obj et o Web dent ro de l a sesi ón act i va como si fueran vari abl es gl obal es al
si t i o.

Para ut ilizar el obj et o WebSessi on, se debe defi ni r una vari abl e de est e mi smo t i po
y apli carl es l os mét odos y propi edades adecuados.

Pr opi edades:
I d

Est a propi edad ret orna un St ri ng que es el i dent i fi cador de l a sesi ón. Por ej empl o:
&I den = &Sessi on. I d

Met odos:
Set ( key, value)

Permi t e hacer una ent rada en l a sesi ón act i va. Key y val ue deben ser del t i po
St ri ng. Por ej empl o

&Sessi on.set ( “ user” , &User)

Get ( key)

Ret orna un St ri ng corr espondi ent e a l a ent rada key de l a sesi ones. En caso de que
l a cl ave no exi st a r et orna el St ri ng nul o. Por ej empl o:

&User = &sessi on.get ( “ user ” )


Remov e( key)

Per mi t e remover un val or de una sesi ón. Por ej empl o:

&Sessi on.r emove( “ user” )

Dest r oy ( )

Det ruye el cont eni do de l a sesi ón. Es recomendabl e ut ili zarl o cuando el usuari o
hace un “ l ogout ” , si es que exi st e est e concept o en l a mi sma. Por ej empl o:

&Sessi on.dest roy( )

Consi der aci ones Gener al es
• El I D de l a sesi ón se guarda en una cooki e en el cli ent e, aunque est o es
t ransparent e para el programador.

124
• La validez de la Websessi on es si milar a la vali dez de las cookies que solo
val en por l a sesi ón. Est o qui ere deci r que si se abre una i nst anci a nueva del
browser, se pi erde l a sesi ón, pero si abro en una vent ana nueva se mant i ene.

• Los dat os y el I D de una sesi ón son di ferent es para cada generador. Est o
i mpli ca que no puedo hacer un li nk de un Web Panel VB a un Web Panel
Java y mant ener l os val or es de l a sesi ón

• Si no se ej ecut a el ' dest roy( ) ' , el servi dor Web dest ruye l a sesi ón cuando ha
pasado un det ermi nado t i empo desde l a úl t i ma vez que se ut ili zó. Est o
depende del servi dor Web/ pl at aforma, y se confi gura de f orma nat i va en cada
una.

• La f orma en que se al macena l a i nformaci ón de sesi ón t ambi én depende de l a
pl at aforma, y condi ci ona l a capaci dad de t ener l a apli caci ón en mas de un
servi dor Web. Bási cament e, si l a sesi ón se al macena de f orma l ocal al
servi dor Web, sol o es vi si bl e en ese ser vi dor Web, por l o que si el si guient e
request del cli ent e va a parar a ot ro servi dor Web, no va a t ener di sponi bl e
l os val ores de sesi ón.
Consi der aci ones específ i cas par a el Gener ador Vi sual
Basi c
• En VB el dest r oy( ) l i mpia l os val or es al macenados en l a sesi ón, pero si
i nmedi at ament e se pi de I D de l a sesi ón devuel ve el mi smo I D. Java
devuel ven un nuevo I D.




Ej empl os


Supongamos un si st ema Web donde el usuari o debe aut ent i fi carse por medi o de un
usuari o y una password que est án previ ament e gravadas en l a base de dat os.
Ent onces podemos defi ni r en el Web Panel de I ni ci o una vari abl e t i po WebSessi on
( &Sessi on) y l as vari abl es de ent rada &User y &Password. En el event o Ent er del
Web Panel defi ni r

For each
Wher e Usr Nom = &User
Wher e Usr Psw = &Password
&Sessi on.Set ( “ Name” , UsrNombr e)
Call ( HWel come)
When none
Ret urn
/ / Usuari o no val i do
endfor
125

De est a maner a vali damos el usuari o con l a base de dat os y en caso de l os val ores
corr espondan guardamos el nombre del usuari o en l a sesi ón y vamos a un Web
Panel de bi enveni da ( HWel come) .
Luego en el Web Panel Wel come defi ni r en el event o St art :

&UsrNombr e = &sessi on.Get ( “ Name” )
I f Tri m( &UsrNombr e) = ” ”
Ret urn / / / Sesi ón no val ida
El se
TX. Capt i on = “ Bi enveni do “ + &UsrNombre + “ a nuest r o si t i o! ”
Endi f

De est a manera, obt enemos el nombre del usuari o desde l a sesi ón y escri bi mos un
mensaj e de bi enveni da en pant all a.

Tipo de Dat os XMLWrit er
I nt r oducci ón
El obj et i vo del t i po de dat os XMLWri t er es proveer l a posi bili dad de grabar archi vos
XML de un modo más sencillo que las funciones incl ui das en ver siones ant eri or es. El
document o XML cont i ene una i nt roducci ón a di cho l enguaj e.
Se r ecomi enda l eer t ambi én el document o XMLReader.

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox – C/ SQL – C# .
I nt erfaces: Web Form, Wi n Form.

Descr i pci ón
Para poder cr ear un ar chi vo XML desde un obj et o GeneXus, se debe defi ni r una
vari abl e de un nuevo t ipo de dat os denomi nado Xml Wri t er ( xml wrt ) y l uego i nvocar
a l os mét odos necesari os para crear l os nodos que l o componen.

Mét odos:
MÉTODOS BÁSI COS:

Open( [ Fi l eName] )

Permi t e cr ear un document o XML.
File Name es el nombre de archivo con el cual se va a
crear el documento, si se omite, el mismo se genera por
126
“standard output”. En caso de ser un objeto web se genera
en el response. (Funciona con CGI, ISAPI WebClasses y
Servlets).
FileName – Character
OpenToSt r i ng( )

Permi t e cr ear un document o XML a un buff er i nerno en l ugar de a un
archi vo.
El contenido del buffer puede ser consultado por medio de
la propiedad ResultingString


Wr i t eSt ar t El ement ( < El ement Name> )

Comienza un elemento compuesto. Este elemento puede tener
subelementos, por lo que es valido anidar llamadas a
WriteStarElement/WriteElement.
<ElementName> - Character


Wr i t eEl ement ( < Val ueName> , < Element Value> )

Al macena un val or dent ro del t ag de nombre Val ueName. En el caso
de que El ement Val ue sea de t i po Charact er, se sust i t uyen l os
caract eres especi al es por secuenci as de caract er es ( el ' < ' se
sust i t uye por ' &l t ; ' , el ' > ' por ' &gt ; ' , et c.) .
A diferencia del caso anterior este elemento no contiene
subelementos.

< Val ueName> - Charact er
< El ement Val ue> - Charact er

Wr i t eTex t ( < Val ue> )

Genera charact er dat a con el st ri ng < Val ue> . Se sust i t uyen l os
caract eres especi al es por secuenci as de caract er es ( el ' < ' se
sust i t uye por ' &l t ; ' , el ' > ' por ' &gt ; ' , et c.) .

< Val ue> - Charact er


Wr i t eRaw Tex t ( < Val ue> )

Genera cual qui er t ext o si n sust i t ui r l os caract er es especi al es por
secuenci as de caract er es.

< Val ue> - Charact er


127
Wr i t eAt t r i but e( < At t riName> , < At t ri Val ue> )

Asigna un atributo al último elemento. Es decir, al
elemento que se creó con la última invocación a
WriteStartElement(<ElementName>) o
WriteElement(<ValueName> , <ElementValue>).

< At t ri Name> - Charact er
<AttriValue> - Character

Wr i t eEndEl ement ( )

Cierra el último elemento abierto.


Cl ose( )

Cierra el documento.
OTROS MÉTODOS:

Wr i t eComment ( < Comment > )

Escribe el coment ario indi cado en < Comment >

Ej empl o:
Writ eComment ( ‘Coment ario’) genera l o siguient e:
< ! — Coment ari o - - >

< Comment > - Charact er


Wr i t eEnt i t y Ref er ence( < Ent i t y> )

Escri be una r efer enci a a l a ent i dad < Ent i t y>

Ej empl o:
Writ eEnt it yReference( ‘Ent idad’) genera lo siguient e:
&Ent idad;

< Ent i t y> - Charact er


Wr i t eCDat a( < Dat aVal ue> )

Escri be una secci ón Cdat a con el val or < Dat aVal ue> .
Si el cont eni do especi ficado para l a secci ón Cdat a cont i ene l a secuenci a de
caract eres ] ] > , el mi smo es f racci onado y se generan t ant as secci ones
Cdat a como sean necesari as para obt ener un document o XML bi en for mado.

Ej empl o:
128
Writ eCDat a( ‘Value’) genera lo siguient e:
< ! [ CDATA[ value] ] >

< Dat aVal ue> - Charact er


Wr i t ePr ocessi ngI nst r uct i on( < Act i on> , < Val ue> )

Escri be el regi st ro del t ipo processi ng i nst ruct i on i ndi cado por
< Act i on> y < Val ue>

Ej empl o:
Writ eProcessingI nst ruct i on( ‘play’, ‘sound = “ Hello. wav” ’)
genera lo siguient e:
< ? Play sound= ” Hello. wav” ?>

< Act i on> - Charact er
< Val ue > - Charact er


Wr i t eSt ar t Document ( [ St andAl one] )

Escribe la declaración de XML usando la versión 1.0 y
codificación ISO-8859-1. Opcionalmente se puede indicar un
entero (0/1) como valor booleano para usar en la
declaración standalone.
Este método debe ser llamado al comienzo de la generación
del documento (luego del open() y antes de cualquier otro
método).

Ej empl o:
Writ eSt art Document ( ) genera lo siguient e:
< ?xml versi on= ” 1. 0” enconding= ” I SO- 8859- 1” ?>

St andAl one – I nt eger ( 0/ 1)


Wr i t eDocTy pe( < DocName> [ , SubSet ] )

Escribe la declaración DOCTYPE del documento XML. Si se
incluye un SubSet se ingresa entre corchetes al final de
la declaración.

Ej empl o:
Writ eDocType( ‘< book> ’, ‘< ! ENTI TY ge “ ent it y” > ’) genera lo
siguient e:
< ! DOCTYPE < book> [ < ! ENTI TY ge “ ent it y” > ] >

< DocName> - Charact er
SubSet – Charact er


Wr i t eDocTy peSy st em( < DocName> , < uri > [ , SunSet ] )
129

Escri be l a decl araci ón DOCTYPE del document o XML con una
decl araci ón de t i po SYSTEM. Si se i ncl uye un SubSet se i ngresa ent re
corchet es al fi nal de l a decl araci ón.

Ej empl o:
WriteDocTypeSystem(‘<book>’, ‘file.dtd’) genera lo
siguiente: <!DOCTYPE <book> SYSTEM “file.dtd”>
< DocName> - Charact er
< uri > - Charact er
SubSet – Character


Wr i t eDocTy pePubl i c ( < DocName> , < PubI d> , < uri > [ , SunSet ] )

Escri be l a decl araci ón DOCTYPE del document o XML con una
decl araci ón de t i po PUBLI C. Si se i ncl uye un SubSet se i ngresa ent re
corchet es al fi nal de l a decl araci ón.

Ej empl o:
WriteDocTypePublic(‘<book>’,‘Id’,
‘http://www.ser.com/dtd’) genera lo siguiente:
<!DOCTYPE <book> PUBLIC “Id”
“http://www.ser.com/dtd”>
< DocName> - Charact er
< PubI d> - Charact er
< uri > - Charact er
Subset - Charact er

Pr opi edades:

I ndent at i on
Defi ne cuant os caract eres se ut ili zan para i ndent ar el códi go generado. Por
def ect o es 2.

I ndent Char
Defi ne el caráct er que se ut ili za para indent ar el códi go generado. Por
def ect o se ut ili za un espaci o en bl anco.

Er r Code
Ret orna un val or mayor que cer o en caso de haber ocur ri do un error durant e
l a generaci ón del document o XML.

Er r Descr i pt i on
Cont i ene l a descri pci ón del error ocur ri do cuando Er rCode t i ene un val or
di st i nt o de cero.

Resul t i ngSt r i ng
Per mi t e consul t ar el valor del document o XML que se encuent ra en un buffer
i nt erno cuando el document o se creó a part i r del mét odo OpenToSt ri ng( ) .
130
El document o ret ornado puede ser i ncompl et o si se i nvoca a l a propi edad
ant es de l a ej ecuci ón del mét odo cl ose( )

Sopor t e par a Name Spaces
En est a secci ón se descri ben l as funci onali dades di sponi bl es para generar
document os XML que ut ilizan name spaces.

MÉTODOS:

Wr i t eNSSt ar t El ement ( < Local Name> [ , Pr efi x, NameSpaceURI ] )

Est e mét odo es anál ogo al Wri t eSt art El ement .
Si se indi ca un NameSpaceURI que no est á en el ámbi t o de defi ni ci ón
del el ement o, o est e t i ene un prefi j o di ferent e del parámet r o Pref ri x,
se cr ea aut omát i cament e el at ri but o xmlns: prefi x= URI

< Local Name> - Charact er
Prefi x - Charact er
NameSpaceURI - Charact er


Wr i t eNSEl ement ( < Local Name> [ , NameSpaceURI [ , Val ue] ] )

Est e mét odo es anál ogo al Wri t eEl ement .
El prefi j o se det ermi na aut omát i cament e en base a l os prefi j os
defi ni dos en el ámbi t o del el ement o. Si ningún prefi j o est uvi era
asoci ado al URI especi fi cado, se defi ne j unt o con el el ement o un
name space por defect o.

Ej empl o:
Writ eNSEl ement ( ‘Pr eci o’, ’20. 5’, ‘ht t p: / / www. genexus. com’)
genera lo siguient e:
< prefij o: Precio> 20. 5< / prefij o: Preci o>
o
< Pr eci o xmlns= ” ht t p: / / www. genexus. com” > 20. 5< / Pr eci o>

< Local Name> - Charact er
NameSpaceURI - Charact er
< Val ue > - Charact er


Wr i t eAt t r i but e( < Local Name> , < Val ue> )

Cuando se t rabaj a con document os con name sapace, el mét odo
Wri t eAt t ri but e t i ene un comport ami ent o especi al para al gunos
at ri but os. Si el nombre del at ri but o es “ xml ns” o comi enza con
“ xml ns: ” se regi st ra l a defi ni ci ón del at ri but o como l a defi ni ci ón de un
name space.
De est a forma, en fut uras i nvocaci ones de un mét odo
Wri t eNSSt art El ement o Wri t eNSEl ement puede det ermi narse el
131
prefi j o correspondi ent e a una det ermi nada URI .


EJEMPLO DE SOPORTE DE NAME SPACE:
El si gui ent e procedi mi ent o genera el archi vo ej empl o.xml
&wri t er . Open( ‘ej empl o.xml ’)
&wri t er. Wri t eNSSt art El ement ( ‘a’)
&wri t er . Wri t eAt t ri but e( ‘xml ns: p1’, ’ht t p: / / www. art ech. com’)
&wri t er. Wri t eAt t ri but e( ‘xml ns’, ‘ht t p: / / defect o. com’)
&wri t er. Wri t eAt t ri but e( ‘at t ’, ‘a1’)
&wri t er . Wri t eNSEl ement ( ‘b’, ’ht t p: / / www. art ech. com’)
&wri t er. Wri t eAt t ri but e( ‘at t ’, ‘a1’)
&wri t er. Wri t eAt t ri but e( ‘p1: at t 2’, ‘a2’)
&wri t er . Wri t eNSEl ement ( ‘b’, ’ht t p: / / www. genexus. com’)
&wri t er . Wri t eAt t ri but e( ‘xml ns: p1’, ’ht t p: / / www. genexus. com’)
&wri t er . Wri t eAt t ri but e( ‘xml ns: p2’, ’ht t p: / / www. art ech. com/ segundo’)
&wri t er. Wri t eAt t ri but e( ‘p2: at t 1’, ‘a1’)
&wri t er. Wri t eEndEl ement ( )
&wri t er. Cl ose( )

El archi vo ej empl o. xml queda de l a si gui ent e f orma:

< a
xml ns: p1= "ht t p: / / w w w . ar t ech. com"
xml ns= "ht t p: / / def ect o.com"
at t = "a1" >
< p1: b
at t 1= "a1"
p1: at t 2= "a2"
/ >
< p1: b xml ns: p1= "ht t p: / / w w w .genex us.com"
xml ns: p2= "ht t p: / / w w w .ar t ech.com/ segundo"
p2: at t 1= "a1"
/ >
< / a>


Ej empl o
El si gui ent e procedi mi ent o genera un archi vo ll amado Reuni on. xml que cont i ene
dat os de una reuni ón, indi cando que i nt egrant es part i ci paron de l a misma, y cual es
son l as t ar eas de cada uno.

for each
&filexml. open( ' Reunion. xml ' )
&filexml. Writ eSt art Document ( )

&filexml. Writ eSt art Element ( ' REUNI ON' )
&fi l exml . Wri t eAt t ribut e( ' Fecha' , dt oc( ReuFch) )
132
&filexml. Writ eElement ( ' FECHA' , dt oc( ReuFch) )
&fi l exml . Wri t eComment ( ' Descrpci ón de l a reuni ón' )
&filexml. Writ eCDat a( ReuDsc )
&filexml. Writ eSt art El ement ( ' I NTEGRANTES' )
for each
&fil exml .Wri t eEl ement ( ' I NTEGRANTE' , ReuPer Nom )
endf or
&fi l exml . Wri t eEndEl ement ( )
&filexml. Writ eSt art El ement ( ' TAREAS' )
for each
&fil exml . Wri t eSt art El ement ( ' TAREA' )
&fi l exml . Wri t eEl ement ( ' RESPONSABLE' , ReuTar PerNom)
&fi l exml . Wri t eCDat a( ReuTarDsc )
&fil exml . Wri t eEndEl ement ( )
endf or
&filexml. Writ eEndEl ement ( )
&filexml. Writ eEndEl ement ( )
&filexml. Cl ose( )
endfor


El archi vo reuni on. xml cont i ene:

< ?xml versi on= "1. 0" encodi ng= "I SO- 8859- 1" ?>
< REUNI ON Fecha= "06 / 03/ 01 ">
< FECHA> 0 6/ 0 3/ 0 1 < / FECHA>
< ! - - Descrpci ón de l a reuni ón- - >
< ! [ CDATA[ Reuni on del equi po de desarroll o de l a apli caci ón.
La reunión fue realizada el Viernes a las 9:30 horas.] ] >
< I NTEGRANTES>
< I NTEGRANTE> Juan Pedr o< / I NTEGRANTE>
< I NTEGRANTE> Lau r a< / I NTEGRANTE>
< I NTEGRANTE> Di ego< / I NTEGRANTE>
< I NTEGRANTE> Fl or i nda< / I NTEGRANTE>
< / I NTEGRANTES>
< TAREAS>
< TAREA>
< RESPONSABLE> Juan Pedr o< / RESPONSABLE>
< ! [ CDATA[ Real i zar l a document ci ón de l a apli caci ón] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Fl or i nda< / RESPONSABLE>
< ! [ CDATA[ Reuni on con l os cl i ent es.] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Laur a< / RESPONSABLE>
< ! [ CDATA[ Real i zar el maunal de usuari o] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Di ego< / RESPONSABLE>
< ! [ CDATA[ Document ar l as especi fi caci ones.] ] >
< / TAREA>
133
< / TAREAS>
< / REUNI ON>



134
Gl osar i o
Las si gui ent es defi ni ci ones fuer on ext raídas de “ Ext ensi bl e Markup Language ( XML)
1. 0 ( Second Edi t i on) ” ; por más informaci ón r ef eri rse a
ht t p: / / www. w3. org/ TR/ 2000/ REC- xml - 20001006 ; y para el caso de l os
Namespaces referi rse a http://www.w3.org/TR/1999/REC-xml-names-19990114/


• Char act er dat a: Markup t akes t he f orm of st art - t ags, end- t ags, empt y-
el ement t ags, ent i t y ref er ences, charact er references, comment s, CDATA
sect i on del i mi t ers, document t ype decl arat i ons, processi ng i nst ruct i ons, XML
decl arat i ons, t ext decl arat i ons, and any whi t e space t hat i s at t he t op l evel
of t he document ent i t y ( t hat i s, out si de t he document el ement and not
i nsi de any ot her markup) .
All t ext t hat i s not mar k up const i t ut es t he char act er dat a of t he
document .

• Ent i t i es: An XML document may consi st of one or many st orage uni t s.
These are cal l ed ent i t i es; t hey all have cont ent and are al l ( except f or t he
document entity and t he external DTD subset) i dent ifi ed by ent i t y name.
Ent i t i es may be ei t her parsed or unpar sed.
A par sed ent i t y ' s cont ent s ar e r efer red t o as i t s replacement text; t hi s text i s
consi der ed an i nt egral part of t he document .
An unpar sed ent i t y i s a resource whose cont ent s may or may not be text,
and i f t ext , may be ot her t han XML. Each unparsed ent i t y has an associ at ed
notation, i dent i fi ed by name. Beyond a requi rement t hat an XML processor
make t he i dent i fi ers f or t he ent i t y and not at i on avail abl e t o t he appli cat i on,
XML pl aces no const rai nt s on t he cont ent s of unparsed ent i t i es.
Parsed ent i t i es are i nvoked by name usi ng ent i t y refer ences; unparsed
ent i t i es by name, gi ven i n t he val ue of ENTI TY or ENTI TI ES at t ri but es.

• Ent i t y r ef er ence: Ref ers t o t he cont ent of a named ent i t y.

• CDATA sect i ons may occur anywher e charact er dat a may occur; t hey ar e
used t o escape bl ocks of t ext cont ai ni ng charact ers whi ch woul d ot herwi se
be recogni zed as markup. CDATA sect i ons begi n wi t h t he st ri ng "<![CDATA["
and end wi t h t he st ri ng "]]>".

• Pr ocessi ng i nst r uct i ons ( PI s) al l ow document s t o cont ai n inst ruct i ons for
appli cat i ons.

• St andal one document decl ar at i on: Markup decl arat i ons can affect t he
cont ent of t he document , as passed f rom an XML processor t o an applicat i on;
exampl es are at t ri but e defaul t s and ent i t y decl arat i ons. The st andal one
document decl arat i on, whi ch may appear as a component of t he XML
decl arat i on, si gnal s whet her or not t here are such decl arat i ons whi ch appear
ext ernal t o t he document entity or i n paramet er ent i t i es.

• Document t y pe decl ar at i on: XML provi des a mechani sm, t he document
type declaration, t o defi ne const rai nt s on t he l ogi cal st ruct ure and t o support
t he use of predefi ned st orage uni t s. An XML document i s v al i d i f i t has an
135
associ at ed document t ype decl arat i on and i f t he document compl i es wit h t he
const rai nt s expr essed i n i t .
The XML document t y pe decl ar at i on cont ains or poi nt s t o markup
declarations t hat provi de a grammar for a cl ass of document s. Thi s grammar
i s known as a document t ype defi ni t i on, or DTD. The document t ype
decl arat i on can poi nt t o an ext ernal subset ( a speci al ki nd of external entity)
cont ai ni ng markup decl arat i ons, or can cont ai n t he markup decl arat i ons
di rect l y i n an int ernal subset , or can do bot h. The DTD for a document
consi st s of bot h subset s t aken t oget her.

• XML namespaces provi de a si mpl e met hod for quali fyi ng el ement and
at t ri but e names used i n Ext ensi bl e Markup Language document s by
associ at ing t hem wi t h namespaces i dent i fi ed by URI ref erences.

Tipo de Dat os XMLReader
I nt r oducci ón
El obj et i vo del t i po de dat os XMLReader es proveer l a posi bilidad de l eer el
cont eni do de l os archi vos XML. El document o XML cont i ene una i nt roducci ón a di cho
l enguaj e.
Se r ecomi enda l eer t ambi én el document o XMLWri t er.

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox – C/ SQL – C# .
I nt erfaces: Web Form, Wi n Form.

Descr i pci ón
Para poder l eer el cont eni do de un archi vo XML desde un obj et o GeneXus, se debe
defi ni r una vari abl e de un nuevo t i po de dat os denomi nado Xml Reader y l uego
i nvocar a l os mét odos y propi edades necesari os para obt ener l a informaci ón de l os
nodos que l o componen.
La i dea bási ca del funcionami ent o es l a si gui ent e: exi st e un mét odo Read( ) que se
comport a a manera de cur sor avanzando al si gui ent e nodo del ar chi vo, l uego
ut ili zando ci ert as propi edades como por ej empl o Name y Val ue se puede obt ener
l os dat os del nodo, en est e caso el nombre y el val or del mi smo. De est a forma
ut ili zando el mét odo Read( ) se “ navega” a l o l argo del document o en forma
secuenci al obt eni endo los di st i nt os nodos del mi smo.

Mét odos:
MÉTODOS BÁSI COS:

136
Open( < Fi l eName> )

Permi t e abri r un document o XML.
File Name es el nombre de un archivo XML o una URL con un
archivo XML. Puede usarse la propiedad ErrCode para
consultar el éxito de la operación.
<FileName> – Character
OpenFr omSt r i ng( < DocXML> )

Permi t e abri r un document o XML cont eni do en un st ri ng.
<DocXML > – Character
Read( )

Este método se utiliza para ir obteniendo en forma
secuencial los distintos nodos del archivo abierto.
Invocando al mismo se avanza al siguiente nodo y retorna
un valor entero mayor que cero si se leyó un nodo y cero
en caso contrario.


ReadTy pe( < NodeTypeConst rai nt > [ , NameConst rai nt ] )

Al igual que el método Read(), este método avanza al
siguiente nodo pero que cumpla con las restricciones
indicadas y retorna un valor entero mayor que cero si se
leyó un nodo y cero en caso contrario.
La rest ri cci ón < NodeTypeConst rai nt > especi fi ca cual es son l os t i pos
de nodos que qui ero l eer . Se especi fi ca i ndi cando l as const ant es del
t i po de nodo concat enadas por medi o del caráct er “ + ”
Por ej mpl o: < NodeTypeConst rai nt > = 1 + 4 ( especi fi ca el t ipo
El ement y Text )
Si NameConstraint tiene un valor no nulo, especifica que
valor debe de tener el nombre del nodo que quiero leer,
siempre y cuando el nodo sea de tipo Element o EndTag.
<NodeTypeConstraint> – Character
NameConstraint – Character


Get At t r i but eBy I ndex ( < I ndex> )

Ret orna el val or del at ribut o en l a posi ci ón < I ndex> del nodo act ual
obt eni do por el mét odo Read o ReadType.
Sol o es vál i do para nodos de t i po El ement .
Las posi ci ones se numeran desde 1.

<Index> – Integer

137

Get At t r i but eBy Name( < Name> )

Ret orna el val or del at ri but o de nombre < Name > del nodo act ual
obt eni do por el mét odo Read o ReadType.
Sol o es vál i do para nodos de t i po El ement .

<Name> – Character


Ex i st sAt t r i but e( < Name> )

Retorna 1 si el atributo de nombre <Name> del nodo actual
obtenido por el método Read o ReadType existe y 0 en caso
contrario.
Sol o es vál i do para nodos de t i po El ement .

<Name> – Character


Cl ose( )

Ci erra el document o.
OTROS MÉTODOS:

Set DocEncodi ng ( < Encoding> )

Per mi t e est abl ecer explíci t ament e l a codi fi caci ón de caract eres
ut ili zada en el document o. El val or i ndi cado t i ene precedenci a sobr e
l a propi edad encodi ng de l a decl araci ón < ?xml ?> del document o.
Los val ores posi bl es de < Encondi ng> son:
ANSI
US- ASCI I
UTF- 8
UTF- 16
I SO- 8859- 1

< Encondi ng> - Charact er


Set NodeEncodi ng( < Encoding> )

Permite establecer la codificación de caracteres utilizada
para los valores retornados por el objeto XMLReader al
programa GeneXus.
Los val ores posi bl es de < Encondi ng> son:
ANSI
UTF- 8
El val or por defect o es ANSI .

138
< Encondi ng> - Charact er

Sk i p( )
Per mi t e sal t ear un el ement o compl et o con t odos sus hi j os.
Sol o es vál i do para nodos de t i po El ement .

ReadRaw XML( )
Permi t e obt ener t ext o XML pl ano a part i r del i nici o de un el ement o.
Sol o es vál i do para nodos de t i po El ement .

AddSchema( < URI > , [ Namespace] )
Indica que se va a utilizar el “schema” de la <URI> para
validar el XML del [Namespace] indicado.
Si no se i ndi ca [ Namespace] , se t oma el del at ri but o
t arget Namespace del esquema.
Lo i ndi cado en est e mét odo t i ene pri ori dad sobr e el at ri but o
schemaLocat i on del document o XML ( en caso de que exi st a) .
Para ut ili zar est e mét odo hay que i ndicar en l a propi edad
Vali dat i onType que se reali ce val i daci ón por esquema o aut omát i ca.

<URI> – Character
Namespace – Charact er


Pr opi edades:
PROPI EDADES BÁSI CAS

Nodet y pe
Ret orna el t i po de nodo act ual obt eni do por el mét odo Read o ReadType.
Los val or es posi bl es son:
1 - El ement
2 - EndTag
4 - Text
8 - Comment
16 - Whi t eSpace
32 - Cdat a
64 - Processi ngI nst ruct i on
128 - Document TypeEl ement Type
EndTagTy pe
Tex t Ty pe
Comment Ty pe
Whi t eSpaceTy pe
CDat aType
Pr ocessi ngI nst r uct i onType
Doct y peTy pe
Est as propi edades cont i enen val ores const ant es que pueden ut ili zarse para
comparar el resul t ado de l a propi edad NodeType o con el mét odo
ReadType

Name
Ret orna el nombre del nodo act ual obt eni do por el mét odo Read o
139
ReadType.
Sol o es vál i do para nodos de t i po El ement y EndTag.

Val ue
Ret orna el val or del nodo act ual obt eni do por el mét odo Read o ReadType.
Sol o es váli do para l os nodos de t i po Text , Comment , Processi ngI nst ruct i on,
Document Type y El ement

I sSi mpl e
I ndi ca si el nodo act ual obt eni do por el mét odo Read o ReadType responde a
una est ruct ura del t i po < El ement o> Val or< / El ement o>

At t r i but eCount
Ret orna l a cant i dad de at ri but os que posee el nodo act ual obt eni do por el
mét odo Read o ReadType.
Sol o es vál i do para nodos de t i po El ement .

EOF
Ret orna si se al canzo el fi nal del docuemnt o.

Er r Code
Ret orna un val or mayor que cer o en caso de haber ocur ri do un error durant e
el procesami ent o de un document o XML.

Er r Li neNumber ; Er r Li nePos
Ret ornan el numero de linea y posi ci ón dent ro de l a mi sma respect i vament e
en caso de que Er rCode sea di st int o de cero.

Er r Descr i pt i on
Ret orna l a descri pci ón del er ror en caso de que Er rCode sea di st i nt o de cero.

OTRAS PROPI EDADES
ReadEx t er nal Ent i t i es
Est a propi edad bool eana i ndi ca si deben l eer se l as ent i dades ext ernas
parseadas que f orman part e del document o XML que se est é procesando
( est o i ncluye el subconj unt o ext erno del DTD) . Si l a l ect ura est á habilit ada,
el obj et o XMLReader l eerá y pr ocesará en for ma t ranspar ent e para el
usuari o t oda ref erenci a a archi vos o URLs ext ernas que sean i ncl ui das por el
document o. En caso cont rari o, l as r ef er enci as a ent i dades ext ernas son
i gnoradas.

Remov eWhi t eSpaces
Est a propi edad bool eana i ndi ca si deben el i minarse l os espaci os en bl anco,
t abul adores y fi nal es de línea del i ni ci o y fi n del val or de un nodo de t i po
TEXT o ELEMENT.
El val or por defect o es TRUE.

RemoveWhi t eNodes
Est a propi edad bool eana i ndi ca si deben pasarse por al t o l os nodos de t i po
Whi t eSpace al procesar un document o.
El val or por defect o es TRUE.
140

Si mpl eEl ement s
Est a pr opi edad det ermi na si l os el ement os con una est ruct ura si mpl e como
l a sigui ent e
< el ement o> val or< / el ement o>
o
< el ement o/ >
son procesados como un úni co nodo de t i po El ement
El val or por defect o es TRUE.


Val i dat i onTy pe
Est a propi edad det ermi na como se va a val idar el XML l eído.
Los val or es posi bl es son:
• 0 – No se realiza validación
• 1 – Vali daci ón aut omát ica
• 2 – Vali daci ón por medi o de DTD
• 3 – Vali daci ón por medi o de un “ Schema”
• 4 – Vali daci ón por medi o de XDR
Cuando se eli ge vali daci ón aut omát i ca el comport ami ent o es el sigui ent e
( ext raído de l a document aci ón de . NET) :

I f t her e i s no DTD or schema, it will parse t he XML wit hout validat ion.

I f t her e i s a DTD defined in a < ! DOCTYPE . . . > declarat ion, it will load t he
DTD and process t he DTD declarat i ons such t hat default at t ribut es and
general ent it ies will be made available. General ent it ies are only loaded and
parsed if t hey are used ( expanded) .

I f t her e is no < ! DOCTYPE . ..> declar at ion but t here is an XSD
" schemaLocat ion" at t ribut e, it will load and process t hose XSD schemas and
it will ret urn any default at t ribut es defined in t hose schemas.

I f t her e is no < ! DOCTYPE . . . > declarat ion and no XSD or XDR schema
informat i on t hen t he parser is a non- validat ing parser ( i. e.
Validat ionType= Validat ionType. None)

I f t her e is no < ! DOCTYPE . . . > declarat i on and no XSD " schemaLocat ion"
at t ribut e but t here are some namespaces usi ng t he MSXML "x- schema: "
URN prefix, it will load and process t hose schemas and it will ret urn any
default at t ribut es defined in t hose schemas.

I f t here is no < ! DOCTYPE . . . > declarat i on but t here is a schema declarat ion
( < schema> ) , it will vali dat e using t he in- line schema.



Sopor t e par a Name Spaces
En est a secci ón se descri ben l as funci onali dades di sponi bl es para pr ocesar
document os XML que ut ilizan name spaces.

141
MÉTODOS:
Los si gui ent es mét odos r et ornan l os di st int os component es del nombre de
un at ri but o i ndi cado por < I ndex> .
Sol o son váli dos para nodos de t i po El ement .
Las posi ci ones se numeran desde 1.

Get At t r i but eName( < I ndex > )

Get At t r i but ePr ef i x ( < I ndex > )

Get At t r i but eLocal Name( < I ndex > )

Get At t r i but eURI ( < I ndex > )

< I ndex> - I nt eger

PROPI EDADES
Las si gui ent es propi edades sól o son vál i das para nodos de t i po El ement y
EndTag.

Name
Ret orna el nombre compl et o prefi j o: nombrel ocal

Pr ef i x
Ret orna el prefi j o que represent a al name space del nombre

Local Name
Ret orna el nombr e si n el prefi j o que r epr esent a al name space.

NameSpaceURI
Ret orna el URI usado para i dent i fi car al name space.

Cuando un el ement o no est á cal i fi cado con un name space, l as propi edades
Name y LocalName coinci den.


Ent i t y r ef er ences
Por def ect o, t ant o las ent i dades i nt ernas como ext ernas son procesadas
aut omát i cament e reempl azando l as ref erenci as por sus val ores. El procesami ent o
de l as ext ernas si n embargo puede ser desact i vado usando l a propi edad
ReadExt ernal Ent i t i es.
Se di spone además de l as si gui ent es funci onalidades:

MÉTODOS
Los si gui ent es mét odos permi t en acceder a l a not aci ón y ent i dad
referenci adas por un at ri but o de t i po ENTI TY.
El at ri but o puede especi fi carse por medi o de su posi ci ón en el t ext o o por su
nombre y no se veri fi ca que sea de t i po ENTI TY. Si ni nguna decl araci ón fue
142
hecha en el DTD del document o para el valor at ri but o se devuel ve una
cadena vacía.
Sol o son váli dos para nodos de t i po El ement .
Las posi ci ones se numeran desde 1.

Get At t Ent i t yVal ueBy I ndex ( < I ndex> )

Get At t Ent i t yVal ueBy Name( < Name> )

Get At t Ent i t y Not at i onBy I ndex ( < I ndex> )

Get At t Ent i t y Not at i onBy Name( < Name> )

< I ndex> - I nt eger
< Name> - Charact er


Ej empl o
Se t i ene el si gui ent e document o XML, ll amado Reuni on.xml

< ?xml versi on= "1. 0" encodi ng= "I SO- 8859- 1" ?>
< REUNI ON Fecha= "06 / 03/ 01 ">
< FECHA> 0 6/ 0 3/ 0 1 < / FECHA>
< ! - - Descrpci ón de l a reuni ón- - >
< ! [ CDATA[ Reuni on del equi po de desarroll o de l a apli caci ón.
La reunión fue realizada el Viernes a las 9:30 horas.] ] >
< I NTEGRANTES>
< I NTEGRANTE> Juan Pedr o< / I NTEGRANTE>
< I NTEGRANTE> Lau r a< / I NTEGRANTE>
< I NTEGRANTE> Di ego< / I NTEGRANTE>
< I NTEGRANTE> Fl or i nda< / I NTEGRANTE>
< / I NTEGRANTES>
< TAREAS>
< TAREA>
< RESPONSABLE> Juan Pedr o< / RESPONSABLE>
< ! [ CDATA[ Real i zar l a document ci ón de l a apli caci ón] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Fl or i nda< / RESPONSABLE>
< ! [ CDATA[ Reuni on con l os cl i ent es.] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Laur a< / RESPONSABLE>
< ! [ CDATA[ Real i zar el maunal de usuari o] ] >
< / TAREA>
< TAREA>
< RESPONSABLE> Di ego< / RESPONSABLE>
< ! [ CDATA[ Document ar l as especi fi caci ones.] ] >
< / TAREA>
143
< / TAREAS>
< / REUNI ON>

Est e pr ocedi mi ent o GeneXus l ee el ar chi vo y obt i ene l os i nt egrant es de l a reuni ón.

&r eadfi l e. open( ‘Reuni on. xml ’ )
&r eadfi l e.ReadType( 1, ' I NTEGRANTES' )
&r eadfi l e.read( )
do whil e &readfi l e. name < > ' I NTEGRANTES'
&I nt egrant e = &readfi l e. val ue
&r eadfi l e. read( )
enddo
&r eadfi l e. cl ose( )

Est e procedi mi ent o GeneXus l ee el archi vo y obt i ene l as t areas de un i nt egrant e de
l a reuni ón.

&r eadfi l e. open( ‘Reuni on. xml ’)
&exi t o = &readfil e. ReadType( 1, ' RESPONSABLE' )
do whil e &readfi l e.val ue < > &I nt egrant e
&exi t o= &r eadfi l e. ReadType( 1, ' RESPONSABLE' )
I f &exi t o = 0
Exi t
Endi f
enddo
I f &exi t o < > 0
&r eadfi l e. read( )
&t ar eas = &r eadfi l e. value
el se
&t ar eas = Null val ue( &t areas )
Endi f
&r eadfi l e. cl ose( )

Tipo de Dat os para el manej o de planillas Excel
I nt r oducci ón
La fi nali dad de est e nuevo t i po de dat os es uni ficar l as funci ones de i nt eracci ón con
l a generaci ón de pl anill as Excel para l os di st i nt os l enguaj es generados.

Una vent aj a i mport ant e de est a i mpl ement aci ón con respect o a l as ant eri ores, es
que se manej an l as pl anillas con un model o orient ado a obj et os. No hay que l l evar
cont r ol de l os manej adores de l os document os ( Handl es) .

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Procedimient os, Report es
Lenguaj es: Java, Vi sual Basi c , Vi sual FoxPro
I nt erface: Wi n, Web
144

Descr i pci ón
Para ut ili zar est a nueva funci onali dad se cr eó el t i po de dat os l l amado
Ex cel Document que permi t e, a t ravés de sus propi edades y mét odos generar y
manej ar pl anillas de Mi cr osof t Ex cel .

Además i nt ernament e se i mpl ement a el t i po de dat os Ex cel Cel l s, que se ut ili za
para manej ar al conj unt o de cel das que exi st en en l a pl anill a.

Ex cel Cel l s
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
Bol d Numéri co Lect ura/ Escri t ura
Col or Numéri co Lect ura/ Escri t ura
Dat e Dat eTi me Lect ura/ Escri t ura
Font Caráct er Lect ura/ Escri t ura
I t al i c Numéri co Lect ura/ Escri t ura
Number Numéri co Lect ura/ Escri t ura
Si ze Numéri co Lect ura/ Escri t ura
Text Caráct er Lect ura/ Escri t ura
Type Caráct er Lect ura
Underl ine Numéri co Lect ura/ Escri t ura

PROPI EDADES
Bol d
Especi fi ca si l as cel das se muest ran en negri t a ( 1) o no ( 0) .

Si nt ax i s: & Ex cel Document .Cel l s( …) .Bol d

Est a propi edad sol ament e devol verá 1 si t odas l as cel das en el obj et o ExcelCells
est án en negri t a. En caso cont rari o devol verá 0.

Col or
Especi fi ca el col or de l as cel das.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Col or

Si se especifica un valor posit ivo se t omará dicho valor como índice de color de Excel. En
cambio, si se especifica un valor negat ivo ( except o –1) , se t omará su valor absolut o como
número de color en el esquema RGB ( es decir, como un valor ret ornado por la función RGB) .
Si se especifica el valor –1, se t oma el color por defect o definido en Excel.

Si exi st en cel das en el obj et o ExcelCells con di st i nt os col ores, est a propi edad
devol verá 0.

145
Dat e
Valor de las celdas en f ormat o de f echa y hora.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Dat e

Si exi st en cel das en el obj et o ExcelCells con di st i nt os val ores, l a propi edad Dat e
devol verá l a fecha nul a.

Font
Especi fi ca l a fuent e ut ilizada para despl egar el val or de l as cel das.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Font

Si exi st en cel das en el obj et o ExcelCells que ut ilizan di st i nt as fuent es, l a propi edad
Font devolverá la cadena vacía.

I t al i c
Especi fi ca si l as cel das se muest ran en i t áli ca ( 1) o no ( 0) .

Si nt ax i s: & Ex cel Document .Cel l s( …) .I t al i c

La propi edad I t alic sol ament e devol verá val or 1 si t odas l as cel das en el obj et o
ExcelCells est án en i t álica. En caso cont rari o devol verá 0.

Number
Valor de las celdas en f ormat o numérico.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Number

Si exi st en cel das en el obj et o ExcelCells con di st i nt os val ores, l a propi edad Number
devol verá cero.

Si ze
Especi fi ca el t amaño de l a fuent e ut ilizada para despl egar el val or de l as cel das.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Si ze

Si exi st en cel das en el obj et o ExcelCells que ut ilizan di st i nt os t amaños fuent es, l a
propi edad Size devolver á 0.

Tex t
Valor de las celdas en f ormat o de t ext o.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Tex t

Si exi st en cel das en el obj et o ExcelCells con di st i nt os val ores, l a propi edad Text
146
devol verá l a cadena vacía.

Ty pe
Devuel ve el t i po del valor de una cel da det ermi nada.

Si nt ax i s: & Ex cel Document .Cel l s( …) .Ty pe

La propiedad Type t endrá uno de los siguient es valores:
• “ N” si el t i po es numéri co.
• “ C” si el t i po es caráct er.
• “ D” si el t ipo es fecha o fecha/ hora.
• “ U” si el t i po es desconoci do.

Si exi st en cel das en el obj et o ExcelCells que cont i enen di st int os t i pos, l a propi edad
Type devolverá “ U” .

Under l i ne
Especi fi ca si l as cel das se muest ran subrayadas ( 1) o no ( 0) .

Si nt ax i s: & Ex cel Document .Cel l s( …) .Under l i ne

La propi edad Underline sol ament e devol verá val or 1 si t odas l as cel das en el obj et o
ExcelCells est án subrayadas. En caso cont rari ó devol verá 0.


Ex cel Document
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
Aut oFi t Numéri co Lect ura/ Escri t ura
Del i mit er Caráct er Lect ura/ Escri t ura
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co Lect ura/ Escri t ura
Macr oRet urnText Caráct er Lect ura
Macr oRet urnNumber Numéri co Lect ura
Macr oRet urnDat e Fecha Lect ura
ReadOnl y Numéri co Lect ura/ Escri t ura
Templ at e Caráct er Lect ura/ Escri t ura


Mét odo Par ámet r os Ti po
Cel l s Row
Col umn
Hei ght
Wi dt h
Numéri co
Numéri co
Numéri co
Numéri co
Cl ear ( ni nguno)
Cl ose ( ni nguno)
147
Hi de ( ni nguno)
Open Fil eName Caráct er
Pri nt Previ ew Numéri co
RenameSheet Sheet Name Caráct er
RunMacro Macr oName
Par1 … Par30
Caráct er
( Cual qui era)
Save ( ni nguno)
Sel ect Sheet Sheet Name Caráct er
Show ( ni nguno)
Unbind ( ni nguno) Numéri co

PROPI EDADES
Aut oFi t
Aj ust ar aut omát i cament e o no el ancho de l as col umnas.

Si nt ax i s: & Ex cel Document . Aut oFi t

Especifica si se aj ust ará aut omát icament e ( 1) o no ( 0) el ancho de las columnas al modificar
cualquiera de las propiedades de una celda o un grupo de ellas. El aj ust e aut omát ico se hará
de manera t al que quede visible t odo el cont enido de las celdas modificadas.
El val or por defect o es 0.

Del i mi t er
Separador de campos a ut ili zar al abri r archi vos de t ext o.

Si nt ax i s: & Ex cel Document .Del i mi t er

El val or por defect o es l a coma ( “ ,” ) .

Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt ax i s: & Ex cel Document .Er r Code

Ver secci ón “ Códi gos y Mensaj es de Er ror” .

Er r Descr i pt i on
Mensaj e de error de l a últ i ma oper aci ón.

Si nt ax i s: & Ex cel Document .Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” .

Er r Di spl ay
Despl egar o no mensaj es de error.
148

Si nt ax i s: & Ex cel Document .Er r Di spl ay

Especifica si al ocurrir un error se desplegará un mensaj e advirt iendo al usuario con el t ext o
del error ( 1) o no ( 0) .
El valor por defect o es 0.

Macr oRet ur nTex t
Ul t i mo val or de t i po caráct er devuel t o por un ll amado a una macro medi ant e el
mét odo RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nTex t

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.

Macr oRet u r n Number
Ul t i mo val or numéri co devuel t o por un ll amado a una macro medi ant e el mét odo
RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nNumber

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.

Macr oRet ur nDat e
Ul t i mo val or de t i po fecha devuel t o por un ll amado a una macro medi ant e el
mét odo RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nDat e

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.

ReadOnl y
Abri r el próxi mo document o como sól o l ect ura.

Si nt ax i s: & Ex cel Document .ReadOnl y

Si ReadOnly es 1, l a próxi mas ll amadas al mét odo Open causarán que l as pl anill as
se abran como sól o l ect ura.
Si es 0 se i nt ent ar án abr i r como l ect ur a/ escr i t ur a, per o si y a se encuent r an
abi er t as se abr i r án como sól o l ect ur a.
El v al or por def ect o es 0.

Templ at e
Nombre del t empl at e a ut ili zar para document os nuevos.
149

Si nt ax i s: & Ex cel Document .Templ at e

I ndi ca el camino y el nombre del archi vo que se que se ut ili zará como Templ at e en
l as próxi mas ll amadas al mét odo Open con un nombre de archi vo no exi st ent e.
El v al or por def ect o es l a cadena v acía. En est e caso se ut i l i zar á el t empl at e
por def ect o.

El t i po de ar chi v o puede ser cual qui er a per mi t i do por Ex cel par a ut i l i zar l o
como Templ at e. Si es el st r i ng v acío, se usar á el t empl at e por def ect o. Por
def ect o, no hay t empl at e asi gnado y por l o t ant o se ut i l i za el t empl at e por
def ect o.

Si se defi ne un t empl at e, y l uego se borra porque ya no se necesi t a, para vol ver a
ut ili zar el t empl at e por def ect o se debe hacer una ll amada a est a propi edad,
pasando por parámet ro un st ri ng vacío ( “ ” ) .


MÉTODOS
Cel l s
Devuel ve una cel da o un conj unt o de cel das.

Si nt ax i s: & Ex cel Document .Cel l s( Row , Col umn[ , Hei ght , Wi dt h] )

Devuel ve un obj et o ExcelCell s con l as cel das que componen el área que comi enza
en l a fil a Row y col umna Column y t i ene Hei ght cel das de al t o y Widt h cel das de
ancho.
Si no se especi fi can l os parámet ros Height y Wi dt h se devol verá sol ament e l a cel da
ubi cada en l a fil a Row y columna Column

Cl ear
Bor ra el cont eni do y el format o de t odas l as cel das de l a hoj a act i va.

Si nt ax i s: & Ex cel Document .Cl ear ( )

Cl ose
Sal va y ci erra el document o.

Si nt ax i s: & Ex cel Document .Cl ose( )

Hi de
Ocul t a el document o.

Si nt ax i s: & Ex cel Document .Hi de( )

150
Open
Abre el document o especi fi cado.

Si nt ax i s: & Ex cel Document .Open( Fi l eName)

De no exi st i r el document o especi fi cado, ést e se cr ea ut i lizando el t empl at e
especi fi cado en l a propi edad Templat e.
Al abri r un document o medi ant e el mét odo Open, ést e no es despl egado en
pant all a. Para most rarl o es necesari o l l amar al mét odo Show.

Pr i nt
I mpri me el document o en l a i mpresora por def ect o.

Si nt ax i s: & Ex cel Document .Pr i nt ( [ Pr evi ew ] )

El parámet ro Pr eview i ndi ca si se most rará el document o por pant all a ( 1) o no ( 0)
ant es de imprimirlo. El valor por def ect o es 0.

Not a:
- Para poder ut ili zar est e mét odo se debe confi gurar l a pref er enci a “ Funct i ons
= All ow non st andard funct i ons” en di seño y prot ot i po.

RenameSheet
Renombr a l a hoj a act i va al nombre especi fi cado.

Si nt ax i s: & Ex cel Document .RenameSheet ( Sheet Name)

RunMacr o
Ej ecut a una macro cont eni da en el document o con l os parámet r os que se
especi fi quen.

Si nt ax i s: & Ex cel Document .RunMacr o( Macr oName[ , Par 1 ... [ ,Par 30] ] )

Not as:
• Los par ámet r os son sól o de ent r ada. Si l a macr o l l amada dev uel v e
val or es, ést os quedar án al macenado en l as pr opi edades
Macr oRet urnText , Macr oRet urnNumber y MacroRet urnDat e, dependi endo
de su t i po.
• Hay un máxi mo de 30 parámet ros, est o es una li mi t aci ón de Word.
• Est a funci ón no est á di sponi bl e para el generador Java.
• Si se ut i l i za est e mét odo con Of f i ce 97, no es posi bl e ut i l i zar
par ámet r os, est o es una l i mi t aci ón de Of f i ce 9 7. Por est a r azón
t ampoco es posi bl e i nv ocar l as pr opi edades MacroRet ur nText ,
Macr oRet urnNumber y Macr oRet urnDat e en est e caso.

Save
Guarda el document o a di sco.

151
Si nt ax i s: & Ex cel Document .Sav e( )

Sel ect Sheet
Cambi a l a hoj a act i va a l a especi fi cada.

Si nt ax i s: & Ex cel Document .Sel ect Sheet ( Sheet Name)

De no exist ir la hoj a especificada, se crea.
Show
Muest ra el document o en pant alla.

Si nt ax i s: & Ex cel Document .Show ( )

Unbi nd
Permi t e dej ar abi ert a l a pl anilla Excel , l uego de f i nalizar l a apli caci ón.

Si nt ax i s: & Ex cel Document . Unbi nd( )

Est e mét odo es út il si se desea que una pl anilla permanezca abi ert a luego de que
se pi erde de al cance el obj et o Excel Document , i ncl uso luego de f i nalizada la
apli caci ón.
Al li berar una pl anill a se pi erde por compl et o l a ref erenci a ent re el obj et o
Excel Document y el document o abi ert o. Las operaci ones sobre el obj et o
Excel Document no afect an más al document o. De hecho, el obj et o Excel Document
se comport a como si no t uvi era un document o abi ert o hast a que no se l l ame
nuevamanet e al mét odo Open.


Códi gos y Mensaj es de Er r or
Los v al or es posi bl es son:

Códi go Mensaj e
0 Ok
2 Workbook no l onger val id ( sucede cuando un l ibro que
fue abi ert o desde un pr ograma es cerrado a mano por el
usuari o) .
3 Appli cat i on no l onger vali d ( sucede cuando Excel es
cerrado a mano por el usuari o) .
4 I nval i d t empl at e
5 I nval i d worksheet name
6 I nval i d font propert i es
7 I nval i d cell val ue
8 I nval i d cell coordi nat es
9 I nval i d fil e name
10 Coul d not open fil e
11 Er ror runni ng macro
12 Coul d not save fi l e
152


Consi der aci ones Gener al es
- Los mét odos descri t os ant eri orment e fuer on i mpl ement ados de forma t al
que devuel ven ( como si fueran funci ones) el códi go de er ror, por l o que es
posi bl e ll amarl os como f unci ones.
Por ej empl o:
&Err = &Excel Document .Open( Archi vo)

Compat i bi l i dad con ver si ones ant er i or es de GeneXus
Las funci ones de GXoffi ce que exi st ían hast a la versi ón 7. 0 de GeneXs, se si guen
soport ando, el generador funci ona de f orma t al que mapea i nt ernament e est as
funci ones para que ut i licen est os nuevos t i pos de dat os.
Est as funci ones se soport an uni cament e por compat i bili dad, por l o que no se
recomi enda hacer nuevas i mpl ement aci ones con l as mi smas pues l as nuevas
funci onali dades no serán i mpl ement adas en di chas funci ones.

Tipo de Dat os para el manej o de document os Word
I nt r oducci ón
La fi nali dad de est e nuevo t i po de dat os es uni ficar l as funci ones de i nt eracci ón con
l a generaci ón de document os Word para l os di st i nt os l enguaj es generados.

Una vent aj a i mport ant e de est a i mpl ement aci ón con respect o a l as ant eri ores, es
que se manej an l as pl anillas con un model o ori ent ado a obj et os, no es necesari o
ll evar cont rol de l os manej adores de l os document os ( Handl es) .

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Procedimient os, Report es
Lenguaj es: Java, Vi sual Basi c , Vi sual FoxPro
I nt erface: Wi n, Web

Descr i pci ón
Para ut ili zar est a nueva funci onali dad se cr eó el t i po de dat os l l amado
Wor dDocument que permi t e, a t ravés de sus propi edades y mét odos generar
document os de Mi cr osof t Wor d.

153
Wor dDocument
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co Lect ura/ Escri t ura
Macr oRet urnText Caráct er Lect ura
Macr oRet urnNumber Numéri co Lect ura
Macr oRet urnDat e Fecha Lect ura
ReadOnl y Numéri co Lect ura/ Escri t ura
Templ at e Caráct er Lect ura/ Escri t ura
Text Caráct er Lect ura/ Escri t ura


Mét odo Par ámet r os Ti po
Append Text Caráct er
Cl ose ( ni nguno)
Hi de ( ni nguno)
Open Fil eName Caráct er
Pri nt Previ ew
Background
Numéri co
Numéri co
Repl ace Ol dText
NewText
Mat chCase
Mat chWhol eWord
Caráct er
Caráct er
Numéri co
Numéri co
RunMacro Macr oName
Par1 … Par30
Caráct er
( Cual qui era)
Save ( ni nguno)
SaveAs Fil eName
Fil eType
DOSText
Li neBreaks
Caráct er
Caráct er
Numéri co
Numéri co
Show ( ni nguno)
SpellCheck ( ninguno)
Unbind ( ni nguno) Numéri co

PROPI EDADES
Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt ax i s: &Wor dDocument .Er r Code

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

154
Er r Descr i pt i on
Mensaj e de error de l a últ i ma oper aci ón.

Si nt ax i s: &Wor dDocument .Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

Er r Di spl ay
Despl egar o no mensaj es de error.

Si nt ax i s: &Wor dDocument .Er r Di spl ay

Especifica si al ocurrir un error se desplegará un mensaj e advirt iendo al usuario con el t ext o
del error ( 1) o no ( 0) .
El valor por defect o es 0.

Macr oRet ur nTex t
Ul t i mo val or de t i po caráct er devuel t o por un ll amado a una macro medi ant e el
mét odo RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nTex t

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.

Macr oRet u r n Number
Ul t i mo val or numéri co devuel t o por un ll amado a una macro medi ant e el mét odo
RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nNumber

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.


Macr oRet ur nDat e
Ul t i mo val or de t i po fecha devuel t o por un ll amado a una macro medi ant e el
mét odo RunMacro.

Si nt ax i s: & Wor dDocument .Macr oRet ur nDat e

Not a:
- Est a propi edad no est á di sponi bl e para el generador Java.

ReadOnl y
Abri r el próxi mo document o como sól o l ect ura.

155
Si nt ax i s: & Wor dDocument .ReadOnl y = Val or

Si ReadOnly es 1, l a próxi mas ll amadas al mét odo Open causarán que l os
document os se abran como sól o l ect ura.
Si es 0 se i nt ent ar án abr i r como l ect ur a/ escr i t ur a, per o si y a se encuent r an
abi er t as se abr i r án como sól o l ect ur a.
El v al or por def ect o es 0.

Templ at e
Nombre del t empl at e a ut ili zar para document os nuevos.

Si nt ax i s: & Wor dDocument .Templ at e( Templ at e)

I ndi ca el camino y el nombre del archi vo que se que se ut ili zará como Templ at e en
l as próxi mas ll amadas al mét odo Open con un nombre de archi vo no exi st ent e.
El v al or por def ect o es l a cadena v acía. En est e caso se ut i l i zar á el t empl at e
por def ect o.

Si se defi ne un t empl at e, y l uego se borra porque ya no se necesi t a, para vol ver a
ut ili zar el t empl at e por def ect o se debe hacer una ll amada a est a propi edad,
pasando por parámet ro un st ri ng vacío ( “ ” ) .


Tex t
Text o compl et o del document o.

Si nt ax i s: &Wor dDocument .Tex t

En caso de quer er agregar nuevo t ext o a un document o exi st ent e si n perder el
format o act ual , se recomi enda ut ili zar el mét odo Append.

MÉTODOS
Append

Agrega nuevo t ext o al fi nal de un document o.

Si nt ax i s: & Wor dDocument .Append( Tex t )

Cl ose
Sal va y ci erra el document o.

Si nt ax i s: &Wor dDocument .Cl ose( )

Hi de
Ocul t a el document o. Si ni ngún document o est á vi si bl e, ocul t a el Word.
156

Si nt ax i s: &Wor dDocument .Hi de( )

Open
Abre el document o especi fi cado.

Si nt ax i s: & Wor dDocument .Open( Fi l eName)

De no exi st i r el document o especi fi cado en el parámet ro, ést e se cr ea ut ili zando el
t empl at e especi fi cado en l a propi edad Templat e.
Al abri r un document o medi ant e el mét odo Open, ést e no es despl egado en
pant all a. Para most rarl o es necesari o l l amar al mét odo Show.
El parámet ro puede cont ener el cami no y el nombr e del document o, si sol o se
especi fi ca el nombre el document o se cr eará en el di rect ori o por defect o ( di rect ori o
del model o Dat aXXX) .

Pr i nt
I mpri me el document o en l a i mpresora por def ect o.

Si nt ax i s: & Wor dDocument .Pr i nt ( [ Pr evi ew [ , Back gr ound] ] )

Previ ew Numéri co I ndi ca si se most rará el document o en pant all a o no
ant es de i mpri mi rl o. Los val or es posi bl es son 1 ( se
muest ra el document o) , 0 ( no se muest r a el
document o) .
Est e parámet ro es opci onal y el val or por def ect o es 0.
Backgr ound Numéri co I ndi ca si l a i mpresi ón se ll evará a cabo en segundo
pl ano ( val or 1) o no ( val or 0) . En caso de i ndi car
i mpresi ón en segundo pl ano se devol verá el cont r ol al
programa l l amador mi ent ras se r eali za l a i mpresi ón y si
en el programa se ci er ra el document o cuando aún no
t ermi nó l a i mpresi ón, ést a será cancel ada. Est e
parámet ro es opci onal , el val or por defect o es 1.


Not a:
- Para poder ut ili zar est e mét odo se debe confi gurar l a pref er enci a “ Funct i ons
= All ow non st andard funct i ons” en di seño y prot ot i po.

Repl ace
Per mi t e sust i t ui r t odas l as ocur renci as de un t ext o por ot r o.

Si nt ax i s: &Wor dDocument . Repl ace( Ol dTex t , New Tex t [ , Mat chCase[ ,
Mat chWhol eWor d] ] )

Ol dText Caráct er I ndi ca cual es el t ext o que se va a sust i t ui r
NewText Caráct er I ndi ca cual será el nuevo t ext o en el document o
Mat chCase Numéri co Si t i ene val or 1 sól o se sust i t ui rán l as ocur r enci as
que t engan igual configuraci ón de mayúscul as y
157
mi núscul as, si t i ene val or 0 se sust i t ui rán t odas l as
ocur r enci as
Est e parámet r o es opci onal , el comport ami ent o
por def ect o es como si t uvi era val or 0.
Mat chWhol eWord Numéri co Si t i ene val or 1 sól o se sust i t ui rán aquell as
ocurrenci as que no formen part e de ot ra pal abra,
si t i ene el val or 0 se sust i t ui rán t odas l as
ocur r enci as
Est e parámet r o es opci onal , el comport ami ent o
por def ect o es como si t uvi era val or 0

Not a:
- La sust i t uci ón se r eali za sol o en el t ext o del document o, no se cont empl a el
t ext o del cabezal ( Header) y el pi e de página ( Foot er) para realizar l a
sust i t uci ón.

RunMacr o
Ej ecut a l a Macr o i ndi cada, cont eni da en el document o, con l os parámet ros que se
especi fi quen.

Si nt ax i s: & Wor dDocument .RunMacr o( Macr oName[ , Par 1 ... [ ,Par 30] ] )

Macr oName Caráct er Macr o que se desea ej ecut ar
Par1 . .. Par30 ( Cual qui era) Parámet r os ut i lizados por l a macro.

Not as:
• Los par ámet r os son sól o de ent r ada. Si l a macr o l l amada dev uel v e
val or es, ést os quedar án al macenado en l as pr opi edades
Macr oRet ur nTex t , Macr oRet ur nNumber y Macr oRet ur nDat e,
dependi endo de su t i po.
• Hay un máxi mo de 30 parámet ros, est o es una li mi t aci ón de Word.
• Est a funci ón no est á di sponi bl e para el generador Java.
• Si se ut i l i za est e mét odo con Of f i ce 97, no es posi bl e ut i l i zar
par ámet r os, est o es una l i mi t aci ón de Of f i ce 9 7. Por est a r azón
t ampoco es posi bl e i nvocar l as pr opi edades Macr oRet ur nTex t ,
Macr oRet ur nNumber y Macr oRet ur nDat e en est e caso.

Save
Guarda el document o Word a di sco.

Si nt ax i s: &Wor dDocument .Sav e( )

Sav eAs
Guarda el document o a di sco con un nuevo nombre, y opci onal ment e se puede
sel ecci onar un nuevo t i po de ar chi vo.

Si nt ax i s: & Wor dDocument .Sav eAs( Fi l eName[ , Fi l eTy pe[ , DOSTex t [ ,
Li neBr eak s] ] ] )

158

Fil eName Caráct er Nuevo nombre del document o Word.
Fil eType Caráct er Nuevo t i po de archi vo que se desea generar a part i r del
document o Word.
Los t i pos de archi vo válidos son:
DOC ( Format o de Word)
RTF ( Ri ch Text Format )
HTM ( Hyper Text Mar kup/ HyperText Mar kup
Language)
DOT ( DOC Templ at e)
TXT ( Text o)
Est e parámet ro es opci onal , el t i po de archi vo por def ect o
es DOC.
DOSText Caráct er En caso de especi fi car t i po TXT se podrá especi fi car si el
for mat o del t ext o a ut ilizar será el de DOS ( valor 1) o no
( val or 0) .
Est e parámet ro es opci onal , el val or por def ect o es 0.
Li neBreaks Numéri co En caso de especi fi car t i po TXT i ndi ca si se agregará un
sal t o de pági na al fi nal de cada l ínea ( val or 1) o no ( val or
0) .
Est e parámet ro es opci onal , el val or por def ect o es 0.

Show
Muest ra el document o en pant alla.

Si nt ax i s: &Wor dDocument .Show ( )

Spel l Check
Ej ecut a el corr ect or ort ográfi co en el document o.

Si nt ax i s: & Wor dDocument .Spel l Check ( )

Unbi nd
Per mi t e dej ar abi ert o el document o Word, l uego de fi nali zar l a apli caci ón.

Si nt ax i s: & Wor dDocument .Unbi nd( )

Est e mét odo es út il si se desea que un document o permanezca abi ert o l uego de
que se pi erde de al cance el obj et o WordDocument , i ncl uso l uego de fi nalizada l a
apli caci ón.
Al li berar un document o se pi erde por compl et o l a referenci a ent re el obj et o
WordDocument y el document o abi ert o. Las operaci ones sobre el obj et o
WordDocument no afect an más al document o. De hecho, el obj et o WordDocument
se comport a como si no t uvi era un document o abi ert o hast a que no se l l ame
nuevamanet e a su mét odo Open.


159
Códi gos y Mensaj es de Er r or
Los v al or es posi bl es son:

Códi go Mensaj e
0 Ok
2 Document no l onger vali d ( sucede cuando un
document o que fue abi ert o desde un programa es
cerrado a mano por el usuari o) .
3 Appl i cat i on no l onger val i d ( sucede cuando Wor d
es cer r ado a mano por el usuar i o) .
4 I nv al i d t empl at e
5 I nv al i d f i l e name
6 Coul d not open f i l e
7 Coul d not sav e f i l e
8 I nv al i d val ue
9 Er r or r unni ng macr o
10 Coul d not compl et e oper at i on


Consi der aci ones Gener al es
- Los mét odos descri t os ant eri orment e fuer on i mpl ement ados de forma t al
que devuel ven ( como si fueran funci ones) el códi go de er ror, por l o que es
posi bl e ll amarl os como f unci ones.
Por ej empl o:
& Er r = & Wor dDocument .Open( Ar chi vo)

Compat i bi l i dad con ver si ones ant er i or es de GeneXus
Las funci ones de GXoffi ce que exi st ían hast a la versi ón 7. 0 de GeneXs, se si guen
soport ando, el generador funci ona de f orma t al que mapea i nt ernament e est as
funci ones para que ut i licen est os nuevos t i pos de dat os.
Est as funci ones se soport an uni cament e por compat i bili dad, por l o que no se
recomi enda hacer nuevas i mpl ement aci ones con l as mi smas pues l as nuevas
funci onali dades no serán i mpl ement adas en di chas funci ones.

Tipos de Dat os para el manej o de correos
I nt r oducci ón
La fi nali dad de est os nuevos t i po de dat os es uni fi car l as funci ones de i nt eracci ón
con el envío y r ecepci ón de mensaj es para l os di st i nt os l enguaj es gener ados.

Una vent aj a i mport ant e de est a i mpl ement aci ón con respect o a l as ant eri ores, es
que permi t e ut ilizar más de una i nst anci a de conexi ón al servi dor de corr eos.

160
Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Procedimient os, Report es
Lenguaj es: C/ SQL ( sol o SMTPSessi on y POP3Sessi on) , Java, Vi sual Basi c , Vi sual
FoxPro, C# ( sol o Out l ookSessi on, SMTPSessi on y POP3Sessi on)
I nt erface: Wi n, Web

Descr i pci ón
Para ut i lizar est a nueva funci onali dad se crearon l os si gui ent es t i pos de dat os:

Ti po de Dat os Descr i pci ón Requer i mi ent os
Out l ook Sessi on Permit e ut ilizar una sesión de correo para
enviar y recibir mensaj es mediant e
Microsoft Out look.
Microsoft Out look 97 o
superior.
MAPI Sessi on


Permit e enviar/ recibir correos mediant e
MAPI ( Mail Applicat ion Program I nt erface)
de Microsoft .







Not a: No se recomienda ut ilizar est e últ imo
modo a menos que se deseen ut ilizar los
servicios de Microsoft Exchange Server y no
se cuent e con Microsoft Out look
Microsoft Out look 97 o
superior o Client e de
Microsoft Exchange, y
Collaborat ion Dat a
Obj ect s ( CDO) 1.2 o
post erior.

Not a: Los CDO 1.2
vienen con los siguient es
product os:
- MS Out look 98 y MS
Out look 2000 ( Versión
1.21) .
- MS Exchange 5.5
Server ( Versión 1.2 o
Versión 1.21 en SP1 o
mayor) .
SMTPSessi on Permit e ut ilizar una sesión de correo para
enviar mensaj es mediant e un servidor
ut ilizando el prot ocolo SMTP ( Simple Mail
Transfer Prot ocol) .
Prot ocolo TCP/ I P. No
requiere Office.
POP3Sessi on Permit e ut ilizar una sesión de correo para
recibir mensaj es desde un servidor
ut ilizando el prot ocolo POP3 ( Post Office
Prot ocol Versión 3) .
Prot ocolo TCP/ I P. No
requiere Office.
Mai l Message Para confi gurar el mensaj e que se va a
envi ar/ reci bi r, a t ravés de di ferent es
propi edades y mét odos.

Mai l Reci pi ent Permi t e confi gurar el nombre y l a
di recci ón del dest i nat ari o de un
mensaj e.



Los t i pos de dat os Out lookSession, MAPI Session, SMTPSessi on y POP3Sessi on
i ndi can el modo en el que se va a real i zar el envío y r ecepci ón de cor reos.


Además i nt ernament e se manej an l os t i pos de dat os:

161
Mai l Reci pi ent Col l ect i on Col ecci ón de obj et os de t i po
MailRecipient .
St r i ngCol l ect i on Col ecci ón de obj et os de t i po Caráct er.



Out l ook Sessi on
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
At t achDi r Caráct er Lect ura/ Escri t ura
Count Numéri co Lect ura
Edi t Window Numéri co ( 0 | 1) Lect ura/ Escri t ura
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co ( 0 | 1) Lect ura/ Escri t ura
NewMessages Numéri co ( 0 | 1) Lect ura/ Escri t ura

Mét odo Par ámet r os Ti po
ChangeFol der Fol derName Caráct er
Del et e ( ni nguno)
MarkAsRead ( ni nguno)
Recei ve Message Mail Message
Send Message Mail Message

PROPI EDADES
At t achDi r
Di rect ori o de archi vos adj unt os.

Si nt ax i s: & Out l ook Sessi on. At t achDi r

Especi fi ca en qué di rect ori o se deben guardar l os archi vos adj unt os cuando se
ej ecut a el mét odo Recei ve. Si est a propi edad cont i ene una cadena vacía ( “ ” ) , no se
guardarán l os archi vos adj unt os.
En el caso del mét odo Send se t omará como di rect ori o base para búsqueda de l os
archi vos adj unt os al mensaj e ( pr opi edad At t achment s) .
El val or por defect o es l a cadena vacía ( “ ” ) .

Count
Cant i dad de mensaj es a reci bi r.

Si nt ax i s: & Out l ook Sessi on. Count

Ret orna la cant idad de mensaj es que cumplen con las condiciones de apert ura de la
carpet a. Es deci r, si se abri ó l a carpet a o l a sesi ón especi fi cando que se r eci bi rán
sol ament e l os mensaj es no l eídos ( medi ant e l a propi edad NewMessages) , ret ornará
162
l a cant i dad de mensaj es no l eídos, mi ent ras que si se abri ó l a carpet a especi fi cando
que se reci bi rán t odos los mensaj es, ret ornará l a cant i dad t ot al de mensaj es.

Edi t Wi ndow
I ndi ca si se most rará o no l a vent ana de edi ci ón del mensaj e ant es de envi arl o.

Si nt ax i s: & Out l ook Sessi on.Edi t Wi ndow

Si Edit Window es 1, se most rará l a vent ana de edi ci ón del mensaj e a envi ar cada
vez que se i nvoque a l a propi edad Send. Si es 0, se envi ará el mensaj e si n
i nt eracci ón del usuari o.
El val or por defect o es 0.

Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt axi s: &Out l ookSessi on. Er rCode

Ver secci ón “ Códi gos y Mensaj es de Er r or ” en est e mi smo document o.

Er r Descr i pt i on
Mensaj e de er ror de l a últ i ma operaci ón. La l i st a de mensaj es se det all an en l a
propi edad Er rorNumber.

Si nt ax i s: & Out l ook Sessi on.Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

Er r Di spl ay
I ndi ca si se despl egará o no mensaj es de err or .

Si nt ax i s: & Out l ook Sessi on.Er r Di spl ay

Especi fi ca si al ocurri r un er ror se despl egará un mensaj e advi rt i endo al usuari o con
el t ext o del er ror o no, según si Er rDisplay es 1 o 0 respect i vament e.
El val or por defect o es 0.

New Messages
I ndi ca si se r eci bi rán solament e l os mensaj es nuevos o t odos l os mensaj es.

Si nt ax i s: & Out l ook Sessi on. New Messages

Si New Messages es 1 l os l l amados al mét odo Recei v e devol v er án
sol ament e l os mensaj es no l eídos de l a car pet a act ual . Si es 0, devol v er án
t odos l os mensaj es de l a car pet a.
El val or por defect o es 0.

163
El v al or de est a pr opi edad t endr á ef ect o a par t i r del pr óx i mo l l amado al
mét odo ChangeFol der .

Si el ser v i dor no sopor t a l a pr opi edad New Messages= 1 se dar á el er r or 29.


MÉTODOS
ChangeFol der
Cambi a l a carpet a desde l a cual se r eci bi rán mensaj es.

Si nt ax i s: &Er r or = &Out l ook Sessi on.ChangeFol der ( [ Fol der Name] )


Fol derName Nombr e de l a carpet a desde donde se van a l eer l os cor reos.
Consul t ar l as Not as para conocer l as regl as de defi ni ci ón de
nombr es de carpet as.
Est e parámet ro es opcional , si se omi t e o dej a en bl anco, se
hará r efer enci a a l a car pet a I nbox.


Not as:
- Regl as para l a correct a defi ni ci ón de nombres de carpet as. La not aci ón es
si mil ar a l a ut ilizada en DOS y UNI X para navegar ent re di rect ori os, con
al gunas excepci ones.

En general , l as r egl as son:

- Se puede ut ili zar el caráct er “ . ” para i ndi car l a carpet a act ual .
- Se puede ut ili zar l a cadena “ ..” para i ndi car l a carpet a de un ni vel más
al t o.
- Se puede ut ili zar el caráct er “ \ ” para i ndi car una subcarpet a.
- Se puede ut ili zar el caráct er “ \ ” al i ni ci o del nombre para i ndi car l a raíz.
- Si se especi fi ca un nombre si mpl e, si n “ \ ” ni “ ..” , se hará r ef er enci a a
una carpet a hermana del I nbox.
- Los val or es “ * I nbox” , “ * Out box” , “ * Sent I t ems” , “ * Del et ed I t ems” y
“ * Draft s” se ut ilizan para ref erenci ar l as carpet as comúnment e ll amadas
por est os nombres, aunque sus nombr es no sean exact ament e est os.
Est o es út il cuando se ut iliza un cli ent e en ot ro idi oma. Por ej empl o, si se
t i ene Out l ook en español , “ * I nbox” hará refer enci a a l a carpet a “ Bandej a
de ent rada” .

A modo de ej empl o, si se t i ene l a si gui ent e est r uct ura:
Mai box
Draft s
I nbox
Urgent es
Out box
Pendi ent es
En espera
Sent I t ems
164
Publi c Fol ders
Favori t es
All Public Folders
General

Los si gui ent es val ores de Fol der Name son vál i dos:
“ Pendi ent es”
“ Pendi ent es\ En Espera”
“ \ Mail box\ Pendi ent es”
“ \ Publi c Fol ders\ All Publi c Fol ders\ General ”
“ * I nbox\ Urgent es”
Si act ual ment e est á sel ecci onada l a carpet a I nbox\ Urgent es:
− “ . . ” ( Sel ecci ona I nbox)
− “ ..\ ..\ Pendi ent es\ En espera”
Si act ual ment e est á sel ecci onada l a carpet a I nbox:
“ . \ Urgent es”

Del et e

Eli mi na del servi dor el últ i mo mensaj e que haya si do reci bi do medi ant e el mét odo
Receive.

Si nt ax i s: & Out l ook Sessi on. Del et e( )

El mensaj e bor rado se moverá a l a carpet a “ Del et ed I t ems” .
Si no se ll amó al mét odo Receive o si el úl t imo ll amado no ret ornó un mensaj e
( debi do a un er r or por ej empl o) , l a ll amada a Delet e resul t ará en el err or 26.
Mar k AsRead
Marca como l eído el últ i mo mensaj e que haya si do reci bi do medi ant e el mét odo
Receive.

Si nt ax i s: & Out l ook Sessi on.Mar k AsRead( )

Si no se ll amó al mét odo Receive o si el úl t imo ll amado no ret ornó un mensaj e
( debi do a un er r or por ej empl o) , l a ll amada a MarkAsRead r esul t ará en el er ror 26.
Est a propi edad se debe confi gurar l uego de real izar el Receive.

Recei v e
Devuel ve l os dat os del si gui ent e cor reo en l a sesi ón act ual .
Si el correo t i ene archi vos adj unt os y se especi fi có un di rect ori o en l a propi edad
At t achDir, ést os se graban a di sco, de l o cont rar i o no se guardan.

Si nt ax i s: & Out l ook Sessi on. Recei v e( Message)

Not a:
- El parámet ro Message es de t i po MailMessage.

165
Send
Envía un mensaj e.

Si nt ax i s: & Out l ook Sessi on. Send( Message)

Not as:
- El parámet ro Message es de t i po MailMessage.
- Si al guna di recci ón de dest i no no puede ser resuel t a, se most rará l a vent ana
de edición, como si la propiedad Edit Window t uvi era val or 1.

MAPI Sessi on
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:


Pr opi edad Ti po Acceso
At t achDi r Caráct er Lect ura/ Escri t ura
Count Numéri co Lect ura
Edi t Window Numéri co ( 0 | 1) Lect ura/ Escri t ura
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co ( 0 | 1) Lect ura/ Escri t ura
NewMessages Numéri co ( 0 | 1) Lect ura/ Escri t ura
Profil e Caráct er Lect ura/ Escri t ura

Mét odo Par ámet r os Ti po
ChangeFol der Fol derName Caráct er
Del et e ( ni nguno)
Logi n ( ni nguno)

Logout ( ni nguno)

MarkAsRead ( ni nguno)
Recei ve Message Mail Message
Send Message Mail Message

PROPI EDADES
At t achDi r
Di rect ori o de archi vos adj unt os.

Si nt ax i s: & MAPI Sessi on.At t achDi r

Especi fi ca en qué di rect ori o se deben guardar l os archi vos adj unt os cuando se
ej ecut a el mét odo Recei ve. Si est a propi edad cont i ene una cadena vacía ( “ ” ) , no se
guardarán l os archi vos adj unt os.
En el caso del mét odo Send se t omará como di rect ori o base para búsqueda de l os
archi vos adj unt os al mensaj e ( pr opi edad At t achment s) .
El val or por defect o es l a cadena vacía ( “ ” ) .

166
Count
Cant i dad de mensaj es a reci bi r.

Si nt ax i s: & MAPI Sessi on.Count

Ret orna la cant idad de mensaj es que cumplen con las condiciones de apert ura de la
carpet a. Es deci r, si se abri ó l a carpet a o l a sesi ón especi fi cando que se r eci bi rán
sol ament e l os mensaj es no l eídos ( medi ant e l a propi edad NewMessages) , ret ornará
l a cant i dad de mensaj es no l eídos, mi ent ras que si se abri ó l a carpet a especi fi cando
que se reci bi rán t odos los mensaj es, ret ornará l a cant i dad t ot al de mensaj es.

Edi t Wi ndow
I ndi ca si se most rará o no l a vent ana de edi ci ón del mensaj e ant es de envi arl o.

Si nt ax i s: & MAPI Sessi on.Edi t Wi ndow

Si Edit Window es 1, se most rará l a vent ana de edi ci ón del mensaj e a envi ar cada
vez que se i nvoque a l a propi edad Send. Si es 0, se envi ará el mensaj e si n
i nt eracci ón del usuari o.
El val or por defect o es 0.

Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt axi s: &MAPI Sessi on. ErrCode

Ver secci ón “ Códi gos y Mensaj es de Er r or ” en est e mi smo document o.

Er r Descr i pt i on
Mensaj e de er ror de l a últ i ma operaci ón. La l i st a de mensaj es se det all an en l a
propi edad Er rCode.

Si nt ax i s: & MAPI Sessi on.Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

Er r Di spl ay
I ndi ca si se despl egará o no mensaj es de err or .

Si nt ax i s: & MAPI Sessi on.Er r Di spl ay

Especi fi ca si al ocurri r un er ror se despl egará un mensaj e advi rt i endo al usuari o con
el t ext o del er ror o no, según si Er rDisplay es 1 o 0 respect i vament e.
El val or por defect o es 0.

167
New Messages
I ndi ca si se r eci bi rán solament e l os mensaj es nuevos o t odos l os mensaj es.

Si nt ax i s: & MAPI Sessi on.New Messages

Si New Messages es 1 l os l l amados al mét odo Recei v e devol v er án
sol ament e l os mensaj es no l eídos de l a car pet a act ual . Si es 0, devol v er án
t odos l os mensaj es de l a car pet a.
El val or por defect o 0.

El v al or de est a pr opi edad t endr á ef ect o a par t i r del pr óx i mo l l amado al
mét odo ChangeFol der .
Si el ser v i dor no sopor t a l a pr opi edad New Messages= 1 se dar á el er r or 29.

Pr of i l e
Perfi l a ut ilizar para comenzar una sesi ón.

Si nt ax i s: & MAPI Sessi on.Pr of i l e

El v al or de est a pr opi edad t endr á ef ect o a par t i r del pr óx i mo l l amado al
mét odo Logi n. Si no especi f i ca est a pr opi edad, el l l amado al mét odo Logi n
most r ar á una v ent ana de sel ecci ón de per f i l es.

MÉTODOS
ChangeFol der
Cambi a l a carpet a desde l a cual se r eci bi rán mensaj es.

Si nt ax i s: &Out l ook Sessi on. ChangeFol der ( [ Fol der Name] )


Fol derName Nombr e de l a carpet a desde donde se van a l eer l os cor reos.
Consul t ar l as Not as para conocer l as regl as de defi ni ci ón de
nombr es de carpet as.
Est e parámet ro es opcional , si se omi t e o dej a en bl anco, se
hará r efer enci a a l a car pet a I nbox.

Del et e

Eli mi na del servi dor el últ i mo mensaj e que haya si do reci bi do medi ant e el mét odo
Receive.

Si nt ax i s: & MAPI Sessi on.Del et e( )

El mensaj e bor rado se moverá a l a carpet a “ Del et ed I t ems” .
Si no se ll amó al mét odo Receive o si el úl t imo ll amado no ret ornó un mensaj e
( debi do a un er r or por ej empl o) , l a ll amada a Delet e resul t ará en el err or 26.
168
Logi n
I ni ci a una sesi ón.

Si nt ax i s: & MAPI Sessi on.Logi n

La sesi ón MAPI se i ni ci ar á con el per f i l i ndi cado en l a pr opi edad Pr of i l e. Si
di cha pr opi edad no f ue asi gnada se abr i r á una v ent ana que pr egunt ar á el
per f i l a ut i l i zar .
Luego de i ni ci ar una sesi ón con el per f i l i ndi cado, se abr e l a car pet a
“ I nbox ” ( o equi v al ent e) .

Logout
Fi naliza l a sesi ón.

Si nt ax i s: & MAPI Sessi on.Logout

Mar k AsRead
Marca como l eído el últ i mo mensaj e que haya si do reci bi do medi ant e el mét odo
Receive.

Si nt ax i s: & MAPI Sessi on.Mar k AsRead

Si no se ll amó al mét odo Receive o si el úl t imo ll amado no ret ornó un mensaj e
( debi do a un er r or por ej empl o) , l a ll amada a MarkAsRead r esul t ará en el er ror 26.

Not a:
- Para poder ut ilizar est a propi edad se debe confi gurar l a preferenci a
“ Funct i ons = All ow non st andard funct i ons” en di seño y prot ot i po.

Recei v e
Devuel ve l os dat os del si gui ent e cor reo en l a sesi ón act ual .
Si el correo t i ene archi vos adj unt os y se especi fi có un di rect ori o en l a propi edad
At t achDir, ést os se graban a di sco, de l o cont rar i o no se guardan.

Si nt ax i s: & MAPI Sessi on.Recei v e( Message)

Not a:
- El parámet ro Message es de t i po MailMessage.

Send
Envía un mensaj e.

Si nt ax i s: & MAPI Sessi on.Send( Message)

Not as:
- El parámet ro Message es de t i po MailMessage.
- Si la di recci ón de al gún dest i nat ari o no puede ser r esuel t a, se most rar á una
vent ana de resol uci ón de nombres que dará a el egi r al usuari o el
169
dest i nat ari o corr ect o de ent r e l os posi bl es dest i nat ari os para l a di recci ón
especi fi cada.
- Se fuerza el envío i nmedi at o de mail s l uego de hacer un Send. Est o t i ene
como consecuenci a que si se ut i liza conexi ón t el efóni ca a I nt ernet , se r eali ce
el di scado al ll amar al mét odo Send.

SMTPSessi on
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
At t achDi r Caráct er Lect ura/ Escri t ura
Aut hent i cat i on Numéri co ( 0 | 1) Lect ura/ Escri t ura
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co ( 0 | 1) Lect ura/ Escri t ura
Host Caráct er Lect ura/ Escri t ura
Password Caráct er Escri t ura
Port Numéri co Lect ura/ Escri t ura
Sender Mail Reci pi ent Lect ura/ Escri t ura
Ti meout Numéri co Lect ura/ Escri t ura
UserName Caráct er Lect ura/ Escri t ura


Mét odo Par ámet r os Ti po
Logi n ( ni nguno)

Logout ( ni nguno)

Send Message Mail Message

PROPI EDADES
At t achDi r
Di rect ori o de archi vos adj unt os.

Si nt ax i s: & SMTPSessi on.At t achDi r

Especi fi ca cuál será el di rect ori o base para búsqueda de l os archi vos adj unt os al
mensaj e ( propi edad At t achment s) .
El val or por defect o es l a cadena vacía ( “ ” ) .

Aut hent i cat i on
I ndi ca si se i nt ent ará o no aut ent i fi caci ón con el servi dor .

Si nt ax i s: &SMTPSessi on. Aut hent i cat i on

Al gunos ser vi dor es SMTP r equi er en aut ent i caci ón. En di chos casos podr á
especi f i car se l a pr opi edad Aut hent i cat i on en 1 y especi f i car en l as
pr opi edades User Name y Passw or d el nombr e de usuar i o y l a cl av e a
170
ut i l i zar . Est os v al or es ser án t omados en cuent a en el pr óx i mo l l amado al
mét odo Logi n.

El único mecanismo de aut ent icación soport ado es Cl ear Tex t . Si se especifican los
parámet ros UserName y Password y el servidor no soport a aut ent icación por Cl ear Tex t se
producirá el error 23.
El valor por defect o es 0.

Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt axi s: &SMTPSessi on.ErrCode

Ver secci ón “ Códi gos y Mensaj es de Er r or ” en est e mi smo document o.

Er r Descr i pt i on
Mensaj e de er ror de l a últ i ma operaci ón. La l i st a de mensaj es se det all an en l a
propi edad Er rCode.

Si nt ax i s: & SMTPSessi on.Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

Er r Di spl ay
I ndi ca si se despl egará o no mensaj es de err or .

Si nt ax i s: & SMTPSessi on.Er r Di spl ay

Especi fi ca si al ocurri r un er ror se despl egará un mensaj e advi rt i endo al usuari o con
el t ext o del er ror o no, según si Er rDisplay es 1 o 0 respect i vament e.
El valor por defect o es 0.

Not a:
- Est a propiedad no est á disponible en el generador C/ SQL.

Host
Di recci ón del servi dor SMTP.

Si nt ax i s: &SMTPSessi on.Host

Puede especi fi carse t ant o el nombre del servi dor como su di recci ón I P.

Passw or d
Cont raseña a ut i lizar para aut ent i carse en el servi dor.

Si nt ax i s: & SMTPSessi on.Passw or d

Est á propi edad será i gnorada si l a propi edad Aut hent icat ion est á en 0.
171

Por t
Puert o del ser vi dor SMTP en el Host .

Si nt ax i s: &SMTPSessi on.Por t

El val or por def ect o es 25, el puer t o nor mal ment e ut i l i zado por l os
ser v i dor es SMTP.

Sender
Dat os del emi sor a i ncl ui r en l os mensaj es envi ados.

Si nt ax i s: & SMTPSessi on.Sender

Al crearse una vari able de t i po SMTPSessi on, l a propi edad Sender cont i ene un
obj et o MailRecipi ent con l as propi edades Name y Address vaci as. Por est a razón,
l os dat os del emi sor se pueden asi gnar di rect ament e sobre l as propi edades Name y
Address del obj et o ya creado o se puede asi gnar ot ro obj et o de t i po MailRecipient ,
del cual se copi arán est as propi edades.

Es necesari o t ener dat os vál i dos en l a propi edad Sender para que funci one el
mét odo Login.

Ti meout
Ti empo de espera máxi mo, en segundos, para esperar por una respuest a del
servi dor l uego de cada pedi do.

Si nt ax i s: & SMTPSessi on.Ti meout

Est e val or debe adapt arse a l a vel oci dad de l a red de comuni caci ones y a l a carga
del servi dor. Se deben ut ilizar val ores pequeños para redes l ocal es y val ores
mayores si est á ut ili zando I nt ernet , especi al ment e si se conect a a ser vi dores muy
remot os.
El v al or por def ect o es 30 .

User Name
Nombre de usuari o a ut ili zar para aut ent i carse en el servi dor.

Si nt ax i s: & SMTPSessi on.User Name

Est á propi edad será i gnorada si l a propi edad Aut hent icat ion est á en 0.

MÉTODOS
Logi n
I ni ci a una sesi ón con un servi dor SMTP.
172

Si nt ax i s: &SMTPSessi on.Logi n

La sesi ón SMTP se i ni ci ar á con el ser v i dor i ndi cado en l a pr opi edad Host en
el puer t o i ndi cado en l a pr opi edad Por t . Se ut i l i zar án l os v al or es de l a
pr opi edad User Name y Passw or d par a l a aut ent i caci ón con el ser v i dor .

Logout
Fi naliza l a sesi ón con un servi dor SMTP.

Si nt ax i s: &SMTPSessi on.Logout

Send
Envía un mensaj e.

Si nt ax i s: & SMTPSessi on.Send( Message)

Not as:
- El parámet ro Message es de t i po MailMessage.

POP3Sessi on
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
At t achDi r Caráct er Lect ura/ Escri t ura
Count Numéri co Lect ura
Er rCode Numéri co Lect ura
Er rDescri pt i on Caráct er Lect ura
Er rDi spl ay Numéri co ( 0 | 1) Lect ura/ Escri t ura
Host Caráct er Lect ura/ Escri t ura
NewMessages Numéri co ( 0 | 1) Lect ura/ Escri t ura
Password Caráct er Escri t ura
Port Numéri co Lect ura/ Escri t ura
Ti meout Numéri co Lect ura/ Escri t ura
UserName Caráct er Lect ura/ Escri t ura


Mét odo Par ámet r os Ti po
Del et e ( ni nguno)
Logi n ( ni nguno)

Logout ( ni nguno)

Recei ve Message Mail Message
173

PROPI EDADES
At t achDi r
Di rect ori o de archi vos adj unt os.

Si nt ax i s: & POP3Sessi on.At t achDi r

Especi fi ca en qué di rect ori o se deben guardar l os archi vos adj unt os cuando se
ej ecut a el mét odo Recei ve. Si est a propi edad cont i ene una cadena vacía ( “ ” ) , no se
guardarán l os archi vos adj unt os.
El val or por defect o es l a cadena vacía ( “ ” ) .

Count
Cant i dad de mensaj es a reci bi r.

Si nt ax i s: & POP3Sessi on.Count

Ret or na l a cant i dad de mensaj es que cumpl en con l as condi ci ones de
aper t ur a de l a car pet a. Es deci r , si se abr i ó l a car pet a o l a sesi ón
especi f i cando que se r eci bi r án sol ament e l os mensaj es no l eídos ( medi ant e
l a pr opi edad New Messages) , r et or nar á l a cant i dad de mensaj es no l eídos,
mi ent r as que si se abr i ó l a car pet a especi f i cando que se r eci bi r án t odos l os
mensaj es, r et or nar á l a cant i dad t ot al de mensaj es.

Er r Code
Códi go de error de l a últ i ma operaci ón.

Si nt axi s: &POP3Sessi on.Err Code

Ver secci ón “ Códi gos y Mensaj es de Er r or ” en est e mi smo document o.

Er r Descr i pt i on
Mensaj e de er ror de l a últ i ma operaci ón. La l i st a de mensaj es se det all an en l a
propi edad Er rCode.

Si nt ax i s: & Er r or = & POP3Sessi on.Er r Descr i pt i on

Ver secci ón “ Códi gos y Mensaj es de Er ror” en est e mi smo document o.

Er r Di spl ay
I ndi ca si se despl egará o no mensaj es de err or .

Si nt ax i s: & POP3Sessi on.Er r Di spl ay

Especi fi ca si al ocurri r un er ror se despl egará un mensaj e advi rt i endo al usuari o con
el t ext o del er ror o no, según si Er rDisplay es 1 o 0 respect i vament e.
174
El valor por defect o es 0.

Not a:
- Est a propiedad no est á disponible en el generador C/ SQL.

Host
Di recci ón del servi dor POP3.

Si nt ax i s: &POP3Sessi on.Host

Puede especi fi carse t ant o el nombre del servi dor como su di recci ón I P.

New Messages
I ndi ca si se r eci bi rán solament e l os mensaj es nuevos o t odos l os mensaj es.

Si nt ax i s: & POP3Sessi on.New Messages

Si New Messages es 1 l os l l amados al mét odo Recei v e devol v er án
sol ament e l os mensaj es no l eídos de l a car pet a act ual . Si es 0, devol v er án
t odos l os mensaj es de l a car pet a.
El val or por defect o 0.

El v al or de est a pr opi edad t endr á ef ect o a par t i r del pr óx i mo l l amado al
mét odo Logi n.

Las i mpl ement aci ones más reci ent es de servi dor es POP3 no poseen el mecani smo
necesari o para el funci onami ent o correct o cuando est a propi edad t i ene val or 1. En
caso de que se haga una llamada al mét odo Logi n espci fi cando en la propi edad
Host un servi dor que no posea di cho mecani smo y est a propi edad t enga val or 1, se
produci rá el er ror 29

Passw or d
Cont raseña a ut i lizar para aut ent i carse en el servi dor.

Si nt ax i s: &POP3Sessi on.Passw or d

Por t
Puert o del ser vi dor POP3 en el Host .

Si nt ax i s: &POP3Sessi on.Por t

El val or por def ect o es 1 10, el puer t o nor mal ment e ut i l i zado por l os
ser v i dor es POP3.

Ti meout
Ti empo de espera máxi mo, en segundos, para esperar por una respuest a del
servi dor l uego de cada pedi do.
175

Si nt ax i s: & POP3Sessi on.Ti meout

Est e val or debe adapt arse a l a vel oci dad de l a red de comuni caci ones y a l a carga
del servi dor. Se deben ut ilizar val ores pequeños para redes l ocal es y val ores
mayores si est á ut ili zando I nt ernet , especi al ment e si se conect a a ser vi dores muy
remot os.
El v al or por def ect o es 30 .

User Name
Nombre de usuari o a ut ili zar para aut ent i carse en el servi dor.

Si nt ax i s: & SMTPSessi on.User Name


MÉTODOS
Del et e
Eli mi na del servi dor el últ i mo mensaj e que haya si do reci bi do medi ant e el mét odo
Receive.

Si nt ax i s: & POP3Sessi on.Del et e( )

El mensaj e se el i mi na defi ni t i vament e, y se real i za cuando se ej euct a el Logout .
Si no se ll amó al mét odo Receive o si el úl t imo ll amado no ret ornó un mensaj e
( debi do a un er r or por ej empl o) , l a ll amada a Delet e resul t ará en el err or 26.
Logi n
I ni ci a una sesi ón con un servi dor POP3.

Si nt ax i s: & POP3Sessi on.Logi n

La sesi ón POP3 se i ni ci ar á con el ser v i dor i ndi cado en l a pr opi edad Host en
el puer t o i ndi cado en l a pr opi edad Por t . Se ut i l i zar án l os v al or es de l a
pr opi edad User Name y Passw or d par a l a aut ent i f i caci ón con el ser v i dor .
Logout
Fi naliza l a sesi ón con un servi dor POP3.

Si nt ax i s: &POP3Sessi on.Logout
Recei v e
Reci be un mensaj e.

Si nt ax i s: & POP3Sessi on.Recei v e( Message)

Devuel ve el si gui ent e mensaj e en l a carpet a o sesi ón act ual .
Si el mensaj e t i ene ar chi v os adj unt os y se especi f i có l a pr opi edad
At t achDi r , est os se gr abar án aut omát i cament e a di sco.

176
Not a:
- El par ámet r o Message es de t i po MailMessage.


Mai l Message
Las propi edades di sponibl es para est e t i po de dat os son l as si gui ent es:

Pr opi edad Ti po Acceso
At t achment s St ri ngColl ect i on Lect ura
BCC Mail Reci pi ent Coll ect i on Lect ura
CC Mail Reci pi ent Coll ect i on Lect ura
Dat eRecei ved Dat eTi me Lect ura
Dat eSent Dat eTi me Lect ura
From Mail Reci pi ent Lect ura/ Escri t ura
HTMLText Caráct er Lect ura/ Escri t ura
Subj ect Caráct er Lect ura/ Escri t ura
Text Caráct er Lect ura/ Escri t ura
To Mail Reci pi ent Coll ect i on Lect ura

PROPI EDADES
At t achment s
Li st a de nombr es de ar chi vos adj unt os al mensaj e. Los el ement os de l a li st a deben
se separan medi ant e el caract er “ ; ” .
De no especi fi car una rut a compl et a, al envi ar un mensaj e l os archi vos adj unt os se
buscarán en el di rect ori o especi fi cado por l a propi edad At t achDir.

Si nt ax i s: & Message. At t achment s


Not a:
- Si se ut i l i za modo SMTP: En l a rut a de los archi vos adj unt os puede
ut ili zarse t ant o l a barra ( / ) como l a cont rabarra ( \ ) como separador de
di rect ori os. De est a manera se bri nda compat i bilidad ent re l os ambi ent es
UNI X y Wi ndows.

BCC
Li st a de dest i nat ari os ocul t os ( Blind Carbon Copy) de un mensaj e. Los el ement os
de l a li st a deben separarse medi ant e el caract er “ ; ” ( punt o y coma) .

Si nt ax i s: & Message. BCC
CC
Li st a de dest i nat ari os secundari os ( Carbon Copy) de un mensaj e. Los el ement os de
l a li st a deben separarse medi ant e el caract er “ ; ” .

Si nt ax i s: & Message. CC

177
Dat eRecei v ed
Fecha y hora en que fue r eci bi do el mensaj e por el servi dor.

Si nt ax i s: & Message. Dat eRecei ved

Dat eSent
Fecha y hora en que fue envi ado el mensaj e.

Si nt ax i s: & Message. Dat eSent

Fr om
Emi sor del mensaj e.

Si nt ax i s: &Message. Fr om


HTMLTex t
Cuerpo del mensaj e en for mat o HTML ( HyperText Mar kup Language) .

Si nt ax i s: & Message.HTMLTex t

Not as:
- MAPI : Est a propi edad no se soport a si se ut i liza modo MAPI .
- Out l ook : Si bi en est a propi edad se soport a en Out l ook, no es posi bl e
manej ar un mensaj e con cont eni do en t ext o si mpl e y HTML a l a vez. Se
t omará como cont eni do defi ni t i vo el úl t i mo que se asi gne. Al reci bi r un
mensaj e con cont eni do HTML l a propi edad Text cont endrá el mi smo t ext o
que l a propi edad HTMLText pero si n format o ( omi t i endo l os t ags del
l enguaj e HTML) .
- SMTP/ POP3: Es posi bl e manej ar mensaj es con cont eni do en t ext o si mpl e
y HTML a l a vez. De envi ar un mensaj e de est e t i po, el cli ent e que l o reci ba
most r ará si empr e que pueda el cont eni do HTML. Si el cli ent e no es capaz
que manej ar cont eni do HTML most rará el cont eni do en t ext o si mpl e.

Subj ect
Asunt o del mensaj e.

Si nt ax i s: & Message. Subj ect

Tex t
Cuerpo del mensaj e en for mat o de t ext o si mpl e.

Si nt ax i s: & Message.Tex t
To
Col ecci ón de dest i nat arios pri mari os del mensaj e.
178

Si nt ax i s: &Message.To


Mai l Reci pi ent
Las propi edades di sponibl es para est e t i po de dat os son l as si gui ent es:

Pr opi edad Ti po Acceso
Name Caráct er Lect ura/ Escri t ura
Adress Caráct er Lect ura/ Escri t ura

PROPI EDADES
Name
Nombr e del dest i nat ari o.

Si nt ax i s: & Reci pi ent . Name

Si no se i ndi ca un valor para l a propi edad Name, se copi a el cont eni do de l a
propi edad Address en est a propi edad.

Not a:
- Out l ook : No es posi bl e ut ilizar est a propi edad al reci bi r un correo para
l as propi edades To, CC, Bcc y Fr om, si se t rabaj a con Out l ook. Est o
si gni fi ca que no es posi bl e ut ilizar To. name, CC. name, Bcc. name, o
From.name en modo Out l ook.

Addr ess
Di recci ón de cor reo del dest i nat ari o.

Si nt ax i s: & Reci pi ent . Addr ess

Not a:
- Out l ook : No es posi bl e ut ilizar est a propi edad al reci bi r un correo para
l as propi edades To, CC, Bcc y Fr om, si se t rabaj a con Out l ook. Est o
si gni fi ca que no es posi bl e ut ilizar To. address, CC. address, Bcc. address,
From.addr ess en modo Out l ook.

Mai l Reci pi ent Col l ect i on
Las propi edades y mét odos di sponi bl es para est e t i po de dat os son l os si gui ent es:

Pr opi edad Ti po Acceso
Count Numéri co Lect ura


Mét odo Par ámet r os Ti po
Add Reci pi ent Mail Reci pi ent
179
Cl ear ( ni nguno)

I t em I ndex Numéri co
New Name
Address
Caráct er
Caráct er

PROPI EDADES
Count
Cant i dad de el ement os en l a col ecci ón.

Si nt ax i s: & Message( ...) . Count

MÉTODOS
Add
Agrega un obj et o de t i po MailRecipient a l a col ecci ón.

Si nt ax i s: & Message( ...) . Add( Reci pi ent )

El obj et o es copi ado y por ende si se modi fi can l as propi edades del obj et o
MailRecipient luego de llamar al mét odo Add, el el ement o dent r o de l a col ecci ón
segui rá t eni endo l as propi edades que t enía cuando se l l amó al mét odo Add.
Si el obj et o pasado por parámet ro t i ene en l a propi edad Addres l a cadena vacía, l a
ll amada al mét odo Add es i gnorada.

Si el obj et o pasado por parámet ro t i ene en l a propi edad Name l a cadena vacía, a l a
copi a que se creará en l a col ecci ón se l e asi gnará l a propi edad Name i gual a l a
propi edad Address.

Cl ear
Vacía l a col ecci ón. Todos l os el ement os de l a col ecci ón son eli mi nados.

Si nt ax i s: & Message( ...) . Cl ear ( )

I t em
Devuel ve un obj et o de t i po MailRecipient que est é al macenado en l a col ecci ón.

Si nt ax i s: & Message( ...) . I t em( I ndex )

I ndex debe est ar comprendi do ent re 1 y el val or de l a propi edad Count .

New
Devuel ve un obj et o de t i po MailRecipient que est é al macenado en l a col ecci ón.

Si nt ax i s: & Message( ...) . New ( Name, Addr ess)

180
Crea un nuevo obj et o de t i po MailRecipient dent ro de l a col ecci ón, en el nombre y
di recci ón especi fi cados en l os parámet ros Name y Address r espect i vament e.
Si el parámet ro Address es una cadena vacía, l a ll amada al mét odo New es
i gnorada.

Si el parámet ro Name es una cadena vacía, al nuevo obj et o que se cr eará en l a
colecci ón se le asignará la propiedad Name igual a la propiedad Addr ess.

St r i ngCol l ect i on

Pr opi edad Ti po Acceso
Count Numéri co Lect ura

Mét odo Par ámet r os Ti po
Add St ri ng Caráct er
Cl ear ( ni nguno)

I t em I ndex Numéri co

PROPI EDADES
Count
Cant i dad de el ement os en l a col ecci ón.

Si nt ax i s: & Message( ...) . Count

MÉTODOS
Add
Agrega un obj et o de t i po MailRecipient a l a col ecci ón.

Si nt ax i s: & Message( ...) . Add( St r i ng)

El obj et o es copi ado y por ende si se modi fi can l as propi edades del obj et o
MailRecipient luego de llamar al mét odo Add, el el ement o dent r o de l a col ecci ón
segui rá t eni endo l as propi edades que t enía cuando se l l amó al mét odo Add.
Si el parámet ro St ri ng es una cadena vacía, l a llamada al mét odo Add es i gnorada.

Cl ear
Vacía l a col ecci ón. Todos l os el ement os de l a col ecci ón son eli mi nados.

Si nt ax i s: & Message( ...) . Cl ear ( )

I t em
Devuel ve un obj et o de t i po MailRecipient que est é al macenado en l a col ecci ón.

181
Si nt ax i s: & Message( ...) . I t em( I ndex )

I ndex debe est ar comprendi do ent re 1 y el val or de l a propi edad Count .





Códi gos y Mensaj es de Er r or
Los val or es posi bl es son: ( O= Out l ook Sessi on,
I = SMTPSessi on/ POP3Sessi on, M= MAPI Sessi on) :

Códi go Mensaj e Modos
0 Ok O/ I / M
1 Al r eady l ogged i n I / M
2 Not l ogged i n I / M
3 Coul d not compl et e l ogi n I / M
4 Coul d not st ar t Out l ook . O
5 Coul d not open f ol der O/ M
6 I nv al i d sender name I
7 I nv al i d sender addr ess I
8 I nv al i d user name I
9 I nv al i d passw or d I
10 Coul d not send message O/ I / M
11 No messages t o r ecei v e O/ I / M
12 Coul d not del et e message I
13 No mai n r eci pi ent speci f i ed O/ I / M
14 I nv al i d r eci pi ent O/ I / M
15 I nv al i d at t achment O/ I / M
16 Coul d not sav e at t achment O/ I / M
17 I nv al i d Aut hent i cat i on v al ue I
18 Not enough memor y I
19 Connect i on l ost I
20 Ti meout ex ceeded I
21 Memor y al l ocat i on er r or I
22 Er r or r ecei v i ng message O/ M
23 The ser ver does not r ecogni ze any of
t he suppor t ed aut hent i cat i on
met hods
I
24 Aut hent i cat i on er r or I
25 User or passw or d r ef used I
26 No cur r ent message O/ I / M
27 I nv al i d New Messages val ue O/ I / M
28 I nv al i d Edi t Wi ndow v al ue O/ M
29 POP3 ser ver does not suppor t
New Messages = 1
I

182
Consi der aci ones Gener al es
- Los mét odos descri t os ant eri orment e fuer on i mpl ement ados de forma t al
que devuel ven ( como si fueran funci ones) el códi go de er ror, por l o que es
posi bl e ll amarl os como f unci ones.
Por ej empl o:
&Err = &Out l ookSessi on. Send( Mensaj e)

Ej empl os
A cont i nuaci ón se present an ej empl os de Event os en GeneXus que permi t en el
envío y recepci ón de mail s con l os di ferent es t i pos de dat os ( Out l ookSessi on,
MAPI Sessi on y SMTPSessi on/ POP3Sessi on) .

Out l ook Sessi on
La vari ables &Envio y &Recibo deben est ar defi ni das de t i po Mai l Message,
&Mensaj e debe ser de t i po Out l ook Sessi on y l as vari abl es &Di rTo y &Di rCc deben
ser de t i po Mai l Reci pi ent .

Event ' Envi ar'
&Di rTo. Address = ‘i sidoro@cañones. com
&Di rTo. Name = ‘I si dor o Cañones’
&Envi o. To. Cl ear( )
&Envi o. To. Add( &Di rTo)

&Di rCc. Address = ‘cachorra@bazuka. com
&Di rCc. Name = ‘Cachorr a Bazuka’
&Envi o.Cc.Cl ear( )
&Envi o. Cc. Add( &Di rCc)

&Envi o. Subj ect = ‘Te i nvi t o a mi fi est i t a’
&Envi o. HTMLText = ‘El próxi mo Sábado f est ej o mi cumpl eaños, por favor no
fal t es. ’

&Mensaj e. Edi t wi ndow = 1
/ / Si se ut ili za Out l ook no es necesi t a realizar el l ogi n, di rect ament e se usa el
mét odo Send

&Mensaj e.Send( &envi o)
i f &Mensaj e. Er rCode < > 0
msg( &Mensaj e. Er r Descri pt i on)
endi f
EndEvent

Event ' Reci bi r'
&Mensaj e. NewMessages = 1
&Mensaj e. ChangeFol der( " I nbox")
&Mensaj e.At t achdi r = ‘d: \ ar chi vos’

/ / Reci bo el mensaj e
183
&Mensaj e.Recei ve( &Reci bo)
&Mensaj e. Mar kAsRead( )
&Fr om = &Reci bo.Fr om.Address
&Sub = &Reci bo. Subj ect
&Text oht ml = &Reci bo. HTMLText
EndEvent

MAPI Sessi on
La vari ables &Envio y &Recibo deben est ar defi ni das de t i po Mai l Message,
&Mensaj e debe ser de t i po MAPI Sessi on y las vari ables &DirTo y &DirCc deben ser
de t i po Mai l Reci pi ent .

Event ' Envi ar'
&Di rTo. Address = ‘i sidoro@cañones. com
&Di rTo. Name = ‘I si dor o Cañones’
&Envi o. To. Cl ear( )
&Envi o. To. Add( &Di rTo)

&Di rCc. Address = ‘cachorra@bazuka. com
&Di rCc. Name = ‘Cachorr a Bazuka’
&Envi o.Cc.Cl ear( )
&Envi o. Cc. Add( &Di rCc)

&Envi o. Subj ect = ‘Te i nvi t o a mi fi est i t a’
&Envi o. HTMLText = ‘El próxi mo Sábado f est ej o mi cumpl eaños, por favor no
fal t es. ’

/ / En modo ' M' , se debe r eal i zar el l ogin, envi ar el mensaj e, y hacer el l ogout
&Mensaj e. Pr ofile = ‘Mi perfil’
&Mensaj e. Edi t wi ndow = 1

&Mensaj e. Logi n( )
&Mensaj e.Send( &Envi o)
i f &Mensaj e. Er rCode < > 0
msg( &Mensaj e. Er r Descri pt i on)
endi f

&Mensaj e. Logout ( )
EndEvent

Event ' Reci bi r'
&Mensaj e.At t achdi r = ‘d: \ ar chi vos’
&Mensaj e. NewMessages = 1
&Mensaj e. Pr ofile = ‘Mi perfil’

&Mensaj e. Logi n( )
&Mensaj e.Recei ve( &Reci bo)
&Mensaj e. Mar kAsRead( )
&Sub = &Reci bo. Subj ect
&Text oht ml = &Reci bo. HTMLText
&Fr om = &Reci bo.Fr om.Address
184
&Fechaenv = &Reci bo. Dat eSent
&Fechar ec = &Reci bo. Dat eRecei ved
&Mensaj e. Logout ( )
EndEvent

SMTPSessi on/ POP3Sessi on
La vari ables &Envio y &Recibo deben est ar defi ni das de t i po Mai l Message,
&MensSMTP debe ser de t i po SMTPSessi on y &MensPOP3 de t i po POP3Sessi on y
las vari ables &DirTo y &DirCc deben ser de t i po Mai l Reci pi ent .

Event ' Envi ar'
&Di rTo. Address = ‘i sidoro@cañones. com
&Di rTo. Name = ‘I si dor o Cañones’
&Envi o. To. Cl ear( )
&Envi o. To. Add( &Di rTo)

&Di rCc. Address = ‘cachorra@bazuka. com
&Di rCc. Name = ‘Cachorr a Bazuka’
&Envi o.Cc.Cl ear( )
&Envi o. Cc. Add( &Di rCc)

&Envi o. Subj ect = ‘Te i nvi t o a mi fi est i t a’
&Envi o. HTMLText = ‘El próxi mo Sábado f est ej o mi cumpl eaños, por favor no
fal t es. ’

/ / El servi dor SMTP que se ut ili za en est e caso necesi t a aut ent i caci ón.
&MensSMTP. Host = ‘Ser vi dor SMTP’
&MensSMTP.Sender . Name = ‘Pat oruzu’
&MensSMTP. Sender . Address = ‘pat oruzu@hot mail . com’
&MensSMTP. Aut hent icat i on = 1
&MensSMTP. UserName = ‘Mi usuari o’
&MensSMTP. Passwor d = ‘Mi cont raseña’

&MensSMTP. Logi n( )
&MensSMTP. Send( &envi o)
i f &MensSMTP. ErrCode < > 0
msg( &MensSMTP. Er rDescri pt i on)
endi f

&MensSMTP. Logout ( )

EndEvent

Event ' Reci bi r'
&MensPOP3. Host = ‘Ser vi dor POP3’
&MensPOP3.UserName = ‘Mi usuari o’
&MensPOP3. Passwor d = &cont ra
&MensPOP3. NewMessages = 1

&MensPOP3. Logi n( )
&MensPOP3. Recei ve( &Reci bo)
185
&Fr om = &Reci bo.Fr om.Address
&Fechaenv = &Reci bo. Dat eSent
&Fechar ec = &Reci bo. Dat eRecei ved
&Sub = &Reci bo. Subj ect
&Text oht ml = &Reci bo. HTMLText
EndEvent

Compat i bi l i dad con ver si ones ant er i or es de GeneXus
Las funci ones de GXoffi ce que exi st ían hast a la versi ón 7. 0 de GeneXs, se si guen
soport ando, el generador funci ona de forma t al que mapea i nt ernament e est as
funci ones para que ut i licen est os nuevos t i pos de dat os.
Est as funci ones se soport an uni cament e por compat i bili dad, por l o que no se
recomi enda hacer nuevas i mpl ement aci ones con l as mi smas pues l as nuevas
funci onali dades no serán i mpl ement adas en di chas funci ones.

Tipo de Dat os Ht t pClient , Ht t pResponse y
Ht t pRequest
I nt r oducci ón
Est a funci onali dad provee a l os usuari os GeneXus una forma de poder ut ili zar el
prot ocol o HTTP en sus programas. Para el lo se crearon l os t i pos de dat os
Ht t pCli ent , Ht t pResponse y Ht t pRequest .

Al cance
Obj et os: Ht t pCl i ent ( Transacci ones, Work Panel s, Web Transact i ons, Web Panel s,
Report es, Pr ocedi mi ent os) , Ht t pResponse y Ht t pRequest ( Procedi mi ent os y
Report es con el val or ht t p en l a propi edad cal l prot ocol , Web Panel s y
WebTransact i ons) .
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox– C/ SQL – C# .
I nt erfaces: Web Form, Wi n Form.

Descr i pci ón
Los t res t i pos de dat os que se defi nen para i nt eract uar con ht t p son:

Ht t pCl i ent
Per mit e armar un r equest , envi arlo a una URL y leer los r esult ados.

Ht t pResponse y Ht t pRequest
Per mi t en l eer l os dat os del r equest y grabar el response. Son obj et os di sponi bl es
sol o en WebPr ocs.

186
Ht t pCl i ent
Est e obj et o refl ej a una conexi ón ht t p. Puede usarse desde cual qui er obj et o
GeneXus.

PROPI EDADES:
Host
Defi ne el nombre del host .
Tipo- St ring

Por t
Defi ne el puert o del host .
Tipo- St ring

Secur e
I ndi ca si el prot ocol o es ht t p o ht t ps.
Tipo- Bool ean

Ti meout
Det ermi na el Ti meout de l a conexi ón.
Tipo- I nt eger

BaseURL
I ndi ca l a URL base de l os request que se hagan al host .
Tipo- St ring

St at usCode
Ret orna el códi go de error HTTP.
Tipo- I nt eger

ReasonLi ne
Ret orna el t ext o del error HTTP.
Tipo- St ring

Er r Code
Ret orna si ocurri ó al gún error en al gún comando, en cuyo caso ret orna un
val or di st int o de cero.
Tipo- I nt eger

Er r Descr i pt i on
Ret orna el menaj e del error si ocurri ó al guno en al gún comando.
Tipo- St ring

Basi c y Di gest
Son const ant es que det ermi nan un t ipo de aut ent i caci ón. Se ut ili zan en el
mét odo AddAut hent i cat ion.
Basi c= 0 : Para aut ent i ficar se envía el usuari o y password si n encri pt ar.
Di gest = 1: Para aut ent i ficar se envía el usuari o y password encri pt ados.

Pr ox y Host y Pr ox y Por t
Permi t en especi fi car un proxy ht t p. En ambi ent e wi ndows se ut ili za
187
aut omát i cament e el que est a confi gurado en l a máquina.
ProxyHost - St ring
ProxyPort - I nt eger


MÉTODOS
AddHeader ( < Name> , < Val ue> )
Agrega un header con el val or dado.
Ej empl o: AddHeader( “ User- Agent ” , “ GeneXus” )
< Name> - St ring
< Value> - St ring

AddVar i abl e( < Name> , < Val ue> )
Agrega una vari abl e al ‘for m’.
Ej empl o: AddVariable( “ CliCod” , &CliCod)
< Name> - St ring
< Value> - St ring

AddSt r i ng( < Val ue> )
Agrega el cont eni do del st ri ng al buffer de dat os a envi ar.
< Value> - St ring

AddFi l e( < Val ue> )
Agrega el cont eni do del archi vo al buffer de dat os a envi ar.
< Value> - St ring

Ex ecut e( < Met hod> , < URL> )
Ej ecut a un mét odo en l a URL defi ni da. Se pondría sol o l a part e fi nal de l a
URL
Ej empl o: execut e( "POST", "/ servl et / awebproc" )
< Met hod> - St ring
< URL> - St ring

ToSt r i ng( )
Ret orna un St ring con t odo el ‘cuerpo’ del response.

ToFi l e( < Fi l eName> )
Graba en un archi vo el cont eni do del st r eam.
< FileName> - St ring

Get Header ( < Name> , < Value> )
Ret orna en < Val ue> el val or del header convert i do al t i po de l a vari able.
< Name> - St ring
< Value> - Anyt ype

AddAut hent i cat i on( < Met hod> , < Real m> , < User> , < Password> )
Se aut ent i fi ca con < User> y < Password> al domi ni o < Real m> ut ilizando el
t i po de aut ent i caci ón < Met hod>
< Met hod> - I nt eger ( Pueden ut ilizarse las propi edades Basic y Digest )
< Realm> - St ring
< User> - St ring
188
< Password> - St ring

Ht t pRequest
Est e obj et o permi t e l eer el request ht t p. Puede i nst anci arse sol o en el cont ext o de
un WebProc.

PROPI EDADES
Met hod
Ret orna el mét odo HTTP.
Tipo- St ring

Ser ver Host
Ret orna el nombre del servi dor
Tipo- St ring

Ser ver Por t
Ret orna el puert o en el servi dor
Tipo- I nt eger

Secur e
I ndi ca si se est a ut ili zando HTTPS. Si el valor ret ornado es 1, se est a
ut ili zando HTTPS; si es 0, se est a ut i lizando ht t p.
Tipo- I nt eger

Scr i pt Pat h
Ret orna l a porci ón de URL correspondi ent e el nombre del di rect ori o vi rt ual .
Tipo- St ring

Scr i pt Name
Ret orna el nombre del obj et o con l a ext ensi ón corr espondi ent e que se est a
ej ecut ando, t al como aparece en l a URL
Tipo- St ring

Ref er r er
Ret orna l a URL del ll amador
Tipo- St ring

Quer y St r i ng
Ret orna l a porci ón de l a URL que est á después del si gno “ ?” ; o sea l os
parámet ros.
Tipo- St ring

Remot eAddr ess
Devuel ve l a di recci ón del cli ent e.
Tipo- St ring

Er r Code
Ret orna si ocurri ó al gún error en al gún comando, en cuyo caso ret orna un
val or di st int o de cero.
Tipo- I nt eger
189

Er r Descr pt i on
Ret orna el menaj e del error si ocurri ó al guno en al gún comando.
Tipo- St ring

MÉTODOS

Get Var i abl e( < Vari abl e> )
Retorna en un String el valor con el que viene cargada la
<Variable> en el post.
<Variable>- String
GetHeader(<Header>)
Retorna un String con el valor del header <Header>.
< Header> - St ri ng
ToString()
Retorna un String con todo el ‘cuerpo’ del request.
ToFile(<FileName>)
Graba en un archi vo el cont eni do del st r eam.
<FileName>- String
Ht t pResponse
Est e obj et o permi t e escri bi r el response ht t p. Puede i nst anci arse sol o en el cont ext o
de un WebProc.

PROPI EDADES

Er r Code
Ret orna si ocurri ó al gún error en al gún comando, en cuyo caso ret orna un
val or di st int o de cero.
Tipo- I nt eger

Er r Descr pt i on
Ret orna el menaj e del error si ocurri ó al guno en al gún comando.
Tipo- St ring

METODOS
AddHeader ( < Name> , < Val ue> )
Agrega un header con el val or dado.
Ej empl o: AddHeader( “ User- Agent ” , “ GeneXus” )
< Name> - St ring
< Value> - St ring

AddSt r i ng( < Val ue> )
Agrega el cont eni do del st ri ng al buffer de dat os a envi ar.
< Value> - St ring
190

AddFi l e( < Val ue> )
Agrega el cont eni do del archi vo al buffer de dat os a envi ar.
< Value> - St ring

I nt er acci ón con XML
Est os obj et os permi t en l a i nt eracci ón con l os obj et os XMLReader y XMLWri t er. Para
ell o exi st en l os si gui ent es mét odos:

XMLReader .openRequest ( Ht t pRequest )
Se ut ili za en un WebPr oc para l eer un xml que vi ene en el body del ht t p request .

XMLReader .openResponse( Ht t pCl i ent )
Se ut ili za en cual quier obj et o para leer como XML lo que devolvió un request .

XMLWr i t er .openRequest ( Ht t pCl i ent )
Se ut ili za para envi ar un XML en el body de un ht t p request .

XMLWr i t er .openResponse( Ht t pResponse)
Se ut ili za en un WebProc para escri bi r un xml que se ret ornara en el body del ht t p
response.

Ej empl o
Est e ej empl o muest ra como un obj et o GeneXus ll ama a ot ro vía ht t p, pasándol e
parámet ros en un XML y reci bi endo l os mi smos t ambi én en un XML.

El XML a envi ar t i ene l a for ma

< paramet ers>
< a> val or< / a>
< b> val or< / b>
< / paramet er s>

El XML que se devuel ve es i gual , con l os val ores de ‘A’ y ‘B’ modi fi cados.


El pr ogr ama ‘ cl i ent e’ ser ía:

&Cli ent de t i po Ht t pCl i ent
&Wri t er de t i po XMLWri t er
&Reader de t i po XMLReader

/ / Det ermi no el host y el puert o a donde hacer el request
&cl i ent . host = "l ocal host "
&cl i ent . port = 88

/ / Agrego el XML al request
&wri t er. openRequest ( &cli ent )
&wri t er. Wri t eSt art El ement ( " paramet ers")
191
&wri t er . Writ eElement ( "a", &A)
&wri t er . Writ eElement ( "b", &B)
&wri t er . Wri t eEndEl ement ( )
&wri t er. cl ose( )

/ / Hago el POST al webproc
&cl i ent . execut e( "POST", "/ servl et / awebproc")

/ / Leo el XML que devuel ve y l o cargo en l as var i abl es i nt ernas

&r eader. openResponse( &cl i ent )
&r eader. read( )

&r eader. read( )
&a = val ( &reader . val ue)

&r eader. read( )
&b = val ( &reader . val ue)

&r eader. cl ose( )


El pr ogr ama ‘ ser v i dor ’ ser i a el si gui ent e WebPr oc:

&Request de t i po Ht t pRequest
&Response de t i po Ht t pResponse
&Wri t er de t i po XMLWri t er
&Reader de t i po XMLReader

/ / Leo l os parámet ros del XML
&r eader. openRequest ( &Request )
&r eader. read( )
&r eader. read( )
&a = val ( &reader . val ue)
&r eader. read( )
&b = val ( &reader . val ue)
&r eader. cl ose( )

/ / Le sumo uno a cada val or
&a = &a + 1
&b = &b + 1

/ / Grabo l os parámet ros en el response

&wri t er. openResponse( &Response)
&wri t er. Wri t eSt art El ement ( " paramet ers")
&wri t er. Wri t eEl ement ( "a", &A)
&wri t er. Wri t eEl ement ( "b", &B)
&wri t er . Wri t eEndEl ement ( )
&wri t er. cl ose( )

192
Consi der aci ones par a el gener ador Java
En el caso de que se ej ecut e el mot or de ser vl et en Wi ndows, l a apli cación obt endrá
aut omát i cament e l a confi guraci ón del proxy ht t p y l a li st a de host s para l os que no
se debe ut ili zar el proxy.

En caso de que se ej ecut e en ot ra pl at aforma, es necesari o especi ficar el proxy
como una ‘Syst em Propert y’ desde l a línea de comandos del i nt érpret e, por ej :

j ava - Dht t p. proxyHost = your. proxy. com - Dht t p. proxyPort = XX < mai ncl ass>

Consi der aci ones par a el gener ador C/ SQL
La propi edad secure del t i po de dat os HTTPCli ent en el generador C/ SQL sol o puede
ser ut ili zada en cli ent es Mi crosoft .

193
Funci ones
Funciones est ándar
I nt r oducci ón
A part i r de l a versi ón 7. 5 de GeneXus t odas funci ones soport adas por GeneXus
pasan a ser funci ones est ándar , por más que l as mi smas sól o est én di sponibl es
para al gunos generadores.

Hast a ahora si una funci ón
1
no est aba i mpl ement ada para t odos l os generadores no
se consi deraba como est ándar y para poder sal varl a y especi fi carla se debería
modi fi car l a preferenci a “ Funct i on” al val or “ Allow non- st andat d funct ion on savi ng”
y “ All ow non- st andat d funct i on when speci fyi ng” en Diseño y en
Prot ot i po/ Producci ón respect i vament e.
Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Report es, Procedimient os.
Lenguaj es: Cobol , RPG, Vi sual FoxPro, Vi sual Basi c, Java, C/ SQL, C#
I nt erfaces: Web, Wi n.
Descr i pci ón
Todas aquell as funci ones
1
que est én i mpl ement adas para al gún generador de
GeneXus se denomi na Funci ones Est ándar y l as mi smas se cl asi fi can en:

Nor mal es: Funci ones que exi st en para t odos l os generadores.
Ej empl o: YMDTOD, GXMLi nes.
No Por t abl es: Funci ones que exi st en sol o para al gunos generadores.
Ej empl o: Wri t eRegKey, funci ones para manej o de t ext o: df w y dfr.
Di scont i nuadas ( Depr ecat ed) : Funci ones para l as cual es exi st e ot ra
nueva que l a sust i t uye, por ej empl o: XTOD, UDF.

Las mi smas se di ferencian con di st i nt os col ores en el edi t or GeneXus. Las Normal es
aparecen en Marr ón, l as No Port abl es en Roj o y l as Di scont inuadas en Marr ón cl aro.

Para poder grabar funci ones NO est ándar será necesari o modi fi car l a
pref erence/ propi edad “ Funct i on” , ya sea a ni vel de model o u obj et o ( est o últ i mo es
posi bl e a part i r de l a versi ón 7. 5) . De l o cont rari o aparecerá el mensaj e “ Er ror: Not
vali d funct i on” al sal var o especi fi car el obj et o.


1
Al habl ar de funci ones en est e document o nos referi mos t ant o a l as funci ones
propi ament e di chas como a l as propi edades, mét odos y event os, de cont rol es
soport ados por GeneXus.


194
Funcion FileExist ( )
I nt r oducci ón
El obj et i vo de est a funci ón es permi t i r veri fi car l a exi st enci a de un archi vo, en una
ci ert a ubi caci ón.

Al cance
Obj et os : Transacci ones, WorkPanel s, WebPanel s, Procedi mi ent os, Report es
Lenguaj es: C/ SQL, Java, Vi sual Basi c y Vi sual FoxPro
I nt erface: Wi n, Web

Descr i pci ón
Est a funci ón reci be un st ri ng como parámet ro con el cami no y nombre del archi vo a
veri fi car y r et orna un 1 en caso de éxi t o y 0 en ot r o caso.

La búsqueda del archi vo se r eali za en el equi po donde est a ej ecut ando el programa
que i nvoca a est a funci ón.
Si es usada en Web obj ect s, se buscará en el Ser vi dor Web. Para el rest o de l os
obj et os en el caso de C/ SQL y Java, se real izará l a búsqueda en el servi dor de
procesos.

Si nt axi s:

&r es = FI LEEXI ST( &archi vo)

Si endo:
- &archi vo, un st ri ng con el nombre y cami no del archi vo
- &r es, un numéri co que r et orna 1 en caso de éxi t o y 0 en caso cont rari o.
Ej empl o
Cami no rel at i vo:

&ar chi vo = “ mi sdoc\ docu. doc”
&r es = FI LEEXI ST( &archi vo)

El camino rel at i vo se t oma a part i r del di rect ori o por defect o donde se encuent ra el
programa. En el caso de obj et os C/ SQL y Java se recuerda que el di rect ori o se
consi dera en el servi dor de procesos y no en l a est aci ón de t rabaj o.

En el caso de Web Obj ect s, el di rect ori o l o det ermi na el Web Server, por l o que
normal ment e será conveni ent e usar cami nos absol ut os.

El caso &archi vo = “ C: \ mi sdoc\ docu. doc” t ambi én es de cami no rel at i vo ya que
depende de l a maqui na donde ej ecut e el programa. Por ej , si es un web panel
195
buscara el archi vo docu.doc en el di sco C del Web Server, mi ent ras que si se ut ili za
en un pr ocedi mi ent o VB será el di sco C de l a est aci ón de t rabaj o.

Cami no absol ut o:

&ar chi vo = “ \ \ ser ver\ c\ mi sdoc\ docu. doc”
&r es = FI LEEXI ST( &archi vo)

Not a: Es necesari o t ener acceso de l ect ura sobre l os archi vos especi fi cados en el
cami no.

Función Delet eFile
I nt r oducci ón
Se impl ement ó la función DELETEFI LE, la cual permit e bor rar un archivo.
Al cance
Obj et os: Procedi mi ent os, Report es, Transacci ones, Web panel s, Work panel s
Generadores: C/ SQL – JAVA – VB – VFP – C#
I nt erfaces: Web y Wi n

Descr i pci ón
Si nt axis: &var = delet ef ile( &filename)

&var N( 1) Devuel ve el éxi t o ( 1) o no ( 0) de l a ej ecuci ón de l a funci ón.
&fi l ename C( X) Parámet ro que i ndi ca pat h y nombre del archi vo que se
desea borrar. Tener en cuent a que est e pat h debe ser
absol ut o para el l ugar donde l a apli caci ón est e corri endo
est a funci ón.

Ej empl o
&fi l ename= “ c: \ Temp\ report . gxr”
&var = del et efil e( &fil ename)

Funciones de lect ura y escrit ura del r egist ro de
Windows
I nt r oducci ón
A part i r de l a ver si ón 7. 5, se i ncl uyen funci ones que permi t en escri bi r y l eer
196
i nformaci ón en el r egi st ro de Wi ndows desde GeneXus.

Al cance
Obj et os: Transacci ones, Workpanel s, Webpanel s, Procedi mi ent os y Report es.
Lenguaj es: Vi sual Basi c, Vi sual FoxPr o

Descr i pci ón
Permi t en t ener un manej o avanzado del regi st ro de Wi ndows, por eso se
recomi enda ut ili zarl as con pr ecauci ón.

Al gunos usos de est as funci ones serían, poder guardar confi guraci ón del usuari o
conect ado, o pref er enci as de al guna apli caci ón. Así como t ambi én poder obt ener l a
ubicación del di rect orio t emporal de la máquina, o el idioma del si st ema operat ivo.

En part i cul ar, l a funci ón que per mi t e escri bi r en el regi st r o de Wi ndows, se puede
ut ili zar para guardar l a informaci ón de l a ubi caci ón de l a base de dat os l ocal de una
apli caci ón GeneXus, que l uego se accederá con l a Keyword RegKey ( est e mét odo es
el que sust i t uye al archi vo con ext ensi ón I NI para i ndi car l a ubi caci ón de l a base de
dat os l ocal ) .

Funci ones
WRI TEREGKEY
Per mit e ingresar información en el r egi st ro de Wi ndows.

Si nt ax i s: & Ret = Wr i t eRegKey( & Pat h, & Val ue)


&Pat h Es el cami no donde se va a guardar el val or.
Es de t i po caráct er .
&Val ue Es el val or a confi gurar en el &Pat h especi fi cado, t ambi én es de
t i po caráct er.
&Ret Es el valor devuel t o por la función luego de r ealizar la operación.
Si el val or devuel t o es 0, si gni fi ca que no hubo er rores, si es
di ferent e de 0 es porque hubo er r or es.
Est a vari abl e es de t i po numéri co.


READREGKEY
Per mit e leer información del regi st ro de Wi ndows.

Si nt ax i s: & St r i ng = ReadRegKey( & Pat h)


&Pat h Cami no desde donde se desea obt ener el val or.
197
Es de t i po caráct er .
&St ri ng Val or al macenado en el &Pat h especi fi cado.
Es de t i po caráct er .


Consi der aci ones Gener al es
• No es posi bl e grabar cual qui er secci ón del regi st ro de Wi ndows, sól o se
permi t en grabar val ores baj o l as si gui ent es carpet as:
HKEY_LOCAL_MACHI NE\ Soft ware
HKEY_USERS\ Soft ware
HKEY_CURRENT_CONFI G\ Soft ware

• En Wi ndows NT y Wi ndows 2000 es necesari o t ener permi sos para act uali zar
HKEY_CURRENT_CONFI G y HKEY_LOCAL_MACHINE

Ej empl o
El si gui ent e ej empl o muest ra el uso de est as funci ones desde GeneXus.

Event Start
&path = 'HKEY_LOCAL_MACHINE\Software\Empresa'
&Value = 'C:\Program Files\Aplicacion'
EndEvent // Start

Event 'Grabar'
&Ret = WriteRegKey(&Path, &Value)
EndEvent // 'grabar'

Event 'Leer'
&String = ReadRegKey(&Path)
EndEvent // Enter


En este ejemplo se crea un nuevo String Value debajo de la clave
‘HKEY_LOCAL_MACHINE\Software’, de nombre ‘Empresa’ y el valor asociado será ‘C:\Program
Files\Aplicación’.

Funciones de Encript ación
I nt r oducci ón
En al gunos casos es necesari o t ener i nformaci ón segura en l as apli caci ones no Web,
por l o que se necesi t a t ener f unci ones de encr i pt aci ón que puedan ser ut i lizadas
en cual qui er obj et o GeneXus.

Para est o, se i mpl ement aron funci ones de encr i pt aci ón que pueden ser usadas en
cual qui er obj et o GeneXus, para encri pt ar y desencri pt ar i nformaci ón.
198

Al cance
Obj et os: Transacciones, Work Panels, Web Panels, Procedimient os, Report es
Lenguaj es: C/ SQL, Java, Vi sual Basi c, Vi sual FoxPro, C#
I nt erfaces: Web, Wi n

Descr i pci ón
Las funci ones que se i mpl ement aron son l as si gui ent es:

Get Encr y pt i onKey
Est a funci ón genera una nueva cl ave de encri pt aci ón de hast a 32 caract er es de
l argo.
Se ut ili za para i ni ci alizar l a encri pt aci ón.


Si nt ax i s: & Res = Get Encr ypt i onKey( )


&Res Caráct er Es el val or de l a cl ave que se ut ili zará para l a encri pt aci ón.
Para generar una nueva cl ave se debe ej ecut ar l a funci ón
nuevament e.

Encr y pt 64
Encri pt a el val or reci bi do como parámet ro, ut ilizando l a cl ave i ndi cada.

Si nt ax i s: & Res = Encr ypt 64 ( & Tex t o, & Cl av e)


&Res Caráct er Es el resul t ado de l a encri pt aci ón del parámet ro ut ilizando l a cl ave
generada por l a funci ón.
&Text o Caráct er Parámet r o a ser encri pt ado.
&Cl ave Caráct er Cl ave que se ut ili zará para l a encri pt aci ón, generada por l a funci ón
Get Encrypt i onKey( ) .

Decr y pt 64
Desencri pt a el val or reci bi do en el pri mer parámet ro, ut i lizando l a cl ave i ndi cada.

Si nt ax i s: & Res = Decr ypt 64 ( & Tex t o, & Cl av e)


&Res Caráct er Es el resul t ado de l a desencri pt aci ón.
&Text o Caráct er Parámet ro a ser desencri pt ado.
&Cl ave Caráct er Cl ave que se ut ili zará para l a desencript ación, generada por l a
199
funci ón Get Encrypt i onKey( ) .


Consi der aci ones gener al es
• Si empre se debe t rabaj ar con cl aves generadas por l a funci ón
Get Encr ypt i onKey, no se puede ut ili zar cual qui er val or para l a cl ave.
Las cl aves que se deben ut ilizar para l a encri pt aci ón deben ser números
Hexadeci males, de un largo det erminado y en lo posi bl e al eat ori as. Por est a
razón, dado que el al gori t mo es públi co, l a fort aleza de est a i mpl ement aci ón
est á en l a cl ave por l o que se recomi enda fuert ement e ut i lizar est a función
para generar l as cl aves, ya que garant i za un ni vel de seguri dad mayor.
• El val or devuel t o por l a funci ón Encr y pt 64 es codi fi cado en Base64. El l argo
del val or devuel t o es el l argo del t ext o aj ust ado a un múl t i pl o de 16 byt es
( por ej empl o, si el t ext o t i ene l argo 1, se aj ust a a l argo 16) , mul t i pli cado por
4 di vi di do 3.
• Tener en cuent a que l a cl ave para encri pt ar y desencri pt ar debe ser l a
mi sma, por eso si se encri pt a al gún parámet ro y se guarda en una base de
dat os por ej empl o, para ser ut i lizado pasado un t i empo, t ambi én se debe
guardar l a cl ave, porque para reali zar l a desencri pt aci ón se debe ut ilizar l a
mi sma cl ave.
• Las funci ones est án basadas en el al gori t mo ' TwoFi sh'
( ht t p: / / www. count erpane. com/ t wofi sh. ht ml ) y son l as mi smas que se usan
para el manej o de parámet ros encri pt ados en l os Web Panel s.


Ej empl os
Est as funci ones pueden ser út il es en el caso que se qui era guardar i nformaci ón
encri pt ada en l a base de dat os.
En est e caso se pueden ut ili zar l as funci ones de l a sigui ent e forma:

Se puede t ener un procedi mi ent o que encri pt e la i nformaci ón ant es de insert arl a en
l a base de dat os.

Procedi mi ent o
. . . . . . . . .
&Cl ave = Get Encrypt i onKey( ) / / Genera l a cl ave de encri pt aci ón.
&Var1 = Encr ypt 64( &I nf o, &Clave) / / Devuel ve la encript aci ón de la
i nformaci ón, ut ili zando la cl ave generada
ant eri orment e, est e sería el val or que se
guarda en l a base de dat os.

/ / I nserci ón del regi st ro en l a base de dat os.
New
. . . .
Cl ave = &Cl ave
I nf o = &Var1
EndNew

200
Cuando se necesi t e el val or ori ginal de l a informaci ón se debe obt ener de l a
si gui ent e forma:

&Cl ave = Cl ave / / Se obt i ene l a cl ave con l a que se
real i zó l a encri pt aci ón
&Var2 = Decrypt 64( I nfo, &Cl ave) / / Se desencri pt a l a i nformaci ón
ut ili zando l a mi sma cl ave que se ut ilizó
para encri pt ar


En &Var2 se t endrá el valor original del at ri but o I nf o.

Función Sleep
I nt r oducci ón
Se i mpl ement ó l a función SLEEP. Permi t e hacer una pausa por una det ermi nada
cant i dad de segundos en l a ej ecuci ón de un programa.
Al cance
Obj et os: Procedi mi ent os, Report es, Transacci ones, Web panel s, Work panel s
Generadores: C/ SQL – VB – JAVA – VFP – C#
I nt erfaces: Web y Wi n

Descr i pci ón
Si nt axi s: &var = sl eep( < segundos> )
< segundos> puede ser una vari abl e o una const ant e

Est a funci ón si rve por ej empl o para i mpl ement ar un "demoni o" que se ej ecut e cada
t ant os segundos. La i dea es t ener un l oop i nfi nit o y que se espere una cant i dad de
segundos ent re cada i t eraci ón, por l o que se recomi enda su uso en procesos t i po
‘bat ch’ mas que en apli caci ones i nt eract i vas, donde l a apli caci ón se ‘muere’
mi ent ras no fi nali za el t imeout especi fi cado.
Consi der aci ones par a Vi sual Basi c
La cant i dad de segundos t i ene un rango: 0. . 2^ 15 ( 32768 seg. ) . Est e lími t e queda
est abl eci do por l a funci ón de Wi ndows que reci be Mi li segundos y con mas de 2^ 22
se va de rango con val or es mayores que 2^ 16 - 1 o negat i vos que l os l os t oma
como i nfini t o. La funci ón cont rol a est e l ími t e, y no hace nada en caso de pasar el
lími t e y ret orna 0.
Ej empl o
&var= sl eep( 15) – Espera 15 segundos y en &var devuel ve 0
201

&var = sl eep( 0) – Espera 0 segundos y en &var devuel ve 0

&var= sl eep( - 10) – Espera 0 segundos y en &var devuel ve 0

Función St rSearch
I nt r oducci ón
La funci ón St rSearch permi t e buscar un st ri ng dent ro de ot ro.
Est a función posee dos variant es, la función St rSearch y la función St rSearchRev.
La di ferenci a ent re est as funci ones es l a di recci ón de búsqueda del st ri ng,
St rSearch busca de i zqui erda a derecha mi ent ras que St rSearchRev l o hace en el
sent i do cont r ari o, de derecha a i zqui erda.

Al cance
Obj et os: Procedi mi ent os, Report es, Transacci ones, Web panel s, Work panel s
Generador es: C/ SQL – Vi sual Basi c - Java – Vi sual FoxPro – C#
I nt erfaces: Web y Wi n
Descr i pci ón
Se i mpl ement aron l as si gui ent es funci ones st andard en GeneXus:

St rSearch( St r1, St r2 [ , St art Char ] )
St rSearchRev( St r1, St r2 [ , St art Char ] )

St rSearch r et orna l a posi ci ón ( índi ce ent ero empezando en 1) del st ri ng St r1 en
dónde se encont r o el st r i ng St r2. Busca de adel ant e haci a at rás.
Opci onal es l a posi ci ón de i ni ci o de l a búsqueda, en caso de omi t i rse se empi eza de
l a posi ci ón 1 del st ri ng St r1.

St rSearchRev funci ona de i gual forma que l a funci ón ant eri or pero busca en el
orden i nverso. Si se omi t e el úl t i mo parámet ro busca a part i r de l a posici ón fi nal de
St r1, haci a at rás.
En ambas funci ones si la búsqueda no es exi t osa se ret orna 0.

St r Sear ch
Si nt ax i s: &Ret = St r Sear ch( &St r 1, &St r 2 [ , &St ar t Char ] )

&St r1 St ri ng sobre el cual se va a real i zar l a búsqueda. Puede ser de t i po
Char, Varchar o Long Varchar .

&St r2 St ri ng de búsqueda. Puede ser de t i po Char, Varchar o Long Varchar.

&St art Char Opci onal . I ndi ca l a posi ci ón de comi enzo de l a búsqueda. Est a
202
vari abl e es de t i po Numéri co posi t i vo.

&Ret Es el val or devuel t o por l a funci ón. Si es cero i ndi ca que l a búsqueda
no fue exi t osa, de l o cont rari o i ndi ca l a posi ci ón dónde se encont ró el
st ri ng. Est a vari bl e es de t i po Numéri co posi t i vo.


St r Sear chRev
Si nt ax i s: &Ret = St r Sear chRev ( &St r 1, &St r 2 [ , &St ar t Char ] )

&St r1 St ri ng sobre el cual se va a real i zar l a búsqueda. Puede ser de t i po
Char, Varchar o Long varchar .

&St r2 St ri ng de búsqueda. Puede ser de t i po Char, Varchar o Long varchar.

&St art Char Opci onal . I ndi ca l a posi ci ón de comi enzo de l a búsqueda. Est a
vari abl e es de t i po Numéri co posi t i vo.

&Ret Es el val or devuel t o por l a funci ón. Si es cero i ndi ca que l a búsqueda
no fue exi t osa, de l o cont rari o i ndi ca l a posi ci ón dónde se encont ró el
st ri ng. Est a vari bl e es de t i po Numéri co posi t i vo.


Consi der aci ones Gener al es

El parámet ro St art Char es de t i po Numéri co posi t i vo e i ndi ca l a posi ci ón ini ci al de
búsqueda dent ro de St r1. Si es 0 ambas funci ones ret ornan 0.

La comparaci ón ent r e caract er es es case- sensi t i ve, o sea que ‘a’ es di st i nt o de ‘A’.

Si St r1 est a vacío o el largo es menor que St r2 ambas funci ones ret or nan 0 ya que
no se puede real i zar l a búsqueda.

Si St r2 est a vacío r et or na St art Char si fue i ni ciali zado o 1 en ot r o caso. Para el caso
de St rSear chRev se ret orna St art Char o St rLen.


Ej empl o

&st r1 = "Prueba de l a funci ón St rSearch"

St rSearch( &st r1, "s") r et orna 0 ( no se encont ró)

St rSearch( &st r1, "a" ) r et orna 6

St rSearch( &st r1, "a" , 7) r et orna 12
203

St rSearchr ev( &st r1, "a" ) r et orna 27

St rSearch( &st r1, "l a" , 20) ret orna 11

Función St r Replace
I nt r oducci ón
La f unci ón St r Repl ace per mi t e r eempl azar l as ocur r enci as de un st r i ng por
ot r o.

Al cance
Obj et os: Procedi mi ent os, Report es, Transacci ones, Web panel s, Work panel s
Generador es: C/ SQL – Vi sual Basi c - Java – Vi sual FoxPro – C#
I nt erfaces: Web y Wi n
Descr i pci ón
La funci ón St rRepl ace ret orna un st ri ng resul t ado de reempl azar t odas l as
ocur r enci as del st ri ng &St r2 que se encuent r en en &St r1, por el st ri ng &St r3.

Si nt ax i s: &Ret = St r Repl ace( &St r 1, &St r 2, &St r 3 )

&St r1 Es el st ri ng sobre el cual se qui eren hacer l os r eempl azos, el st ri ng
fuent e. Est a vari abl e puede ser de t i po Char, Varchar o Long varchar.

&St r2 Es el st ri ng que se va a buscar y reempl azar. Est a vari abl e puede ser de
t i po Char, Varchar o Long varchar.

&St r3 Es el st ri ng que reempl aza al buscado. Est a vari abl e es de t i po Char,
Varchar o Long var char .

&Ret Es es st ri ng ret ornado por l a funci ón con l os reempl azos real i zados. Est a
vari abl e puede ser de t ipo Char, Varchar o Long varchar.

Consi der aci ones Gener al es

El reempl azo se reali za en forma si mul t ánea. Es deci r, cuando se i nsert a un t ext o
de reempl azo, el t ext o i nsert ado no part i ci pa en l as si gui ent es búsquedas del
pat rón.

La funci ón di ferenci a ent re mayúscul as y mi núscul as, “ a” es di st i nt o de “ A” .


204
Ej empl o


&Source = “ Prueba# de# l a# funci ón# St rRepl ace”

&Ret = St rRepl ace( &Source, “ # ” , “ “ )

En est e caso l a vari abl e &Ret t endría el sigui ent e t ext o sería el resul t ado de
reempl azar t odas l as ocurrenci as del caráct er ‘# ’ en &Source por el espaci o en
bl anco.

&Ret = “ Prueba de l a funci ón St rRepl ace”

Función I snull
I nt r oducci ón
La funci ón I sNul l ( ) permi t e det ermi nar si el val or de un at ri but o es NULL del DBMS.

Al cance
Obj et os: Todos l os obj et os
Lenguaj es: C/ SQL - Java - Vi sual Basi c – Vi sual FoxPr o – C#
DBMS: SQL Server, Or acl e, I nformi x, DB2
I nt erfaces: Wi n/ Web

Descr i pci ón
En al gunos casos es necesari o det ermi nar si el val or de un at ri but o se cor responde
con el NULL del DBMS. Est e val or es di ferent e al null val ue ( obt eni do por
ej . ut ili zando l a funci ón Null value( < At ri but o> ) , que GeneXus det ermi na según el
t i po de dat o/ DBMS.

El val or NULL en un at ri but o pudo haberse generado por ej . por no haber
i nst anci ado el at ri but o en un New ( t eni endo l a preference “ I ni t i ali ze not referr enced
at t ri but es” con el val or “ No” ) . Tambi en puede ser necesari o di st i ngi rl o de ot ros
val ores cuando se acceden a t abl as ext ernas.

Cuando l a funci ón se ut iliza incluyéndol a en un Where o Condi t i on que se opt i mi ce
( est o si gni fi ca que l a condi ci ón se r esuel ve en el ser vi dor) . en l a sent enci a SQL se
t raduci rá como . . . At r i but o I S NULL.

Si nt axi s:

I sNull ( < At ri but o> )
205

Ret orno:

Val or bool eano

Ej empl o
For each
Wher e I sNul l( Cli Nom)
.
.
Endfor

Est e For each navegaría l os regi st ros de Cl i ent es que t uvi eran el at ri but o Cli Nom
con el val or NULL del DBMS.

Ot r o ej empl o:

For each
I f I sNull( CliNom)
.
endi f
.
.
Endfor

Est e ej empl o sería si mil ar al For each ant eri or, y debería navegar l os mi smos
regi st ros, l a di ferenci a sería que en el pri mer caso l a condi ci ón se resol vería en el
servi dor, y en el segundo ej empl o se haría en el cli ent e.

Consi der aci ones Gener al es
• La ut ilizaci ón de l a funci ón sol o es váli da dent ro de For eachs y Condi t i ons
de subfi l es con t abl a base.

• Para el rest o de l os generador es y DBMSs, l a funci ón I sNul l( ) se comport a
i gual que l a funci ón Null( ) .

Nombres Largos en función UserI d( ) y Workst at ion( )
I nt r oducci ón
Se modi fi ca el comport ami ent o de l a funci ones useri d y wor kst at i on en Vi sual Basi c y
Vi sual Fox.

206
Al cance
Obj et os: Transacci ones, Workpanel s, Webpanel s, Procedi mi ent os y Report es.
Lenguaj es: Vi sual Basi c y Vi sual FoxPro
I nt erfaces : Wi n y Web
Descr i pci ón
Hast a l a versi ón 7. 0 se t runcaba el nombre de usuari o y Workst at i on a un máxi mo
de 10 caract eres.

Por ej empl o al hacer l a asi gnaci ón :
&usuari o = Useri d( )

El vari abl e usuari o t omaba el val or "Admi ni st ra" .
A part ir de est a versión el valor es "Administ rat or"

Si se t runca si l a vari able est a defi nida de N car act eres y el usuari o que se l e asi gna
es mayor al t amaño de l a vari abl e

Los generadores RPG y Cobol no cambi a porque l os usuari os son de 10 caract eres
max.

Los generadores Java y C nunca t runcaron.

COMPATI BI LI DAD HACI A ATRAS
Para mant ener el comport ami ent o ant eri or ( t runcar a 10 caract eres) es
necesari o defi ni r un archi vo confi g.gx con l a secci on
wa0004= Y

Est o funci ona con VFP y VB, con FPW y Xbase no cambi aron el comport ami ent o
( si empre t runcan) .

207
Funci onal i dades Gener al es

Call dinámico
I nt r oducci ón
El obj et i vo de est a funci onali dad es poder realizar ll amadas a obj et os GeneXus en
for ma di námi ca.
Al cance
Objetos: Transacciones, Work Panels, Web Panels, Procedimientos, Reportes
Lenguajes: Java, Visual Basic, Visual FoxPro, c#, C/SQL, Cobol, RPG
Interfaz: Web, Win
Descr i pci ón
Est a funci onali dad permi t e que el especi fi cador t ransf orme un CALL di námi co ( que
hace ref erenci a a una vari abl e o at ri but o como pri mer parámet ro) en un DO CASE
con t ant os CASEs como programas exi st an en l a KB con l a mi sma cant i dad y t i po
de parámet ros ref erenci ados en el CALL. Es una al t ernat i va muy i nt eresant e, sobr e
t odo para aquel l os l enguaj es que no soport an el CALL vari abl e.

El árbol de CALLs de GX se act uali za permi t i endo t ener i nformaci ón de qui én ll ama
a qui én.

Para RPG y Cobol , el chequeo de t i pos de parámet ros es por i gual ( exact a)
defi ni ci ón. En l os demás generador es el cri t eri o es el si gui ent e:

• Los numéri cos t i enen que ser exact ament e i gual es si n i mport ar si t i enen
si gno o no.

• Los parámet ros de t i po caráct er ( char, vchar y l ong varchar) se consi deran
i gual es y se cont rol a que el l argo del parámet ro en el que invoca sea menor
o i gual al invocado.

• Se excl uyen de l a expansi ón del call l os obj et os que el generador no puede
generar.


Si nt ax i s
CALL( &OBJECT, [ PARM1, PARM2,…] )

Donde &obj ect es una vari abl e o at ri but o de t i po st ri ng que cont i ene el nombre del
obj et o GeneXus a l l amar.
208
Consi der aci ones Gener al es
Pr ef er ence Ex pand dynami c cal l s
Para poder ut ili zar est a funci onali dad se debe confi gurar l a Pref er enci a Expand
dynamic calls en Yes ( el valor por def ect o es No para t odos l os generador es) .

Consi der aci ones
Los parámet ros ef ect i vos que aparecen en el CALL di námi co no pueden ser
del t i po array ( est o es cont rol ado por el especi ficador) .

Prot ocolo SOAP
I nt r oducci ón
SOAP es un prot ocol o “ li vi ano” basado en XML, para i nvocar procedi mi ent os en
for ma remot a ( Remot e Pr ocedur e Call ) . Ut ili za cual qui er prot ocol o que
permi t a t ransport ar mensaj es de t ext o, si endo HTTP el más ut ili zado.

Su especi fi caci ón descri be el cont eni do que debe t ener un mensaj e XML para ser
usado en una i nvocaci ón remot a.

Cual qui er apli caci ón que cumpl a l a especi fi cación puede i nvocar y pr oveer ser vi ci os
si n i mport ar en que l enguaj e o pl at aforma est é i mpl ement ado, l o único necesari o
es que l a apli caci ón sea capaz de i nt erpret ar el mensaj e SOAP que reci be, real i zar
el procesami ent o que el mensaj e requi era, y devol ver ot r o mensaj e SOAP con l a
respuest a.

En l as apl i caci ones gener adas por GeneXus se ut i l i za SOAP par a i nv ocar a
obj et os en f or ma r emot a, usando HTTP como pr ot ocol o de t r anspor t e.

Al cance
Obj et os l l amador es ( Cl i ent es)
Obj et os: Todos l os obj et os
Lenguaj es: C/ SQL - Java - Vi sual Basi c – Vi sual FoxPr o – C#
I nt erfaces: Wi n/ Web

Los obj et os ll amadores son l os que i nvocan ser vi ci os medi ant e SOAP

Obj et os l l amados ( Ser vi dor es)
Obj et os: Procedimient os y Report es
Lenguaj es: C/ SQL - Java - Vi sual Basi c – C#
I nt erfaces: Web
209

Los obj et os ll amados son l os bri ndan un servi cio i nvocado medi ant e SOAP
Descr i pci ón
Al gunas de l as vent aj as de ut ili zar est e prot ocol o en apli caci ones GeneXus son l a
posi bilidad de desarr ol l ar servi ci os web, asi como el poder hacer i nvocaci ones ent re
obj et os de di fer ent es generadores ( por ej . l lamar desde Vi sual Basi c a Java, o
desde C/ Sql a Vi sual Basi c) , funci onali dad que no est aba permi t i da en versi ones
ant eri or es, except o ll amadas RPC desde l os generadores vi sual es a l os generadores
CSql / Cobol / RPG.


Ser vi dor
Para i ndi car en GeneXus que un obj et o main va a ser ll amado ut ilizando el
prot ocol o SOAP, se deberá sel ecci onar el val or “ SOAP” en la propi edad
“ Opt i ons/ Call Prot ocol ” . Nos ref eri remos en adel ant e a di chos obj et os como
‘Servi dores’ o ‘Servi ci os web’. Sol o pueden ser report es o pr ocedimi ent os, si n
ningún t i po de i nt erfaz con el usuari o.

Se r equier e un ser vidor Web que haga el host ing de los servicios a ser invocados.

Los programas Servi dores reci ben l a invocaci ón ht t p, procesan el mensaj e SOAP
que envía el Cli ent e con sus parámet r os, r eal izan l a acci ón requeri da, y generan
ot ro mensaj e SOAP de respuest a ( event ual ment e con l os parámet ros modi fi cados) .


Cl i ent e
Los obj et os que van a invocar al ser vi ci o web, a l os que ll amaremos
‘Cli ent es’, pueden ser cual qui er obj et o GeneXus. La i nvocaci ón se hace
con el comando cal l ( ) de GeneXus.

Los pr ogramas Cl i ent es real i zan l as t areas necesari as para ensambl ar el
mensaj e SOAP, hacer la i nvocaci ón ht t p, y desensambl ar l a respuest a,
obt eni endo l os paramet ros modi fi cados en forma aut omát i ca. Todo est o
se r eali za en forma aut omát i ca y t ranspar ent e para el usuari o.


Locat i ons
Para i ndi car cual va a ser l a ubi caci ón de los servi ci os i nvocados se ut iliza un
esquema conoci do como Locat i ons.



Manej o de er r or es

210
Compor t ami ent o f r ent e a un er r or

Si al hacer un l l amado SOAP desde un obj et o GeneXus se produce un error,
normal ment e l a ej ecuci ón del ll amador se cancel ará most rando el err or que ocurri ó.

Si el obj et o ll amado es un procedi mi ent o o report e GeneXus, es posi ble i ndi car que
se det enga l a ej ecuci ón de l os programas ll amador es en caso de fal l ar l a ll amada.
Est o se hace medi ant e la propi edad ‘Cancel Cal ler Execut i on on Error’:




Est a propi edad se habili t a sol ament e cuando l a propi edad ‘Call Prot ocol ’ t i ene el
valor ‘SOAP’. El valor por def ect o es ‘Yes’. De t ener valor ‘No’, la ej ecución no se
cancel ará y se podrá obt ener el códi go numéri co de error con l a funci ón
Get SOAPErr( ) , y el mensaj e de er ror medi ant e la funci ón Get SOAPErrMsg( ) .

Códi gos de er r or en el cl i ent e

Los posi bl es códi gos de error que pueden ser ret ornados medi ant e l a funci ón
Get SOAPEr r( ) son l os si gui ent es:

• 0: Operaci ón compl et ada con éxi t o.

• Mayor que 0 y menor que 10000: Al gún parámet ro ret ornado por el servi dor
no t i ene el nombre esperado. El códi go de error i ndi ca l a posi ción del
parámet ro que ocasi onó el confl i ct o.

211
• Menor que 0 y mayor que - 10000: Sucedi ó un er ror al i nt erpret ar el XML de
respuest a. Sucederá por l o general si l a respuest a no es XML o no es XML
bi en formado. Si se t oma el val or absol ut o del códi go de er ror el result ado
corr esponderá a un código de error del obj et o XMLReader. De t odas f ormas,
get SOAPErrMsg( ) ret ornará una descri pci ón del er ror.


• Menor que - 10000: Sucedi ó un error en l a comuni caci ón HTTP. Si se t oma el
val or absol ut o del códi go de error y se l e rest a 10000 el result ado
corr esponderá a un códi go de error del obj et o HTTPCl i ent . De t odas f ormas,
get SOAPErrMsg( ) ret ornará una descri pci ón del er ror.

• - 20001: La respuest a reci bi da es un XML vál i do pero no es un mensaj e
SOAP vál i do.


• - 20004: El servi dor ret ornó que hay un error en el pedi do SOAP real i zado
por el cli ent e. En est e caso get SOAPErrMsg( ) ret ornará un mensaj e
cont eni endo el códi go y el mensaj e de error ret ornados por el servi dor . Si el
servi dor es un procedi mi ent o o report e GeneXus, ret ornará al guno de l os
códi gos de er ror descri pt os más abaj o.

• - 20006: Sucedi ó un error no i dent i fi cado. En est e caso get SOAPErrMsg( )
ret ornará un mensaj e cont eni endo el código y el mensaj e de er ror
ret ornados por el servi dor.

• - 20007: Nombre de l ocat i on no váli do. Sucede cuando se l l ama a l a funci ón
Get Locat i on( Nombr e) con un nombre de l ocat i on que no est á defi ni do para
ningún obj et o en l a KB.

Códi gos de er r or en el ser v i dor

Un procedi mi ent o o report e GeneXus que es l l amado medi ant e SOAP puede
ret ornar al guno de l os si gui ent es códi gos de error:

• - 20000: No se reci bi ó un mensaj e SOAP.

• - 20001: El mensaj e reci bi do es un XML vál i do pero no es un mensaj e SOAP
váli do ( i gual que en el cli ent e) .


• - 20002: El mét odo l l amado no es el esperado. ( El mét odo SOAP de l os
obj et os GeneXus si empr e se l l ama “ Execut e” ) .





Casos

212
Veremos a cont i nuaci ón di ferent es combi naci ones ent re Cli ent es y Servi dores, y su
i mpl ement aci ón en cada caso:

CLI ENTE GENEXUS – SERVI DOR GENEXUS
El Servi dor es un procedi mi ent o o report e con ‘Call Prot ocol ’ = ‘SOAP’, el Cli ent e
es cual qui er ot ro obj et o de l a KB haci endo un call ( ) . La ubi caci ón del Ser vi dor se
confi gura ut ilizando el esquema de l ocat i ons.

Los obj et os Cli ent e y Servi dor pueden est ar generados con di ferent es
generadores, t eni endo en cuent a l a secci ón ‘Al cance’:



Cl i ent e

Servi dor
C/ SQL Java Vi sual
Basi c
Vi sual
FoxPro
C/ SQL


( * )


( * )


( * )


( * )
Java

Vi sual Basi c

Vi sual Fox
X

X

X

X


( * ) – El generador C/ Sql adopt ó el SOAP como prot ocol o por def ect o para l as
ll amadas RPC, por l o que una ll amada RPC a un programa C/ Sql si empr e se va a
hacer vía SOAP, no i mport ando el generador con el que se genere el obj et o
ll amador ( con el val or ‘I nt ernal ’ para l a propi edad Call Prot ocol ; en est e caso no
est a di sponi bl e l a propiedad ‘Cancel Call er Execut i on on Error’, y cancel ará el
programa ll amador en el caso de que se pr oduzca un er ror en el programa
ll amado) . Es posi bl e a part i r de est a caract eríst i ca hacer ll amadas RPC desde
programas C/ Sql hacia programas generados por cual qui er generador que
genere servi ci os SOAP. Por ej empl o es posi ble ll amar desde un obj et o main
C/ Sql a ot ro obj et o main C/ Sql, caract eríst i ca no di sponible hast a ahor a.

Un caso part i cul ar de l o ant eri or es si el Servi dor es un obj et o de ot ra KB. En
est e caso es posi bl e invocarl o confi gurando el l ocat i on, creando en la KB del
Cli ent e un obj et o ‘dummy’ con el mi smo nombre y parámet ros que el obj et o
Ser vi dor, y haci endo un cal l( ) a di cho obj et o desde el obj et o Cl i ent e.

CLI ENTE NO GENEXUS – SERVI DOR GENEXUS
El Servi dor es un pr ocedi mi ent o o r eport e GeneXus con ‘Cal l Prot ocol ’ = ‘SOAP’.

Por l a nat ural eza del prot ocol o SOAP l os programas generados con GeneXus
213
pueden ser i nvocados por cual qui er cl i ent e SOAP no generado por GeneXus.

La i nformaci ón acerca de cómo i nvocarl o se encuent ra en el archi vo WSDL ( Web
Servi ces Descri pt i on Language) que es generado aut omát i cament e. Di cho
archi vo se obt i ene pasándol e el parámet ro wsdl a l a URL del servi ci o, en el
ej empl o ant eri or sería:

ht t p: / / l ocalhost : 80/ c/ sql soli s/ prg/ nombredeprograma?wsdl

NOTA: Se est a generando dent ro del archi vo WSDL de l os servi dor es SOAP un
el ement o < document at i on> que i ncl uye el Help del obj et o. Est o permi t e i ncl ui r
en el WSDL i nformaci ón acer ca del uso del Servi ci o, parámet r os que reci be, para
que si rve, et c. El el ement o t i ene l os si gui ent es subel ement os:

< document at i on>
< URL> Char act er < / URL>
< li ne> Char act er < / l ine>
< li ne> Char act er < / l ine>
.
.
< / document at i on>

En el el ement o URL se indi ca la URL al Help HTML del obj et o que se genera. Por
mas i nformaci ón consul t ar l a document aci ón del Hel p HTML.

En l os el ement os l i ne se genera el Hel p del obj et o. Sol o l a part e de t ext o es
generada, i gnorándose el rest o. Se generan líneas con un máxi mo de 80
caract eres, en caso de que l a línea de Hel p sea mas l arga, se gener an t ant os
el ement os l i ne como sean necesari os.

CLI ENTE GENEXUS – SERVI DOR NO GENEXUS
Si bi en el prot ocol o permi t e ll amar a cual qui er servi ci o SOAP si n necesi dad de
que est e sea un programa GeneXus, por el moment o no es posi bl e especi fi car
que un programa ext erno debe ll amarse vía SOAP, ni t ampoco descri bi r sus
parámet ros.

I gual ment e es posi bl e invocar a un servi ci o web ext erno ut ilizando l os t i pos de
dat os Ht t pCli ent , Xml Wri t er y Xml Reader. Est a di sponi bl e un ej empl o en el si t i o
de GeneXus Open Source.

Consi der aci ones Gener al es

• No es posi bl e especi fi car que un programa ext erno debe ll amarse vía SOAP,
ni t ampoco descri bi r sus parámet ros.

• No se est a generando correct ament e en el WSDL el Hel p del obj et o cuando
se t i enen líneas con mas de 75 caract er es, pudi endo t runcarse al guno de
ell os.

214
Repor t es PDF
I nt r oducci ón
Se i mpl ement ó l a generaci ón de report es GeneXus con f ormat o PDF además de l os
for mat os ya soport ados ( t xt , gxr , rt f) .

Con l os report es PDF se cuent a con mayor pot enci ali dad para el desarr oll o de
apli caci ones web. El report e generado como PDF puede vi sualizarse di rect ament e
desde el browser.

Al cance
Obj et os: Report es
Generadores: C/ SQL – VB – JAVA
I nt erfaces: Web y Wi n
Descr i pci ón
Para generar un repor t e como PDF se debe ut ili zar l a regl a ‘out put _fil e’ de l a
si gui ent e forma:

out put _fil e( " t est . pdf" , " pdf" ) ;

Not a: El nombre de archi vo debe cont ener l a ext ensi ón pdf, es deci r que l a mi sma
no se asume.

PDF en el WEB
Tambi én es posi bl e ut ilizar l a regl a Out put _fil e en report es y procedi mi ent os para
poder ej ecut arl os desde el web. Para el l o es necesari o set ear l a propi edad CALL
PROTOCOL = ht t p. Recordar que el report e o procedi mi ent o puede ser i nvocado
desde el browser y por consi gui ent e debe ser mai n.

En est os casos el nombre del ar chi vo se i gnora. Los document os se generan
di rect ament e en memori a, redi ri gi endo l a salida ( cada vez que se compl et a una
pági na) a l a respuest a ht t p ( ht t p response) . Nót ese que al redi ri gi r cada pági na a l a
sali da ht t p se genera l a respuest a al web browser a medi da que el report e se
ej ecut a, ot ra vent aj a es que no se generan ar chi vos t emporal es en el servi dor web.

Not a: En est e caso el r eport e es “ ej ecut ado” dos veces: una vez por el browser y
ot ra vez por el acrobat r eader.

Tambi én es posi bl e abrir el acrobat reader e i ngresar di rect ament e l a URL.

Tamaño de pági nas
Se soport an t odos l os t amaños de pági na que es posi bl e defi ni r en Genexus, a
saber:
215

Ti po Medi das
Cart a 8 1/ 2 x 11 pul gadas
Ofi ci o 8 1/ 2 x 14 pul gadas
Ej ecut i vo 7 1/ 4 x 10 1/ 2 pul gadas
A4 210 x 297 mm
A5 148 x 210 mm
B5 182 x 257 mm
Sobre # 9 3 7/ 8 x 8 7/ 8 pul gadas
Sobre# 10 10 4 1/ 8 x 9 ½ pul gadas
Sobre DL 110 x 220mm
Sobre C5 162 x 229 mm
Sobre B5 176 x 250 mm
Sobre Monarch 3. 875 x 7. 5 pul gadas
Tamaño del usuari o

Requer i mi ent os
Para poder generar report es PDF, se requi er e t ener i nst al ado el soft ware Acrobat
Reader en el client e.

Consideraciones para manej o de report es PDF en
C/ SQL
Requer i mi ent os
Para habili t ar el soport e del for mat o PDF con el generador C/ SQL, es necesari o
obt ener previament e l a bi bli ot eca PDFLI B. La mi sma se di st ri buye en I nt ernet en
www. pdfl i b. com. En ese mi smo si t i o es posi ble ( y r ecomendabl e) consul t ar sobr e
sus di fer ent es opci ones de l i cenci ami ent o.

Para l a versi ón GENEXUS 7. 5 se ut ili zó l a versi ón 401 de PDFLI B, l os l inks para est a
versi ón son:

UNI X: ht t p: / / www. pdfl ib. com/ pdfl i b/ downl oad/ pdfli b- 4. 0. 1. t ar. gz
WI NDOWS: ht t p: / / www. pdfli b. com/ pdfli b/ downl oad/ pdfli b- 4. 0. 1. zi p

I NSTALACI ÓN EN WI NDOWS
1. Ant es de i nst al ar l as rut i nas de soport e del generador C/ SQL es
necesari o:

• Descompri mi r el archi vo pdfli b- x. x. x. zi p. ( Por ej empl o: c: \ pdfli b4) .
• Armar l a pdfli b.li b. Para est o, hay que abri r el archi vo pdfl ib. dsw con
el Vi sual St udi o y sel ecci onar l a opci ón Buil d/ Rebuild All .

2. Habilitar el soporte PDF con la opción “Enable PDF support
216
(PDFLIB)” en la página “General Options” del setup wizard
(GXCSetup) para las rutinas de soporte del generador GX C/SQL
e indicar el path donde se instaló la biblioteca pdf (en el
ejemplo: c:\pdflib4).

Not a: Durant e l a ej ecuci ón, se r equi ere el archi vo pdfli b. upr que se encuent ra
en el di rect ori o ‘font s’ baj o el di rect ori o de i nst al aci ón de l a bi bli ot eca. Se puede
copi ar el mi smo al di rect ori o de ej ecuci ón o agregar el di rect ori o menci onado
ant eri orment e al pat h del servi dor.

I NSTALACI ÓN EN UNI X
1. Ant es de i nst al ar l as rut i nas de soport e del generador C/ SQL es
necesari o:
• Descompri mi r el archi vo pdfli b- x. x. x. t ar. gz

2. Habili t ar el soport e PDF con l a opci ón “ Enabl e PDF support ( PDFLI B) ” en
l a pági na “ General Opt i ons” del set up wi zard ( GXCSet up) para l as rut inas
de soport e del generador GX C/ SQL e i ndi car el pat h donde se i nst aló l a
bi bli ot eca pdf.



Consi der aci ones C/ SQL
A cont i nuaci ón se det all an l as consi deraci ones a t ener en cuent a al usar el
generador C/ SQL para l a i mpresi ón de report es PDF.

SOPORTE DE I MÁGENES
La PDFLI B provee soport e de vari os format o de i mágenes, como l os j peg, gi f,
t i ff. En part i cul ar no se soport a el format o bi t map ( bmp) .

WORD WRAPPI NG
La funci ón que se ut ili za para di buj ar t ext o hace “ word wrappi ng” , por l o t ant o
t odo t ext o que no “ ent ra” en el rect ángul o de una línea de al t o no aparece en el
PDF. Para evi t ar est e pr obl ema cuando el t ext o est á j ust i fi cado a l a i zqui erda no
se ut ili za l a funci ón menci onada ant eri orment e, de forma que se di buj e el t ext o
compl et ament e. En est e caso puede suceder que el t ext o se sol ape con algo a la
derecha.

FONTS
En l a document aci ón de l a bi bli ot eca PDFLI B, se encuent ran l os t i pos de l et ra
soport ados por l a mi sma. A cont i nuaci ón se encuent ra el det al l e de l os mi smos
para l a versi ón 401:

Couri er
Courier- Bold
Couri er- Obli que
217
Courier- BoldObli que
Hel vet i ca
Hel vet i ca- Bol d
Hel vet i ca- Obli que
Hel vet i ca- Bol dObli que
Ti mes- Roman
Ti mes- Bol d
Ti mes- I t al i c
Ti mes- Bol dI t ali c
Symbol
ZapfDi ngbat s


Pr obl emas comunes
A cont i nuaci ón se descr i ben probl emas específi cos al usar l a bi bli ot eca pdfli b con el
generador C/ SQL.

PDFLI B I / O Er ror: Resource confi gurat i on fil e ‘PDFLI B. UPR’ not found.
Est e err or se pr oduce al ej ecut ar el r eport e desde l a línea de comandos
( consol a del servi dor o sesi ón t el net ) .

Posi bl e Causa
No se encuent ra el archi vo pdfl i b.upr al moment o de ej ecut ar el obj et o.

Sol uci ón
Copi ar el archi vo mencionado al di rect ori o de ej ecuci ón o agregar l a
ubicación del mi smo en el pat h del servidor .
Ver ( ‘Requeri mi ent os/ C/ SQL/ I nst al aci ón en Wi ndows’)

PDFLI B runt i me er ror: Met ri cs dat a for font ‘MS xxx’ not found
Est e er ror se pr oduce al ej ecut ar el report e.

Posi bl e Causa
El t i po de l et ra sel ecci onado en el report e no es soport ado por el format o
pdf. En part i cul ar est o sucede con l os t i pos de l et ra de Mi crosoft .

Sol uci ón
Modi fi car el t i po de l et ra sel ecci onado en el report e.

Consideraciones para manej o de report es PDF en
Visual Basic
I nt r oducci ón
En est e document o se descri ben l as consi deraci ones a t ener en cuent a a l a hora de
ut ili zar l os report es PDF con el generador Vi sual Basi c.
Para obt ener i nformaci ón general de l os report es PDF r ef eri rse al document o
Report es PDF.
218

Repor t es PDF en el Web
Para poder ej ecut ar report es PDF en el Web, generados con el generador Vi sual
Basi c se debe ut ili zar un procedi mi ent o main con l a propi edad “ Cal l Prot ocol =
HTTP” ( WebProc) con l a funci ón RespondFil e ll amando al report e PDF.
El report e PDF debe haber se generado pr evi ament e.

Requer i mi ent os
Para poder generar r eport es PDF con Vi sual Basi c se debe t ener i nst alada l a dll que
se encuent ra en: www. pdfli b. com.
Hay una versi ón de demo que se puede ut ili zar para pruebas, para baj ar l a versi ón
de demo i ngresar a l a pági na sel ecci onar l a opci ón ‘Downl oad page’ y baj ar el
Act i veX del li nk ‘PDFli b- 4. 0. 1- act i vex. exe’.
Luego de baj arl o se debe ej ecut ar el exe para i nst al ar l a versi ón de demo.

Consideraciones para manej o de report es PDF en
Java
I nt r oducci ón
Generando l os report es como PDF, es posi bl e ej ecut arl os en ot ra pl at aforma que no
sea Wi ndows, ya que l os PDF no requi eren de la dll del Report Vi ewer.

En est e document o se descri ben l as consi deraci ones a t ener en cuent a a l a hora de
ut ili zar l os report es PDF con el generador Java.
Para obt ener i nformaci ón general de l os report es PDF r ef eri rse al document o
Report es PDF
Al cance
Obj et os: Report es
Lenguaj es: Java
I nt erfaces: Wi n Form, Web Form.

Descr i pci ón
Tener en cuent a l os si gui ent es punt os:

• Las i mágenes ut ili zadas en el report e, deben copi arse al l ado de l a
apli caci ón. En caso de ‘web report ’, al di rect ori o donde est én l as cl ases.
• Si no se especi fi ca l a regl a out put _fil e( “ pp. pdf” , “ PDF” ) ; y se t rat a de un
web report , es deci r l a propi edad call prot ocol est a en ht t p, ent onces se
present a el si gui ent e er ror al compi l ar el report e:
219

* * * Error: No met hod named " get Pri nt er" was f ound in t ype
“ com/ empresa/ apl i c/ onnn"

Set eo de már genes super i or e i zqui er do del r epor t e PDF

Para set ear l os márgenes se ut ili za el archi vo PDFReport . I NI . Est e ar chi vo
se encuent ra en el di rect ori o donde se ej ecut a el report e, y es aut omát i cament e
generado al ej ecut ar un report e en caso de que no est é present e.

Edi t ando est e archi vo es posi bl e set ear l os márgenes i zqui ero y superi or en l as
propi edades ‘Left Margi n’ y ‘TopMargi n’ respect i vament e. Por ej empl o:

Left Margi n= 3. 5
TopMargi n= 2

Los val ores defaul t de ambos es 1.

NOTA: el separador de deci mal es debe ser el punt o y no l a coma, por ej empl o:
Left Margi n= 3. 5


Font s embebi dos
Puede darse que en el report e GX se i ncluyan det ermi nados f ont s que el usuari o
fi nal no cuent e con el los al ej ecut ar est e r eport e. La f orma de evi t ar est o es
embeber en l os report es generados l os f ont s deseados.

La forma de i ncl ui r est a li st a es a t ravés de un ut ilit ari o que vi ene en l as cl ases
st andard ( gxcl assr. zi p) del generador Java l l amado ‘PDF Font Confi g’.

Para poder ll amarlo se requier e el gxcl assr . zip, el client . cfg y el PDFReport . ini.
Est ando en una consol a, parado en el di rect ori o donde se encuent r e el
PDFReport . ini, se levant a el ut ili t ari o de la si guient e f orma:

jview /cp <path al gxclassr.zip>gxclassr.zip
com.genexus.reports.PDFReportConfig

Se obt endrá ent onces el si gui ent e di ál ogo:

220


En l a li st a de l a i zquierda se vi suali zan l os font s ut ili zados en el report e y en
‘Sampl e t ext ’ se puede ver el f ont sel ecci onado en el l a.
Con el bot ón ‘> > ’ se permi t e agregar el font sel ecci onado para que sea embebi do
en l os r eport es.
En ‘Font s Locat i ons’ se especi fi ca el l ugar de donde el servi dor t omar á l as font s a
ser embebi dos en l os report es. En caso de ser un servi dor wi ndows, no es
necesari o especi fi carl o, ya pueden ser ubi cados, si n embargo en un UNÍ S si es
requeri do.


Gener aci ón de r epor t es PDF en si st emas oper at i v os si n
ambi ent e gr áf i co
I NTRODUCCI ÓN
El generador de report es PDF j ava ut ili za l as bibli ot eca AWT de Java.

Todas l as i mpl ement aci ones de l a máquina vi rt ual de Java incluyen una
i mpl ement aci ón de est a bi bli ot eca. El probl ema es que en al gunos ambi ent es
( por ej empl o Uni x si n X/ Wi ndows) , al no haber soport e gráfi co nat i vo, no
permi t en l a ut ili zaci ón de l a bi bli ot eca AWT est ándar.

Una sol uci ón es ut ilizar una bi bli ot eca AWT que no necesi t e soport e gráfi co
nat i vo. Est o es l o que hace l a li brería PJA ( Pure Java Tool ki t ) . Est a bi bli ot eca se
encuent ra en ht t p: / / www. et eks. com/ pj a/ en.

La ver si on 2. 3. 1 puede obt enerse en ‘ht t p: / / www. et eks. com/ pj a/ pj a_2. 3. 1. zi p’.

221
EJECUCI ÓN DE REPORTES CON PJA EN JDK 1.2+ :
Una vez obt eni do el archi vo pj a_2. 3. 1. zip, debe descompri mi rse l a bi bliot eca PJA
de él . El archi vo de l a li brería es ‘PJA. j ar ’ y se encuent ra baj o el di rect ori o
‘pj a_2. 3. 1/ lib’ del zi p.

Para descompri mi rl o puede ut ilizarse el Wi nZi p o l a ut ilidad JAR. EXE del JDK:
jar xf pja_2.3.1.zip pja_2.3.1/lib/pja.jar
Luego se debe copi ar el archi vo PJA. JAR a un l ugar conveni ent e.

Para poder generar report es en ambi ent es donde el AWT est ándar no puede ser
ut ili zado, se deben t ener l as si gui ent es consi der aci ones:

• El archi vo ‘pj a. j ar’ debe est ar ubi cado en el Boot Cl asspat h. Si el ar chi vo
pj a. j ar NO se encuent ra en el Boot Cl asspat h, se debe agr egar
‘- Xboot cl asspat h/ a: pj a.j ar ’ como argument os a l a VM al i ni ciar l a
apli caci ón.
• La Syst emPr opert y ‘j ava.aw t .gr aphi csenv ’ debe cont ener el val or
‘com.et ek s. j av a2 d.PJAGr aphi csEnv i r onment ’
• La Syst emPr opert y ‘j av a. aw t ’ debe cont ener el val or
‘com.et ek s. aw t . PJATool k i t ’

Por ej empl o si queremos ej ecut ar l a cl ase uTest y l a li brería PJA se encuent ra
baj o el di rect ori o / home/ li bs:

Java -Xbootclasspath/a:/home/libs/pja.jar
-Dawt.toolkit=com.eteks.awt.PJAToolkit
-Djava.awt.graphicsenv =
com.eteks.java2d.PJAGraphicsEnvironment uTest
EJECUCI ÓN DE REPORTES CON PJA EN JDK 1.1.X:
Una vez obt eni do el archi vo pj a_2. 3. 1. zip, debe descompri mi rse l a bi bliot eca PJA
de él . El archi vo de l a li brería es ‘PJA. j ar ’ y se encuent ra baj o el di rect ori o
‘pj a_2. 3. 1/ lib’ del zi p.

Para descompri mi rl o puede ut ilizarse el Wi nZi p o l a ut ilidad JAR del JDK:
jar xf pja_2.3.1.zip pja_2.3.1/lib/pja.jar
Luego se debe copi ar el archi vo PJA. JAR a un l ugar conveni ent e.

Además es necesari o obt ener un archi vo de font PJA. Para ell o se necesi t a
ej ecut ar una ut ili dad que vi ene con el PJA en al gúna máquina que si t enga
di sponi bl e el AWT est ándar.

Para obt ener un archi vo . pj af hay que descompri mi r l a bi bli ot eca PJA como se
descri bi ó ant eri orment e y hay que descompri mi r l a bi bli ot eca de ut ili dades del
PJA ( pj at ool s. j ar) ut ili zando el Wi nZi p o l a ut ili dad JAR del JDK:
jar xf pja_2.3.1.zip pja_2.3.1/lib/pjatools.jar

222
Una vez obt eni dos est os dos archi vos, y t eni endo est as dos bi bli ot ecas en el
cl asspat h se debe ej ecut ar l a ut ili dad de ext racci ón de font s PJA ( ll amada
com. et eks. t ool s. font capt ure. PJAFont Capt ure) desde una máqui na que t enga
di sponi bl e el AWT nat i vo.

Al ej ecut ar est a ut i lidad se most rará una pant all a como l a que si gue:



Hay que guardar un font . pj af cual qui era, ya que es necesari o para poder ut ili zar
l a bi bli ot eca PJA con JDK1. 1. x.
Luego, para poder generar report es en ambi ent es donde el AWT est ándar no
puede ser ut ili zado con JDK1. 1. x, se deben t ener l as si gui ent es consi deraci ones:

• El archi vo ‘pj a. j ar ’ debe est ar ubi cado en el Classpat h. Si el archi vo pj a. j ar
NO se encuent ra en el Cl asspat h, se debe agr egar
‘- cl asspat h pj a. j ar : .... . ’ como argument os a la VM al i ni ci ar l a apli caci ón,
donde ... . es el cl asspat h que exi st ía ant eri orment e.
NOTA: Las i mpl ement aci ones de l a VM del JDK1. 1. x reempl azan t ot alment e
el val or que exi st i ese ant eri orment e del cl asspat h al agregar est e
parámet ro, por l o que se sugi ere o t ener en l a vari abl e de ambi ent e del
classpat h l a bi bli ot eca PJA para que no sea necesari o agregar el parámet ro
‘- cl asspat h’, o agr egar al argument o del ‘- classpat h’ t odas l as bi bliot ecas
requeri das por l a VM, i ncl uídas l as bi bli ot ecas de runt i me ( cl asses.zi p) .
• Al gún archi vo de font PJA ( con ext ensi ón ‘. pj af’) debe est ar ubi cado en el
di rect ori o de ej ecuci ón de l a apli caci ón.
• La Syst emPr opert y ‘j av a. aw t ’ debe cont ener el val or
‘com.et ek s. aw t . PJATool k i t ’.

Por ej empl o si queremos ej ecut ar l a cl ase uTest y l a li brería PJA se encuent ra
baj o el di rect ori o / home/ li bs, l as cl asses de r unt i me de Java se encuent ran en
223
/ j dk1. 1. 8/ li b/ cl asses. zi p y l as cl ases est ándar GeneXus se encuent ran en
/ home/ li bs:

Jav a - cl asspat h / home/ l i bs/ pj a.j ar : / home/ l i bs/ gx cl assr .zi p:
/ j dk 1 .1. 8 / l i b/ cl asses.zi p - Daw t . t ool k i t = com. et ek s. aw t . PJATool k i t uTest

EJECUCI ÓN DE REPORTES EN JDK 1.4:
En l a versi ón 1. 4 del JDK de Sun est á pl aneado que se pueda ut ili zar AWT en
cualquier plat aforma sin necesidad de soport e gráfico, por lo que dej ará de ser
necesari a l a ut ili zaci ón de est a bi bli ot eca.

Repor t es/ Procedimient os con salida XML
I nt r oducci ón
Est a nueva caract eríst i ca permi t e que l os report es y procedi mi ent os puedan envi ar
l os dat os del mi smo a un archi vo con for mat o XML en el caso que el
report e/ procedi mi ent o t enga cal l prot ocol int ernal , o a l a pant all a del browser en el
caso que t enga call prot ocol HTTP. Se i gnora l a present aci ón y se t oma en cuent a
sól o l os val or es de l os at ri but os y vari abl es que se encuent r en dent r o de l os Pri nt
Bl ocks.
De est a forma es muy si mpl e crear un archi vo con format o XML, ut ili zando t oda l a
pot enci a y si mpli ci dad que l os report es proveen, evi t ando t ener que ut ili zar
funci ones de baj o ni vel para hacerl o.

Al cance
Obj et os: Report es, Procedi mi ent os.
Lenguaj es: Java – Vi sual Basi c – Vi sual Fox – C/ SQL.
I nt erfaces: Web Form, Wi n Form.

Descr i pci ón
Est a funci onali dad se i mpl ement a medi ant e l a propi edad de obj et o Repor t Out put ,
y l a regl a Out put _f i l e:

Pr opi edad Repor t Out put : Se debe confi gurar el val or ‘ Onl y t o Fi l e’ , para
permi t i r que l a sali da del report e o procedi mi ent o sea di rect ament e a un archi vo.

Regl a Out put _ f i l e: Se debe i ndi car el nombre del archi vo a generar e i ndi car que
el format o del archi vo es xml .

Est r uct ur a del x ml gener ado
Los archi vos con f or mat o XML bási cament e est án compuest os por t ags y
el ement os.
224
Los t ags es l o que est á escri t o ent re l os caract eres de menor y mayor , por ej empl o
‘< Cl i ent e> ’. Lo ant eri or es un ej empl o de t ag abi ert o. Todo t ag abi ert o debe t ener
un t ag cerrado de l a for ma ‘< / Cl i ent e’> .
Un el ement o es un t ag abi ert o y cer rado j unt o con el cont eni do del medi o, por
ej empl o ‘< Cl i ent e> Juan< / Cli ent e> .

Lo ant eri or si rve para poder expl i car como det ermi na GeneXus aut omát i cament e l a
est ruct ura del xml generado.

• Por cada f or each se cr ea un el ement o corr espondi ent e al grupo en sí,
dent ro de est e se crean t ant os el ement os como i t ems ( ‘r egi st ros’) haya en el
grupo y dent ro de cada i t em se cr ea un el ement o para cada at ri but o o
vari abl e exi st ent e en el Pri nt Bl ock.

• Los t ags corr espondi ent es a l os grupos for each ll evan el nombre de l a t abl a
base segui da de l a pal abra Group, por ej empl o < Cli ent eGr oup> .

• Los t ags cor respondi ent es a l os i t ems dent r o de l os grupos l l evan el nombr e
de l a t abl a base, por ej eml o < Cli ent e> .

• Los t ags correspondi ent es a at ri but os o vari abl es ll evan el nombre del
at ri but o o vari abl e, por ej empl o < Cl i Cod> .

• Los f or each ani dados quedan ani dados en el archi vo xml .

• Los at ri but os o vari abl es que est án en Pri nt Blocks fuera de un for each no
se generan dent ro de ni ngún grupo, si no di rect ament e con l os t ags
corr espondi ent es a l os nombres de at ri but o o vari abl e.

• El XML generado queda con encodi ng I SO- 8859- 1


Obj et o GXx ml w r t
Para generar el xml el report e ut ili za i nt ernament e un obj et o de t i po XMLWri t er
ll amado GXxml wrt .
Est e obj et o puede ser ut ilizado para l o si gui ent e:
• Ut ilizando mét odos y/ o propi edades sobre el obj et o GXxml wrt se puede
agregar i nformaci ón adici onal al xml generado por el report e.
• Se puede concat enar el cont eni do de r eport es o pr ocedi mi ent os con sali da
xml pasando el obj et o Gxxml wrt por parámet r o al i gual que se hace en l os
report es t radi ci onal es con l a vari abl e &l ine.

Ej empl o
Se t i ene el si gui ent e códi go en un report e:

for each
: pri nt Pai Cod, Pai Nom
for each
: pri nt Ci uCod, Ci uNom
225
Endfor
Endfor

Se i ndi ca en l a propi edad Report Out put el val or Onl y t o Fil e.
Se i ngresa l a regl a Out put _fil e( ‘Pai ses’, ' xml ' ) ;

Al ej ecut ar el report e, suponi endo que exi st en los si gui ent es dat os:
Pai s: 1 Uruguay
Ci udad: 1 Mont evi deo
Ci udad: 2 Canel ones
Pai s: 2 Argent i na
Ci udad: 1 Sant a Fe
se genera el archi vo Pai ses.xml con l a si gui ent e est ruct ura:

< ?xml versi on= "1. 0" ?>
-< DATA>
-< PAI SES_Gr oup>
-< PAI SES>
< Pai Cod> 1< / Pai Cod>
< Pai Nom> Ur uguay < / Pai Nom>
-< CI UDADES_Group>
-< CI UDADES>
< Ci uCod> 1< / Ci uCod>
< Ci uNom> Mont ev i deo< / Ci uNom>
< / CI UDADES>
-< CI UDADES>
< Ci uCod> 2< / Ci uCod>
< Ci uNom> Canel ones< / Ci uNom>
< / CI UDADES>
< / CI UDADES_Group>
< / PAI SES>
-< PAI SES>
< Pai Cod> 2< / Pai Cod>
< Pai Nom> Ar gent i na< / Pai Nom>
-< CI UDADES_Group>
-< CI UDADES>
< Ci uCod> 1< / Ci uCod>
< Ci uNom> Sant a Fe< / Ci uNom>
< / CI UDADES>
< / CI UDADES_Group>
< / PAI SES>
< / PAI SES_Gr oup>
< / DATA>
< ?xml end ?>

226
Funci onal i dades par a Apl i caci ones
Web

Transacciones Web
I nt r oducci ón
Hast a l a versi ón GENEXUS 7. 0, l os generadores I nt ernet di sponen únicament e del
obj et o Web Panel para ser ej ecut ados desde un navegador. A part i r de l a versi ón
7. 5, se gener an t ambi én t ransacci ones para di sponer en l as apli caci ones I nt ernet
de t oda l a pot enci a de est e t i po de obj et os en el i ngreso de dat os.

Al cance
Obj et os: Transacci ones
Lenguaj es: C/ SQL – Java - Vi sual Basi c – C#
I nt erface: Web

Descr i pci ón
Las Transacci ones Web no son un nuevo t i po de obj et o GeneXus, si no un nuevo
for m para l as t ransacci ones t radi ci onal es que permi t en su ej ecuci ón en
navegadores.
La vent aj a de est as t ransacci ones es que faci li t an l a di st ribuci ón de l a apli caci ón, ya
que sólo se requiere un navegador inst alado en el client e.

Tambi én facilit an el di seño de apli caci ones Web porque permi t en resol ver el ingreso
de dat os si n t ener que defi ni r Web Panel s y Procedi mi ent os para resol verl o,
realizando aut omát i cament e t odos los cont roles de int egridad ref erencial
necesari os.

Para di señar est e nuevo f orm Web, que será el que se vi sualizará en ambi ent es
I nt ernet se ut ili za el mismo edi t or HTML que en el di seño de Web Panel s.

¿Cómo se gener a en GeneXus?
Las t ransacci ones Web se generar con cual qui er generador que soport e i nt erface
Web ( Visual Basi c, Java, C/ SQL) . Por más información sobr e las di fer ent es
i nt erfaces soport adas por GeneXus, r ef eri rse al document o “ Definición de
ambi ent es en un model o”

¿Cómo se def i ne en GeneXus?
Para di señar el form Web de una t ransacci ón, se debe abri r l a t ransacci ón y
227
sel ecci onar l a opci ón Obj ect / Web Form del menú GeneXus:





Ot ra forma de edi t ar el HTML f orm, es sel ecci onando el t ab Web Form:



I ni ci al ment e se cr ea un form donde se muest ran l os bot ones de movi mi ent o, l os
at ri but os que componen l a t ransacci ón y sus descri pci ones y l os bot ones para
confi rmar l os dat os. Tambi én t i ene un cont rol denomi nado Er r or Vi ew er donde se
despl i egan l os mensaj es. Est e cont rol podrá ubi carse en cual qui er part e del form y
se l e podrán asi gnar propi edades ( t i po de l et ra, col or, et c. ) .

Los bot ones defi ni dos aut omát i cament e por GeneXus pueden cambi arse por
i mágenes a l as que se l es asoci an en l a propi edad OnCl i ckEvent l os event os
est ándar de GeneXus ( por ej empl o, ‘Next ’, ‘Last ’, ‘Get ’, et c. )

Se muest ra un ej empl o a cont i nuaci ón:

228

Di seño del For m Web
Exi st en al gunas consi deraci ones en el di seño del form de l as Transacci ones Web
que se det all an a cont i nuaci ón:

NÚMERO DE NI VELES DE LA TRANSACCI ÓN
Las t ransacci ones Web pueden t ener un ni vel ani dado y pueden t ener vari os ni vel es
paral el os. El pri mer ni vel debe respresent arse pl ano ( sin subfil e) y el ni vel
subordi nado necesari ament e debe t ener un subf il e.
BOTONES
Los bot ones que est án di sponi bl es al usuari o final son l os si gui ent es:

Apl i car Cambi os
Al presi onar est e bot ón es que se real i zan l os cambi os ( i nserci ón o
modi fi caci ón) en l a base de dat os para l a i nst anci a de l a ll ave pri mari a del
pri mer ni vel que est é, en el moment o de ser pr esi onado el bot ón.

Ver i f i car
Al presi onar est e bot ón se val i dan l os dat os que se i ngresaron ( se cal cul an l as
fórmul as, se obt i enen at ri but os i nferi dos, et c. ) permi t i endo al usuari o
corr oborar vi sual ment e l os val ores ant es de confi rmarl os. No act uali za la
base de dat os ( sal vo que en l as regl as se i nvoque un programa que sí la
act uali ce y además, reali ce un COMMI T) . El códi go del bot ón de Check hace
un Roll back aut omát i co por si ll amó a al gún programa que act uali zó la base
de dat os.

229
Bor r ar Todo
Eli mi na l a i nst anci a ut ilizando el val or de ll ave pri mari a del pri mer ni vel que
est é en el navegador, en el moment o de ser pr esi onado el bot ón.

Mov i mi ent o
Los bot ones de movi mi ent o apli can úni cament e al pri mer ni vel y est án
deshabili t ados cuando l a Transacci ón Web reci be i nst anci ado el modo.
Los registros a mostrar en una Transacción Web cumplen las
restricciones de filtros que se apliquen por alguna de las
siguientes causas:

• Regl as de t i po equal sobre at ri but os con val ores const ant es
• At ri but os pasados como par ámet ros a l a t r ansacci ón.

Como en las transacciones tradicionales el concepto de
Siguiente o Anterior esta relacionado con el orden por
llave primaria. El botón Primero y Ultimo, buscan el
registro que contiene el valor menor o mayor de llave
primaria respectivamente.

Not a: El bot ón si gui ent e puede, al ser presi onado, t ener t i empos de
respuest a al t os si l a t abla base t i ene un númer o si gni fi cat i vo de r egi st ros.

Sel ecci onar
El bot ón ‘Sel ecci onar’ permi t e al usuari o ej ecut ar el prompt asoci ado a l a
t ransacci ón en una nueva vent ana del browser.
Est e bot ón no se deshabilit a nunca, pero al ll amar al aut oprompt sól o se
act uali zan l os at ri but os que son edi t abl es. Si se act uali zó al guno de l os
at ri but os al ret ornar del aut oprompt se fuerza un get si empre y cuando el
bot ón ’Get ’ est é en el form.

Consi der aci ones Gener al es
La pri nci pal di ferenci a de l as Transacci ones Web con l as t ransacci ones de l as
apli caci ones t radi ci onales es el di ál ogo que empl ean, l o que i mpli ca di ferenci as en
l a vali daci ón de l os dat os y en el di sparo de l as regl as.

Las Transacci ones Web t i enen un di ál ogo a pant all a compl et a, semej ant e al que se
provee en el AS/ 400 en pant all as de t ext o. La razón de est e di seño es faci li t ar el
uso en ambi ent es de I nt ernet donde un di ál ogo de t i po campo a campo como en l os
ambi ent es vi sual es ( Vi sual Basi c, Vi sual FoxPr o, et c. ) r esul t aría i nvi abl e por
perf ormance

Con est e t i po de di ál ogo, l as regl as se di sparan en dos moment os: al i ngresar a l a
t ransacci ón ( l as que no t i enen condi ci ones de di sparo) y t ambi én al confi rmar l os
dat os. Est o det ermi na di ferenci as en el comport ami ent o de aplicaci ones que
t i enen di ál ogo campo a campo:

• No se val i da campo a campo
• No se pueden di sparar regl as ent re un at ri but o y ot ro con regl as ‘aft er
230
at t ri but e’. El ‘Aft er( At t ri but e) ’ se comport a como el ‘Aft er ( Level ) ’
• Los at ri but os de l a t abla ext endi da se cargan al moment o de confi rmar l os
dat os y no ant es. El usuari o puede vi sualizarl os presi onando el bot ón
‘Check’.

I nt egr i dad t r ansacci onal
Por l a forma de t rabaj o en I nt ernet , l as Transacci ones Web “ vi ven” sol ament e el
t i empo ent re que el usuari o de un navegador sel ecci onó el link o presionó un bot ón
y l a nueva pági na es most rada. Toda modi fi caci ón a l a base de dat os que se haga
durant e l a “ vi da” debe ser confi rmada o el i mi nada ant es de que l a Transacci ón
Web “ muera” y ret orne l a pági na resul t ant e.

Como consecuenci a, una Transacci ón Web i ni cia una UTL ( uni dad de t rabaj o l ógi ca)
al comenzar a ej ecut ar y l a ci erra ( ya sea por COMMI T o ROLLBACK) ant es de
t ermi nar. No puede f ormar part e de ot ra UTL. Si un programa ll ama a una
Transacci ón Web, ést a iniciará ot ra ( nueva) UTL.

Por t odo est o, no apli ca l a propi edad ‘Commi t on Exi t ’ en l as Transacci ones Web.

Cont r ol de concur r enci a
Las Transacci ones Web ut ili zan el di ál ogo pseudo- conversaci onal . Est o i mpli ca que,
mi ent ras el usuari o est a real izando modi fi caci ones a l os dat os o si mpl ement e
vi éndol os, no exi st e ni ngún t i po de l ocks en l a base de dat os.
El cont r ol de cambi os ( es deci r l a vali daci ón ent re l a l ect ura i ni ci al y l a
confi rmaci ón) se real i za a ni vel de cada t abl a invol ucrada en l a Transacci ón Web.
Los val ores l eídos al moment o de “ envi ar” l os dat os son comparados con sus
corr espondi ent es, en cada t abl a, en el moment o de “ reci bi r” l as modi fi caci ones
( cuando el usuari o presi ona Confi rm) . Si l os val ores no coi nci den, se i nforma al
usuari o que hubo cambios y que debe i nt ent ar nuevament e.

Es i mport ant e not ar que el cont rol de cambi os se real iza sobre t odos l os at ri but os
i nvol ucrados sal vo aquell os de t i po Long VarChar por su t amaño.

Pr ompt s
Para cada Transacci ón Web se genera un Web Panel que será el prompt por
def ect o ( aut oprompt ) , y l os prompt s corr espondi ent es a l as cl aves foráneas que
se t engan.

Regl as
La regl a Defaul t _mode no apli ca en Transacci ones Web.
La regl a Defaul t ( At t ,&t oday) se di spara úni cament e l a pri mera vez que se
ej ecut a l a Transacci ón Web, en su l ugar se aconsej a ut ili zar defaul t ( At t , t oday( ) ) .
Lo mi smo ocurre con l a vari abl e &t i me y l a función Ti me( ) correspondi ent e.
El comport ami ent o de l a regl a defaul t es di ferent e que en l as apli caci ones no
Web. Si se i ngresa a una Transacci ones Web en modo I nsert , l a regl a se di spara
al i ngresar a l a Transacci ón, y no l uego de i ngresar l a cl ave como en l as
apli caci ones no Web.
231

Tr ansacci ones Web si n Modo i nst anci ado
Las t ransacci ones Web pueden i nvocar se si n reci bi r el modo i nst anci ado. Se det al la
el comport ami ent o de l as mi smas dependi endo de l a acci ón: i nserci ón,
modi fi caci ón o eli mi nación de regi st ros.

Modo I nser t
Al ingresar a una Transacci ón Web de est e t i po, se comi enza en modo I nsert , y se
despl i ega una pant all a con l a si gui ent e forma:




Si se qui ere i ngresar un regi st ro nuevo, se digi t an l os dat os en l a pant alla y se
presi ona el bot ón ‘Aplicar Cambi os’. Est o provoca, en pri mera i nst anci a, que se
vali den l os dat os ingresados en forma si milar a cuando se presi ona el bot ón
‘Veri fi car’. En caso de que ya exi st a el regi st ro va a dar un mensaj e de er ror que se
despl i ega en el Er r or Vi ew er . El mensaj e es ‘Ya exi st e el regi st ro’.

Ademas, si no se t rabaj a con confi rmaci ón, se i nsert arán l os dat os. Si se t rabaj a
con confi rmaci ón, se despl egará el mensaj e ‘Por favor confi rme l os dat os’. Al
presi onar nuevament e el bot ón ‘Apli car Cambi os’, se i nsert arán l os dat os.

Luego de act uali zada l a base de dat os, se despli ega el mensaj e ‘Los dat os han si do
act uali zados’:


232




Modo Updat e
Para ent rar en modo Updat e, se deberá poner un val or en l a cl ave y presi onar el
bot ón ‘Get ’ ( ) . Est o hace que se carguen l os dat os del regi st ro.

Al cargar l os dat os t ambi én se t raen l as descri pci ones. Se pueden modi fi car l os
dat os y presi onar el bot ón ‘Apli car Cambi os’, y se act uali zarán l os dat os con un
procedi mi ent o anál ogo al que se si gue para el modo I nsert .

Modo Del et e
Para eli mi nar un regi st ro pri mer o se debe i ngresar en modo ‘Updat e’ ( i ngresando l a
cl ave y pr esi onando el bot ón ‘Get ’) , y l uego pr esi onar el bot ón ‘Bor rar Todo’, l o que
provoca que se deshabi li t e di cho bot ón. En el caso de t rabaj ar con confi rmaci ón, se
desplegará el mensaj e ‘Confi rme la eliminación de los dat os’:

233



Al presi onar el bot ón ‘Apli car Cambi os’, se el i mi narán l os dat os y de despl egará el
mensaj e ‘Los dat os han si do eli mi nados’:




En el caso de que no se t rabaj e con confi rmaci ón, al presi onar el bot ón ‘Borrar
Todo’ se eli mi narán di rect ament e l os dat os y se despl egará el mensaj e ‘Los dat os
han si do eli mi nados’, si n necesi dad de presi onar ‘Apl i car Cambi os’.

El eli mi narse un regi st r o se cargan l os dat os corr espondi ent es al regi st ro, quedando
en modo ‘Act uali zar’. Si se bor ran t odos l os r egi st ros, queda en modo ‘I nsert ’.

234
Tr ansacci ones Web con Modo i nst anci ado
Las Transacci ones Web que se i nvocan i nst anci ando el modo I nser t , Updat e o
Del et e, deshabi li t an l os bot ones de movi mi ent o ent re r egi st ros y l os bot ones ‘Get ’,
‘Sel ecci onar ’ y ‘Bor rar Todo’.

Modo Del et e
Cuando se i nvoca una Transacci ón Web i nst anci ando el modo Del et e si empr e se
despl i ega el mensaj e ‘Confi rme l a eli mi naci ón de l os dat os’, si n i mport ar si se est a
t rabaj ando con confi r maci ón o no. Al presi onar el bot ón ‘Apli car Cambi os’, se
eli mi na el regi st ro.

Tr ansacci ones Web de más de un ni vel
Cuando se t rabaj a con Transacci ones Web de mas de un ni vel , se t i enen que t ener
en cuent a l os si gui ent es punt os:

• Númer o de ni v el es de una t r ansacci ón
Las t ransacci ones Web pueden t ener un ni vel ani dado y pueden t ener vari os ni vel es
paral el os. El pri mer ni vel debe respresent arse pl ano ( sin subfil e) y el ni vel
subordi nado necesari ament e debe t ener un subf il e.

• El i mi naci ón de l íneas

En di seño se ut ili za una vari abl e &GxRemove defi ni da y agregada aut omát i cament e
a l os subfil es de l a pant all a por def ect o. Est a vari abl e es un check box que se ubi ca
en l a pri mera col umna del subfil e, con t ít ul o ‘Remove Li ne’.

Cuando se desea el i mi nar al guna línea del subfil e, se debe mar car l a mi sma con el
check box, y presi onar el bot ón de ‘Apli car Cambi os’, no de ‘Bor rar Todo’. Est e
últ i mo el i minará t oda l a t ransacci ón, no l as l íneas mar cadas.


Not a: Es i mport ant e consi derar nuevament e que cuando se est á en una
Transacci ón Web se est á modi fi cando t odo el “ document o” y no se est á en un ni vel
en part i cul ar de l a mi sma. Por eso para eli minar líneas se debe ut ilizar el bot ón
‘Apli car Cambi os’ porque en real i dad se est á act uali zando el “ document o” . Lo
mi smo para agregar l íneas, se debe ut ili zar el bot ón ‘Apli car Cambi os’ porque se
est á act uali zando el “ document o” .
Consi der aci ones específ i cas par a el gener ador Vi sual
Basi c
Se pueden generar sobr e bases de dat os l ocal es ( MDB) o C/ S.

Cuando se compi l a una Transacci ón Web, para poner en producci ón, se debe copi ar
al di rect ori o donde est ará l a DLL y l a pági na ASP corr espondi ent e a l a Transacci ón
Web l os archi vos * . j s que se encuent ran en el di rect ori o del model o y el prompt . gi f,
para que aparezca el bot ón de prompt en l as cl aves f oráneas.
235

Ej empl os
En ht t p: / / www. art ech. com. uy/ cgi - bi n/ webart ech/ hdcver03. exe?N, 31, 0, 409 se
encuent ran ej empl os de Transacci ones Web.
Además, exi st e ot ro ej empl o que ut iliza Transacci ones Web en el si gui ent e li nk
http://www.artech.com.uy/cgi-bin/webartech/hdcver03.exe?S,31,0,423, donde se puede ver
l o fácil que es real i zar al t as, baj as y modi fi caci ones con Transacci ones Web, si n l a
necesi dad de t ener que defi ni r Web Panel s y procedi mi ent os auxiliares para est a
t area.

Web Component s
I nt r oducci ón
Nor mal ment e cuando se desar rol l a una apli caci ón hay muchas part es de l a mi sma
que pueden ser r eut ili zadas en vari os obj et os.
El obj et i vo de l os Web Component s es permi t i r un al t o grado de reut ilizaci ón de
est as part es ( component es) di smi nuyendo así el cost o de desarr oll o y
mant enimient o de las apli caci ones.

Al cance
Obj et os: Web Panel s
Lenguaj es: C/ SQL – Java – Vi sual Basi c – C#
I nt erfaces: Web

Descr i pci ón
Los ‘Web Component s’ son Web Panel s que t ienen una propi edad que i ndi ca que
son component es. Es deci r, pueden ser ej ecut ados en forma i ndependi ent e como
cual qui er ot ro Web Panel o pueden formar part e de ot ro obj et o web ( Web Panel o
Web Transact i on) ; por ende permi t en a l os di señadores de apl i caci ones Web
GeneXus un al t o grado de reut ili zaci ón de l os mi smos.
Cual qui er part e de un Web Panel que se repi t a en vari os obj et os webde una
apli caci ón, puede ser defi ni da como Web Component .
Al gunos ej empl os: menús, l ogi n, área que permi t e l a personal izaci ón, et c.

La i dea ent onces es, en l ugar de t ener i mpl ement ado, por ej empl o, l a carga del
menú en cada uno de l os Web Panel s que requi eren el mi smo, programarl a en un
Web Component y reut ili zarl o en cada Web Panel que requi ere un menú.

Def i ni ci ón de Web Component s
Para defi ni r un Web Panel como Web Component se debe confi gurar l a propi edad
‘Web Component ’ del obj et o en ‘YES’. Se debe not ar que un Web Panel defi ni do
236
como Web Component no pi erde ni nguna de sus caract eri st i cas, por l o t ant o, si es
un Web Panel MAI N, puede ser ej ecut ado en f orma aut ónoma.


Los Web Component s se generan dent ro del mi smo HTML del Web Panel que l os
cont iene. Est o si gnifica que el ser vidor resuel ve la inclusión del Web Component en
t i empo de ej ecuci ón y devuel ve al navegador el códi go HTML con el Web
Component ya i ncl ui do.
Uso de Web Component s
Para i nsert ar un Web Component en un Web Panel o Web Transact i on se debe
el egi r l a opci ón I nsert / Web Component , con l o cual se cr eará un obj et o de t i po
‘Web Component ’ en el mi smo, como se puede observar en l a si gui ent e fi gura:




Tambi en es posi bl e insert arl o con un sol o cl i c en el ícono de barra de cont rol es.

Además, se pueden i nsert ar Web Component s en subfi l es fr eest yl e como se puede
observar en la si guient e fi gura:

237


Para det ermi nar el obj et o que se va a despl egar en l ugar del cont rol Web
Component , se ut ili zan l as propi edades del mi smo. El web panel a despl egar se
puede fi j ar en di seño o en t i empo de ej ecuci ón, como se descri be a cont inuaci ón.

Pr opi edades
El obj et o Web Component t i ene l as si gui ent es propi edades de di seño:


238

Cont rolName: Nombr e del cont rol
Obj ect : Permi t e asoci ar un obj et o de t i po web panel al web component . Sól o
se acept anobj et os con l a propi edad Web Component en YES.
Paramet ers: Permi t e especi fi car l a li st a de parámet ros con l os que se
i nvocará el web component .
PROPI EDADES MODI FI CABLES EN EJECUCI ÓN
A cont i nuaci ón se det all an l as propi edades de l os Web Component s que se
pueden modi fi car en t i empo de ej ecuci ón:

1. Obj ect : permi t e det er mi nar en t i empo de ej ecuci ón el Web Panel que se
va a despl egar en el lugar del cont rol . Para i nvocar el Web Component se
debe ut i lizar l a si gui ent e si nt axi s:
Cont rol . Obj ect = Cr eat e( Hxxx, [ par1] , . . . [ parn]

Si endo Cont rol el nombre del cont rol Web Component agregado al obj et o,
Hxxx el Web Panel que est á confi gurado como Web Component
( Propi edad ‘Web Component ’ con val or ‘Yes’) y par1 a parn l os
parámet ros que reci be di cho Web Panel .

Vi si bl e: si l a propi edad Vi si bl e t i ene el val or 0, el Web Component desaparece del
for mul ari o.


Web Component s ‘ di námi cos’
Como l o demuest ra l a si nt axi s, es posi bl e di nami zar l os Web Component s, es deci r
que el cont eni do de un Web Component sea vari abl e. Por ej empl o:
&vari abl e = ‘HMenu’
Comp1. Obj ect = Creat e( &vari abl e)

Tant o si se i nvoca de f orma di námi ca como est át i ca, en el pr ograma generado l a
invocación será est át ica. Es decir la invocación dinámica ( creat e( &Var ) ) se genera
como:

Do Case
Case &Var= ” Obj et o1”
Creat e( Obj et o1)
Case &Var= ” Obj et o2”
Creat e( Obj et o2)
. . . .
endcase

Est o i mpli ca que si se agrega un component e al model o y el mi smo será ll amado de
forma dinámica, se deberán regenerar y compilar t odos los “ invocador es” de ese
nuevo component e. Est o, en C# y Java no es est ri ct ament e necesari o; bast a con
generar y compi l ar el component e mi smo.
GeneXus det ermi na aut omát i cament e un domi ni o de obj et os l l amados en un creat e
di námi co. El domi ni o est a defi ni do por l os Web Panel s que t i enen la propi edad
WebComponent en YES y que t i enen i gual cant i dad y t i po de parámet ros que el
cr eat e. Est os obj et os se verán además en el obj ect br owser como obj et os l l amados.
239
Por l o t ant o, al compilar el web panel ‘padre’ C/ SQL y VB compi lan en forma
aut omát i ca l os posi bl es Web Component s l l amados.



Obser v aci ones
En di seño, el t amaño del Web Component permanece fi j o, pero en
ej ecuci ón, el t amaño quedará suj et o al espaci o ocupado por el mi smo. La
for ma de fi j ar el t amaño del Web Component en ej ecuci ón es ent onces
i ncl uyéndol o en una t abl a y fi j ando el t amaño de l a cel da.
Un Web Component puede a su vez cont ener ot r os Web Component s.
Los parámet ros de l os Web Panel s cuando son ut ili zados como Web
Component s no son opci onal es. Not ar que est o es una di ferenci a con l os
Web Panel s ‘comunes’ cuyos parámet r os sí son opci onal es.
La asi gnaci ón de un Web Component puede real i zarse dent ro de
cual qui er event o del web panel ‘padre’.
Si se asi gna un Web Component en el event o St art del padre, l os
paramet ros se pasarán sol ament e l a pri mera vez que se cr ea. En
sucesi vos POST, l os par ámet r os se r ecordarán del render ant eri or.
Si se asi gna un Web Component en cual quier ot r o event o ( Refr esh,
Load, de usuari o, et c. ) , l os parámet ros se pasarán si empre que se
ej ecut e di cho event o.
Si se asigna el web panel en l a propi edad Obj ect del cont rol Web
Component en di seño, el pasaj e de parámet ros se real i za en forma
anál oga a l o descri t o en el punt o ant eri or.
Los cont rol es y l as vari abl es de l os Web Component s no son accesi bles
por l os obj et os que l os cont i enen ( obj et o web ‘padre’) . Si por ej empl o se
desea que un campo del Web Component t enga un col or det ermi nado
por el padre, se l e t endrá que pasar por parámet ro el col or y asi gnarl o
en el event o St art del Web Component .
En ej ecución, las propiedades del f orm del Web Component son
heredadas del obj et o web que l o cont i ene. Por ej empl o si el form de un
Web Component t i ene col or verde, pero el form del obj et o web que l o
cont i ene t i ene col or bl anco, ent onces est e úl t imo predomi nará sobr e el
primero. No es así con las pr opiedades de los demás cont roles.
No se soport a el uso de at ri but os como pri mer parámet ro de l a funci ón
Creat e.
En C/ Sql y Vi sual Basi c el . EXE o . ASP del mai n i ncl ui rá l os fuent es de
t odos l os web component s ll amados por él . Est o es di ferent e en Java y
C# , donde cada obj et o t i ene su propi o . cl ass o . dll . Est o no
necesari ament e es un probl ema para Vi sual Basi c o C ( l os ser vi dor es
t i enen t ecnol ogía de “ swappi ng” l o cual i mpli ca que no haya perdi da de
perf ormance por el t amaño del EXE o ASP) .


EJECUCI ÓN DE OBJETOS WEB CON WEB COMPONENTS
A cont i nuaci ón se descri be l a ej ecuci ón de obj et os Web que cont ienen Web
Component s.

240
Web Component s en ár ea pl ana del obj et o Web
Or den de ej ecuci ón de l os event os
Se puede di ferenci ar dos i nst anci as al ej ecut ar un obj et o web que i ncluye un
Web Component : pri mera l l amada al obj et o web ( GET) y di sparo de un
event o en el obj et o ( POST) .

Primer llamada ( GET)

El orden de ej ecuci ón de l os event os al reali zar l a pri mer ll amada al mi smo
( GET) es el si gui ent e:
Event o START del obj et o web que cont i ene el Web Component ( obj et o
Web ‘padr e’) ,
Event o REFRESH del obj et o Web ‘padr e’,
Event o START de t odos l os Web Component s dent ro del obj et o web que
no est án dent ro de subfil es,
Event os REFRESH y LOAD de cada uno de l os Web Component s y de l os
subfil es en el orden que apar ecen en pant all a ( de arri ba a abaj o y de
i zqui erda a der echa) .

Ej empl o:

En l a si gui ent e fi gura, se puede observar un Web Panel que cont i ene 2 Web
Component s ( A y B) y un subfil e. Cada Web Component t i ene a su vez un
subfil e.

















En est e caso el orden de l os event os cuando se ej ecut a por pri mera vez es el
si gui ent e:

1. Event o START del Web Panel
2. Event o REFRESH del Web Panel
3. Event o START del Web Component A
4. Event o START del Web Component B
5. Event o REFRESH del Web Component A y event o LOAD del subfil e en
el Web Component A
6. Event o LOAD del subfil e del Web Panel
7. Event o REFRESH del Web Component B y event o LOAD del subfil e en
A B
241
el Web Component B


Disparo de un event o ( POST)

Al di sparar un event o, el orden de l os event os depende de si se di sparó el
event o en el padre o en un Web Component . A cont i nuaci ón se anali zan
ambos casos.

NOTA: La l ect ura de vari abl es de cada obj et o se real i za si empre
i nmedi at ament e después del event o START de di cho obj et o.

Di sparo de un event o de un Web Component

Event o START del obj et o web padre,
Event o START del Web Component cuyo event o se di sparó,
Event o de usuari o del Web Component ,
Event o REFRESH del obj et o web padr e,
Event o START de l os Web Component s rest ant es
Event os REFRESH y LOAD cada uno de l os Web Component s y subfi les
en el orden que apar ecen en pant all a.


En el ej empl o, si se di spara un event o del Web Component A, el orden de l os
event os sería el si gui ent e:

1. Event o START del Web Panel
2. Lect ura de vari abl es del Web Panel
3. Event o START del Web Component A
4. Lect ura de vari abl es del Web Component A
5. Event o de usuari o del Web Component A
6. Event o REFRESH del Web Panel
7. Event o START del Web Component B
8. Lect ura de vari abl es del Web Component B
9. Event o REFRESH del Web Component A y event o LOAD del subfil e en
el Web Component A
10. Event o LOAD del subfil e del Web Panel
11. Event o REFRESH del Web Component B y event o LOAD del subfil e en
el Web Component B

Di sparo de un event o en el obj et o web padr e

Event o START del obj et o web padre
Event o de usuari o del obj et o web padre
Event o REFRESH del obj et o web padr e
Event os START de t odos l os Web Component s en el orden que se
encuent ran en pant all a
Event os REFRESH y LOAD de l os Web Component s y subfi l es en el orden
que apar ecen en pant alla.

En el ej empl o, al di spararse un event o del Web Panel , el orden de l os event os
sería el si gui ent e:

242
1. Event o START del Web Panel
2. Lect ura de vari abl es del Web Panel
3. Event o de usuari o del Web Panel
4. Event o REFRESH del Web Panel
5. Event o START del Web Component A
6. Lect ura de vari abl es del Web Component A
7. Event o START del Web Component B
8. Lect ura de vari abl es del Web Component B
9. Event o REFRESH del Web Component A y event o LOAD del subfil e en
el Web Component A
10. Event o LOAD del subfil e del Web Panel
11. Event o REFRESH del Web Component B y event o LOAD del subfil e en
el Web Component B

Not a: si el obj et o web t i ene más de un subfil e, pri mero se ej ecut a el REFRESH
i ndependi ent e de l os subfil es y l uego el refr esh de cada uno de l os subfil es en el
orden en que aparecen en pant all a.

Web Component s en subf i l e f r eest y l e
Or den de ej ecuci ón de l os event os

En caso de haber Web Component s en subfil es, se ej ecut a el event o START
del Web Component j ust o ant es del event o REFRESH en vez de ej ecut arse al
pri nci pi o.

Todos l os event os del Web Component ( START, REFRESH y LOAD si t i ene
subfil es) se ej ecut an cada vez que aparece el Web Component .

Ej empl o
El si gui ent e ej empl o ayuda a ent ender mej or l a funci onali dad de l os Web
Component s, su ut ili dad y pot enci a:
ht t p: / / www. gxt echni cal. com/ cgi - bi n/ HDCent er. exe?2, 5, 36, 407
Para ver el ej empl o funci onando, se debe ej ecut ar el web panel ‘hcont ent ’.

Embedded pages
I nt r oducci ón
El obj et i vo de l as ‘Embedded Pages’ es poder i ncl ui r i nformaci ón ext erna, es deci r
despl egar el cont eni do de cual qui er URL en obj et os web generados por GeneXus.

Al cance
Obj et os: Web Panel s, Web Transact i ons
Lenguaj es: C/ SQL – Java – Vi sual Basi c – C#
243
I nt erfases: Web
Descr i pci ón
Una ‘Embedded Page’ es un cont rol que se puede i nsert ar en un Web Panel o una
Web Transact i on. A est e cont rol se l e puede asoci ar cual qui er pági na u obj et o web
GeneXus, cuyo cont eni do l uego será i ncl uido en ej ecuci ón dent r o del obj et o.
Vent aj as del uso de Embedded Pages
El uso de Embedded Pages bri nda a l os usuari os GeneXus l a si gui ent e vent aj a:

I ncl ui r i nformaci ón ext erna: permi t e que se i ncl uyan pági nas est át icas o
di námi cas de l a propi a apli caci ón o desarroll adas por t erceros. Di chas
pági nas pueden est ar en el mi smo ser vi dor que l a apli caci ón o en ot ro
servi dor. Est a caract eríst i ca brinda gran di nami smo a l as apli caci ones web
desarr oll adas con GeneXus.

Gener aci ón de Embedded Pages
Las ‘Embedded Pages’ se generan como un ‘i nli ne frame’ en el HTML fi nal . Al
ej ecut ar el obj et o que cont i ene una ‘Embedded Page’, el browser se encarga de
real i zar el requeri mi ent o de l a pági na asoci ada y de i ncl ui rl a dent ro del inli ne
frame.


Requer i mi ent os
Para poder vi sualizar obj et os Web que cont i enen ‘Embedded Pages’, se requi eren
browsers que soport en el t ag cor respondi ent e al ‘i nli ne frame’ ( < I FRAME> ) . En
consecuenci a, el browser ( en el cli ent e) debe ser como míni mo I nt ernet Expl or er
4. 0, Net scape 6. 0 o versi ones superi or es.

Uso de Embedded Pages
Para i nsert ar una Embedded Page en un Web Panel o Web Tr ansact i on se debe
sel ecci onar l a opci ón I nsert / Embedded Page, con l o cual se creará un cont rol de
t i po ‘Embedded Page’ en el mi smo como se puede observar en l a si guient e fi gura:

244


Tambi en es posi bl e insert arl a con un sol o cl i c en el ícono de barra de cont rol es.

Pr opi edades
El cont rol ‘Embedded Page’ t i ene l as si gui ent es propi edades:

245


Cont rolName: Nombr e del cont rol.
BorderSt yl e
Scroll bars
Source
Tool t i pText
Hei ght
Wi dt h
Ali gn
PROPI EDADES MODI FI CABLES EN EJECUCI ÓN
A cont i nuaci ón se det al l an l as propi edades modi fi cabl es en t i empo de ej ecuci ón:
BorderSt yl e
Tool t i pText
Source
Vi si bl e
Hei ght
Wi dt h
Hei ght Uni t
Wi dt hUnit

Not a: La propi edad Tool t i pText no funci ona en I nt ernet Expl orer 6. 0 o menor. Sí
funci ona en Net scape 6. 0 o superi or .




246
Obser v aci ones
Si en l as propi edades del cont rol no se especi fi ca l a propi edad Source,
ent onces en el event o START o REFRESH se debe asi gnar al gún val or a
l a mi sma. Por ej empl o EP.Sour ce = “ ht t p: / / www. genexus. com” , si endo
EP el nombre del cont rol ‘Embedded Page’.
Se permi t e l a asi gnaci ón di námi ca de URLs, es deci r se permi t e al go del
est i l o
&url = “http://www.genexus.com”
EP.Source = &url
Se pueden incluir Embedded Pages dentro de subfiles
freestyle.


Or den de l os event os
Como se menci onó ant eri orment e l a ‘Embedded Page’ es una pági na t ot al ment e
i ndependi ent e del obj et o web que l a cont i ene, por consi gui ent e, si se ut iliza un
obj et o GeneXus en una ‘Embedded Page’, l os event os de ést e y del cont enedor se
di spararán en forma i ndependi ent e y no es posi bl e est abl ecer a pri ori cuando se
ej ecut an l os de uno con r el aci ón a l os del ot ro.

Ej empl o
El si gui ent e ej empl o demuest ra l a funci onali dad bási ca de l as ‘Embedded Pages’:
ht t p: / / www. gxt echni cal. com/ cgi - bi n/ HDCent er. exe?2, 5, 36, 604

Creat e SSP on request
I nt r oducci ón
Se agregó el val or Creat e St at i c Panel s on request para poder generar l as páginas
SSP ( Smart St at i c Panel s) a demanda.

Al cance
Obj et os: Web Panel s
Lenguaj es: C/ SQL – JAVA – Vi sual Basi c
I nt erface: Web

Descr i pci ón
Se agregó el val or Creat e St at i c panel s on request a l a preferenci a Generat i on Mode
de l a secci ón Web I nf ormat i on. Además de l a pref erenci a Generat i on Mode, exi st e
t ambi én l a propi edad –con el mi smo nombre- a ni vel de obj et o.

247
Est e val or si gni fi ca que al ej ecut ar el web panel con acceso di námi co,
aut omat i cament e se generará l a pági na est át i ca correspondi ent e a l a i nst anci a de
dat os.

Per mi t e t ener un si t i o compuest o por pagi nas di námi cas y pági nas est át i cas sin que
sea necesari o ej ecut ar un proceso que gener e t odo el si t i o en forma est át i ca con
ant eri ori dad, si no que est as pági nas est át i cas se generarán para l as i nst anci as de
dat os que se requi era cuando se ej ecut e l a pági na di námi ca corr espondi ent e en el
si t i o.

El si t i o funci onará si empre como si fuera dinámi co, est o si gni fi ca que l os li nks
si empre son al obj et o web panel di námi co.

Al ej ecut arse el web panel dinámi co, l o pri mero que se cont r ol a es que exi st a l a
pági na est át i ca ( . ht ml ) correspondi ent e a si mi smo i ncluyendo t ambi en l os
parámet ros que se l e pasaron.
Si est e archi vo exi st e, se redi recci ona l a ll amada a di cho ht ml .
Si no exi st e aut omát i cament e se cr ea el .ht ml y l uego se redi recci ona.

Exi st en dos pref erenci as en l a secci ón Web I nf or mat i on:

On r equest SSP ser ver di r ect or y
Est a pr ef er enci a indi ca el di rect ori o del servi dor en donde el web panel genera
los ar chivos . HTML. El di rect orio debe exist i r previament e.
Si no se especi fi ca est a pref er enci a, se generar án en el di rect ori o donde est a
el web panel .

On r equest SSP cl i ent URL
Est a pr ef er enci a i ndi ca l a URL en donde est an l os archi vos ht ml . Se
corr esponde físi cament e al mi smo di rect or i o que se confi guró en l a
pref erenci a ant eri or.

Si el webpanel dinámico est a en el mi smo di rect ori o que l a pági na est át i ca no es
necesari o confi gurarl o. En caso cont rari o, si es necesari o porque est e val or
se ut i liza para que funci onen l os boot ones y l os links.

Consi der aci ones

El generador C/SQL no utiliza las preferencias On request SSP server directory y On request
SSP URL de la sección Web Information, sino que utiliza dos nuevas entradas en el archivo
de configuracion gxcfg.ini en la sección Web, como se muestra a continuación:

[ Web]
OnRequest SSPServer Di r = < di rect ori o>
OnRequest SSPCl i ent Di r = < url >

Se debe i ncl ui r l a barra fi nal en el di rect ori o y en l a url

Ej empl o:
248
ht t p: / / myserver/ cgi - bi n/ sspht m/

[ Web]
OnRequest SSPServer Di r = c: \ i net pub\ cgi- bi n\ sspht m\
OnRequest SSPCl i ent Di r = ht t p: / / myser ver/ cgi - bi n/ sspht m/

WAP
I nt r oducci ón
En l os úl t i mos años t ant o I nt ernet como l a t el efonía cel ul ar han t eni do un gran
cr eci mi ent o y se han hecho accesi bl es a mill ones de per sonas. Es posi ble ahora uni r
est as dos t ecnol ogías accedi endo de forma f ácil y rápi da a l a informaci ón que
brinda I nt ernet desde los t eléf onos celulares ( ó móviles) .

A part i r de est a versión GeneXus permi t e generar sal idas para I nt ernet móvi l ,
generando obj et os con cont eni do WML.
Al cance
Obj et os: WebPanel s
Lenguaj es: Vi sual Basi c, Java, C/ SQL y C#
I nt erfaces: Web
Al gunas def i ni ci ones
WAP ( Wi r el ess Apl i cat i on Pr ot ocol )
Es el prot ocol o más común de I nt ernet Móvi l .
I nt er net móv i l es el t érmi no comerci al para acceder a i nformaci ón de I nt ernet a
t ravés de di sposi t i vos móvi l es.
Los di sposit ivos móviles más comunes son los t eléf onos celulares con
“ mi crobrowser” pero t ambi én ent ran en est a cat egoría, l os di sposi t i vos de t i po pal m
y cual qui er di sposi t i vo de i nformaci ón port át i l , que pueda di sponer de una conexi ón
i nal ámbri ca.
Est e prot ocol o consi st e en un model o de capas que i ncl uyen un I P inal ámbri co,
capas de seguri dad ( WSL) y l enguaj es de descri pci ón de cont eni dos ent re el l os
WML.

WML
Lenguaj e de “ t ags” basado en XML. Es i nt erpret ado por l os cel ul ares WAP
compat i bl es. Es par eci do al HTML, per o t i ene menos pot enci a y soport a al gunas
cosas que el HTML no y es bast ant e más est ri ct o en l a si nt axi s.
WML v s HTML
Por el t amaño de l a pant all a, es i mposi bl e t raduci r o ver de forma sat i sf act ori a una
pági na de web normal ( HTML) en un cel ul ar. El t amaño, l os t i pos de l et ra, l as
i mágenes y l a cant i dad de i nformaci ón que se soport a en el WEB no se puede
249
soport ar en un mi crobr owser y no es práct i co hacerl o.
La navegaci ón, además, es di ferent e, el usuari o no t i ene rat ón, ni t ecl ado por l o
que el i ngreso de dat os debe ser l i mi t ado y l a navegaci ón, mucho más si mpl e.
Mi cr oBr ow ser
Es un soft war e i nst al ado en el t el éfono o di sposi t i vo inal ámbri co que i nt erpret a el
WML ( y el WMLScri pt , WTAI , et c. ) y despl i ega l a i nformaci ón en l a pant all a.
Es posi bl e acceder a emul adores de cel ul ares y sus mi cr obr owser . Al gunos de l os
más conoci dos son UP Browser ( Unwi red Pl anet ) de Phone. com, RS380 Eri csson,
Noki a, et c.
Ar qui t ect ur a
La arqui t ect ura es si mil ar a I nt ernet . El cli ent e es el t el éfono cel ul ar con
Mi croBr owser y en el servi dor se encuent ra l a lógi ca en obj et os ( ej ecut abl es o ASP)
con cont eni do WML o sea que al ser i nt erpr et ados por l os br owsers generan WML.

Descr i pci ón
Para generar Web Panel s con cont eni do WML, se i mpl ement ó una nueva propi edad
( a ni vel de obj et o) denomi nada ‘Tag Language’.
Los val or es de l a pr opi edad son:
• HTML
• WML

El val or por defect o es HTML para cual qui er obj et o I nt ernet .
Con el val or WML es posi bl e generar obj et os con cont eni do WML, est os podrán ser
vi st os desde un browser WAP.

Est a propi edad es vál i da si se ut i liza el generador Vi sual Basi c para l a generaci ón
de obj et os Web.
Requer i mi ent os
Para t est ear est a car act eríst i ca di rect ament e en l a máqui na de desarr oll o es
necesari o t ener i nst al ado el emul ador de mi cr obrowser.
Recomendamos el UP Browser ( UP. SDK versi on 4. 0) que es posi bl e baj arl o de:
http://www.openwave.com/products/developer_products/sdk/
El product o es si n cargo, para acceder al mi smo se debe r eal izar l a regi st raci ón en
di cha pági na.
El archi vo ocupa apr oxi madament e 7 MB.
Di seño
Se deben defi ni r l os Web Panel como hast a el moment o y confi gurar l a propi edad
‘Tag Language = WML’.

En el di seño del obj et o se deben t ener en cuent a l as si gui ent es l i mit aci ones del
l enguaj e generado ( WML) :

• Los obj et os WML est án li mit ados en el t i po y cant i dad de cont rol es que se
soport an así como en el t amaño de l as páginas debi do a l a cant i dad de
250
memori a de l os móvi l es y el t amaño de l a pant all a.
• Las pant all as permi t en ent re 4 a 8 líneas de t ext o, dependi endo del móvi l ,
por l o que no se recomi enda que l as pant all as superen est os t amaños. No es
conveni ent e que se t enga scrol l en una pant alla de t el éfono cel ul ar.
• Sol o se soport an l os si gui ent es cont r ol es:
o Edi t
o Text bl ocks
o Text o l i bre
o Tabl as si mpl es
o Subfil e freest yl es si mpl es

• No se soport an
o Vari abl es dent ro de t abl as
o Ni nguna ani daci ón de t abl as y/ o subfi l e freest yl e
o Subfil es comunes
o Campos LongVarchar
o La l et ra ñ
o Tag < BR>
o Bot ones
o Cooki es
o Encri pt aci ón de parámet ros

• Las propi edades de runt i me soport ados son
o Li nk
o I spassword
o Vi si bl e y
o Enabl ed.

• El soft but t on del t el éfono ( bot ón que se encuent ra en l a part e superi or
izquierda) , se asocia al Event o Ent er.
Ej ecuci ón
Al i gual que cual qui er apli caci ón para I nt ernet , l os Web Panel s Vi sual Basi c pueden
ser gener ados como Webcl asses o como CGI .
En ambos casos l uego de compi l ado el obj et o se debe ej ecut ar desde el emul ador
cel ul ar, est o se r eal i za escri bi endo l a di recci ón donde se encuent ra el Web Panel en
l a barra de di recci ones del mi smo.
Ej empl o
Se desea despl egar un t ext o de prueba en un t el éfono cel ul ar, l os pasos a segui r
son l os si gui ent es:

- I nsert ar el t ext o en un t ext bl ock en el form de un Web Panel .

251


Es aconsej abl e veri fi car el códi go generado, en el Tab ‘Source’, t eni endo en cuent a
l as consi deraci ones



- Especi fi car, gener ar y compi l ar el Web Panel desde GeneXus.
- Ej ecut ar el UP. Si mul at or.
- Escri bi r l a di recci ón donde se encuent ra el obj et o ( por ej . ht t p: / / l ocalhost / cgi -
bi n/ Hprueba. exe) en ‘Go’, y presi onar Ent er o el Soft but t on.
- En el t eléfono celular se vi sualizará el t ext o ingresado en el Web Panel.
252

- Si se producen err ores en l a pant all a del t el éfono cel ul ar si empre se despli ega el
si gui ent e mensaj e:
‘Compi l e er ror: See i nfo wi ndows for det ail s.’

El t ext o compl et o del err or se debe vi suali zar en el ‘Phone i nformat i on’ ( vent ana
DOS que se ej ecut a det rás del emul ador) .

Hay un ej empl o di sponibl e en :
ht t p: / / www. art ech. com. uy/ cgi - bin/ webart ech/ hdcver03. exe?S, 31, 0, 408
Er r or es comunes
Er r or Sínt oma
“ Err or : I nval i d el ement ‘PCDATA’ i n
cont ent s of card.”
Se debe a l a ausenci a de < P> en
t ext bl ock o vari abl e.
“ Err or : I nval i d el ement ‘br’ i n cont ent s
of card. ”
Se debe a un t ag < BR> en el Source del
obj et o
“ Err or : Uncompil ed dat a from ht t p
< head> . ”
La pági na no es WML es HTML, se debe
confi gurar l a pref er ence ‘Tag
Language= WML’
“ Err or : I nval i d el ement ‘t ext area’” Se est a usando un l ongvarchar o un
char de vari as líneas.
253
“ Err or : Mi ssi ng ent it y “ nt il de” Hay al gún dat o con l a l et ra ñ y el
mi crobr owser no l o puede i nt erpr et ar.
“ Err or : I nvalid element ‘P’ in cont ent of
‘p’. excpect de PCDATA | em | b …”

Se i nt roduj o al gun t ag < P> ani dado,
est o no es vál i do en WML
Consi der aci ones

• Consi deraci ones a t ener en cuent a con el edi t or

o El edi t or no t oma en cuent a al gunas rest ri cci ones necesari as para
WML y puede generarse códi go no váli do, es preci so en est os casos
modi fi car el source en el edit or de di seño de GeneXus.

o No es posi bl e hacer Cut & past e de cont r ol es y/ o del Sour ce.

o Exi st en al gunos t ags HTML ( no váli dos en WML) generados por el
edi t or. Por ej empl o el t ag < BR> es generado por l a combi naci ón de
t ecl as Shi ft + Ent er en el edi t or.

o Text bl ock y vari abl es deben generarse ent re < P> y < / P> . La
generaci ón de est os t ags se da con un ent er al fi nal del edit o
modi fi cando Códi go en el Tab ‘Source’.

o Subfil es o t abl as no deben li mi t arse por t ags < P> . Es posi bl e generar
est e códi go con al gunas combi naci ones de t ecl as.

o I gual ment e no es recomendabl e modi fi car el códi go WML ( baj o el t ab
“ HTML Source” ) pues pueden dar er rores en ej ecuci ón .

• No se r eci ben cor rect ament e vari abl es por parámet ro en l os l l amados
real i zados medi ant e “ call ” .

Encr ipt ación de Parámet ros
I nt r oducci ón
Los obj et os Web generados con GeneXus, permi t en vi sualizar l os parámet ros que
se pasan ent re l os obj et os en l a barra de di recci ón del navegador.
Est o hace que, si se pasa i nformaci ón reservada como parámet r o ent re obj et os
Web ( Númer o de cl i ent e, por ej empl o) , l as apli caci ones no sean muy confi abl es en
cuant o a l a seguri dad, porque un usuari o podría si mpl ement e cambi ar el val or de
dicho parámet ro en la URL y disponer de información sobre la que no debería t ener
acceso. No sucede l o mi smo si se ut ili zan cooki es, en est e caso no hay probl emas
de seguri dad.

Es por eso que se hace necesari o pasar l os parámet ros si n que el usuari o de l a
apli caci ón l os conozca o sea encr i pt ar l os parámet r os.
En l a versi ón 7. 5 de GeneXus se i mpl ement a la encri pt aci ón de l os parámet ros de
254
l os obj et os Web que van en l a URL en forma aut omát i ca y t ransparent e para el
usuari o.
Al cance
Obj et os: Web Panel s, Tr ansacci ones
Lenguaj es: C/ SQL, Java, Vi sual Basi c, C#
I nt erface: Web
Descr i pci ón
Para poder reali zar l a encri pt aci ón de parámet ros en obj et os Web se
i mpl ement aron funci ones est ándar que cont i enen l as funci ones bási cas de
encri pt aci ón y al gunas funci ones adi ci onal es ( l as que requi eren manej o de
parámet ros y cooki es) .

Con respect o al di seño de l os obj et os l a encri pt aci ón de parámet ros no i mpli ca
ningún cambi o, se programan de l a mi sma forma que hast a el moment o.
Las vent aj as del uso de l a encri pt aci ón de parámet r os son:
• Que l os usuari os fi nal es no sepan el o l os dat os que van en l os
parámet ros
• Que l os usuari os fi nal es no puedan modi fi car el o l os dat os que van
en l os parámet ros

Se agrega l a preferenci a Encr y pt URL Par amet er s a ni vel de model o, en el grupo
“ Web I nformat ion” y t ambién a ni vel de obj et o.

Para l a pr ef er enci a a ni vel de model o l os val or es posi bl es son:
No
I ndi ca que No se van a encri pt ar l os parámet ros que van en l a URL
de l os obj et os Web, si endo ést e el val or por defect o.

Sessi on Key
I ndi ca que se van a encri pt ar l os parámet ros que van en l a URL,
ut ili zando una cl ave di ferent e para cada sesi ón. La encri pt aci ón se
real i za a t ravés del uso de cooki es l ocal es.
Est e val or ofrece un ni vel de seguri dad mayor, pero no permi t e
compart i r URLs. Est o si gni fi ca que no es posi bl e para un usuari o X
enviar una URL que t enga parámet ros a ot ro usuario Y, ya que en
est e caso l a URL no va a funci onar porque se necesi t a l a cooki e
corr espondi ent e para l a desencri pt aci ón.

Si t e Key
Se encri pt an l os parámet ros que van en l a URL de l os obj et os Web,
pero l a cl ave de encri pt aci ón va a ser l a mi sma para t odo el si t i o.
En est e caso no se ut ili zan cooki es. Est o da un ni vel de seguri dad
menor pero facili t a el t raspaso de li nks.

La propi edad a ni vel de obj et o, además de l os val ores menci onados t i ene el val or
“ Use model ’s pref erence val ue” . Est e val or i ndi ca que se va a t omar el val or de l a
pref erenci a del model o para real izar l a encri pt aci ón de ese obj et o. Est e es el val or
por def ect o.
255

Consi der aci ones Gener al es
Sesi ones del Navegador
Una sesi ón del navegador queda det ermi nada por una i nst anci a del mi smo. Por
ej empl o, si en un máquina se ej ecut a el navegador de I nt ernet y a part i r de ese
navegador se abre ot ra sesi ón ( a part i r de l a opci ón de menú Fil e/ New/ Wi ndow o a
part i r de un l ink) , ambas sesi ones pert enecen a l a mi sma i nst anci a del navegador.

En cambi o, si se abre una sesi ón del navegador, y l uego se ej ecut a nuevament e el
exe del navegador para abri r una nueva vent ana, l as dos vent anas no pert encen a
l a mi sma i nst anci a.

Con est o, si se ej ecut an obj et os Web, y se confi guró l a pref er enci a del model o ( o l a
propi edad a ni vel de obj et o) con el val or “ Sessi on Key” , l a cooki e que se defi na
para guardar est e val or va a funci onar en l as sesi ones del navegador que
compart an l a mi sma i nst anci a.

Pr ef er enci a a ni vel de model o vs. Pr opi edad a ni vel de obj et o
• Los valor es “ Sessi on Key” y “ Sit e Key” a ni vel de la prefer enci a del modelo,
det ermi nan que t odos l os l l amados ent re obj et os Web se harán con
parámet ros encri pt ados. Para t ener uni cament e l as ll amadas ent re algunos
obj et os con parámet ros encri pt ados se debe i ndi car el val or “ No” en l a
pref erenci a a ni vel de model o y el val or “ Sessi on Key” o “ Si t e Key” en el
obj et o Web que l o requi era.

• Si se t i enen val or es confi gurados para l a pref er enci a a ni vel de model o y l a
propi edad a ni vel de obj et o para encri pt ar parámet ros, ést a úl t i ma t i ene
pri ori dad sobre l a pri mera.



• Cuando se ut ili za l a propi edad a ni vel de obj et o para encri pt ar parámet ros, y
se real i zan vari os ll amados ent re obj et os Web, se debe t ener en cuent a que
l os val ores ut ili zados por t odos l o obj et os i nvol ucrados debe ser el mi smo.
Por ej empl o: Si se t iene un Web Panel que ll ama a ot ro pasándol e
parámet ros, y se qui eren vi suali zar est os parámet ros encri pt ados, en ambos
Web Panel s se debe confi gurar el mi smo val or para l a propi edad “ Encr y pt
URL Par amet er s” .
Lo mi smo sucede si el arbol de l l amadas invol ucra a más obj et os Web, t odos
( l os llamados y l os llamadores) deben t ener confi gurada l a propiedad
Encr ypt URL Paramet ers y t odos deben t ener el mi smo val or en la
propi edad.

Pr opi edad “ Encr y pt URL Par amet er s” en Pr ompt s
Los parámet ros de l os prompt s asoci ados a l as Tr ansacci ones Web no es posi bl e
encri pt arl os. Est o es porque el llamado a l os prompt s se real i za desde el cli ent e y
para r eal i zar l a encri pt aci ón se debe i r al ser vi dor.
256

Ej empl os
Si se t i ene un Web Panel que reci be parámet r os y no se ut iliza l a encri pt aci ón de
parámet ros, l a URL corr espondi ent e al Web Panel será del est il o:

ht t p: / / l ocalhost / HI NGRESO_WebObj / hdospar. asp?2, 3

Si , en cambi o se ut iliza encri pt aci ón de parámet ros ( preferenci a Encr ypt URL
Paramet ers = Sessi on Key ó Si t e Key) , l a mi sma URL se generará de l a si gui ent e
for ma:

ht t p: / / l ocalhost / HI NGRESO_WebObj / hdospar. asp?l Q/ t K1l efxCZMVoXrnmrTQ= =

Paginado de subfiles en Web Panels
I nt r oducci ón
A part i r de l a versi ón GENEXUS 7.5 se bri nda al usuari o una seri e de mét odos que
habilit an el pagi nado aut omát i co en subfil es y subfil es freest yl e.

Al cance
Obj et os: Web Panel s
Generadores: C/ SQL – JAVA – Vi sual Basi c – C#
Pl at aformas: Web

Descr i pci ón
El pagi nado de subfil es apli ca a subfil es comunes y fr eest yl e cuya propi edad ‘Rows’
t i ene un val or di ferent e de cero. Los subfi l es pueden est ar ani dados.
Exi st en al gunas di ferenci as rel aci onadas con l a pagi naci ón cuando un subfil e t i ene
t abl a base o no. A cont i nuaci ón se descri be l a paginaci ón en cada uno de est os
casos.

Mét odos
A cont i nuaci ón se descr i ben l os mét odos di sponi bl es cuando un subfile t i ene t abl a
base.

FI RSTPAGE:
El mét odo Fi rst Page ll eva al usuari o al pri mer conj unt o de regi st ros devuel t os.
Los val or es devuel t os por est e mét odo son l os si gui ent es:

257
0: Operaci ón exi t osa
1: No est á habili t ado el pagi nado en el subfil e

NEXTPAGE
El mét odo Next Page l l eva al usuari o al si gui ent e conj unt o de regi st ros.
Los val or es devuel t os por est e mét odo son l os si gui ent es:

0: Operaci ón exi t osa
1: No est á habili t ado el pagi nado en el subfil e
2: Ya se encuent r a en l a úl t i ma pági na.

PREVI OUSPAGE
El mét odo Previ ousPage ll eva al usuari o al conj unt o ant eri or de regi st ros.
Los val or es devuel t os por est e mét odo son l os si gui ent es:

0: Operaci ón exi t osa
1: No est á habili t ado el pagi nado en el subfil e
2: Ya se encuent r a en l a pri mera pági na

LASTPAGE
El mét odo Last Page l l eva al usuari o al úl t i mo conj unt o de regi st ros. Puede ser
ut ili zado úni cament e si el subfil e t i ene t abl a base.
Los val or es devuel t os por est e mét odo son l os si gui ent es:

0: Operaci ón exi t osa
1: No est á habili t ado el pagi nado en el subfil e
3: El subfil e no t i ene t abl a base

GOTOPAGE
El mét odo Got oPage( PageNumber) permi t e acceder en f orma di rect a a un
det ermi nado conj unt o de regi st ros. Puede ser ut ili zado úni cament e si el subfile
t i ene t abl a base.
Los val or es devuel t os por est e mét odo son l os si gui ent es:

0: Operaci ón exi t osa
1: No est á habili t ado el pagi nado en el subfil e

RESUMEN
A cont i nuaci ón se i ncl uye una t abl a con un resumen de l os mét odos di sponi bl es
cuando un subfi l e t i ene t abl a base y cuando no.

Subf i l e
con t abl a base
Subf i l e
si n t abl a base
Fi r st Page

Nex t Page

258
Pr ev i ousPage

Last Page

GoToPage




Pr opi edades
Cada subfil e di spone de l as si gui ent es propi edades que son ut ilizadas en la
pagi naci ón:

• RecordCount
• PageCount

Consi der aci ones
• Si el subfil e del web panel que se est á pagi nando t i ene filt ros, se debería
agregar el mét odo Fi rst Page dent r o del event o que apl i ca el fil t ro, a l os
ef ect os de evi t ar que el resul t ado despl egado corresponda a l a página en l a
que se encont raba ant eri orment e.

• En el caso de pagi nar el subfil e hi j o de subfil es ani dados, cont rol es que
ut il cen l os mét odos de pagi naci ón deben est ar en el subfi l e padre.

• La efi ci enci a de l os mét odos Fi rst Page, Next Page, Previ ousPage y Got oPage(
N) est a asociada a la ef iciencia de la defi ni ci ón de la navegaci ón del subfile
corr espondi ent e. En ot ras pal abras, si el subfile, si n pagi nado t i ene buenos
t i empos de respuest a, l os t i empos con pagi nado serán semej ant es.

• El mét odo Last Page det ermi na cuál sería l a últ i ma pági na, para lo que
ut ili za la propi edad Rows y l a propi edad RecordCount del subfil e. El hecho de
ut ili zar l a propi edad RecordCount i mpli ca que el DBMS ( no el códi go
generado) barre dos veces l a t abl a base del Subfil e ( l a pri mera vez para
cont ar y l a si gui ent e para "cargar") .

• El mét odo Last Page ha si do pensado para que se ej ecut e un úni co comando
Load por cada regi st ro de l a t abl a base. Por el lo, si exi st en I Fs en el event o
Subfil e. Load que pueden condi ci onar l a ej ecuci ón del comando menci onado
o se ej ecut a más de una vez el mét odo Load por cada regi st ro, l os
resul t ados pueden ser i nesperados.


I mpl ement aci ón
El pagi nado se reali za por " número de regi st ro" . Est o qui ere deci r que, l a página 1
t endrá l os regi st ros del 1 al val or de l a propi edad Rows, l a pági na 2 l os que van del
Rows + 1 al Rows * 2 y así sucesi vament e. Para most rar l a pági na 2, int ernament e,
se " pasa por" l os regi st ros de l a pági na 1 si n most rarl os. En general , para most rar
l a pági na N, se "pasa por " l os regi st r os de l as pági nas ant eri ores ( N- 1) si n
259
most rarl os.

Dada l a i mpl ement aci ón, se recomi enda:
1. Tener un buen fil t rado de dat os ( de f orma que no exi st an muchas pági nas)
2. Evi t ar, cuando el cost o sea al t o, el uso de Got oPage( N) con val ores al t os de
N, así como el uso de Last Page.
3. Tambi én se r ecomi enda sal var el val or de l a propi edad RecordCount en una
vari able ya que cada invocaci ón de la propiedad implica un COUNT en la
base de dat os.

Ej empl o
Los mét odos de pagi nado de subfil es pueden ser ut ili zados en l os event os escri t os
por el usuari o. Por ej empl o:

Event St art
&Count = MySubfi l e. RecordCount
I f &Count > MySubfil e. Rows
Pagi na2. Vi si bl e = 1
EndI f
I f &Count > MySubfil e. Rows * 2
Pagi na3. Vi si bl e = 1
EndI f
Endevent

Event Si gui ent e. Cli ck
MySubfil e. Next Page( )
Endevent


Event Ant eri or . Cl i ck
MySubfil e. Pr evi ousPage( )
Endevent


Event Ent er
MySubfil e. Fi rst Page( )
Endevent

Uso de Web Panels en reglas prompt
I nt r oducci ón
En muchas ci rcunst anci as, en una t ransacci ón Web es necesari o ut ili zar Web Panel s
de usuari o en l ugar de l as li st as de sel ecci ón generadas aut omát i cament e por
GENEXUS, medi ant e el uso de l a regl a Prompt .
260
Al cance
Obj et os: Transacci ones
Lenguaj es: C/ SQL – JAVA - Vi sual Basi c – C#
I nt erface: Web

Descr i pci ón
Exi st en casos en l os que un usuari o requi ere crear un Web Panel que l uego qui ere
ut ili zar como prompt para obt ener val ores de at ri but os.
Para i nvocar el Web Panel , si mpl ement e se ut ili za l a regl a prompt en una
t ransacci ón web o dent ro de un web panel .
Al di spararse l a regl a prompt ( haci endo cli ck sobre un cont rol ) se abre una vent ana
con el Web Panel y, al sel ecci onar un val or ( nuevament e haci endo cli ck) se ci er ra l a
vent ana y el val or se asi gna a l o( s) / l a( s) at ri but os/ vari abl es que cor responda.

Pr ogr amaci ón de un Web Panel como pr ompt

El web panel que será ut ilizado como prompt debe cumpl i r ci ert as condici ones:

1. Debe t ener uno o más parámet ros de t i po out put . Puede t ener de i n, de
i nout t ambi én pero l o import ant e es que t enga de out put que son l os que
devol verá.
2. Al guno de l os at ri but os, vari abl es, t ext bl ocks o i magenes del form debe
t ener l a propi edad de di seño Ret urnOnCl i ck en True. Puede t ener habili t ada
est a propi edad en más de un at ri but o/ vari abl e. En caso de ser un at ri but o o
una vari abl e, t i ene que est ar Read Onl y para que l a propi edad est é
habilit ada.
3. Los val ores a ret ornar ( de l os parámet ros defi ni dos como de out put ) no se
det ermi nan al reali zar cli ck, sino al despl egarse l a pant alla por l o que t ienen
que t ener el val or vál i do a ret ornar en cada Load ( si se muest ra un subfil e,
por ej empl o) .

Si uno de l os at ri but os vari abl es, t ext bl ocks o i magenes del form que t i enen l a
propi edad de di seño Ret urnOnCl i ck en True t ambi én t i ene programado el event o
Cli ck, el códi go que est e en el di cho event o se i gnora. Si mpl ement e al hacer cl i ck
se asi gnan l os val or es a l as vari abl es de t i po OUT y se r et orna.

Uso av anzado
Est a funci onali dad puede no cont empl ar t odos l os casos. Por ell o, t ambi én se
i mpl ement ó l a funci ón Ret urnOnClick( ) ( si n parámet ros) que puede ser asi gnada a
l a propi edad Li nk de cual qui er cont rol ( que t enga est a propi edad) .

261
Ej empl os
Pr ompt de Cl i ent es
Un prompt de cli ent es se programa así:

En l as Regl as del web panel :

parm( out : &Cl i Cod) ;

En l os Event os:

event Subfil e1.l oad
&CliCod = CliCod
endevent

En el form:
Un subfil e que t i ene Cli Nom y Cli Cod, donde Cli Nom ( por ej empl o) t i ene l a
propi edad Ret urnOnCli ck en t rue.


262
Pr opi edades

Propiedad OnClickEvent para imágenes
I nt r oducci ón
El event o Cl i ck permi t e asoci ar event os defi ni dos por el usuari o a l as imágenes. A
part i r de l a versi ón GENEXUS 7. 5, es posi bl e asoci ar t ambi én l os event os est ándar
de l os obj et os Web a l as i mágenes empl eando l a propi edad OnCli ckEvent .

Al cance
Obj et os: Web Panel s, Web Transact i ons
Lenguaj es: C/ SQL – JAVA – Vi sual Basi c – C#
I nt erface: Web

Descr i pci ón
Est a propi edad permi t e asoci ar un event o de l os obj et os Web a una i magen. Ti ene
el mi smo funci onami ent o que l a propi edad de igual nombre para l os bot ones. En
part i cul ar, permi t e asoci ar un event o est ándar de GeneXus ( como Fi rst , Next ,
Previ ous, Last , Ent er, et c. ) a una i magen.

Para asoci ar event os de usuari o a una imagen puede usar se l a propi edad
Oncli ckevent o el event o Cli ck. Si una i magen t i ene event o Cli ck y, a su vez, un
valor en la propiedad Onclickevent , pr evalece est e últ imo ( se ignora el event o
Cli ck) .

Las propi edades di sponibl es en Di seño para una i magen son l as que se det al l an en
el si gui ent e di ál ogo:


263



Est a pr opi edad es usada pri nci pal ment e en l as Transacci ones Web para poder
asoci ar i mágenes a l os event os est ándar: Pr evi ous, Next , et c. Hast a est e
moment o, sol ament e se podían asoci ar a l os bot ones. En Web Panel s, si rve para
asoci ar el event o Ent er a l as i mágenes.

Ej empl o
¿CÓMO DEFI NI R LOS BOTONES DE DESPLAZAMI ENTO EN UNA TRANSACCI ÓN
WEB USANDO I MÁGENES?
Al defini r una Transacci ón Web y crear el form HTML por defect o, se generan l os
si gui ent es bot ones de despl azami ent o:




Para sust i t ui r di chos bot ones por i mágenes, se deben borrar l os bot ones e
i nsert ar ci nco i mágenes, defi ni endo en cada una de el l as el event o est ándar de
GeneXus corr espondi ent e.

Un ej empl o puede ser:

Cont r ol Name Sour ce OnCl i k Ev ent
Pri mer o Fi rst 1. gi f Fi rst
Ant eri or Previ uos1. gi f Previ ous
Si gui ent e Next 1. gi f Next
Ul t i mo Last 1. gi f Last
Sel ecci onar Sel ect 1. gi f Sel ect
264



En el form HTML y en l a ej ecuci ón del obj et o se vería como:





Propiedades BackColor Even, BackColorOdd de
Subfiles
I nt r oducci ón
Se i mpl ement ó l a posi bili dad de modi fi car en t i empo de ej ecuci ón el col or de f ondo
de l as líneas pares e i mpares de un subfil e o subfil e Freest yl e cuyo ‘BackCol orSt yl e’
sea ‘Report ’. De est a f orma el di señador de obj et os Web t i ene mayor l ibert ad para
resolver la configuración del mi smo en t i empo de ej ecución, permit iendo una mayor
paramet ri zaci ón del si t io.

Al cance
Obj et os: Web Panel s, Web Transact i ons
Lenguaj es: C/ SQL – VB – JAVA – C#
I nt erface: Web

Descr i pci ón
265
\ \ DI ONI SI OD\ VOLR\ I nf oProt ot i po\ Engl i sh\ GeneXus\ I nt ernet \ Docum\ Manual s\ 7. 5\ B
ackCol orOdd. doc
\ \ DI ONI SI OD\ VOLR\ I nf oProt ot i po\ Espanol \ GeneXus\ I nt ernet \ Docum\ Manual s\ 7. 5\ B
ackCol orOdd. doc
Ej empl o
En el si gui ent e ej empl o se muest ra como se puede modi fi car el col or de l as líneas
pares/ i mpares de un subfil e o subfil e Freest yl e en t i empo de ej ecuci ón,
dependi endo del val or el egi do en un radi o but t on.
La i mpl ement aci ón const a del si gui ent e códi go:

Event St art
I f null ( &col ) / / &col es l a vari abl e defi ni da como Radi oBut t on
Usuari os. Vi si bl e = 0
Endi f
Endevent

Event Ref r esh
Do Case
Case &col = 1
Usuari os. Vi si bl e = 1
Usuari os. Ti t l eBackCol or = RGB( 40, 2, 202)
Usuari os. BackCol orEven= RGB( 5, 107, 165)
Usuari os. Backcol or Odd = RGB( 29, 135, 255)
Case &col = 2
Usuari os. Vi si bl e = 1
Usuari os. Ti t l eBackCol or = RGB( 253, 114, 53)
Usuari os. BackCol orEven = RGB( 238, 140, 0)
Usuarios. BackColorOdd = RGB( 254, 181, 40)
EndCase
Endevent

En l a si gui ent e pant all a se vi suali za el resul t ado de sel ecci onar l os t onos de azul
como col or es del subfil e:

266



En l a si gui ent e pant all a se obser va el resul t ado de sel ecci onar l os t onos de naranj a
como col or es del subfil e:


267
Propiedad Columns subfiles fr eest yle
I nt r oducci ón
Se i mpl ement ó l a posi bili dad de modi fi car en t i empo de ej ecuci ón, l a cant i dad de
col umnas de un subfil e Freest yl e. Est a nueva funci onali dad agrega di nami smo a l os
Web Panel s, permi t i endo modi fi car l a forma de despl egar dat os en un subfil e
Freest yl e.

Al cance
Obj et os: Web Panel s
Lenguaj es: C/ SQL – Vi sual Basi c – JAVA – C#
I nt erfases: Web
Descr i pci ón
\ \ DI ONI SI OD\ VOLR\ I nf oProt ot i po\ Espanol \ GeneXus\ I nt ernet \ Docum\ Manual s\ 7. 5\ C
ol umns. doc
Ej empl o
En el si gui ent e ej empl o se muest ra cómo puede modi fi carse l a forma de despl egar
l os dat os, dependi endo de l a confi guraci ón el egi da por el usuari o. Para poder
hacerl o, se al macena en una t abl a l a confi guraci ón sel ecci onada por el mi smo
( cant i dad de col umnas a despl egar) . En el Web Panel si mpl ement e se recupera
di cho val or y se l o asigna a l a propi edad Columns del subfil e Freest yl e, como se
det all a a cont i nuaci ón:

Event Ref r esh
Li st arec. Col umns = WebFabCnf
Endevent

Donde Li st ar ec es el nombre del cont rol subfil e Freest yl e y WebFabCnf el at ri but o
que cont iene la cant idad de columnas a desplegar.


En l a si gui ent e figura se vi suali za l a confi guraci ón sel ecci onada por el Usuari o1
( WebFabCnf= 1) .

268



En la si guient e fi gura se puede observar la configuración selecci onada por el
Usuari o2 ( WebFabCnf = 2) :






269
Propiedad PageCount
I nt r oducci ón
Para faci lit ar el uso de l a pagi naci ón aut omát i ca en subfil es de Web Panel s, se
agrega una nueva propi edad denomi nada PageCount , que permi t e obt ener en
t i empo de ej ecuci ón l a cant i dad de pági nas de l a t abla base de un subfil e o subfil e
Freest yl e.
Al cance
Obj et os: Web Panel s
Lenguaj es: C/ SQL – JAVA – Vi sual Basi c
I nt erface: Web

Descr i pci ón
La propi edad PageCount devuel ve l a cant i dad de pági nas del subfil e en base a l as
propi edades Rows y Col umns del mi smo. Al i gual que l a propi edad RecordCount ,
devuel ve –1 si el subfil e no t i ene t abl a base.


Val or Pr opi edad Coment ar i o Suger enci a
- 1 PageCount El subfil e no t i ene t abl a base

Col ocar at ri but os en el
subfil e que i ndi quen l a
navegaci ón.
> = 0 PageCount Número de pági nas del subfil e.

Ej ecuci ón: apl i ca a subfil es y subfi l es fr eest yl e.
Propiedad RecordCount
I nt r oducci ón
Para faci lit ar el uso de l a pagi naci ón aut omát i ca en subfil es de Web Panel s, se
agrega una nueva propi edad denomi nada RecordCount , que permi t e obt ener en
t i empo de ej ecuci ón l a cant i dad de regi st ros de l a t abl a base de un subfil e o subfil e
Freest yl e.

Al cance:
Obj et os: Web Panel s
Lenguaj es: C/ SQL – JAVA – Vi sual Basi c
I nt erface: Web

270
Descr i pci ón
La propi edad RecordCount apli ca úni cament e a subfil es que t i enen t abl a base y
ret orna un númer o mayor o i gual a cero represent ando l a cant i dad de regi st ros de
l a t abla base del subfil e que cumpl en l as condi ci ones de sel ecci ón. Puede r et ornar -
1 si no exi st e navegaci ón para l a t abl a base del subfil e.


Val or Pr opi edad Coment ar i o Suger enci a
- 1 RecordCount El subfil e no t i ene t abla base

Col ocar at ri but os en el
subfil e que i ndi quen l a
navegaci ón.
> = 0 RecordCount Número de regi st ros de l a
t abl a base del subfil e.


Ej ecuci ón: apl i ca a subfil es y subfi l es fr eest yl e.

Propiedad Rows subfiles
I nt r oducci ón
Se i mpl ement ó l a posi bili dad de modi fi car en t i empo de ej ecuci ón, l a cant i dad de
fil as de un subfil e o subfil e Freest yl e. Est a nueva funci onalidad agrega di nami smo a
l os Web Panel s, permi t iendo modi fi car l a forma de despl egar dat os en un subfil e o
subfil e Freest yl e.

Al cance
Obj et os: Web Panel s, Tr ansacci ones
Lenguaj es: C/ SQL – VB – JAVA – C#
I nt erfases: Web

Descr i pci ón
Se puede modi fi car l a propi edad Rows de un subfil e o subfil e Freest yl e en t i empo
de ej ecuci ón.
Para hacerl o se debe agregar l a si gui ent e línea en un event o del Web Panel :

Subfil e. Rows= n

si endo Subfil e el nombre del cont rol subfil e o subfil e Freest yl e y n un número, una
vari abl e o un at ri but o igual o mayor que cero, correspondi ent e al númer o de fi l as
que se van a despl egar.
Si el val or asi gnado es 0, se despl i egan t odos l os regi st ros de l a t abl a.

Ej ecuci ón: apl i ca a subfil es y subfi l es fr eest yl e.
271
Propiedad Cache Expirat ion Lapse
I nt r oducci ón
Cuando se accede a pági nas web para consul t as se ut ili zan recursos del servi dor
web y posi bl ement e del servi dor de base de dat os de apli caci ones. Si est as
pági nas se acceden repet i das veces pero el cont eni do no cambi a t an a menudo,
es cuando se hace necesari o ut ilizar est a pr opi edad que permi t e que l a pági na
se al macene en el cli ent e durant e un ci ert o l apso de t i empo. De est a f orma es
posi bl e reduci r l os r ecur sos necesari os en el ser vi dor.
Est a funcionalidad est a di sponible a part ir de la version 7. 5 de GeneXus.
Al cance
Obj et os: Web Panel s
Generadores: C/ SQL – JAVA – Vi sual Basi c – C#
Pl at aformas: Web
Descr i pci ón
Est a propi edad del obj et o web panel causa que se i ncl uyan l os headers
necesari os para ‘cachear’ l a pagi na generada.
El val or que se permi t e ingresar es l a cant i dad de segundos que dura l a pagina
‘cacheada’.
Por defect o ( es deci r si no se t i ene val or i ngresado) l a página no se cachea.

Propiedad Enable para bot ones en obj et os web
I nt r oducci ón
Est a propi edad permi t e habilit ar/ deshabili t ar bot ones de obj et os WEB en t i empo
de ej ecuci ón.
Al cance
Obj et os: Web Panel s, Tr ansacci ones
Lenguaj es: Java – Vi sual Basi c – C/ SQL – C#
I nt erfaz: Web
Descr i pci ón
Est a propi edad se puede modi fi car dent ro de al guno de l os event os del Web
Obj ect .
La si nt axi s es l a si gui ent e:

< But t Name> . Enabl e= < val or>

donde:

< But t Name> es el nombre del bot on que se desea habili t ar/ deshabilit ar
< Val or > es un numeri co de 1. Puede val er 1 para habilit arl o o 0 para
272
deshabili t arl o.

Obser v aci ón: Si se confi gura l a propi edad ‘Enabl ed= 0’, en Net scape 6. 0, se ve
como en I nt ernet Expl or er , es deci r, deshabi li t ado. No ocur re l o mi smo en
Net scape 4. 7 y ant eri or es.

273
Event os

Event o r efresh con múlt iples subfiles
I nt r oducci ón
En l a versi ón GeneXus 7. 5 se i mpl ement ó el event o Refr esh en l os Web Panel s
que ut ili zan múl t i pl es subfil es.
De est a forma se puede programar l a l ógi ca que no est á asoci ada a ni ngún
subfil e en un event o i ndependi ent e.

Al cance
Obj et os: Web Panel s
Lenguaj es: C/ SQL – JAVA - VB
I nt erface: Web

Descr i pci ón
El nombr e de est e event o es si mpl ement e Refr esh. En l a versi ón GeneXus 7. 0
cuando se i ncl uyó l a posi bili dad de defi ni r múl t ipl es subfil es en un Web Panel , el
event o Ref r esh quedó asoci ado a cada subfi l e. Es deci r podían programarse
t ant os event os Ref resh como cont rol es de t i po subfil e hubi eran defi ni dos.

Con est a nueva i mpl ement aci ón, exi st e el event o REFRESH general y se
mant i ene el event o REFRESH asoci ado a cada uno de l os subfi l es.

ORDEN DE DI SPARO
En el orden de di sparo de l os event os en l os Web Panel s se di st i ngue l a
pri mera ej ecuci ón de l as si gui ent es del mi smo web panel .

Pr i mer a Ej ecuci ón de l os Web Panel s
La pri mera vez que se ej ecut a el web panel l os event os se di sparan en el
si gui ent e orden:

1. St art
2. Ref r esh
3. Refr esh Subfil e 1
4. Load Subfi l e 1
5. Refr esh Subfil e 2
6. Load Subfi l e 2

Luego de est o, cuando el usuari o presi one un bot ón que no ll ame a ni ngún
ot r o Web Panel se ej ecut ará nuevament e ést e y el orden de di sparo de l os
event os será di ferent e.
Rest o de l as Ej ecuci óon de l os Web Panel s
1. St art ( nuevament e se dispara el event o St art )
274
2. Nueva l ect ur a de l as var i abl es de l a pant all a.
3. Códi go corr espondi ent e al event o asoci ado al bot ón
sel ecci onado
4. Ref r esh
7. Refr esh Subfil e 1
8. Load Subfi l e 1
9. Refr esh Subfil e 2
10. Load Subfi l e 2

Ej empl o
¿ Cuándo se debe usar el event o Refr esh? Al gunos ej empl os son:

• Cuando se qui ere l l amar a un programa que cal cul e algo dependi endo de
vari abl es que est én en pant all a y no est án asoci adas a ningún subfil e.

• Cuando se qui ere acceder a l a i nformaci ón de una t abl a que no est a
asoci ada a ni nguna de las t abl as bases de l os subfil es.

Event o click en Text block y Combo
I nt r oducci ón
Se i mpl ement ó el event o cli ck sobr e l os cont rol es de t i po t ext bl ock y combo en
l os web panel s. De est a forma se puede programar ci ert a l ógi ca al hacer cl ic
sobre est os cont rol es, cosa que ant es sol o era posi bl e para l as i mágenes.
Part i cul arment e para el caso de l os combos se puede programar acci ones a
part ir del valor selecci onado en el mi smo.

Al cance
Obj et os: Web Panel s
Lenguaj es: Java – Vi sual Basi c – C/ SQL – C# .
I nt erfaces: Web Form.

Descr i pci ón
Para el caso de l os cont rol es de t i po t ext bl ock el event o se ej ecut a al hacer cl i c
sobr e el mi smo.
En el caso de l os cont rol es de t i po combo el event o se ej ecut a al vari ar el val or
que cont i ene el cont r ol .

Not a: En el caso de t ener defi ni do sobre un cont rol de t i po t ext bl ock además
del event o cl i ck l a propi edad link, l os resul t ados pueden ser i mpredeci bl es
( puede ej ecut ar se el event o o t ener en cuent a l a propi edad según el generador
y l a versi ón) . En cual qui er caso no es r ecomendabl e t ener programadas ambas
a l a vez.

275
Ej empl o
Event &Pai s. Cl i ck
&Ci udad. Cl ear( )
For each
Where Pai Cod = &Pai s
&Ci udad. Addi t em( Ci uCod , Ci uDsc )
Endfor
EndEvent / / &Pai s. Cl i ck

En est e ej empl o, al elegi r una opci ón del combo ‘pai s’ ( si empr e y cuando el
val or el egi do sea di st int o del exi st ent e previ ament e) se ej ecut a el event o cli c del
mi smo, cargando de est a f orma l as ci udades corr espondi ent es al país
sel ecci onado en el combo ci udad.

276
Mét odos

Mét odo JSEvent
I nt r oducci ón
El mét odo JSEvent permi t e ut ilizar el event o “ Cl i ck” y “ OnChange” de l os
cont rol es para di sparar códi go Java Scri pt .
Al cance
- Obj et os: Web Panel , Transacci ones
- Lenguaj es: Java - Vi sual Basi c - C# - C/ SQL
- I nt erfaces: Web

Descr i pci ón
El mét odo JSEvent si rve para asi gnar códi go Javascri pt a l os event os JavaScri pt
“ cli ck” y “ onchange” de l os cont rol es en el form web.
Los cont rol es habili t ados son:

- Edi t ( si ngl e li ne) ,
- Combo,
- Dynami c combo,
- Li st box,
- Dynami c li st box,
- But t on,
- Pi ct ures,
- Vari abl es de t i po bi t map.
- Text Bl ocks

Si nt ax i s
Cont rol . JSEvent ( ' event o_j avascri pt ' , " su_códi go_j avascri pt " )

“ event o_j avascript ” es el nombre del event o j avascri pt que se qui ere at ender
con el códi go su_códi go_j avascri pt . Los val ores váli dos act ual ment e son
" oncl i ck" ( para cont rol es de t i po Edi t , But t on, Pi ct ures, Vari abl es de t i po bi t map
y Text Bl ocks) y "onchange" ( para cont rol es de t i po Combo, Dynami c Combo,
Li st box y Dynami c Li st box) .

El códi go Javascri pt que se escri be en el segundo parámet ro debe poderse
i ncl ui r en un I F, est o qui ere deci r que debe r et ornar TRUE o FALSE.
En caso de que el resul t ado sea TRUE se di spar ará el event o asoci ado al cont rol .

Por ej empl o: si se escr i be, Bot on. JScri pt ( ' oncl i ck' , " confi rm( ' Est a seguro?' ) " ) ,
cuando el usuari o presi one el bot ón, aparecerá l a confi rmaci ón y, sól o si
responde que si , se ej ecut ará el event o de GX asoci ado al bot ón ( si l o hubi ere) .
277
Consi der aci ones Gener al es
• Por medi o del JSEvent , se pueden l l amar funci ones JavaScri pt que se
encuent r en en el códi go HTML del Form o en ar chi vos ext ernos j s. En caso
de que l a funci ón se encuent re en un archi vo ext erno, se debe i nclui r un
Text Bl ock en el form y se l e debe asi gnar en el event o “ St art ” el códi go:
“ < SCRI PT l anguage= JavaScri pt sr c= "archi vo_JavaScri pt . j s"> < / SCRI PT>

Ej empl os

Ej empl o 1
Se t i ene un Web Panel con un Text Bl ock ( TX1) en el form. Se defi ne l os
si gui ent es event os:

Event St art

TX1. JSEvent ( " oncli ck", "confi rm( ' Est a segur o de pr ocesa est a opci ón?' ) "
)

EndEvent / / St art

Event TX1. Cl i ck

Call ( Hmai n)

EndEvent / / TX1. Cl i ck

En est e caso ut ili zamos l a funci ón JavaScri pt “ Confi rm” que despli ega un
mensaj e con el t ext o expli ci t ado, en di cho mensaj e se puede acept ar o cancel ar,
en el caso de acept ar la funci ón ret orna TRUE y se ej ecut a el event o Cli ck del
cont r ol .
En caso de cancel ar l a funci ón ret orna FALSE y el event o Cl i ck no se ej ecut a.
Ej empl o 2
Por def ect o en l as t ransacci ones con i nt erfaz web se asi gna úni cament e l a ayuda
del obj et o al bot ón HELP que est á en el form, no así l a ayuda de l os at ri but os.
Una forma de asi gnar est a es por medi o del mét odo JSEvent .
Para est o se debe rempl azar l a et i quet a del at ri but o por un Text Bl ock , y
asi gnarl e a est e en el event o St art l a descri pci ón del at ri but o y :

Text BAt t 1. JSEvent ( ' oncl i ck' , "GX_hel p( ' ' , ' HLP_At ri but o. ht m' ) ")

Donde GX_hel p es una funci ón JavaScri pt que se encuent ra en el archi vo
gx_hel p. j s el cual se i ncl uye aut omát i cament e en el obj et o web por l a línea de
códi go:
< scri pt l anguage= "JavaScri pt " sr c= "gx_help. j s"> < / scri pt > que GeneXus
incorpora para manej ar la ayuda del obj et o.
El resul t ado es que al hacer cli ck en l a et i quet a del at ri but o se abr e una vent ana
nueva, si n barras de navegaci ón y expl oraci ón el HTML de l a ayuda del mi smo.
El archi vo HTML con l a ayuda del at ri but o debe copi arse al di rect ori o
especi fi cado en l a preferent e HELP Base Fil e URL.
Est e úl t i mo ej empl o est á di sponi bl e en ht t p: / / www. gxt echni cal . com/ cgi -
bi n/ hdcent er. exe?2, 5, 36, 623 .
278
Funci onal i dades par a apl i caci ones
Wi n

Múlt iples Subfiles
I nt r oducci ón
El obj et i v o es t ener l a posi bi l i dad de di señar Obj et os de consul t a ( Wor k
Panel s o Web Panel s) con más de una gr i l l a o subf i l e y así pot enci ar el
desar r ol l o de l os mi smos, ent r e ot r as cosas par a r esol v er en el mi smo
obj et o accesos a di f er ent es t abl as.

Al cance
- Obj et os: work panel s, web panel s
- Lenguaj es: Java, Vi sual Basi c, Vi sual FoxPro, C/ SQL, C#
- I nt erfaces: Web ( Java, Vi sual Basi c, C/ SQL, C# )
Wi n ( Java , Vi sual Basi c, Vi sual FoxPro)

Not a : est a i mpl ement aci ón ya se encuent ra l iberada en Obj et os Web. En est e
document o se i nt roduce el comport ami ent o en pl at aforma GUI , descri bi endo l as
si mili t udes y di ferenci as en ambos ambi ent es.

Descr i pci ón
El uso de vari os subfiles, i mpli ca un cambi o en l a forma de especi fi car en
GeneXus l as r egl as, l os event os y l as condi ci ones asoci ados a l os mi smos.

A cont i nuaci ón se det allan l os cambi os de comport ami ent o y l as formas de uso
de l as ent i dades pert eneci ent es a est os obj et os GeneXus.

ATRI BUTOS Y VARI ABLES.
Un at ri but o/ vari abl e puede pert enecer a más de un subfil e. No es posi bl e
referenci ar un at ri but o/ vari abl e de un subfil e, o sea no se permi t e:

< Subfil e Cont rol Name> . < At ri but o> .
< Subfil e Cont rol Name> . < Vari abl e> .

Est o i mpli ca que no se recomi enda t ener el mismo at ri but o/ vari abl e en mas de
un subfil e ya que cuando l a mi sma vari abl e est á present e en más de un subfil e,
l os cambi os de l as propi edades af ect an a t odos l os subfil es en los que se
encuent ra.

PROPI EDADES.
Las propi edades de l os subfil es conservan l a impl ement aci ón y comport ami ent o
act ual ya que si empre est uvi eron asoci adas al obj et o.

279
PRECEDENCI AS
Por defect o l as propi edades del obj et o son asi gnadas a cada uno de l os subfil e.
Si se defi nen a ni vel de subfil e est as preval ecen sobre l as propi edades del
obj et o

EVENTOS.
Los event os del subfil e conser van su comport ami ent o act ual .
Los event os Load y Ref resh deben ref erenci ar al subfil e usando l a si gui ent e
nomencl at ura:
Event < Subfil e Cont r ol Name> . < Refr esh | Load>
. . . .
EndEvent

Si el obj et o sol o t i ene un subfil e, no es necesari o usar l a nomencl at ura nueva.

COMANDOS.
Los comandos que act úan específi cament e sobr e el subfil e cambi an de for ma de
que, en caso de haber más de un subfil e, se pueda det ermi nar a cuál subfil e se
apli ca, est os comandos son:

For each l i ne: Est e comando debe i nclui r una ref erenci a al subfil e de l a
si gui ent e forma: For each li ne I N < Subf i l e Cont r ol Name>
Load: Di spara l a carga del subfi l e. La si nt axi s cont i nua si endo Load,
pero debe i ncl ui rse dent ro del event o l oad asoci ado a di cho subfi l e.
Ej empl o
Event Subfil e1. Load

Load
Endevent

Ref r esh
Al di sparar el comando, se di sparan en orden l as regl as st andal one, el
refr esh general y el r efr esh de cada subfi l e ( en caso de mas de un subfil e) .


REGLAS.
Or der : Quedan asoci adas al subfil e. ( Se puede edi t ar dando cli c con
bot ón derecho sobre el subfil e) .
Hi dden: Queda asoci ado al subfil e.

PRECEDENCI AS
Or der : Si el conj unt o de at ri but os de l a regl a se cor r esponde con l os de
al gún subfil e y est e t i ene un orden asi gnado expl íci t ament e est e úl t imo
es el que se t oma en cuent a.
Hi dden Si se defi ne a ni vel de subfil e est e preval ece sobre l a regl a.

CONDI TI ONS.
Las condi ci ones se pueden i ndi car por cada subfil e o en forma general para el
obj et o.
280
Si hay condi ci ones general es y part i cul ares sobr e l os mi smos at ri but os, se
t oman en cuent a t odas.

En el di ál ogo es posi ble I nsert ar At ri but os, Vari abl es, Funct i ons. Par a el l o hay
t res bot ones en el di álogo, con l as t ecl as asoci adas Ct rl + A, Ct rl + W y Ct rl + U
respect i vament e.


DETERMI NACI ÓN DE LA TABLA BASE
Como es posi bl e t ener mas de un subfi l e, se t i ene una t abl a base por cada
subfil e.

Los at ri but os que part i cipan en l a det ermi naci ón de l a t abl a base de cada subfil e
son l os que:
• Est án en el subfil e
• Est án ref erenci ados en l as regl as Hi dden y Order apli cadas al subfile

Los at ri but os de l a part e fi j a no part i ci pan en l a det ermi naci ón de l a t abl a base
de ni nguno de l os subfil es, pero deberán pert enecer a l a t abl a ext endida de
al guno de el l os. Si hay al guno que no cumpl a l a condi ci ón da el warni ng:
” At t ri but e not i nst ant iat ed” . Not ar que es posi bl e que al gunos at ri but os de l a
part e fi j a est én en una t abl a ext endi da y ot ros en ot ras.

Tampoco part i ci pan l os at ri but os que est án en l os Event os ( fuera de l os grupos
For each) . Est os, deberán pert enecer a l a t abl a ext endi da de al guno de l os
subfil es.

CARGA.
La carga se reali za para cada subfil e de forma independi ent e, es deci r, aún si l os
dat os que se muest ran en ambos subfi l es est án rel aci onados, el especi fi cador no
rel aci ona l as cargas.

La carga i ncl uye el event o r efr esh, o sea que l a secuenci a de carga de un obj et o
con 2 subfil es es:
Event o refr esh del subfile 1
Event o Load subfil e 1
Event o refr esh del subfile 2
Event o Load subfil e 2

El orden en que se car gan l os subfil es es como aparecen en el form: de arri ba
haci a abaj o y de i zqui erda a derecha.

Consi der aci ones Wor k Panel s
REGLAS.
Hi dden
Se i mpl ement a a ni vel de subfi l e.
No es recomendado el uso de hidden de variables. Si es posible
definir hidden de atributos.
Si se ocul t a un campo con l a propi edad Vi si bl e i gual ment e el ancho del
campo se i ncl uye en l a grill a
La regl a Hi dden ( general a ni vel de obj et o) es i gnorada con mas de un
281
subfil e

Or der
En el caso de t ener mas de un subfi l e l a rul es Order ( general a ni vel de
obj et o) es i gnorada.

Sear ch
Queda asoci ado al obj et o.
La r egl a search se t oma sol ament e para el pri mer subfi l e.

PROPI EDADES DE SUBFI LE
Las propi edades del obj et o :
- Load Record
- Load At st art up
- Aut omat ic ref resh
- When t o r ef resh
- Refr esh t imeout
se i mpl ement an a ni vel de subfi l e.

MÉTODOS DE SUBFI LE
Ref r esh Al di sparar el mét odo de cual qui er subfil e, se r ef resca sol o dicho
subfil e

Sor t Se ordena el subfile por el at ri but o especi ficado.
Si nt ax i s Subfi l e. Sort ( At t , [ asc/ desc] )

Load En el caso de t ener mas de un subfil e y hacer l as cargas paral elas,
usando l a mi sma variabl e, ocurri ran errores en l a paginaci ón, por
ej empl o

Event sub1.Load
for &i = 1 to 100
Load
endfor
EndEvent // sub1.Load

Event sub2.Load
for &i = 1 to 100
Load
endfor
EndEvent // sub1.Load


Cuando se haga un 'page down' en un subfilo, al retornar al otro, los valores de &i
que quedan en un subfile no quedan en el otro.


ToChar t Di buj a una gráfi ca sobre l os campos reci bi dos por parámet r o,
t ambi én reci be el nombre del gráfi co.
Si nt ax i s Subfi l e. ToExcel ( ' name' , at t / var, at t / var)
Est a funci ón no es soport ada por el generador Java


ToEx cel Envi a a una planilla excel l os dat os del subfil e.
Si nt ax i s &planill a = Subfil e. ToExcel( ' name' , [ r ow] , [ column] )
282
Los úl t i mos 2 parámet r os son opci onal es. La vari abl e &pl anill a, t ambi én
opci onal , es de t i po ExcelDocument , y permit e mani pular la pl anill a.


Compat i bi l i dad

El comando Gr aph y l a funci ón GXXl sCr e se si guen soport ando.
Funci onan i gual que hast a ahora, con un sol o subfil e se apli can a ese y
con más de uno apl i can al "pri mero" . El "pri mer o" es por l o general el
primero que se insert o. No es r ecomendable su uso con Múlt iples subfiles

El comando Graph pasa a ser depr ecat ed.

La funci ón Gxxl scre se mant i ene, est a t i ene t res parámet ros más que
ToExcel , est os son Tít ulo, Vi si bl e y Tabl e.
En al gunos casos se puede i mi t ar su funci onami ent o con ToExcel :
Se mant i ene l a funci ón Gxxl scre, est a t i ene t res parámet ros más que
ToExcel , est os son Tít ulo, Vi si bl e y Tabl e.
En al gunos casos se puede i mi t ar su funci onami ent o con ToExcel :

Tít ul o : Para pasar el t ít ul o de l as col umnas de l a pl anill a se debe
programar con el mét odo cel l s de l a vari abl e
El códi go :
&var( 1) = "Ti t ul o1"
&var( 2) = "Ti t ul o2"
call( ' gxxlscr e' , ' filename. xls' , row, col, &var( ) , Vi si bl e, Tabl e)

es anál ogo a:
&pl anilla = SfTi p. ToExcel ( ' fil ename. xl s' , row, col )
&pl anilla. Cell s( 1, 1) = " Ti t ul o1"
&pl anilla. Cell s( 1, 2) = " Ti t ul o2"

Ot ra opci ón es crear un t empl at e de l a pl anilla, usando el mét odo
Templ at e de l a vari abl e.

Vi si bl e : Permi t e hacer vi si bl e l a pl anill a. El val or por def ect o en
ToExcel l es 0, no vi si bl e, para hacer vi si bl e l a pl anilla se debe pr ogramar
usando el met odo Unbi nd de l a vari abl e excel document

El códi go: cal l ( ' gxxl scr e' ,fi l ename,row,col ,Ti t l e( ) ,0,&t abl e)

es anál ogo a :
&planill a = SfTi p. ToExcel( filename, r ow, col )
&pl anill a. unbind( )

Ot ra opci ón es usar el mét odo show de l a pl anilla

Tabl a : Est e parámet r o permi t e pasar l os regi st ros de una t abl a a Excel .
Est o no es posi bl e de impl ement ar con el mét odo t oexcel , por l o t ant o no
es posi bl e hacerl o para más de un subfi l e.

SUBFI LES ANI DADOS WORKPANELS
Para asoci ar l as cargas de dos subfi l es en wor k panel s, se debe programar
ambos subfi l es con vari abl es y en el event o Onli neact i vat e del pri mer subfil e
refr escar l a carga del segundo.
283
Ej empl o :
Se t i ene l a t abl a de países y l a de ci udades, quer emos despl egar un subfil e con
l os países y para cada uno sus r espect i vas ci udades. Se debería pr ogramar

En el l oad del subfil e de pai ses:

Event SfPais. Load
For each
&PaisCod = PaisCod
&PaisNom = Pai sNom
Load
Endf or
EndEvent

En el l oad del Subfil e de ci udades

Event Sfciudad. Load
For each
wher e Pai sCod = &Pai sCod
&CiuCod = CiuCod
&CiuNom = CiuNom
load Endf or
EndEvent

En el Onl ineact i vat e de Países ref escar l as Ci udades

Event SfPais.OnLineAct i vat e
Sfciudad.Ref resh( )
EndEvent

Consi der aci ones Web Panel s
REGLAS
Hi dden
Los at ri but os / vari ables nombrados en est a regl a son col ocados como
“ hi dden” en cada uno de l os subfil es.

Acceso a las Pr opiedades de la Menu Bar
I nt r oducci ón
El acceso a l as propi edades de l a menu bar en t i empo de ej ecuci ón permi t e a l os
usuari os, ent re ot ras cosas, habili t ar o no al gunas opci ones de l a mi sma y
cambi ar l a apari enci a de l as opci ones.
Al cance
Obj et os: Wor k Panel s, Transacci ones
Lenguaj es: Java – Vi sual Basi c – Vi sual FoxPro
I nt erface: Wi n
284

Descr i pci ón
Las si gui ent es propi edades son apli cabl es a cada una de l as opci ones del obj et o
Menu bar asoci ado a ot r o obj et o GeneXus:

Pr opi edad Ti po
Capt i on Char
Checked Numeri c ( 0| 1)
Enabl ed Numeri c ( 0| 1)
Vi si bl e ( * ) Numeri c ( 0| 1)

Si nt áx i s:
MenuBar. < Opci ón> . < Pr opi edad> = < Val or>
Donde:
< Opci ón> es el nombr e ( ‘Name’) de l a opci ón ( ‘I t em’) de l a Menu bar .
< Propi edad> es una de l as propi edades especi fi cadas en l a t abl a.
< Val or> es el nuevo valor que t omará l a propi edad.

Al cance:
Apli ca a Wor k Panel s y Transacci ones

( * ) La propi edad vi si bl e sól o se encuent ra i mpl ement ada en Java.
Ej empl os
1) Confi guraci ones vari as dependi endo de l os permi sos del usuari o:

Event Start
&Permisos = udp(PGetPermisos,userid())
if &Permisos = 1
MenuBar.GX_COPY.Caption = ‘Copiar’
MenuBar.Id_CliNew.Enabled=0
MenuBar.Id_CliDlt.Visible=0
Endif
EndEvent
2) XPW con ej empl o más compl et o:
ht t p: / / www. art ech. com. uy/ cgi - bin/ webart ech/ hdcver03. exe?S, 31, 0, 478

Consi der aci ones
1) GeneXus no pr ovee f orma para sel ecci onar e i nsert ar l as di st i nt as
propi edades.
2) Para ut ili zar est a funci onali dad es necesari o asi gnar a l a propi edad del
obj et o ‘Funct i ons’ el valor ‘Al l ow non- st andard funct i ons’.

285
Opciones Confirm y Close en Menu bar
I nt r oducci ón
Hast a l a ver si ón GeneXus 7. 0 no era posi bl e ej ecut ar el event o Ent er de un
obj et o, o cerrar l a vent ana de un obj et o desde l a Menu bar asoci ada al mi smo.

A part i r de l a versi ón 7. 5 de GeneXus, se agregan dos nuevas opci ones que
permi t en est as acci ones.

Al cance
Obj et os: Menu Bar
Lenguaj es: Vi sual Basi c , Vi sual FoxPro, Java
I nt erface: Wi n

Descr i pci ón
Opci ón Conf i r m
Est a opci ón es un i t em más dent ro del grupo ‘Act i ons’ de l a Menu bar. Ti ene el
mismo ef ect o que presionar el bot ón ‘Confirm’ de los obj et os, realizando las
acci ones asoci adas al event o ‘Ent er’ de l os mi smos.

Opci ón Cl ose
Est a opci ón se encuent ra dent ro del grupo ‘Fi l e’ de l a Menu bar. Cumpl e l a
mi sma funci ón que el bot ón ‘Cl ose’ de l os obj et os, ci er ra el obj et o que se t enga
abi ert o en ese moment o.

Propiedad When To Refr esh
I nt r oducci ón
Es muy común que l os Work Panel s t engan vari abl es que permi t en de al guna
for ma fil t rar l os regi st ros despl egados en el o l os subfil es ( grillas) . Est a
propi dedad permi t e especi fi car en qué moment o se debe r efr escar el subfil e, si
durant e el i ngreso de l as vari abl es de sel ecci ón o fil t ros, o l uego de haberl as
vali dado.
Al cance
Obj et os: Wor k Panel s
Lenguaj es: Vi sual Basi c – Vi sual FoxPr o
I nt erface: Wi n

286
Descr i pci ón
La propi edad When To Refr esh es de di seño, y se encuent ra defi ni da t ant o a
ni vel de obj et o como a ni vel de subfil e. En el sigui ent e cuadro se observa como
se puede especi fi car a ni vel de subfil e:


Los val ores posi bl es que t oma son
• When a subfil e recei ves focus ( def aul t ) : En est e caso el event o Refr esh
del subfil e se ej ecut a luego de val i dar t odas l as vari abl es de sel ecci ón, es
deci r en el moment o en el que el subfi l e reci be el foco.
• Whil e vari abl es ar e bei ng modi fi ed:
o Si el t i po de dat os de l a vari abl e de sel ecci ón es Charact er,
Varchar , Long Varchar o Numeri c: En est e caso el event o Refr esh
del subfil e se ej ecut a cada vez que se i ngresa un dígi t o o un
caract er.
o Si el t ipo de dat os de l a vari abl e de sel ecci ón es Dat e o Dat eTi me:
En est e caso el event o Refr esh del subfil e se ej ecut a al vali darl a.

Propiedad Capt ion en it ems de cont roles Radio
But t on
I nt r oducci ón
Est a propi edad permi t e cambi ar en t i empo de ej ecuci ón l os capt i ons de l as
di st i nt as opci ones de l os cont rol es Radi o But t ons.
Al cance
Obj et os: Wor k Panel s, Transacci ones
Lenguaj es: Java – Vi sual Basi c – Vi sual FoxPro
I nt erfaz: Wi n
287
Descr i pci ón
La si nt axi s es l a si gui ent e:

&radi o. i t em( i ) . Capt i on = ‘Descri pci on’

donde:

< i > i ndi ca el número de i t em sobre l a cual se qui ere apli car la
propi edad.

Para poder ut i lizar est a propi edade se debe confi gurar l a preferenci a " Funct i ons
= All ow non st andard funct i ons" en di seño y prot ot i po.

Propiedades Capt ion y Visible en Tab Dialogs
I nt r oducci ón
Se i mpl ement aron l as propi edades capt i on y vi si bl e para l as pági nas de l os Tabs
Di al ogs. Las mi smas permi t en det ermi nar en t i empo de ej ecuci ón el capt i on
( t ít ul o) de cada pági na, y hacerl a vi si bl e o i nvi sibl e.
Al cance
Obj et os: Wor k Panel s, Transacci ones
Lenguaj es: Java – Vi sual Basi c – Vi sual FoxPro
I nt erfaz: Wi n

Descr i pci ón

La si nt axi s es l a si gui ent e:

t ab. page( i ) . < Propi edad> = < Val or>

donde:

< Pr opi edad> es una de l as propi edades especi fi cadas en l a t abl a.
< Val or > es el nuevo val or que t omará l a propi edad, cuyo t i po de dat o
depende de l a propi edad:

Pr opi edad Ti po de dat o
Capt i on Char
Vi si bl e Numeri c ( 0| 1)

< i > i ndi ca el número de pági na sobre l a cual se qui ere apl i car la
propi edad.

Para poder ut ili zar est ar propi edades se debe confi gurar l a preferenci a
"Funct i ons = All ow non st andard funct i ons" en di seño y prot ot i po.


288
Funci onal i dades par a apl i caci ones
Cl i ent e/ Ser vi dor

Múlt iples conexiones por modelo
I nt r oducci ón
Est a funci onalidad permi t e est abl ecer desde un programa más de una conexi ón
en forma si mul t ánea a di ferent es bases de dat os ( de di ferent es f abri cant es) . Las
bases de dat os pueden ser de cual qui er DBMS soport ado por GeneXus ( SQL
Ser ver, I nf ormi x, Oracl e, DB2) Est as conexi ones se r eal i zarán a t ravés de Dat a
Vi ews defi ni dos en l a base de conoci mi ent o.

Al cance
Obj et os: Todos l os obj et os
Lenguaj es: C/ SQL - Java - Vi sual Basi c – Vi sual FoxPr o – C#
I nt erfaces: Wi n/ Web

Descr i pci ón
Para i mpl ement ar est a caract eríst i ca se defi ni ó un nuevo concept o en GeneXus,
al que se l e di o el nombre de Dat a St or e.

Un Dat a St ore es una fuent e de dat os a l a cual un programa se conect ará. Cada
Dat a St or e t i ene asoci adas propi edades que defi nen el comport ami ent o de l a
apli caci ón al conect arse y dat os r el aci onados, como por ej empl o el nombre del
usuari o y cont raseña a ut ili zar, et c.

Se defi ni rá un Dat a St ore por cada base de dat os di ferent e de l a pri nci pal que se
qui era acceder desde el model o ori gi nal . En el caso de que se t rabaj e
sol ament e con l a base de dat os pri ncipal , no es necesari o defi ni r ningún Dat a
St or e.

Def i ni ci ón en Di seño:
La creaci ón de un nuevo Dat a St or e se r eali za en el model o de Diseño,
ut ili zando l a opci ón del menú Fil e/ Edi t Model , en est e di al ogo se sel ecci ona el
t ab Dat a St or e ( ver fi gura abaj o) .

289



El úni co dat o que se debe especi fi car en el model o de Diseño de un Dat a St or e
es su nombre, est e nombre servi rá como i dent i fi caci ón a t ravés de t odos l os
model os de l a mi sma Base de Conoci mi ent o.

Def i ni ci ón en Pr ot ot i po o Pr oducci ón:
En l os di ferent es model os de Pr ot ot i po y Producci ón de l a Base de Conocimient o
se especi fi can l as caract eríst i cas part i cul ares de cada Dat a St or e. Par a hacerl o
se ut ili za el mi smo procedi mi ent o que en Diseño, l a opci ón Fil e/ Edi t Model
muest ra un di al ogo con el t ab “ Dat a St or es” , eli gi endo el mi smo aparecen l os
defi ni dos en Diseño:



En ese moment o se debe defi ni r en pri mera i nst anci a cual será el DBMS
290
asoci ado a ese Dat a St ore en ese model o.

Luego se deben defi ni r las propi edades ut ili zando el bot ón “ Preferences” :



En est e di al ogo se edi t an l as pref er enci as asoci adas al Dat a St ore, las que
varían dependi endo del DBMS sel ecci onado ( por mas i nformaci ón consul t ar l a
secci ón DBMS Opt i ons en l as Rel ease Not es de GeneXus 7. 0) .

En el caso de no confi gurarse el Dat a St ore en Prot ot i po/ Pr oducci ón, el mi smo
no quedará asoci ado a ningún DBMS, per o est o no si gni fi ca que se asumi rá l a
conexi ón pri nci pal para l as t abl as asoci adas a di cho Dat a St ore, por l o que se
produci rán errores en compil aci ón y/ o ej ecuci ón.

Ut i l i zaci ón
Al asoci ar el Dat a Vi ew a un det ermi nado Dat a St or e es que se i ndi ca a GeneXus
que det ermi nada t abl a debe ser accedi da a t ravés de l a conexi ón de di cho Dat a
St or e y no medi ant e l a pri nci pal , que es su comport ami ent o por omi si ón. Para
est o, se agregó en l a edi ci ón de l os Dat a Views u en n combo box par a el egi r el
Dat a St or e al que asociarl o:

291



Consi der aci ones gener al es
• En el di ál ogo de defi ni ci ón de Propi edades del Dat a St or e en
Prot ot i po/ Producci ón, la secci ón ‘Creat i on/ Reorgani zat i on I nf ormat i on’
est á de mas, ya que no apli ca a l as conexi ones secundari as ( el model o
no reorgani za t abl as que no sean de l a base de dat os pri nci pal ) . La única
propi edad que apli caría es ‘Dat abase Schema’, per o no est a
i mpl ement ada. Para confi gurar el Schema, se debe hacer a ni vel de Dat a
Vi ew, en ‘Plat form Specific I nf ormat ion’.

• No funci onan l os comboboxes di námi cos ni li st boxes di námi cos en el caso
del generador Vi sual Basi c.
Requer i mi ent os Gener ador JAVA
• Es necesari o di sponer de l os dri vers JDBC corr espondi ent es a l os DBMS
accedi dos ( definidos en los Dat a St or es) .

Requer i mi ent os Gener ador C/ Sql .
• Es necesari o habili t ar el soport e de acceso ODBC/ OLEDB al i nst al ar las
rut i nas de soport e de GeneXus.
• Como el acceso a l as bases de dat os ext er nas se r eal iza medi ant e
Conect i vi dad ODBC, es necesari o crear en el servi dor donde ej ecut an los
programas C, l os Dat a Sources corr espondi ent es a l os DBMS accedi dos
( defi ni dos en l os Dat a St or es) .
• Si el Servi dor es Wi ndows se requi er e i nst al ar el MSDAC 2. 1 o superi or.
Est e soft ware puede obt enerse del Servi ce Pack 3 del Devel oper Vi sual
St udio 6. 0 o del sit io http://www.microsoft.com/data. En Wi ndows 2000
vi ene i ncorporado al si st ema operat i vo.
• Si el servi dor es Uni x pueden ut ili zarse l os dri vers ODBC de Merant
292
( ht t p: / / www. merant . com. ) o de Openl i nk ( http://www.openlinksw.com) .


Comando SQL

I nt r oducci ón
El obj et i vo de est e comando es permi t i r l a ej ecuci ón de sent enci as SQL desde
l as apli caci ones GeneXus Cl i ent / Server .

Al cance
Obj et os: Transact i ons, Work panel s, Pr ocedur es, Report s, Web Panel s
Lenguaj es: Vi sual Basi c C/ S - Vi sual FoxPro C/ S - C/ SQL – Java – C#
I nt erface: Wi n y Web

Descr i pci ón
En ocasi ones especi ales es necesari o poder i ncl ui r sent enci as SQL en l os
programas generados de l as apli caci ones Cl i ent / Server.
El uso más común, es para modi fi car l os permi sos de l as t abl as de l a apli caci ón,
aunque puede ut i lizarse para real i zar cual qui er acci ón. .

¿Cómo funci ona?

Se debe i ncl ui r l a const ant e “ SQL” del ant e de l a sent enci a que se va a ej ecut ar.

Por ej empl o:
SQL DELETE * FROM CLI ENTES

En el códi go generado aparecerá un coment ari o i ndi cando que se est á
ej ecut ando una sent enci a SQL del usuari o.

Es posi bl e ej ecut ar sent enci as SQL cr eadas en t i empo de ej ecución. Si se
i ncl uyen at ri but os y/ o vari abl es dent ro de l a sent enci a SQL con l a not aci ón
[ ! at t / var! ] , su val or es consi derado en t i empo de ej ecuci ón.
Por ej empl o, si en Oracl e se qui er e cambi ar el r ol de un usuari o:

&Rol e = "MyRol e"
SQL SET ROLE TO [ ! &Rol e! ]

Ot r o ej empl o:

&Sent = ' DELETE FROM CLI ENTES WHERE CLI COD = 2'
SQL [ ! &Sent ! ]

Ha si do i mpl ement ado en l a versi ón 7. 5 en l os upgrade 1 de cada uno de l os
generadores en l a versi ón 7. 0

293
Consi der aci ones
• Es i mport ant e r ecordar que l as sent enci as SQL que se ut ili cen en el
comando SQL de GeneXus NO pueden ret ornar val ores ( ret ornar un
st at us, devol ver regi st ros RPC, et c. ) . Est o t ambi én i mpli ca que no se
t i ene un manej o de errores, por l o cual si l a sent enci a produce un er ror
cancel ará l a apli caci ón ( el usuari o no t i ene permi sos, l a t abl a sobre la
que se opera no exi st e, et c)

• El comando NO hace di ferenci a en l o que al DBMS se refi ere, debi endo
ser previ st o por part e del desarrol l ador posi bles di ferenci as de si nt áxi s
ent re el l os.

• Es i mport ant e t ener en cuent a que si l a sent enci a act ualiza dat os, puede
requeri r un commi t . Por l o t ant o, si el obj et o GeneXus en el que es
ut ili zado el comando SQL no act ual i za l os dat os de l a base, debe
agregarse un comando commi t , o i ncl ui rse en una UTL que l o haga.

• El comando es i gnorado en model os no Cl i ent / Ser ver.

Met odos de Conexion con Tecnologia ODBC
I nt r oducci ón
La conexi ón a l a base de dat os empl eando l a t ecnol ogía ODBC se real i za a
t ravés de l os Dri ver s que i mpl ement an, para un manej ador de base de dat os
específi co, l as funci ones ODBC.
En ver si ones ant eri or es l a conexi ón se real i zaba úni cament e a t ravés de l a
defi ni ci ón de un dat a source ( para un dri ver part i cul ar) . A part i r de GENEXUS
7. 5, es posi bl e conect ar se ut ili zando di rect ament e el dri ver o un dat a sour ce de
archi vo.

Al cance
Obj et os: Transacci ones, Work Panels, Web Panels, Pr ocedimient os, Report es
Lenguaj es: C/ SQL, Vi sual Basi c, Vi sual FoxPro
I nt erfaces: Web y Wi n
Tecnol ogía de acceso a l os dat os: ODBC

Obj et i vo
Los nuevos mét odos de conexi ón ODBC ( empl eando di rect ament e el dri ver ó
ut ili zando un dat a source de archi vo) amplían el al cance ( usuari os y
comput adores) de l a conexi ón ODBC que se venía ut ilizando hast a ahora.

Ut ilizando dat a sources, l a inst al aci ón de una nueva apli caci ón que accede a l os
dat os medi ant e ODBC impli ca l a defini ci ón del dat a source corr espondi ent e en
cada cl i ent e. Est os nuevos mecani smos si mpli fi can l a et apa de i nst al aci ón ya
que el dat a source puede reut ili zarse.

294
Def i ni ci ones Gener al es
Los dr i v er s son l os component es que pr ocesan l os requeri mi ent os ODBC y
ret ornan l os dat os a la apli caci ón. Para usarl os, r equi eren ser i nst al ados
previ ament e en el comput ador.

Los dat a sour ces son l as fuent es de dat os que det ermi nan el acceso ut ilizando
un dri ver a una fuent e de dat os part i cul ar. Se i dent i fi can con un nombre y se
defi nen usando el ODBC Dat a Source Admi ni t rat or. Requi eren haber i nst al ado
previ ament e el dri ver en el comput ador. Exi st en t res t i pos de dat a sources: de
Usuari o, del Si st ema y de Archi vo.

User Data Sources: Los data sources de Usuario, son
locales al computador y pueden ser utilizados únicamente
por el usuario que lo define. Generan una entrada en el
Registro de Windows.

System Data Sources: Los data sources de Sistema, son
locales al computador y pueden ser utilizados por
cualquier usuario con privilegios o por el sistema.
Generan una entrada en el Registro de Windows.

File Data Sources: Los data sources de Archivo, están
basados en un archivo que puede compartirse entre todos
los usuarios que tienen instalado el mismo driver para
acceder a una base de datos. No están dedicados a un
usuario ni a un computador. No generan entradas en el
Registro de Windows, sino que se identifican por el
nombre de un archivo con la extensión .DSN.

Los data sources de Usuario y de Sistema se conocen en
conjunto como Data source de la máquina (Machine Data
Source) porque son locales a un computador. Estos eran
los únicos data sources soportados hasta esta versión.
Conf i gur aci ón en GeneXus
En l os model os que ut ili zan l a t ecnol ogía de acceso ODBC, se di spone de una
nueva preferenci a que se confi gura a ni vel de Dat a St or e ( en DBMS Opt i ons) ,
denomi nada “ Connect Usi ng” para l a t ecnol ogía de acceso ODBC. Est a
pref erenci a i ndi ca l a forma que se usará para i ndi car l a fuent e de dat os ODBC a
ut ili zar.

Los val or es posi bl es son:

Dat asource Se ut ili za un dat a source ODBC
Dri ver Se ut iliza el nombre del dri ver. Con est a opci ón
no se requi ere defi nir ni ngún dat a source
ODBC.
Fil e Se ut iliza un fil e dat a source previ ament e
defi ni do. *


* La i nformaci ón compl et a de cómo defi ni r dat a sour ces y fi l e dat a sources
est á en: ht t p: / / msdn. mi crosoft . com/ l i brary/ defaul t . asp?url = / li brary/ en-
us/ odbc/ ht m/ dasdkodbcdat asourceadmi n. asp baj o el t ít ulo “ Microsoft ODBC
Dat a Source Admi ni st rat or” .

295


Dependi endo del val or confi gurado en est a pref er enci a, se habili t a una úni ca
pref erenci a de l as si gui ent es:

DATA SOURCE NAME
Est a opci ón est a di sponi bl e y su val or es r equeri do si se el i gi ó el val or
“ Dat a Source” en l a opci ón “ Connect usi ng” .
Debe i ngresarse el nombre del dat a source t al como aparece en el ODBC
Manager baj o l a col umna “ Name” de cada dat a source.

DRI VER
Est a opci ón est a di sponi bl e y su val or es r equeri do si se el i gi ó el val or
“ Dri ver ” en l a opci ón “ Connect usi ng” .
Debe i ngresar se el nombre del dri ver t al como apar ece en el ODBC
Manager baj o l a col umna “ Name” del t ab “ Dri ver” .

Por ej empl o: El dri ver de Mi crosoft para Sql Server se l l ama “ SQL
SERVER” , el dri ver de Merant para Oracl e8 “ MERANT 3. 60 32- BI T
Oracl e8” .

FI LE DATA SOURCE NAME
Est a opci ón est a di sponi bl e y su val or es r equeri do si se el i gi ó el val or
“ Fil e” en l a opci ón “ Connect usi ng” .
Debe i ngresarse el nombre del dat a source de archi vo t al como aparece
en el ODBC Manager en el t ab “ Fil e Dat a Sour ce” . Si el dat a source de
archi vo no est á defi nido en el di rect ori o defi ni do por def ect o en el ODBC
Manager , debe i ncl ui rse el cami no que permi t a local i zarl o.

Primary key index clust er ing
I nt r oducci ón
La propi edad ( que exi st e a ni vel de DBMS Opt i ons) permi t e defi ni r si el índi ce
por llave primaria se cr ea ‘clust er ed’ o ‘not cl ust er ed’.
Al cance
DBMS: I nformi x, SQL Ser ver
Lenguaj es: C/ SQL – Java – Vi sual Basi c - Vi sual FoxPro – C#
Descr i pci ón
Est a DBMS Opt i on aplica para cuando l a propi edad Pri mary key Defi ni t i on es
‘I ndex’.
Los val ores confi gurabl es de est a propi edad son:
Cl ust er ed: ( val or por def ect o) En est e caso se cr ea el índi ce con la
si gui ent e si nt axi s: “ CREATE UNI QUE CLUSTERED I NDEX …”

Not cl ust er ed: En est e caso se cr ea el índi ce con l a si gui ent e si nt axi s:
296
“ CREATE UNI QUE I NDEX …”

El si gui ent e di ál ogo demuest ra cómo se confi gura l a mi sma:




FAQ
¿Qué si gni fi ca que un índi ce sea Cl ust ered?
Si gni fi ca que el orden del índi ce a ni vel físi co coi nci de con el orden l ógi co.
Por más i nformaci ón r ef eri rse a ‘SQL Ser ver Books Onl ine’.

Preferencia Lock Time- out ( seconds)
I nt r oducci ón
A part i r de l a versi ón Solís, l a preferenci a, a ni vel de Manej ador de Base de
Dat os, Lock t i me- out apli ca además del AS/ 400 con acceso nat i vo a SQL Server
en l as versi ones 7. 0 o superi or es.

Est a i ndi ca al acceder a un regi st ro l ockeado el t i empo en segundos que debe
rei nt ent ar para poder obt ener el regi st ro.

Al cance
Obj et os: Transacci ones.
Lenguaj es: Java, Vi sual Basi c, Vi sual FoxPr o, RPG y Cobol
I nt erfaces: Wi n

Descr i pci ón
Es posi bl e confi gurar est a propi edad sol ament e para el manej ador AS/ 400,
cuando se ut i liza como t ecnol ogía de acceso ‘AS/ 400 nat i vo’ ( es deci r,
generando RPG o Cobol , pero no en l os accesos SQL) y para el manej ador SQL
297
server con ver si ón 7. 0 o superi or por l as t ecnol ogías de acceso empleadas por
t odos l os generador es Cli ent e/ Servi dor ( C/ SQL, Java, Vi sual Basi c y Vi sual
FoxPro) .

El val or se defi ne en segundos si endo el val or por def ect o 0.
En el caso que el manej ador sea AS/ 400 el val or 0 i ndi ca que t oma el val or
confi gurado en l as propi edades del archi vo físi co ( WAI TRCD) , en el caso de
Sql Server i ndi ca que r ei nt ent ará i ndefi ni dament e.

La propi edad en l os model os AS/ 400 nat i vo ya exi st ía, se movi o a ni vel de
DbmsOpt i on. En Sql server l a propi edad es nueva

Ut i l i dad
Por def ect o cuando un programa GeneXus requi ere un regi st ro y ést e se
encuent ra l ockeado, por ej empl o con SQL Ser ver se mant i ene al programa "en
espera" ( si n responder) hast a que el regi st ro se li bere o l o cancel a si ocur r e un
Dead l ock con ot ra apl i caci ón.
Los sínt omas de est e comport ami ent o se pueden ver en una apli cación donde
dos usuari os concurrent es i nt ent en acceder ( por ej empl o, en una t ransacci ón) al
mi smo regi st ro. El primer o accede al regi st ro y el segundo no. Además, el
segundo no reci be ni ngún "feedback" de qué est a ocurri endo. Si mpl ement e, l a
apli caci ón que est a ej ecut ando queda " congel ada" .
La posi bili dad de est ablecer un Ti meout permi t e que el segundo usuari o, en el
ej empl o ant eri or, pueda r eci bi r el cont rol nuevament e con el mensaj e de que
al gui en est a l ockeando el regi st ro.
El especi fi car un Ti meout mayor que cero no cambi a el funci onami ent o de l os
programas generados. Sól o indi ca cuánt o t i empo, como máxi mo, esperará el
usuari o para reci bi r el mensaj e de regi st r o l ockeado. Est a i nformaci ón es t rat ada
de f ormas di ferent es según sean obj et os con i nt erfaz o no.
En el caso de un obj et o con i nt erfaz ( t ransacci ones) , pasado ese t i empo se l e
devuel ve el cont rol al programa y se l e despl i ega un mensaj e al usuari o para
que est e deci da si rei nt ent ará o cancel ará l a espera. En el caso de un obj et o si n
i nt erfaz, con manej ador SQL Server cont i núa esperando por l a li beraci ón del
regi st ro ( sol o se especi fi ca cuánt o t i empo exi st e ent re l os rei nt ent os) hast a que
est e se l i bere, con manej ador AS/ 400, rei nt ent a hast a di ez veces el t i empo
especi fi cado y l uego envía un mensaj e al operador de si st ema


CONFI GURACI ÓN
Se modi fi co el di ál ogo de DBMSOpt i on en l a secci ón “ Dat aBase I nf ormat i on”
para confi gurar di cha propi edad.
298



Configuración de Trace ( GeneXus DB Act ivit y
Trace)
I nt r oducci ón
Est a faci li dad permi t e generar i nformaci ón de di agnóst i co ( t race) de forma de
hacer más rápi da y efect i va l a l abor de det ecci ón y report e de fall as en el
funci onami ent o de l a apli caci ón.
Apli ca al Dat a Vi ew Generat or y a l as apli caci ones gener adas con C/ SQL ( usando
t ecnol ogía de acceso ODBC) , Vi sual Basi c Cli ent e/ Servi dor, Vi sual FoxPro
Client e/ Servidor y C# .
Modo de act i vaci ón
Ut ilizando el ej ecut abl e gx t r ccf g.ex e es posi ble confi gurar al gunas opci ones de
l a facili dad de generaci ón de t race. Al ej ecut arl o se despl i ega el si gui ent e
di ál ogo:


299



Las opci ones confi gurabl es son:



Cache

Se ut ili za memori a i nt ermedi a para el al macenami ent o del
l og de di agnóst i co ( CACHE) .
Est a opci ón mej ora sensi bl ement e el desempeño de l a
generaci ón de di agnóst ico, sol o debe ser ut ili zada en caso
de que l a generaci ón de l og afect e de f orma severa el
desempeño de l a apli caci ón.
Debe ser deshabili t ada en caso de est ar di agnost i cando
una apli caci ón que present a fi nali zaci ón anormal ( GPF) ,
est o es debi do a que en est os casos el si st ema pi erde l a
i nformaci ón cont eni da en el cache provocando que el l og
de di agnóst i co quede i ncompl et o.


Avoi d cri t i cal error
report

En caso de er r or cri t i co se genera el report e
corr espondi ent e dent ro del l og.
Est o sucede aun si l a opci ón de t race est a deshabilit ada (
0, “ No t race” ) .
Est a opci ón permi t e anul ar ese comport ami ent o.
Recomendamos permi t ir l a generaci ón de t race en caso de
er ror crít i co, est a opci ón sol o debe ut ilizarse si por al gún
mot i vo específi co de l a est aci ón de t rabaj o es necesari o
evi t ar l a generaci ón del archi vo de t race en caso de er ror
cri t i co.


Generat e DBMS
expl ain pl an


Gener a el pl an i nt er no de ej ecuci ón del DBMS par a
cada sent enci a. Puede degr adar l a per f or mance, y
debe ser habi l i t ado sol ament e en casos de ex t r ema
necesi dad.


Generat e t i me cost
i nfo

Habili t a l a inclusi ón del t i empo consumi do por cada rut i na,
en el l og.
El t i empo se r epr esent a en t i cs.
( 18 t i cs = 1 segundo)

300

Tracefi l e pat h


I ndi ca el di rect ori o donde se generará l a i nformaci ón de
t race. El mi smo debe exi st i r, de l o cont rari o no se habili t a
el bot on de OK. Debe especi fi carse sol o el di rect ori o, el
nombre del archi vo de t race se genera aut omát i cament e
con una combi naci ón de l et ras y números di ferent e en
cada ej ecuci ón, y l a ext ensi ón es ‘l og’. En el caso de que se
est é ej ecut ando una apli caci ón que ut ili za mas de una
conexi ón, se genera un archi vo de t race por cada una de
ell as, cambi ando el sufi j o del nombr e.


Trace level


I ndi ca el ni vel de det all e que debe al canzar el t race, l a
escal a es de 0 a 6.
Cero si gni fi ca no generar t race, 6 si gni fi ca generar t race
con máxi mo ni vel de det all e.

301
Funci onal i dades Específ i cas de l os
Gener ador es

C#

Sección específica del generador C#
Requer i mi ent os
Para compi l ar l os pr ogr amas generados por est e generador es necesari o t ener
i nst al ada l a versi ón r el ease del Framework SDK.

Funci onal i dades

Est e generador i ncluye t odas l as funci onali dades de l os generadores web de l a
versi ón GeneXus 75, con al gunas excepci ones desarr oll adas en el si guient e
párraf o.

Consi der aci ones gener al es

Obj et os WEB
No es posi bl e l a generaci ón de obj et os con I nt erfase GUI ( Wi n) , úni cament e
obj et os Web ( Web Panel s, Transacci ones con form HTML, Pr ocedi mi ent os)

Repor t es y pr ocedi mi ent os
En est a versi ón no se generan r eport es. Los pr ocedi mi ent os no es posi bl e
ll amarl os desde l a linea de comandos, no se soport a l a propi edad Command
line.

Manej o de schema XML
Est a di sponi bl e el mét odo Addschema del t i po de dat os Xml Reader, con est e es
posi bl e vali dar l os dat os Xml de un namespace dado, mas información


Por mas i nformaci ón del generador di ri gi rse al Manual del Generador C# 7. 5

302
C/ SQL

Sección Específica C/ SQL
Compat i bi l i dad
I MPORTANTE
En l a ver si ón GeneXus 7. 5 se real i zaron vari os cambi os en l as
pref erenci as del modelo y DBMS Opt i ons con respect o a l a versi ón 7. 0,
al gunos de est os cambi os son:
- Cambi o de val ores por def ect o
- Nuevas pr ef er enci as
- Nuevos val or es de pr ef er enci as
- Eli mi naci ón de pr ef erenci as

Cabe dest acar que el cambi o en l os val ores por def ect o de l as
pref erenci as pr ovocarán un cambi o en el compor t ami ent o de l as
apl i caci ones que l os ut ilizaban. Por est e mot ivo se recomi enda revi sar
det eni dament e l a secci ón del generador C/ SQL en el document o
“ Admi ni st r aci ón de Pr opi edades” .

• En est a versi ón se modi fi ca el esquema ut ili zado para l as ll amadas vía
RPC. Por más i nformaci ón ref eri rse a l a secci ón Nuev as
Funci onal i dades/ Nuev o esquema RPC.

• A part i r de est a versi ón el generador C/ SQL permi t e generar report es en
modo gráfi co en ambi ent es Wi ndows. Para mant ener compat i bili dad con
el comport ami ent o ant eri or se di spone de una seri e de pr ef er enci as. Por
más i nformaci ón r eferi rse a l a secci ón Nuevas
Funci onal i dades/ I mpr esi ón gr áf i ca.

• A part i r de est a versi ón, se el i minó el valor “ Not speci fi ed” de l a
pref erenci a Target Operat i ng Syst em por l o que l os model os que t uvi er an
est e val or ( si t uaci ón no recomendada) t endrán ahora el val or “ Wi ndows” .

• A part ir de est a versión, se incl uyó la prefer enci a ‘Ext ensi on f or Web
Programs’. En versi ones ant eri ores, l os programas Web generados para
ambi ent es UNI X no incluían ext ensi ón. Para t ener el mi smo
comport ami ent o deberán modi fi car a < none> el val or de est a nueva
pref erenci a. Por más i nformaci ón ref eri rse a l a secci ón Nuev as
Funci onal i dades/ Ex t ensi on f or Web Pr ogr ams.

• A part i r de est a versi ón el val or por defect o de l a pref er enci a
corr espondi ent e a l a versi ón del precompi l ador Pro* C de ORACLE pasa a
ser 8. 1 que se corr esponde con l a versi ón más usada. Si t rabaj aba con el
val or por def ect o ant eri or ( 2. 1) , debería edi t ar l a preferenci as del model o
y modi fi car el val or corr espondi ent e.


• A part i r de est a versi ón se dej a de soport ar el comando msg( ' mai n' )
como forma de ej ecut ar un programa C/ SQL desde l a consol a ( DOS) . En
su l ugar se debe modi fi car l a propi edad ‘Call prot ocol ’ con el val or
303
‘Command l i ne’.
El er ror que se produce en cual qui er obj et o que t enga di cho comando es
el si gui ent e: “ Don' t know how t o make xxxxxx_rpc. c, donde xxxxx es el
nombre del obj et o” .
Nuevas f unci onal i dades
Gener al es
ACCESO VÍ A ODBC
En l a versi ón GENEXUS 7. 5, el generador C/ SQL permi t e t rabaj ar úni cament e
con ODBC, en l ugar de SQL Embebi do como t ecnol ogía de acceso a l os dat os.
Por más información r ef eri rse a la document ación: ODBC.

NUEVO ESQUEMA RPC
Hast a l a versi on GENEXUS 7. 5 el esquema RPC que permi t i a l a i nvocaci ón de
programas C/ SQL por l as apl i caci ones vi sual es generadas con Vi sual Basi c
C/ S y Vi sual Foxpro C/ S, est aba basado en l os prot ocol os DCOM y ONCRPC
para l os ambi ent es Wi ndows y Uni x respect i vament e.

A part i r de est a nueva versi ón, el esquema RPC est a basado en el prot ocol o
SOAP, l o que i mpli ca que no se r equi ere un ser vi dor RPC, si no un ser vi dor
Web. Por más infor mación r ef eri rse a la document ación: ‘Remot e Procedur e
Call ’.

I MPRESI ÓN GRÁFI CA
En l a versi ón GENEXUS 7. 5 se i mpl ement ó l a generaci ón de report es gráfi cos
en ambi ent e Wi ndows para el generador C/ SQL. A part i r de est e moment o el
usuari o puede cr ear r eport es gráfi cos ut ili zando el Report Vi ewer. Por más
i nformaci ón referi rse al document o ‘C/ SQL - I mpresi ón gráfi ca’.

SOPORTE POSTGRESQL
En l a versi ón GENEXUS 7. 5 se i mpl ement ó l a posi bilidad de ut ilizar el
manej ador de base de dat os POSTGRESQL con el generador C/ SQL. Por más
i nformaci ón referi rse al document o Post greSQL.

PREFERENCI A ‘ EXTENSI ONS FOR WEB PROGRAMS‘
Se agrega l a pref er enci a ‘Ext ensi ons for Web Programas’ en el generador
C/ SQL. De est a f orma se puede i ndi car l a ext ensi ón deseada en l a generaci ón
de obj et os Web. Est a preferenci a es especi al ment e út il en ambi ent es UNI X,
donde l a confi guraci ón de permi sos de di rect ori os vi rt ual es se especi fi ca a
part ir de la ext ensión de los programas. Por más información ref er i rse al
document o ‘Pr efer enci a Ext ensi ons for Web Pr ograms’.

PASAJE DE LONGVARCHAR ENTRE OBJETOS
A part i r de est a versi ón se pueden pasar parámet ros de t i po LongVarChar a
304
obj et os mai n C/ SQL.

LLAMADA ENTRE OBJETOS MAI N C/ SQL
A part i r de est a ver si ón se pueden real i zar cal l s ent re obj et os mai n
generados con C/ SQL. Est a i nvocaci on se basa en el pr ot ocol o SOAP.

PREFERENCI A ‘ REORGANI ZE SERVER TABLES’
Se agr ega l a prefer enci a ‘Reorgani ze Server Tabl es’ en el generador C/ SQL.
De est a for ma se puede evi t ar ej ecut ar cr eaci ones y/ o r eorgani zaci ones en
model os en l os que el generador C/ SQL sea el generador pri nci pal del
model o. El val or por def ect o de l a propi edad es ‘Yes’.

CONFI GURACI ÓN DEL TAMAÑO DEL POOL DE SENTENCI AS
Se i mpl ement ó l a posi bili dad de confi gurar el t amaño del pool de sent enci as.
Se agrega una ent rada al archi vo de confi guraci ón gxcfg. i ni denomi nada
Maxopenst at ement s que permi t e confi gurar el pool de sent enci as. El val or
míni mo es 25, cual qui er val or menor se i gnora y se fuerza el míni mo.

MANEJO DE LA OPCI ÓN SI LENT
Se modi fi co el esquema del " . Sil ent " en l os archi vos makefi l es, para poder
cont r ol arl os desde l a línea de comandos.
La opci ón . Sil ent dent ro de l os archi vos ut ilizados para compi l ar l as rut inas de
soport e permi t e det ermi nar si se envían t odos l os mensaj es a l a vent ana de
compi l aci ón.
Est o es út il para det ermi nar posi bl es err ores en l a ej ecuci ón de di chos
archi vos.

Para que aparezca el det all e de l o que se est a ej ecut ando se debe modi fi car
el scri pt ut ili zado ( ZZZexec, gxmkdat a, et c) coment ando l a asi gnaci ón de l a
vari abl e de ambi ent e "GXMKOPT". La l ínea es: set GXMKOPT= / S.

En pl at aformas Wi ndows cont i ene el val or "/ S" y en Uni x "s" .


305
Apl i caci ones Web

I SAPI
A part i r de est a versi ón, se i ncl uye una nueva f orma de generar obj et os Web
ut ili zando I SAPI . Por más i nformaci ón al respect o r ef eri rse al document o
I SAPI .

DEVELOPER MENU PARA APLI CACI ONES CON I NTERFAZ WEB
Se i mpl ement ó el Devel oper Menu para apli caciones con i nt erface Web.
Est e obj et o cont i ene a t odos l os obj et os con int erface Web que se haya
defi ni do en el model o. Aparece cuando se presiona F5 desde GENEXUS, con l a
descri pci ón Devel oper Menu y cuando l a preferenci a Generat e Devel oper
Menu Makefi l e t i ene el val or YES. Est e es el val or por defect o

OPTI MI ZACI ON EN LA GENERACI ÓN DE OBJETOS WEB
Se opt i mi zó l a generaci ón de obj et os Web ( Web Panel s y Transacci ones
Web) . Est o si gni fi ca que se reduj o si gni fi cat i vament e el códi go de l os obj et os
web generados, con l a consi gui ent e reduccci ón de t i empos de generaci ón y
t amaño de l os ej ecut ables.

C/ SQL - Acceso vía ODBC
I nt r oducci ón
Una nueva caract eríst i ca del generador C/ SQL en l a versi ón GENEXUS 7. 5, es
que se puede t rabaj ar úni cament e con ODBC como t ecnol ogía de acceso a l os
dat os de l a apli caci ón generada, en l ugar de SQL Embebi do.

Al cance
Obj et os: Web Panels, Web Transact ions, Pr ocedimient os, Report es
Lenguaj es: C/ SQL
I nt erface: Wi n - Web
Descr i pci ón
Para det ermi nar el mét odo de acceso a ut ilizar, se deben t ener en cuent a vari os
aspect os. Los requeri mi ent os t ambi én son di ferent es según el acceso.
Requer i mi ent os
SQL EMBEBI DO
Cuando se genera C/ SQL con SQL Embebi do como mét odo de acceso, es
necesari o t ener i nst al ado en el servi dor el pre- compi l ador corr espondient e al
DBMS.

306
ODBC
Cuando se genera C/ SQL con ODBC como mét odo de acceso, es necesari o
t ener i nst al ados l os dri ver s ODBC corr espondi ent es en el ser vi dor.

SQL Embebi do VS. ODBC
Normal ment e el usuario puede opt ar por un mét odo de acceso u ot ro, no
habi endo grandes di ferenci as de perf ormance en el resul t ado de l as
ej ecuciones. Sin embargo, hay casos en los que se debe ut ilizar únicament e
ODBC como mét odo de acceso:

1. Si se generan Web Obj ect s con I SAPI , el mét odo de acceso que se debe
ut ili zar es ODBC.
2. Si el model o accede a ot ro/ s DBMS/ s di ferent e al defi nido por def ect o,
ent onces los accesos a los dat os de el/ los mismos se realizan a t ravés
de ODBC.

Pasos a segui r par a habi l i t ar el acceso vía ODBC
Para poder generar C/ SQL y ut ili zar ODBC como mét odo de conexi ón, es
necesari o segui r l os pasos que se det all an a cont inuaci ón:


UNI X
1. Confi gurar el ambi ent e ODBC en el servi dor de procesos UNI X. ( es deci r,
i nst al ar el manej ador ODBC y el dri ver ODBC especi fífi co para el DBMS.
2. I nst al ar l as rut i nas de soport e ( ej ecut ando el GXCSet up) con ODBC
3. Modi fi car l a preferenci a del model o “ Access Met hod” con el val or ODBC
4. En l as opci ones de ej ecuci ón ( F5) i ngresar en Scri pt Name mkgxdat a
5. Agregar en l a preferenci a “ User Li brari es” del model o, l as bi bli ot ecas que
requi ere el dri ver manager que se est á ut ili zando. Para saber cuál es son
hay que edi t ar el archi vo makefil e que vi ene como ej empl o con el dr i ver
manager. Est o no se puede real i zar en forma aut omát i ca, ya que el
nombre de l as mi smas depende del ambi ent e.

WI NDOWS
1. I nst al ar l os dri vers ODBC en el servi dor de procesos Wi ndows.
2. Dependi endo del mecani smo de conexi ón ODBC defi nido en el model o
( pref er enci a Connect Usi ng) , será necesari o defi ni r en est e ser vi dor el
dat asource especi fi cado en el model o. Est e dat a source debe pert enecer
al si st ema ( “ SYSTEM DSN” ) .
3. I nst al ar l as rut i nas de soport e ( ej ecut ando el GXCset up) con ODBC.
4. Modi fi car l a preferenci a del model o ‘Access Met hod’ con el val or ODBC
5. En l as opci ones de ej ecuci ón ( F5) i ngresar en Scri pt Name mkgxdat a. bat

Generación de Web Obj ect s como I SAPI
I nt r oducci ón
Hast a l a versi ón GENEXUS 7. 0 l os Web Panel s generados por C/ SQL eran
307
programas CGI ( Common Gat eway I nt erf ace) . Est os programas CGI eran
ej ecut ados en el ser vi dor y el códi go HTML r esul t ant e era envi ado al browser del
cli ent e.
A part i r de l a versi ón 7. 5, se i ncl uye una nueva forma de generar Web Obj ect s
ut ili zando I SAPI en ambi ent es Wi ndows.

Al cance
Obj et os: Web Panels, Web Transact ions, Pr ocedimient os, Report es
Lenguaj es: C/ SQL
I nt erface: Web

Descr i pci ón
I SAPI ( I nt ernet Server Appli cat i on Program I nt erface) provee un mecani smo
para desarroll ar apli caci ones que se ej ecut an en el espaci o de di recci ones del
servi dor Web en ambient es Wi ndows, t eni endo acceso a t odos l os recursos
di sponi bl es por di cho servi dor.

Como consecuenci a de est a i mpl ement aci ón, I SAPI present a una seri e de
di ferenci as con r espect o a l os programas CGI . De est as di ferenci as, algunas son
vent aj as y ot ras desvent aj as de una i mpl ement aci ón frent e a l a ot ra.

• Carga del Servi dor Web

Al ej ecut ar en el mi smo espaci o de di recci ones que el Ser vi dor Web, l as
apli caci ones I SAPI t i enen menor overhead que l as apli caci ones CGI .
Con l as apli caci ones CGI , cada requeri mi ent o de ej ecuci ón crea un nuevo
proceso y cr ea t ambi én procesos adi ci onal es cost osos - como l a conexi ón a una
o vari as fuent es de dat os- por cada uno de l os requeri mi ent os.
Utilizando lSAPl estas tareas se pueden realizar una única vez, quedando
luego los recursos utilizados por un requerimiento particular disponibles para
ser utilizado por otro. El ejemplo más importante es la posibilidad de utilizar
un pool de conexiones a la base de datos, de forma que las conexiones
persistan más allá de la vida de un objeto que atiende un requerimiento.
• Est abi lidad

Una caract eríst i ca fundament al de l os Servi dor es Web es su al t a di sponi bilidad.
Es por est a razón, que l a ut ilizaci ón del espaci o de di recci ones del Servi dor Web
puede ser una desvent aj a, ya que una fall a crít i ca en un módul o I SAPI que
provoque un acceso no váli do de memori a puede t ener como result ado l a
cancel aci ón del Servi dor Web.

• Recompil aci ón de módulos

La faci li dad de mant ener en memori a l os módul os para su ej ecuci ón, pueden
t ransformarse en una desvent aj a en l as et apas de pr ot ot i paci ón, ya que no es
posi bil e recompil ar un módul o que est á cargado en memori a.
308
Para poder hacerl o es necesari o rei ni ci ar el servi ci o del Servi dor Web. Exi st e una
sol uci ón a est e probl ema que consi st e en agregar l a ent rada
HKEY_LOCAL_MACHI NE/ SYSTEM/ Curr ent Cont rol Set / Servi ces/ W3SVC/ Paramet er
s/ CacheExt ensi ons= 0 en el regi st ro de Wi ndows.
Por más i nformaci ón sobre est a caract eríst i ca se puede consul t ar:
ht t p: / / msdn. mi crosoft . com/ li brary/ devprods/ vs6/ vi sual c/ vccore/ _core_what _are
_some_pr ogrammi ng_t ips_for_usi ng_i sapi _on_ii s. 3f. ht m

Recomendaci ón
Como concl usi ón, es recomendabl e el uso de Web Obj ect s I SAPI en ambi ent es
donde l a carga del Servi dor Web es i mport ant e. Se recomi enda t ambi én,
ut ili zar Web Obj ect s CGI en ambi ent es de prot ot i po y ut ili zar I SAPI en
ambi ent es de producci ón una vez que l a est abili dad de l as apli caci ones ha si do
probada.


Gener aci ón GeneXus I SAPI
Para generar l os Web Obj ect s I SAPI , se agregó una nueva preferenci a a ni vel de
model o denomi nada Web Server Modul e Prot ocol en l a secci ón Web I nf ormat i on,
l a cual debe set ear se en I SAPI . Para gener arl os como CGI debe set earse el
val or CGI .

Est os obj et os deben compil arse del mi smo modo que l os Web Obj ect s CGI ,
usando el bot on COMPI LE del Di ál ogo Run de GENEXUS. Se generan archi vos
di ferent es: para CGI l os programas generados son ej ecut abl es y para I SAPI se
generan bi bli ot ecas di námi cas.


Web Server
Modul e Pr ot ocol
Ext ensi ón de
archi vos generados
CGI . exe
I SAPI . dll



Además, l a conexi ón a l a base de dat os debe real i zarse ut ili zando ODBC y no
SQL embebi do, por l o que l a pref er enci a Defaul t Access Met hod del model o
C/ SQL debe set earse con el val or ODBC y l as rut inas de Soport e del generador a
ut ili zar deben t ener i nst al ado el Soport e I SAPI y el Soport e ODBC.

Ut ilizando I SAPI no pueden obt enerse l os val ores de l as vari abl es de ambi ent e
con l a funci ón no est ándar GETENV.

Gener aci ón de t r ace
Es posi bl e act i var l a generaci ón de t race en Web Obj ect s I SAPI , l o cual puede
ser muy út i l para det ermi nar l a causa de posi bles probl emas.
Para act i varl o se debe ej ecut ar el archi vo gxt r ccfg. exe en el servi dor donde
est án los Web Obj ect s e indi car el di rect orio de salida del t race. Luego de la
ej ecuci ón de l os Web Obj ect s, se cr ear án vari os ar chi vos con ext ensi ón .l og
con la información de las operaciones r ealizadas.

309
Conf i gur aci ón Ser v i dor Web.
Para l a ej ecuci ón de Web Obj ect s I SAPI , el Servi dor Web debe ser I nt ernet
I nf ormat i on Server 4. 0 o superi or en un ambi ent e Wi ndows NT/ 2000.

En el Servi dor Web, se debe habi lit ar l a ej ecuci ón de módul os I SAPI . Est a
confi guraci ón varía dependi endo de l a versi ón del soft ware.

Además, es necesari o que el usuari o que ej ecut e l os Web Obj ect s ( nor mal ment e
el usuari o anóni mo del Servi dor Web) , t enga permi sos para ej ecut ar sent enci as
ODBC, por l o que debe defi ni rse con l os permi sos del grupo Powered Users.

Ni vel es de Ai sl ami ent o I SAPI
Con l a versi ón 5. 0 de I nt ernet I nformat i on Server exi st en t res ni vel es
confi gurabl es de ai sl ami ent o baj o l os cual es ej ecut ar l os módul os I SAPI . En
versiones ant eri or es solo exist ían dos ( LOW y HI GH) .

• LOW( I I S Pr ocess)
Esta opción se comporta rigurosamente bajo las
condiciones comentadas hasta el momento. El módulo ISAPI
se ejecuta dentro del proceso del servidor de Web con
las ventajas y desventajas ya mencionadas.
• MEDI UM( POOLED)
Los módulos ISAPI que se ejecuten con esta opción se
ejecutan en un proceso separado al servidor de Web. Esto
hace que sea una alternativa más segura y de menor
performance que la anterior. Bajo esta opción si un
módulo provoca un error serio como un error general de
protección, el servidor de Web no sufrirá las
consecuencias, a lo sumo cancelarán otros módulos ISAPI
que compartan el proceso. Esta opción solo está
disponible en la versión 5.0.
• HI GH( I SOLATED)
Esta última opción hace que cada módulo ISAPI sea
ejecutado en un proceso aislado. Es la opción más segura
pero por sus características, casi no se distingue en
cuanto a sus ventajas del CGI.
Se puede deci r que est as t res opci ones t i enen vent aj as y desvent aj as que
cambi an gradual ment e según cual se ut i li ce. Manej ándol as se puede el egi r ent r e
el compromi so de desempeño y sol i dez que cada apli caci ón Web requi era. La
opci ón i deal depender á de l a carga que deba soport ar el si t o Web, l as
necesi dades de di sponibilidad y el grado de madurez de l a apli cación y l os
procesos de prueba que se hayan hecho.

CONFI GURACI ÓN
Para confi gurar l a opci ón de ai sl ami ent o a ut ilizar puede ut ili zarse l a consol a de
confi guraci ón del I nt ernet I nformat i on Server. Normal ment e est a opci ón se
defi ne a ni vel de di rect ori o vi rt ual aunque t ambi én es posi bl e hacerl o a ni vel de
módul o I SAPI ( dll ) . Mas det al l es sobre est e asunt o pueden encont rarse en l a
propi a document aci ón del I nt ernet I nf ormat i on Server.

310
NOTA:
La generaci ón I SAPI apli ca úni cament e a ambi ent es Wi ndows. No apli ca a l os
ambi ent es UNI X.


Pr egunt as Fr ecuent es
1. ¿PUEDEN GENERARSE ALGUNOS WEB PANELS CGI Y OTROS I SAPI ?
La pref erenci a Web Server Modul e Prot ocol det ermi na el modo de
generaci ón de l os Web Obj ect s, al ser a ni vel del model o apli ca a t odos
l os Web Obj ect s del mi smo.

2. ¿ PUEDEN CO- EXI STI R EN EL MI SMO SERVER APLI CACI ONES CGI E
I SAPI ?
Sí. El Servi dor Web puede confi gurarse para ej ecut ar apl i caci ones de t i po
CGI e I SAPI por l o que pueden coexi st i r si n i nconveni ent es.

3. ¿SI RVEN LAS MI SMAS RUTI NAS DE SOPORTE DEL GENERADOR
C/ SQL?
Para generar I SAPI , se debe i nst al ar el módul o I SAPI en l a ej ecuci ón del
GXCSet up ( GENEXUS C/ SQL Set up Wi zard) . De est a f orma, l as rut i nas
i nst al adas pueden ut ili zarse t ant o para generar Web Obj ect s I SAPi como
CGI .

4. ¿QUE PASOS DEBEN SEGUI RSE PARA GENERAR WEB OBJECTS
I SAPI ?
Los pasos a segui r son:
1. I nst al ar l as rut i nas de soport e GENEXUS ( ut ilizando el GENEXUS
C/ SQL Set up Wi zard) i ncl uyendo ODBC e I SAPI .
2. Set ear l a preferenci a Defaul t Access Met hod con el val or ODBC
3. Set ear l a pref erenci a Web Server Modul e Prot ocol con el val or
I SAPI .

Preferencia "Ext ension for WEB programs"
I nt r oducci ón
En l as ver si ones ant er i ores a GENEXUS 7. 5, l os obj et os Web generados en
C/ SQL para servi dor es UNI X no t enían ninguna ext ensi ón. Est o causaba que en
al gunos Servi dores Web no se pudi eran conf i gurar permi sos di ferent es para
archi vos que est uvi eran en el mi smo di rect or i o, si t uaci ón muy común con l os
obj et os web y l as i mágenes o archi vos j avascri pt s ut ili zados por est os.
Para evi t ar est o, se impl ement a una nueva pref er enci a a ni vel de model o
denomi nada Ext ensi on for WEB Programs.

En ambi ent es Wi ndows, est a pref er enci a t ambi en permi t i rá evi t ar que
programas de downl oad de archi vos ( como Got zill a) i nt ent en baj ar l os obj et os
311
Web en l ugar de ej ecut arl os.
Al cance
Lenguaj es: C/ SQL
Descr i pci ón
La pr ef er enci a Ext ensi on f or WEB Pr ograms permi t e est abl ecer cuál es l a
ext ensi ón con l a que se generan l os ej ecut abl es de Web ( Web Panel s, Web
Transact i ons y Procedi mi ent os/ Report es con l a propi edad call prot ocol
HTTP/ SOAP) de un model o C/ SQL. No apli ca a l os programas de
cr eaci ón/ reorgani zaci ón de l a base de dat os.

Se defi ne a ni vel de modelo y pert enece a la sección Web I nf ormat ion. Apli ca
úni cament e cuando el val or de l a pref er enci a “ Generat i on Mode” es Dynami c
Panel s y cuando el valor de l a pref erenci a " Web Server Modul e Pr ot ocol " es
CGI . Para el val or I SAPI si empre se generan ej ecut abl es de Web con ext ensi ón
dll .

Los val or es posi bl es de est a prefer enci a son:

.cgi Es el val or por def ect o cuando el val or de l a pref erenci a
Target Operat i ng Syst em es UNI X- ali ke
.ex e Es el val or por def ect o cuando el val or de l a pref erenci a
Target Operat i ng Syst em es Wi ndows
. dl l Es el val or sel ecci onado aut omát i cament e y no
modi fi cabl e cuando la pref erenci a Target Operat i ng
Syst em es Wi ndows y la pref er enci a Web Server Modul e
Prot ocol es I SAPI
< none> Est e val or no genera ext ensi ón en l os programas Web.
Apli ca uni cament e cuando el val or de l a preferenci a
Target Operat i ng Syst em es UNI X- ali ke.
Es un val or para compat i bili zar con l as ver si ones
ant eri or es de GeneXus.

C/ SQL- impresión gráfica en windows
I nt r oducci ón
Hast a l a versi ón GENEXUS 7. 5, el generador C/ SQL di sponía uni cament e de l a
i mpresi ón en modo t ext o de l os report es. A part i r de ahora, se di spone t ambi én
de l a i mpresi ón en modo gráfi co para l a pl at aforma Wi ndows usando el Report
Vi ewer.

Al cance
Obj et os: Procedimient os, Report es
Lenguaj es: C/ SQL
312
Descr i pci ón
A cont i nuaci ón se descri be el uso de l a i mpresi ón gráfi ca en obj et os C/ SQL que
ej ecut an en ambi ent e Wi ndows.
Compat i bi l i dad
Ant eri orment e se generaba úni cament e sal i da de t i po t ext o de report es, aún
cuando l os r eport es fuer an gráfi cos.
Para mant ener compat i bilidad con l as versi ones ant eri ores, se agregan l as
si gui ent es pr efer enci as:

" GRAPHI C REPORT OUTPUT"
La preferenci a ‘Graphi c Report Out put ’ cont rol a l a forma en que van a ser
generados l os report es gráfi cos.
Los val or es posi bl es son:

• Report vi ewer: La i mpresi ón se reali za ut ilizando el Report Vi ewer .
• Text : La i mpresi ón es de t i po t ext o, obt eni endo como sal i da un
archi vo con ext ensi ón prn. Est e val or apl i ca a pl at aformas Wi ndows y
Uni x- Li ke. Si se sel ecci ona el val or ‘Uni x- Li ke’ en l a pr ef er enci a
‘Operat i ng Syst em’, est e es el val or fi j o, ya que no hay opci ón de
modi fi carl a.

El val or por defect o de est a prefer enci a es ‘Report Vi ewer ’.

" TEXT REPORT OUTPUT"
Est a pr ef erenci a cont r ol a l a forma en que van a ser ej ecut ados l os report es
de t i po t ext o.
Los val or es posi bl es son:
• Report vi ewer: La i mpresi ón se reali za usando el Report Vi ewer. Est e
val or apli ca úni cament e a pl at aformas Wi ndows. Est os obj et os ( report es
o procedi mi ent os) se generan con una l et ra fij a si mil ar a l a de una
i mpresora de mat ri z de punt o ( Couri er new 10) .
• Text : La i mpresi ón es de t i po t ext o ( Wi ndows / Uni x) . Si se sel ecci ona el
val or ‘Uni x- Li ke’ en l a pref erenci a ‘Operat i ng Syst em’, est e es el val or
fi j o, ya que no hay opci ón de modi fi carl a.

El val or por defect o de est a prefer enci a ‘Report Vi ewer ’.
I nst al aci ón
Para poder ut ili zar est a caract eríst i ca, se agregaron l os archi vos est ándar
rbuil der.dll y rbuil der.lib. Di chos archi vos no se arman, si no que se copi an al
subdi rect ori o " li b" del direct ori o de i nst al aci ón de l as rut i nas de soport e durant e
la inst al ación de las mi smas ( GXCSet up) .
Ant es de ej ecut ar cual qui er report e gráfi co con el Report Vi ewer, es necesari o
copi ar l a rbuil der. dll al di rect ori o de l os programas, o agregarl a en el pat h del
servi dor.

Pr ef er enci as
Si se est á t rabaj ando sobre pl at afor ma Wi ndows ( val or “ Wi ndows” de l a
pref erenci a ‘Target Operat i ng Syst em’) se agr egan l as pref er enci as:
313

" SHOW PRI NTER DI ALOGS ON REPORTS"
Se apli ca cuando l a salida del report e es di ri gida di rect ament e a l a impresora.
( &Out put = " PRN" o val or ‘Onl y t o pri nt er’ de la propi edad ‘Report Out put ’ del
obj et o) .

Not a: El val or ‘Yes’ de est a pr ef er enci a es vál ido úni cament e cuando el report e
se ej ecut a desde l a línea de comandos en l a consol a del ser vi dor. En caso
cont rari o l a apli caci ón no devuel ve el cont r ol al obj et o que l o invocó vía
ht t pRPC.

" REPORT VI EWER"
Baj o el grupo ‘Report Vi ewer’ se encuent ran una seri e de pref erenci as que
cont rol an l a ej ecuci ón del Report Vi ewer. Las mi smas se det al l an a cont i nuaci ón.

Not a: Est e grupo de pr ef er enci as apli can cuando el r eport e es ej ecut ado desde
la línea de comandos en la consol a del servidor. La ej ecución si empr e es modal.

Max i mi zed
Est a pr ef er enci a cont r ol a si l a vent ana del Report Vi ewer apar ece
maxi mi zada o no. Los val ores posi bl es son:

• Yes: l a vent ana del Report Vi ewer apar ece maximi zada.
• No: l a vent ana del Report Vi ewer no es maxi mi zada.

El val or por defect o de est a preferenci a es ‘No’.

Al w ays on Top
La preferenci a ‘Al ways on t op’ cont r ol a si la vent ana va a aparecer del ant e
de l as demás vent anas hast a que l a mi sma sea cerr ada.

• Yes: l a vent ana del Report Vi ewer aparece del ant e de t odas l as
vent anas.
• No: l a vent ana del Report Vi ewer no aparece del ant e de l as demás
vent anas.

El val or por defect o es ‘No’.


For mas de ej ecuci ón
Los obj et os C/ SQL pueden ser ej ecut ados en di fer ent es formas, dependi endo de
l a confi guraci ón de l a propi edad ‘Call prot ocol ’ del obj et o. A cont i nuaci ón se
det all an l as consi deraci ones necesari as para poder obt ener el report e gráfi co en
cada caso.

EJECUCI ÓN DESDE LÍ NEA DE COMANDO
Si l a propi edad ‘Call prot ocol ’ t i ene asoci ado el val or ‘Command Line’, el
report e puede ser ej ecut ado desde l a consol a del ser vi dor.
En est e caso t odos l os val ores de l as pr opi edades del report e son váli dos.
314
Si l a propi edad ‘Report Out put ’ t i ene asi gnado el val or ‘Ask User’, al ej ecut ar
el obj et o se vi suali za el di ál ogo que se present a a cont i nuaci ón, cabe
dest acar que el mi smo di ferenci a mayúscul as de mi núscul as:

Send report t o pri nt er( Y/ N) ? _

Si el usuari o responde ‘N’, se abr e el Report Vi ewer , en caso cont r ari o l a
acci ón dependerá de l a confi guraci ón de l a propi edad ‘Report Out put ’.

EJECUCI ÓN VÍ A HTTPRPC
Si l a propi edad ‘Call prot ocol ’ t i ene asoci ado el val or ‘I nt ernal ’, el report e es
ll amado vía ht t pRPC desde una apli caci ón vi sual que est á ej ecut ando en un
PC client e. En est e caso hay valor es de propiedades que no aplican, ya que la
ll amada al report e se ej ecut a en f orma si ncróni ca ( el cli ent e queda esperando
a que fi nali ce el proceso en el servi dor) . En consecuenci a, no t odas l as
pref erenci as del generador rel aci onadas con l a i mpresi ón apli can cuando el
obj et o es l l amado vía ht t pRPC ( Ver secci ón ‘Pref erenci as’) .
Cuando un obj et o con pri nt bl ocks es l l amado vía ht t pRPC, l as úni cas
propi edades que apl i can del conj unt o ‘Opt i ons’ son:
Repor t Out put
Si el report e es l l amado vía RPC, el úni co val or váli do de est a propi edad es
‘Onl y t o Fi l e’.
Si el val or sel ecci onado es ‘Ask User’ u ‘Onl y t o Scr een’, el programa una
vez llamado no devuel ve el cont r ol al PC client e, por lo que la apli caci ón no
responde.

Foot er on l ast page
Per mi t e i ndi car si se va a i mpri mi r pi e de pági na en l a últ i ma pági na del
report e.

Por más i nformaci ón r ef eri rse al document o ‘I mpresi ones con GeneXus’.

315
Java

Sección específica del generador Java
Compat i bi l i dad
Para aquel l os usuari os que venían t rabaj ando con al guna versi ón ant eri or del
generador se recomi enda t ener en cuent a l os si gui ent es punt os:

• Sol o es posi bl e ut ilizar est a versi ón del generador con l a versi ón 7. 5 de
GeneXus. O sea, no es compat i bl e con ver si ones ant eri or es ( 7.0, 6. 1 ni
6. 0) .

• Cambiaron las cl ases est ándar GeneXus ( gxclassr. zip) , por lo que es
i ncompat i bl e con el ant eri or, ést o i mpli ca que t odos l os model os
generados con una versi ón ant eri or a l a 7. 5 de Java, deben ser
regenerados, est o es corr er un ‘Buil d all ’ para r egenerar t odos l os
obj et os.

• Veri fi car que en el di rect ori o ‘C: \ WI NDOWS\ Downl oaded Program Fi les’
NO est én l as ‘GeneXus Java St andard Cl ases’. Si est án, se debe hacer un
‘Remove’ para poder compil ar sat i sfact ori ament e con Mi cr osoft .

• Para model os con Web panel s. Los web panel s SOLO se generan en
model os con User I nt erface = Web Form. Aquell os que t engan web
panel s generados en un ambi ent e con User I nt erface = Wi n Form, deben
o bi en cambi ar l a i nt erafaz a Web, o bi en defi nir en el model o un nuevo
ambi ent e ( Fil e – Edi t – Model s - ‘Envi ronment s’ – Add) sel ecci onando a
Java como generador y Web Form como User I nt erface.

• En caso de apl i caci ones en múl t i pl es capas o apli caci ones web ( servl et s)
será necesari o act ualizar l as cl ases st andard ( gxcl assr. zi p) en los
servi dor es donde est én corri endo el servi dor de apli caci ones y el servi dor
de servl et s.

• En l a ver si ón GeneXus 7. 5 se real i zaron vari os cambi os en l as
pref erenci as del modelo y DBMS Opt i ons con respect o a l a versi ón 7. 0,
al gunos de est os cambi os son:

- Cambi o de val ores por def ect o
- Nuevas pr ef er enci as
- Nuevos val ores de pr ef erenci as
- Eli mi naci ón de pr ef erenci as

Cabe dest acar que el cambio en los valores por def ect o de l as
pref erencias pr ovocarán un cambi o en el compor t ami ent o de l as
apl i caci ones que los ut ilizaran. Por est e mot i vo se recomienda revisar
det enidament e la sección del generador Java en el document o
Admi ni st r aci ón de pr ef er enci as

316
Nuevas f unci onal i dades

Gener al es
NO SE GENERAN MÁS LAS GXDB+ +
A part i r de est a versi ón, se eli mi nó l a gener aci ón de l as GXDB+ + . Ahora,
para cada obj et o GeneXus se genera una cl ase que se l l ama
obj et ogx$< nombre_de_dat ast or e> y habrá uno para cada dat ast or e.

Son las equi valent es a los ' fW* . class' de la ver sión 7. 0, la di ferencia es que
en vez de una cl ase por cada ' foreach' , hay una por cada obj et o.

En arqui t ect uras de múl t ipli es capas, y a consecuenci a de est a nueva
i mpl ement aci ón, se hi cier on l os si gui ent es cambi os a ni vel de pref erenci as:

Se eliminó la preference ' Remot e GXDB+ + Locat i on' .
Se agregó l a propi edad opci ón ' Mul t i - t i er Locat i on' . Es l a equi val ent e a
' Remot e GXDB+ + Locat i on' - . Si se abr e un model o de l a 7. 0 con est a
versi ón, est a propi edad heredará el val or que t enía l a preferenci a
eli mi nada. La di ferenci a con est a pref ernci a es que est á a ni vel de
dat ast or e en vez de a ni vel de model o y será el l ocat i on que ej ecut ará l as
cl ases nombradas ant eriorment e: obj et ogx$< nombre_de_dat ast ore>

NOTA
No será más necesari o cor r er l os ' Cr eat e Dat abase' con Reorgani ze Ser ver
Tabl es= no. En cambi o, al hacer una reorgani zaci ón, es necesari o regenerar
aquell os obj et os que ut ili zan l as t abl as cambi adas.

Est a nueva i mpl ement aci ón facili t a a aquell os usuari os que t rabaj en con RPG,
donde ambos generadores: RPG y Java debían ser el generador de l a ' r eorg' .

SE I MPLEMENTÓ LA GENERACI ÓN DE HELP
Para cada hel p i ngresado en GeneXus se genera un archi vo ht ml baj o el
fol der Hel p que se encuent ra baj o el fol der del model o.

Se puede opt ar por generar el hel p en for mat o CHM o t ener el hel p en
archi vos ht ml s y most rarl os en el browser cuando son sol i ci t ados.

Para ell o se cr eo el grupo de pr ef er ences Hel p dent ro del gr upo de
pref erences User I nt erf ace.

Se agrega el grupo HELP en l as pref er enci as del model o, con si gui ent es
val ores:

Hel p Mode - Se puede opt ar por l os val ores:
• Wi ndows HTML Hel p - Si se va a generar l a ayuda como CHM.
• Web HTML Hel p - Si se va a generar l a ayuda como HTML. En el caso de
t ener est a ul t i ma sel ecci onada se habili t a l a si gui ent e:
- WebHel p base URL - def i ne l a URL donde se van a buscar l a ayuda
en f ormat o HTML, por ej empl o: ht t p: / / servi dorweb/ Hel pApli c.

Por mas i nformaci ón sobre generaci ón de Hel p desde GeneXus en l a versi ón
7. 4, ref eri rse al si gui ent e document o: HTML Hel p
317

SOPORTE SDI Y MDI EN JAVA
A part i r de 7. 5, además de SDI se soport a MDI para WFC.
Para especi fi car una u ot ra f orma se agregó una prefer ence:

' Generat e MDI Appli cat i on'

con valor YES por def ect o. Est o implica un cambio en el comport ami ent o por
def ect o de l as apli caci ones, que se hi zo con el fi n de compat i bilizar el val or
con el rest o de l os generadores. Para que l a apli caci ón Java funci one como en
versi ones ant eri or es, se debe cambi ar est e val or a ‘NO’.

SE I MPLEMENTÓ EL MODO DI SPLAY ( DSP)
A part i r de l a 7. 5, se cuent a con el modo DI SPLAY para t ransacci ones Java

USUARI O Y PASSWORD ENCRI PTADOS EN LOS .CFG’ S
Los val ores de usuari o y password se guardan encri pt ados en l os archivos de
confi guraci ón ( * . cfg)

El ut ili t ari o ServerConfi g t ambi én graba di chos val ores encri pt ados.

Si se desea cambi ar el usuari o/ password de un . cfg si n ut ili zar el
ServerConfi g, se puede ut ili zar un ut ilit ari o que vi ene con el generador
ll amado Passw or dChanger que permi t e encri pt ar el usuari o y password en
l os . cfg

La manera de ut ili zarl o es l a si gui ent e:

• Poner en el cl asspat h el gxcl assr.zi p
• Ll amarl o de l a si gui ent e forma:

j vi ew com. genexus. PasswordChanger

- fil e: < fil ename> ( por def ect o, cl i ent .cfg)
- namespace: < namespace> ( por defect o ' default ' )
- dat ast ore: < dat ast or e> ( por def ect o ' DEFAULT' )
- user: < user> ( requeri do)
- password: < password> ( requeri do)

También es posi bl e modi fi car los archivos de configuración manualment e, y
escri bi r l os val ores si n encri pt ar. La apli caci ón generada det ect ará que est án
si n encri pt ar y l os ut ili zará t al como fuer on i ngresados.

CLAVES DE ENCRI PTACI ÓN EN ARCHI VO DI FERENTE AL CLI ENT.CFG Y
SERVER.CFG
Se i mpl ement ó una for ma de dej ar gr abadas l as cl aves de encri pt aci ón en un
archi vo di fer ent e al cl i ent .cfg y server.cfg. Est e archi vo es el crypt o.cf g
Cuando se desea poder cambi ar l as cl aves de encri pt aci ón desde f uera de
GeneXus se puede ut ili zar el ut ili t ari o com. genexus.PasswordChanger . En
ocasi ones además se r equi ere que ést as queden en un archi vo di fer ent e al
cli ent . cfg/ server . cfg.
318
Si exi st e un archi vo que se ll ama crypt o. cfg en el _mi smo di rect ori o_ que el
cli ent . cfg/ server . cfg, ent onces se usan l as cl aves de est e archi vo.

El archi vo debe t ener el si gui ent e format o:
[ Encrypt i on]
Si t eKey= 7E2E22D26FF2989E2444852A85E57866

donde si t ekey es una cl ave vali da.

Est a cl ave t ambi én l a usa el com. genexus. PasswordChanger por l o que es
posi bl e cambi ar el user- password con ese ut i lit ari o r espet ando l a cl ave.

TRANSACCI ONES CON BACK- END HTTP
Se i mpl ement ó en el generador Java l as t ransacci ones con back- end ht t p.

La pri nci pal vent aj a de est e esquema es que puede t enerse una arqui t ect ura
si mil ar a l as 3 capas pero si n necesi dad de un servi dor de apl i caci ones, sol o
al canza con un mot or de servl et s. Además se ut ili za ht t p como prot ocol o de
comuni caci ón ent re capas en vez de RMI / CORBA/ DCOM.

Por más i nformaci ón al respect o ref eri rse al document o Tr ansacciones con
back- end ht t p

REPORTES MODO TEXTO I NDEPENDI ENTES DEL REPORT VI EWER.
Se i mpl ement ó l a forma de generar l os report es en modo t ext o,
i ndependi ent ement e del Report Vi ewer ( rbuilder. dl l) . Est o habili t a una
al t ernat i va a l os repor t es gráfi cos con f ormat o PDF para l a i mpresión en
pl at aformas no wi ndows.

Para generarl os, se debe especi fi car l o si gui ent e:
• Preference ' Text report out put ' = Text . ( el ot ro val or es Report
Vi ewer) . Est a prefer ence se encuent ra en el grupo user
i nt erface/ pri nt ing
• En l os r eport es:
o Si se manda a pant all a, ent onces l a sal i da va a st andard out put
o Si se manda a i mpresora, va a un archi vo que se ll ama
< nombre del obj et o> . prn
o Si se manda a archi vo, va a un archi vo que se ll ama < nombre
del obj et o> . prn, sal vo que se t enga l a regl a out put _fil e( &Fil e,
"t xt ") .

SE I MPLEMENTÓ LA REGLA Y COMANDO ERROR_HANDLER EN JAVA
Se i mpl ement ó l a regl a y comando Error_handl er en Java. La mi sma provee
al usuari o una forma dinámi ca de reali zar acci ones específi cas cuando ocur r e
un er ror rel aci onado a al a base de dat os en t i empo de ej ecuci ón.

La descri pci ón det all ada del Error_handl er se puede encont rar en el hel p de
Genexus.

CAMBI Ó LA FORMA DE PASAR LOS PARÁMETROS A CLASES EXTERNAS
No hay más ' GXSt ring' , ' GXDat e' , et c. Est o implica que queda incompat ible
con códi go j ava que se haya escri t o a mano usando l os GXSt ri ng/ Dat e, et c.
319

Se debe cambi ar en est os programas ext ernos el t i po de dat os de l os
parámet ros y usar l os t i pos j ava como arrays[ 1] , o sea

St ri ng[ ] a
byt e[ ] b

PROPI EDAD I SPASSWORD SOBRE CAMPOS EDI T
Se i mpl ement ó l a propiedad I spassword sobr e l os campos edi t para ut ilizarl a
en i nt erfaz wi n.

NUEVA FUNCI ÓN PARA EL MANEJO DE FTP: GXFTPDELETE
Se agregó a l as funci ones de ft p exi st ent es l a f unci ón gxft pdel et e.
La si nt axi s es l a si gui ent e:
call ( gxft pdel et e, &Archi vo) - Borra un archi vo del servi dor ft p.

FUNCI ONES FTP A TRAVÉS DE UN PROXY USANDO NETCOMPONENTS
Se i mpl ement ó l a forma de poder manej ar l as funci ones FTP a t ravés de un
proxy si n t ener que agregar l a bi bli ot eca Net Component s. j ar al cl asspat h.

AGREGAR LÍ NEAS A UN ARCHI VO DE TEXTO YA EXI STENTE
Se agrega un parámet r o a l a funci ón DFWOPEN que permi t e i ndi car la forma
en que se qui ere abri r el archi vo.

Nueva si nt axi s:

df wopen( < fi l ename> [ , < fdel > [ , < sdel > [ , < app> ] ] ] ] )

Est e parámet ro < app> es un numéri co de 1 que puede val er 0 o 1. En 0 no
hace el append, sino que sobrescri be el archi vo y si val e 1, hace el append ,
agregando l as li neas al fi nal del archi vo. Es opci onal y si no se especi fi ca, el
val or defaul t es 0.

AL EXPORTAR REORGANI ZACI ÓN SE PERMI TE CONFI GURAR OPCI ONES DE
DBMS
Se permi t e confi gurar l as opci ones del DBMS en el paquet e a export ar se con
l os programas de reorganizaci ón. Al llamar al ut ili t ari o Export Reorganizat in
del Devel oper menu se obt i ene el si gui ent e di álogo:

320


En el mi smo se puede confi gurar:

Fil ename Nombre del paquet e j ava que
cont endr á l os programas de
reorgani zaci ón
JDBC URL La especi fi caci ón varía según el
dri ver j dbc ut ili zado. Aquí se debe
especi fi car el nombre del servi dor,
puert o y nombre de base de dat os
que desea reorgani zar
User Usuari o de base de dat os con
permi sos para corr er programas de
reorganización
Password Password de usuari o especi fi cado en
User
I ncl ude confi gurat i on file i n JAR Per mi t e dej ar el ar chi vo REORG. CFG
fuera o no del . j ar a crear. Cuando
no se conocen l os dat os ant eri ores al
moment o de generar est e paquet e,
se puede desmarcar est a opci on y
asi cambi ar est os val or es en ot ro
moment o.


FORMATO ' ANSI ( Y/ M/ D) ' PARA LAS FECHAS.
Se i mpl ement ó un nuevo val or para l a preference " Dat e Format " . El mismo es
"ANSI ( Y/ M/ D) "

SOPORTE PARA ' MERANT JDBC CONNECT ( TYPE 4) ' PARA SQLSERVER
Se soport an l os dri vers ' Merant JDBC Connect ( Type 4) ' para Sql Server a
321
part i r de l a 7. 5 de GeneXus. Los mi smos se obt i enen de:
ht t p: / / www. merant . com/ product s/ dat adi rect /

CAMBI OS DE NOMBRES EN PREFERENCE ‘ CONFI RM TRANSACTI ON’
Cambi ó el nombre a ‘Confi rmat i on’
Cambi aron l os nombr es de sus val or es de
‘Confi rm each act i on’ a ‘Al ways prompt ’
‘Do not confi rm each act i on’ a ‘Never promt ’

SE ELI MI NÓ LA PREFERENCE ' GENERATE MAKEFI LES'
Desde la versión 7. 0 sólo se generan los makef iles cuando es absolut ament e
necesari o, es deci r cada vez que se genere un obj et o no se van a generar
t odos los makefiles que lo incl uyen, si no que sólo se va a generar los
makefiles cuando cambia el árbol de llamadas.
Con est e cambi o, dej a de t ener sent i do est a pref er ence, y por est a razón fue
eli mi nada.

CONOCER VERSI ÓN DE LAS CLASES ESTÁNDAR
Se i mpl ement ó el poder conocer que versi ón de l as cl ases est ándar del
generador est án si endo ut ili zadas.

Para el caso de l os ser vl et s se puede ej ecut ar l a si gui ent e URL:
ht t p: / / ServerName: 8080/ servl et / com. genexus. webpanel s. gxver

Para el rest o de l os casos se puede ej ecut ar l a cl ase com. genexus. Ver si on
t eni endo en el cl asspat h el gxcl assr.zi p. La versi ón será most rada en l a sali da
est ándar .
Por ej empl o:
Set cl asspat h= gxcl assr. zi p
j vi ew com. genexus. Ver si on


Apl i caci ones múl t i pl es capas
SOPORTE PROTOCOLO HTTP PARA APLI CACI ONES 3 CAPAS
Se i mpl ement ó el sopor t e para el pr ot ocol o HTTP para apli caci ones 3 capas.
Se cuent a con 2 nuevos val ores para l a prefer ence PROTOCOL baj o el grupo
Di st ri but i on Execut i on:
• ' Usi ng St at el ess HTTP'
• ' Usi ng St at eful HTTP'

Ut ilizando est e prot ocol o se puede ut ilizar l a seguri dad del servi dor web,
ent onces l a apli caci ón puede pedi r usuari o y password en el cli ent e. El
usuari o i ngresado puede l uego ser obt eni do por l a funci ón useri d( "server") .
Aprovechando est a funci onali dad no es necesari o ut ili zar LDAP para
apli caci ones 3 capas con HTTP.

Por más i nformaci ón r eferi rse al document o Apli caci ones Mul t i- t i er con ht t p
como pr ot ocol o de comuni caci ón.

322
MAYOR FACI LI DAD PARA PROTOTI PAR EN MODELOS 3 CAPAS ( RMI ,
CORBA, DCOM)
Se i mpl ement ó una forma de l evant ar al servi dor de apl i caci ones desde
GeneXus. Exi st e una nueva opci ón en el F5 que t i ene l as si gui ent es
caract eríst i cas:

NAME = Appl i cat i onSer ver
DESCRI PTI ON = GX Appli cat i on Server
TYPE = Precompi l ed Ut ili t y
ENVI RONMENT = Java

Para poder ej ecut ar est a opci ón es necesari o poner el cami no compl et o el
gxcl assr. zi p en el cl asspat h.

Adicionalment e a part ir est a versión se puede indi car que las cl ases a
ej ecut ar por el servidor de aplicaciones sean “ l eídas” de un di rect orio en lugar
de t ener que empaquet arl as en un . j ar. Ut ili zando est a nueva funci onali dad e
i ndi cando que el rel oading de l as cl ases sea aut omát i co se puede hacer que
el servi dor de apli caciones “ l ea” l as cl ases del di rect ori o del model o si n
necesi dad de t ener que vol ver a l evant ar el servi dor de apli caci ones cada vez
que se produce un cambi o en el model o. Est a es l a opci ón de ej ecuci ón por
def ect o.

REPORTES EN EL SERVI DOR
Se soport a l a ej ecuci on de r eport es en el servi dor y vi sualizarl os en el cli ent e.
Para ést o se i mpl ement aron l as si gui ent es funciones:

- get r emot efi l e( &Ser verFil e, &Local Fil e)
Copi a un archi vo del ser vi dor al cli ent e

- opengxreport ( &Fil eName)
Abre un . GXR

El usuari o GX debe pr ogramarl o de l a si gui ent e for ma;

Sea RReport el report e que se desea cor rer en el server , ent onces debe
t ener:
- l a propert y ' Report out put ' set eada con el valor ' t o fi l e'
- l a regl a out put _fil e( &Fil eName)
- debe ser remot o, o sea mai n y un l ocat i on especi fi cado

En el obj et o l l amador, en el cli ent e, se debe pr ogramar l o si gui ent e:

call ( RReport , &Fi l eName )

/ / Traer el ar chi vo del server al cli ent e
&a = get remot efil e( &Fil eName, " report . gxr")

/ / Abri r el report e
&a = opengxr eport ( " report .gxr ")

/ / Bor rar el archi vo
&a = del et efi l e( "report .gxr")

323
CAMBI OS EN ESQUEMAS DE 3 CAPAS
Se r eal i zaron l os si gui ent es cambi os en el esquema de 3 capas:

• Se qui t aron l as si gui ent es pr efer ences:
o ORB Connect i on t i meout ( seconds) ; el val or es si empre 300.
o Aut omat i c Remot e Procedure Host

• El servi dor de apli caciones " escucha" sol o un prot ocol o: o rmi , o
dcom, o corba, o ht t p st at eful o ht t p st at el ess, pero no combi naci ones
de ell os si mul t áneament e. En consecuenci a, se qui t ó el val or
"I nst al l ed ORB" en l a pr ef er ence "Pr ot ocol ".

• Se cambi ó el nombre de l a preference "Name Ser ver Host " por
"Appli cat i on Server Host "

• El servi dor de apli caci ones si empr e ej ecut a l os accesos a l a base de
dat os l ocal , es deci r no se puede corr er est a part e del códi go en f orma
remot a por ot r o servi dor de apli caci ones.

Se r eal i zaron cambi os en el ServerConfi g para r efl ej ar est os cambi os:



324



CAMBI OS EN LA I MPLEMENTACI ÓN DEL POOL READ- ONLY
Se hi ci eron al gunos cambi os en r el aci ón al comport ami ent o del pool read-
onl y:

- Cuando una conexi on read- onl y da un error, se saca l a conexi on del pool , y
se ci erra ( en reali dad no se ci er ra ensegui da, se ci er ra cuando al gun ot ro
usuari o pide una conexi on) . Est o i mpli ca que los usuari os que l a est uvi eran
usando van a reci bi r un error, pero que cuando se conect en de nuevo
obt endran ot ra conexi on y segui ran t rabaj ando.

- Se agrega una prefer ence ' Maxi mum cli ent s per read- onl y connect i on
( defaul t = 10) ' que se gr aba en el .cfg con l a cl ave ' Pool ROUser s' .
I ndi ca l a cant i dad de usuari os fi nal es ent ran en un mi sma conexi on read-
onl y. Est o permi t e li mi t ar l a cant idad de usuarios que van a caer cuando haya
un er ror en una conexi on. Por ej , si se dej a ' 10' , ent onces sol o van a caer
10 usuari os cuando a uno l e de por ej empl o, un I nt ernal Dri ver Error. Se
agrega est a pr ef er ence t ambi en en el ServerConfi g.

- El defaul t del t amaño del pool read- onl y paso de ' 1' a i nfini t o, para que
funci one bi en con el def aul t de l a preference ant eri or.

CAMBI OS EN SERVERCONFI G PARA MANEJO DEL POOL Y LOGGI NG
Se i mpl ement aron nuevas funci onali dades con respect o a l as conexi ones en 3
capas y al manej o de nivel es de l ogs. La especi f i caci on de l a mi sma se r eali za
en el ServerConfi g

Recy cl e connect i ons
Se soport a una nueva funci onali dad en l os pool s de conexi ones
325
denomi nada ' Recycl e connect i ons' que puede ser habili t ada o no.

Si se marca, se l e puede especi fi car cada cuant os mi nut os puede r eci cl ar
esa conexi on. La i dea es cuando pase ese t i empo de que l a conexi on se
cr eó, en el moment o en que est é en un est ado ' desconect abl e' , se
desconect a del pool , y al usuari o se l e da ot ra conexi on del pool . ' Est ado
desconect abl e' es si n commi t s pendi ent es ni cursores abi ert os en l as R/ W
y si n cursores abiert os en las R/ O. El obj et i vo de est a f eat ur e es evit ar que
una conexi on est e abi er t a ' para si empr e' .




JDBC Log Conf i gur at i on
Se agregó el t ab ' JDBC l og confi gurat i on' al form de ' namespaces' del
ServerConfi g. Se pasó l a part e de confi guraci ón JDBC a un t ab propi o.


326


En el t ab se pi den l os si gui ent es dat os:

* Log JDBC Act i vi t y: Checkbox que i ndi ca si se qui ere habili t ar el l og o no.

* Enabl e bufferi ng: Hoy el l og es ' unbuffer ed' , l o que i mpli ca que es muy
l ent o generar l og. Si se pone ' buff ered' es mas rapi do pero como no se
graba ' ensegui da' , si se consul t a un l og mi ent ras se est a ej ecut ando l a
apli caci on, el l og va a est ar i ncompl et o. Tambieén puede quedar t runcado
si l a apli caci on cancel a con una excepci on no manej ada por el programa.

* Log Det ail : Combo con val ores Hi gh y Low. I ndi ca en ni vel de det all e del
l og. Con ni vel ' hi gh' de det all e el t amaño del l og queda mucho mas grande
que con ni vel ' l ow'

* Log Level : Combo con val ores Namespace/ Dat ast or e/ Connect i on.
Permi t e cr ear un archi vo de l og por namespace, o uno por cada dat ast or e
o uno por cada conexi on. Es ut il para que se mas facil ent ender el cami no
de ej ecuci on de una aplicaci on.

* Use unique name : I ndi ca si se qui ere que el nombre del archi vo se
genere aut omat i cament e o si se qui ere usar uno ' fi j o' . Si es aut omat i co, se
pi de el di rect ori o donde se qui ere guardar l os l ogs. Si es fi j o, se guarda
si empre en el mi smo. Los nombr es aut omat i cos son de l a forma "gx_" +
MMDD + "_" + HHMMSS + < namespace> + " _" + < dat ast ore> + "_" +
< conexi on> + ". l og" ( si se el i ge l og l evel = conexi on se ponen t odos, si no
sol o hast a dat ast or e o namespace r espect i vament e) .

CAMBI OS EN EL ' GENEXUS APPLI CATI ON MONI TOR'
Se i mpl ement ó l o si gui ent e en el ' GeneXus Appli cat i on Moni t or' :

• En el pool read- onl y se pone l a cant i dad de usuari os que est an
327
usando l a conexi on ( corresponde al val or de confi guraci on de
cant idad de usuarios por conexion)

• En el pool read- wri t e se pone el t i empo que hace que l a conexi on
est a esperando l a ej ecuci on de una sent enci a. La i dea es poder
i dent i fi car que una conexi on quedo en l ock.

NUEVA OPCI ON " USI NG VI SI BROKER" PARA " DI STRI BUTED EXECUTI ON"
Se agregó una nueva opci on "Usi ng Vi si Broker" para l a prefer ence "di st ri but e
execut i on".
Est a opci on es sol o vál ida si se va a ut i lizar Vi siBroker 4. x o superi or .

Ut ilizando est a opci ón ya no es necesari o " l evant ar" el nameserv; por l o cual
sol o al canza con "l evant ar" el osagent y col ocar en el cl asspat h del client e y
del ser vidor el archivo vbj orb. j ar

A su vez ej ecut ando con l a VM de sun ya NO es necesari o i ndi car en l a
command l i ne por medio de propert i es que se va a ut ili zar Vi si Broker

NUEVA PREFERENCE " CUSTOM NAME FOR CORBA SERVER"
Se agregó l a preference "Cust om name for CORBA server" en l a part e
"Dist ribut ed Execut ion".
Set eando est a pref erence se pueden " l evant ar" N servi dor es CORBA de l a
mi sma ver si ón de GeneXus por PC.

SE SOPORTA ESPECI FI CAR EL PORT ADEMAS DEL HOST PARA RMI
A part i r de l a versi ón 7. 5 ( t ambi én di sponi bl e upgrade 2 de l a ver si ón 7. 0)
para apl i caci ones en 3 capas con RMI , se soport a el poder especi fi car el PORT
además del HOST.

La forma de hacerl o es en l a preference ' Name Server Host ' , para RMI , se
pone servi dor: puert o. De est a forma se puede l evant ar mas de un servi dor
de apli caci ones en el mi smo equi po, i ncl uso est os servi dor es de apli caci ones
pueden ser de di st int as versi ones.

Si no se especi fi ca puert o, el puert o es 1099 como hast a ahora.

NUEVA PREFERENCE ' SERVER PORT FOR RMI OBJECTS'
Se i mpl ement ó una nueva pr ef er ence l l amada "Ser ver port for RMI Obj ect s"
La mi sma permi t e defi ni r el puert o en el que se crean l os obj et os RMI en el
servi dor. De est a f or ma se abre sol o ese puert o en el fi rewall además del
1099 que es donde escucha por defect o el servi dor de apl i caci ones GeneXus.

SE SOPORTA LEVANTAR 2 SERVI DORES DE APLI CACI ONES 7.0/ 7.5 EN EL
MI SMO HOST
Hast a ahora no era posi bl e l evant ar mas de un ser vi dor de apli caci ones Java
de di st i nt as versi ones. Est o no permi t ía que en un mi smo host convivi eran
una apli caci ón 3 capas generada –por ej empl o- con l a versi ón GeneXus 7. 0
con una generada con l a versi ón 7. 5.

328
Se r eal i zaron cambi os en l os si gui ent es ar chi vos del generador:

Se cambi ó el nombre de l a DLL para manej o de DCOM. En vez de
ll amarse gxdcomj . dl l se ll ama gx dcomj 75.dl l .
Se cambió el nombre del . exe para levant ar el ser vidor de aplicaciones
como servi ci o NT. En vez de l l amarse gxj srv. exe se l l ama
gx j v sr v75. ex e.

Por más i nformaci ón al respect o r ef eri rse al document o Servi dores de
apli caci ones 7. 0/ 7. 5 en el mi smo host

I NSTALACI ÓN DE APLI CACI ONES JAVA COMO SERVI CI O NT.
Se i mpl ement ó una f or ma de poder i nst al ar apli caci ones Java como servi ci o
NT.
Por más i nformaci ón r eferi rse al document o I nst al aci ón de Apli caci ones Java
como servi ci o NT con JSrvAny


Apl i caci ones Web
WAR DEPLOYMENT
Se i mpl ement ó un nuevo Out put processor ll amado War depl oyment .
El mi smo permi t e empaquet ar en un archi vo con ext ensi ón war t odo l o
necesari o para ej ecut ar una apli caci ón web en un servi dor de servl et s,
cumpli endo con el est ándar J2EE.

Por más i nformaci ón al respect o r eferi rse al document o War Deployment

SE I MPLEMENTÓ EL ' DEVELOPER MENU' PARA ' WEB FORMS' .
Al ej ecut arl o desde GeneXus ( F5) se va a abri r una página en el navegador:

< pat h al dat aXXX> \ web\ Devel operMenu. xml

Est a pági na t i ene li nks a t odos l os obj et os Web, est os son web panel s,
t ransacci ones con Web form, procedi mi ent os con call prot ocol = ht t p y
report es con cal l prot ocol = ht t p.

Consi der aci ones:
En est a pági na est án ' hard coded' l os l inks usando l a URL que est á en Web
Server Root especi fi cado en l as opci ones de ej ecuci on. Est o i mpli ca l o
si gui ent e:

• Si se cambi a est a opci ón hay que regenerar un obj et o para que
regenere el devel oper menu web.

• Si hay dos usuari os usando l a mi sma KB, y t ienen val ores di ferent es
en est a opci on, ent onces el devel oper menu va a quedar apunt ando al
del val or del úl t i mo que generó.

SOPORTE PARA HTTPS EN JAVA.
Se i mpl ement ó soport e de HTTPS en el t i po de dat os HTTPCl i ent , en el call
SOAP, y en l as apli caci ones 3 capas con HTTP.
329

Para ut ili zarl o, depende de l a Vi rt ual Machi ne a ut ili zar, l o que es necesari o
hacer:

Ej ecut ando con l a Vi rt ual Machine de Mi cr osoft :
Hay que agr egar al cl asspat h l as bi bli ot ecas de “ i SaSi Lk appl et edi t i on” . Est e
product o es pago, pero exi st e una versi ón t ri al que puede obt enerse de
ht t p: / / j cewww. i ai k. at / product s/ i ndex. php

Para ut i lizarl as hay que agregar al cl asspat h l os si gui ent es archi vos:
i ai k_ssl _ae. j ar
i ai k_j ce_full _ae. j ar

Ej ecut ando con l a Vi rt ual Machine de Sun hay dos opci ones:
1) Ut ilizar JSSE que se puede obt ener del si t i o de Sun ht t p: / / j ava. sun. com
Se r equi er e JDK 1. 2 o superi or y agr egar al cl asspat h l os si gui ent es ar chi vos:
j cert . j ar
j net . j ar
j sse.j ar
En caso de JDK 1. 4, ést e ya vi ene con JSSE por l o cual no es necesari o
agregar est os archi vos al cl asspat h.

2) Ut ilizar l as bi bli ot ecas de i SaSi Lk
En est e caso hay que agregar al cl asspat h l os si gui ent es archi vos:
i ai k_ssl . j ar
i ai k_j ce_full . j ar

OPTI MI ZACI ÓN EN LA GENERACI ÓN DE LOS OBJETOS WEB
Se opt i mi zó l a generaci ón de obj et os Web ( Web Panel s y Transacci ones
Web) . Est o si gni fi ca que se reduj o si gni fi cat i vament e el códi go de l os obj et os
web generados, con l a consi gui ent e reduccci ón de t i empos de generaci ón y
t amaño de l os ej ecut ables.

Depl oy ment Wi zar d
A part i r de l a 7. 5 se di vidi ó al Depl oyment Wi zard en dos:

1) Advanced Depl oyment Wi zard
2) Depl oyment Wi zard


DEPLOYMENT WI ZARD MAS SENCI LLO
Es una versi ón si mpli ficada del depl oyment wi zard ant eri or. Ya no hay que
el egir los locat i ons a generar, solo hay que el egir los mains. Además según el
t i po de apli caci ón para l a cual se qui era armar el depl oyment se l l ama a un
out put processor di st i nt o:

Si es una apli caci ón win en 2 capas, ll ama sól o al GeneXus Web St art
Si es una apli caci ón win en 3 capas ( RMI , CORBA, DCOM) , se ll ama al
GeneXus Web St art para armar l a part e del cli ent e, y el Jar
depl oyment para armar l a part e del servi dor.
Si es una apl i caci ón wi n en 3 capas ( HTTP) , se ll ama al GeneXus Web
St art para armar l a part e del cli ent e, y el War depl oyment para armar
la part e del servidor.
330
Si es una apli caci ón web, se l l ama al War depl oyment .




ADVANCED DEPLOYMENT WI ZARD
Es el mi smo Depl oyment Wi zard de si empre, con l a di ferenci a que se agregó
un out put processor nuevo l l amado " War depl oyment " que permi t e armar
paquet es para l as apli caci ones web. Por más i nformaci ón al respect o ref eri rse
al document o War Depl oyment

MEJORAS EN EL GENEXUS WEB START DEPLOYMENT
Se i mpl ement aron l as si gui ent es funci onali dades en el GeneXus Web St art
Depl oyment :

Se agrega versi onado a l as dependenci as que NO sean ZI P/ JARs ( o
que sean zi ps corrupt os) medi ant e ot ra t écni ca: Si l a dependenci a NO
cambi o, ent onces NO se act uali zará cuando l a apli caci ón se act ual i ce.
Si se det ect a que hubo cambi os en l a dependenci a, ent onces est a se
baj ara compl et a cuando l a apli caci ón se act uali ce ( ant es se baj aban
est os archi vos si empr e) .

Est o permi t e que uno pueda agreagar ar chi vos de i ni ci ali zaci óon ( x ej ,
el GXPRN. I NI ) o DLLs di rect ament e como dependenci as. Hast a ahora
había forma ' manual ' de hacerl o. Para est as dependenci as, l a
ubi caci ón final en el cli ent e NO es el ' Shared Fil es' , si no que es el
di rect ori o de ej ecuci ón. Si bi en en el 99% de l os casos se dej an allí
( es l o recomendado) , est o se puede cambi ar modi fi cando el .JNLP
generado.
331

Se agregó al Wi zard códi go para que chequee l os Mani fest s de l as
dependenci as por i nconsi st enci as ( x ej , si pone un Cont ai nerFil es con
un archi vo que no exi st e o que t i ene mal el case- sensi t i ve) . En est os
casos el Wi zard devol verá un warni ng y al gún hi nt ( x ej , el case del
archi vo) para ayudar al usuari o.

El bot ón ‘DCOM Cl i ent Confi gurat i on’ pasó del t ab General al t ab
Advanced.





En el t ab advanced se agregaron dos opci ones:


' Use debug versi on of
GeneXus st andard cl asses' .
Chequeando est a opci ón y habi endo
set eado en f orma adecuada l a
pref erence ' JDBC Log Fil e' se permi t e
hacer un l og JDBC en l as apli caci ones
i nst al adas con el GeneXus Web St art .
‘Use cust om GXWS Cli ent
Locat i on’

‘GXWS Cl i ent Locat i on’
Per mi t e i nst al ar el GXWS y l a apli caci ón
en ot r o di rect ori o. Al marcar est a opci ón
se habili t a el ‘GXWS Client Locat i on’: que
será el di rect ori o base donde se
i nst al ará el GXWS.

332

SETUP PARA APLI CACI ONES GENERADAS CON GXWS DEPLOYMENT
Hast a est a versi ón l a i nst al aci ón de l as apli caciones armadas con el GeneXus
Web St art Depl oyment sól o podían ser i nst al adas desde un web server.

Ahora es posi bl e armar un ‘Set up’ para l a apli caci ón y poder r ealizar l a
i nst al aci ón desde un CD por ej empl o.

Por más i nformaci ón al respect o r eferi rse al document o Set up para
aplicaciones generadas con GXWS Deployment

OPCI ONES PARA I NTÉRPRETE JAVA EN GXWS DEPLOYMENT
En el GXWS Depl oyment se l e agregó un t ab ‘Advanced’ donde se permi t e
especi fi car ci ert as opci ones de ej ecuci ón que se desean pasar al i nt érpret e al
moment o de ej ecut ar l a apli caci ón que est á si endo armada.

El format o de est a li st a de opci ones debe ser el si gui ent e:
‘opci on= argument o’, separados por punt o y coma ( ‘; ’)

Por ej empl o: opt i on1= dat a1; opt i on2= dat a2

NUEVA OPCI ON ' SETUP- SETTI NG' EN MENU DEL GENEXUS WEB START
Las opci ones del GXWS como ser l enguaj e, habi li t aci ón para generar l ogs, et c
se debían set ear edi t ando el APPLI CATI ONS. I NI

A part i r de l a versi on 7. 5 ( y t ambi én est á di sponi bl e a part i r del upgrade 2 de
l a 7. 0) en el GXWS se cuent a con una nueva opci ón en su menu: Set up –
Set t i ngs, donde se puede habili t ar est as opci ones.






333
Transacciones con back- end HTTP
I nt r oducci ón
Hast a ahora l as t ransacci ones en Java podían ser generadas en 2 capas o en 3
capas ( usando l os prot ocol os RMI , CORBA o DCOM) . En l as t ransacciones de 2
capas t ant o l a i nt erfaz como el acceso a l a base de dat os se resuel ve en el
cli ent e ut ili zando JDBC. En cambi o, en l as t ransacci ones de 3 capas l a i nt erfaz
se r esuel ve en el cl i ent e, pero el acceso a l a base de dat os se reali za en un
servi dor de apli caci ones: el cli ent e se comuni ca con el servi dor de apli caci ones
con al gún prot ocol o de los soport ados y el ser vi dor se comuni ca con l a base de
dat os a t ravés de JDBC.
Con est a feat ure el generador Java soport a que una t ransacci ón pueda t ener un
‘back- end’ ht t p. Est e concept o es si mil ar al de 3 capas, o sea l a i nt erface se
resuel ve en el cli ent e y el acceso a l a base de dat os se r esuel ve en un ser vi dor
web, pero con l a di ferenci a que l a comuni caci ón ent re est os component es se
hace por medi o de un POST ht t p y no se necesi t a un servi dor de apli caci ones
para el component e que se ej ecut a en el ser vidor, sol o al canza con un mot or de
servl et s que l o ej ecut e.

Al cance
Obj et os: Transacci ones
Lenguaj es: Java
I nt erfaces: Wi n Form.

Descr i pci ón
Cuando se i ndi ca que una t ransacci ón ut ili ce un ht t p back end, se genera un
obj et o para el cli ent e ( front - end) con el mi smo nombre de l a t ransacci ón, y un
obj et o para el servi dor ( back- end) , que se ll ama i gual que el obj et o pero con el
sufi j o ‘_server’. Est e obj et o back- end es i nvocado por el front - end haci endo un
POST.

El funci onami ent o de l a t ransacci ón es si mil ar al de una t ransacci ón ej ecut ada
en 3 capas, pero exi st en al gunas di ferenci as:
• La preference ‘Opt i mi ze for mul t i t i er execut ion’ no puede confi gurarse
en ‘No’.
• No se soport a que l a t ransacci ón no haga commi t para ‘ani darl a’ con ot ra
t ransacci ón. Si empre que se confi rma se debe hacer commi t .

La pri nci pal vent aj a de est e esquema es que se puede t ener una arquit ect ura
si mil ar a l as 3 capas per o si n necesi dad de un servi dor de apl i caci ones, sol o
al canza con un mot or de servl et s.

Para i mpl ement ar est a f unci onali dad se agregaron l as si gui ent e propi edades:
A ni vel de obj et o:
• La propert y ‘Use HTTP back- end’ en el grupo ‘Java Speci fi c’ de l as
t ransacci ones. Los val or es de est a propi edad pueden ser ‘Yes’ o ‘No’,
si endo el val or por def ect o ‘No’
334
A ni vel de model o:
• La pref erence ‘HTTP back- end base URL’ en l a secci ón Web I nf ormat i on.
El val or de est a pr ef er ence es l a URL donde se encuent ran l os obj et os
que se ej ecut an en el servi dor web, de modo que el cli ent e pueda
i nvocarl os. Est e val or se guarda en el archi vo ‘cli ent . cfg’. Por ej empl o,
podría ser ht t p: / / l ocal host : 8080/ servl et / .

Es necesari o confi gurar l a pref er ence ‘Ser vl et Di rect or y’, dado que al lí se
copi arán l as cl ases que deben ej ecut ar en el ser vi dor.

Ej empl o
Para defi ni r que una t ransacci ón ll amada ‘PruebaHt t p’ t enga back- end ht t p se
si guen l os si gui ent es pasos:

• Se cambi a el val or de l a propi edad ‘Use HTTP back- end’ a ‘Yes’



• Se i ngresan val ores para l as pref erences ‘HTTP back- end base URL’ y
‘Servl et Di rect or y’

335


De est a f or ma se gener a un obj et o l l amado ‘ Tpr uebaHt t p. cl ass’ en el
cl i ent e y un obj et o l l amado ‘ Tpr uebaHt t p_ser ver .cl ass’ en el di r ect or i o
‘ D: \ ser v l et s’ . Al ej ecut ar el obj et o en el cl i ent e es i nv ocado el obj et o en
el ser v i dor haci endo un POST.

Not a: Par a ej ecut ar l a t r ansacci ón, debe de est ar ‘ l ev ant ado’ ¿act i vo? el
ser v i dor de ser v l et s.

Consi der aci ones gener al es
• Act ual ment e no hay soport e en el Depl oyment Wi zard para det ermi nar
que part e de l a apli cación debe ej ecut ar en el ser vi dor web.

Servidores de aplicaciones JAVA 7.0 y 7.5 en el
mismo host
I nt r oducci ón
Hast a ahora no era posi bl e l evant ar mas de un servi dor de apl i caci ones Java de
di st i nt as versi ones. Est o no permi t ía que en un mi smo host convi vieran una
apli caci ón 3 capas generada –por ej empl o- con l a versi ón GeneXus 7. 0 con una
generada con l a versi ón 7. 5.

Descr i pci ón
Veamos con más det alle la forma de lograrlo y las combinaciones válidas según
336
el o l os prot ocol os de comuni caci ones que est én si endo ut ili zados:

PROTOCOLO CORBA
Se puede t ener un servi dor apl i caci ones CORBA para GeneXus 7. 0 y 7. 5 en el
mi smo servi dor. Ej ecut an usando el mi smo servi dor de nombr es CORBA ( sol o
se l evant a una vez el t namesrv del JDK o el namesrv del Vi si broker) , y
GeneXus regi st ra l os ser vi dores con nombr es di st i nt os, por l o que pueden
convi vi r.

PROTOCOLO DCOM
Se puede t ener un servi dor de apli caci ones DCOM para GeneXus 7. 0 y 7. 5
dent ro del mi smo servi dor.

Se cambi ó el nombre de l a DLL para manej o de DCOM. En vez de llamarse
gxdcomj . dl l se ll ama gxdcomj 75. dl l . Pueden coexi st i r ambas DLLs en el
mi smo equi po, por l o que l os cli ent es pueden ej ecut ar apli caci ones 7. 0 o 7. 5.

PROTOCOLO RMI
En l a pref er ence Appl i cat i on Server Host , para RMI , si se pone al go del t i po
servi dor: puert o, se puede l evant ar mas de un servi dor de apli caci ones en el
mi smo equi po. Est os ser vi dores de apl i caci ones pueden ser i ndi st int ament e
de l a versi on GeneXus 7. 0 o 7. 5. Si no se pone nada, el puert o es 1099 ( que
es el val or defaul t )


Resumi endo, se puede t ener N servi dor es RMI , en puert os di ferent es, cada uno
para GX 7. 0 o 7. 5 i ndist i nt ament e. Si n embargo para DCOM y CORBA sol o se
puede t ener, en un mi smo host , un servi dor GX 7. 0 y un servi dor GX 7. 5.


SERVI DOR DE APLI CACI ONES COMO SERVI CI O NT
Se puede l evant ar un servi ci o NT para at ender apl i caci ones GX 7. 0 y ot ro
para at ender apli caci ones generadas con l a versi ón 7. 5.
No se puede levant ar dos servicios para la mi sma versión.

Se cambi ó el nombre del . exe para l evant ar el servi dor de apl i caci ones como
servi ci o NT. En vez de llamarse gxj srv. exe se llama gxj vsr v75. exe. Se cambi ó
t ambi án el Server Confi g para que busque est e nuevo . exe

Como el CLASSPATH se set eaa a ni vel del si st ema, no se puede agregar a él ,
l as cl ases st andard de ambas ver si ones del generador ( gxcl assr. zi p) de
ambas ver siones. Para r esolver est e problema, se debe descomprimir el
gxcl assr.zi p de cada ver si ón en l os corr espondi ent es di rect ori os donde est é el
GXJVSRV75. EXE y GXJVSRV. EXE del servi dor, dado que ese di rect ori o l o pone
aut omát i cament e en el CLASSPATH.

337
Set up para aplicaciones gener adas con GXWS
Deployment
I nt r oducci ón
Hast a ahora l a i nst al aci ón de l as apli caci ones armadas con el GeneXus Web
St art Depl oyment sól o podían ser i nst al adas desde un Web server.

A part i r de est a versi ón es posi bl e armar un ‘Set up’ para l a apli caci ón y poder
real i zar l a i nst al aci ón desde cual qui er l ugar de l a red, i ncluso copi arl o e i nst al ar
desde un CD.
Descr i pci ón
Al GXWS Depl oyment se l e agregó un t ab ‘Advanced’ con l as si gui ent es
opci ones:





Cr eat e Set up CD:
I ndi ca que se qui ere generar un Set up. Si se habilit a est a opci ón se despl i egan
l as si gui ent es opci ones:

338
Target Directory:
I ndi ca el di rect ori o donde se copi arán l os archi vos del Set up. Si
se desea copi ar a un CD, se debe copi ar t odo l o que queden en
est e direct orio. Si se copia est e direct orio en la raíz del CD, el
set up se di sparará aut omát i cament e al insert ar el cd en el l ect or.
Install Virtual Machine:
I ndi ca si se desea act ualizar l a versi ón de la Vi rt ual Machi ne
aut omát i cament e en el cli ent e al i nst al ar l a apli caci ón desde el
set up. Se puede i nst alar l a VM de Mi cr osoft o l a de SUN. Si se
habilit a est a opci ón se debe i ndi car si se desea i nst al ar l a versi ón
act ual o una versi ón específi ca, además se despli ega l a si gui ent e
opci ón:
VM Locat i on:
I ndi ca l a ubi caci ón donde est á l a VM a i nst al ar

Application URL:
I ndi ca l a URL del servi dor HTTP donde va a resi di r l a apli caci ón.
Si en el moment o de crear el Set up no se conoce l a ubi caci ón fi nal
del servi dor , se debe dej ar HTTP: / / , y debe set earse ‘Ask
Appli cat i on URL’ para que l a i ngrese el usuari o fi nal .

Ask Application URL:
I ndi ca si el usuari o fi nal va a poder modi fi car la URL del servi dor
ht t p donde va a resi di r la apli caci ón al inst al arl a desde el Set up.

Overwirte Existing GXWS:
I ndi ca si al inst al ar l a apli caci ón desde el Set up se i nst al ará l a
versi ón del Set up del GXWS.
Si el cli ent e t i ene una ver si ón del GXWS ant eri or a l a i nst al ada por
el Upgrade 2 del Gener ador Java de l a versi ón 7. 0 es necesari o
habilit ar est a opci ón.

I nst al aci ón de apl i caci ones desde el Set up
Para i nst al ar una aplicaci ón desde el Set up hay que ej ecut ar el archi vo
Set up. exe - del mi smo.

Si se habilit ó el check de ‘I nst al l VM’, al generar el set up, se i nst al ará l a VM.
Ent onces puede ser necesari o r ei ni ci ar l a PC para t ermi nar l a inst al aci ón de l a
VM.

Luego se present ará una pant all a como l a si guient e:

339



Dependi endo de si se haya habili t ado o no l a opci ón de ‘Ask Appl i cat i on URL’ al
generar el set up, se podrá i ngresar l a URL de act ual i zaci ón de l a apli caci ón
( Appli cat i on updat URL) .

Una vez i nst al ada l a apli caci ón, se cr earán l os short cut s a l os obj et os de t i po
Mai n de l a apli caci ón en el menú de i ni ci o. La funci onali dad en cuant o a
ej ecuci ón y act uali zaci ón aut omát i ca de l as apli caci ones y GXWS será i gual que
si hubi era si do i nst al ada a part i r del . ht ml .

Propiedad Provider de subfile
I nt r oducci ón
Est a propi edad de l os subfil es permi t e que l a carga del mi smo se haga a part i r
de un r eport e/ procedi mient o con sali da XML ut ilizando prot ocol o ht t p.
Al cance
Obj et os: Wor k Panel s
Lenguaj es: Java
I nt erfaces: Wi n Form.

Descr i pci ón
Los r eport es/ procedi mient os con sal i da xml y call prot ocol HTTP se pueden
ut ili zar para i mpl ement ar l a propi edad provi der de l os subfi l es. Est a propi edad
permi t e que l a carga de dat os de un subfi l e se pueda hacer a part i r de un xml .
La i dea consi st e en cr ear un report e/ procedi mi ent o xml que en un pri nt bl ock
cont enga l os mi smos at ri but os que qui ero car gar en el subfil e y l uego en la
propi edad provi der del subfil e pongo l a URL del report e/ procedi mi ent o.
Si qui ero real i zar carga de vari abl es est as deben de t ener el mi smo nombr e en
el workpanel y en el report e/ pr ocedi mi ent o.

Ej empl o
Supongamos que t engo un subfil e con l os at ribut os Cli Cod y Cli Nom. Creo un
340
report e l l amado Cli ent es que cont i ene di chos at ri but os en un pri nt bl ock y l e
pongo sali da xml y cal l prot ocol HTTP. I ngreso en l a propi edad provi der del
subfil e l a URL al report e:
subfil e. provi der = ht t p: / / localhost : 8080/ servlet / oClient es

Not a: La propi edad provi der sol o puede ser ut ili zada por el generador Java, pero
el report e/ proc con sal ida XML r ef er enci ado puede ser generado en cual qui era
de l os generadores que l o permi t en.

I nst alación de aplicaciones Java como servicio NT
con JSrvAny
I nt r oducci ón
Est e document o expl i ca como i nst al ar como servi ci o una apli caci ón Java en
Wi ndows NT, ut ili zando para el l o un ut ili t ari o basado en una herrami ent a open
sour ce ll amada JsrvAny. ( ht t p: / / j srvany. sourcef orge. net / )

Al cance
Obj et os: Transacci ones, WorkPanel s, Procedi mient os, Report es.
Lenguaj es: Java
I nt erfaces: Wi n Form.

Descr i pci ón
Para i nst al ar un servi cio, es necesari o ej ecut ar el j srvany. exe con un conj unt o
de parámet ros que se det all an a cont i nuaci ón

- n ‘Nombre del Servicio’ Es el ident i fi cador del servicio. Con est e nombre
aparecerá en l a li st a de servi ci os de Wi ndows.
- d ‘Descripción’ Es el ident i fi cador descri pt i vo del ser vicio
( opci onal )
- c ‘Clase a ej ecut ar’ Es el nombr e de l a cl ase con el servi ci o a
l evant ar.
- p ‘Classpat h’ I ndi ca el Cl asspat h que necesi t a l a apli caci ón para
ej ecut ar
- s ‘Nombre de Servici o’ I ndi ca que el i dent i fi cador de servi ci o pasado
como parámet ro será una dependenci a de est e
Servi ci o. Est o qui ere deci r que ant es de
levant arse el Ser vicio a inst al ar, se debe levant ar
el ser vi ci o indi cado en el parámet ro. En caso de
que el servi ci o i ndi cado en el parámet r o NO se
pueda l evant ar, t ampoco se podrá l evant ar est e
servi ci o ( opci onal )
- a ‘argument o’ Pasa el argument o al Main del Servidor al ser
i ni ci ado ( opci onal ) .
- o ‘propert y= value’ I ndi ca que el ‘val ue’ est ará asoci ado a l a
‘propert y’ en las Syst emPropert i es del Servicio.
( opci onal )
- v ‘Target VM’ I ndi ca l a VM con l a que se va a ej ecut ar el
341
servi ci o. Los val or es posi bl es son ‘MS’, ‘JRE’, o
‘ANY’
- r I ndi ca que se desea el imi nar el servi ci o NT.
- h I mpri me una ayuda en l ínea

Ej empl o: I nst al aci ón como ser vi ci o del ser vi dor de
apl i caci ón GeneXus
Hast a l a versi ón 7. 0 de GeneXus l a úni ca forma de i nst al ar un ser vi dor de
apli caci ones GeneXus como servi ci o en Wi ndows NT era ut ili zando el
‘gxj vsrv. exe’. Est e mecani smo t enía al gunos i nconveni ent es:
• El servi dor de apli caciones t enía que ut ilizar máqui na vi rt ual de
Mi crosoft .
• Sol o se podía i nst al ar un servi dor de apl i caci ones en cada ser vi dor.
• No se podía especi fi car un cl asspat h para l a apli caci ón, se usaba el
cl asspat h del ser vi dor.
• No se l e podían pasar val ores de ‘Syst em Propert i es’ a l a máquina
vi rt ual .

Ut ilizando el JsrvAny se puede hacer de l a si gui ent e forma:
• Copi ar el archi vo JSrvAny. exe al di rect ori o donde se desea i nst al ar
el Servi dor de Apl i caci ones.
• Est abl ecer un Nombre de servi ci o medi ant e el argument o –n
• I ndi car medi ant e el argument o - c que l a clase a ej ecut ar sea
‘com. genexus. di st ribut ed. NTServi ce’
• I ndi car l a VM que se desea ut ili zar para ej ecut ar el Servi dor de
Apli caci ones medi ant e el argument o –v
• Agregar el Cl assPat h necesari o para ej ecut ar el Servi dor medi ant e
el argument o –p. Est o i ncl uye l a cl ases est ándar GeneXus
( GXclassR. zip) , l as clases necesari as para ut ili zar el JSrvAny
( JSrvAny. j ar) , l as cl ases necesari as para ut ilizar el ORB ( por
ej emplo, RMI . ZI P) , y l os dri vers JDBC. El JAR generado por el JAR
Depl oyment NO debe ser agregado al cl asspat h en est e l ugar, si no
que debe ser especi fi cado medi ant e el Server Confi g.
• I ndi car el nombre del archi vo de confi guraci ón a ut ilizar medi ant e el
argument o – a “ - cf g . . . . ” . Por ej empl o, si el archi vo se l l ama
‘server .cfg’ se debe pasar al JSrvAny - a “ - cf g ser v er . cf g” . NOTA:
es i mport ant e dej ar l as comi ll as.
• Si se desea que el JsrvAny guarde un Log de l a úl t i ma sesi ón
ej ecut ada se debe i ndi car medi ant e el argument o –a “ - debug ...” .
Por ej empl o, si se desea guardar el l og en el archi vo
‘c: \ NTSer vice. log’, se debe pasar como parámet ro al JSrvAny - a “ -
debug c: \ NTSer vi ce. l og” . NOTA: es i mport ant e dej ar l as
comi ll as.
• Opci onal ment e se pueden agr egar Syst emPr opert i es al servi ci o
medi ant e el argument o –o, y se pueden agregar Servi ci os
dependi ent es medi ant e el argument o –s.

Por ej empl o, si se desea i nst al ar el Servi dor de Apli caci ones en el di rect ori o
‘c: \ AppSer ver’ con:
• La VM del JRE
• Nombr e de servicio NT: ‘MyAppServer’
• Archi vo de confi guraci ón: ‘appSer ver. cfg’
• ORB: RMI
• JDBC: c: \ j dbc\ Una2000. j ar
342
• Archi vo de Log: ‘c: \ NTServi ce.log’

JsrvAny –n MyAppServer –v JRE –a “ - cfg C: \ AppServer\ appServer. cfg” –a “ -
debug c: \ NTServi ce. l og” –p c: \ rmi \ rmi. zi p;
c: \ AppServer\ gxcl assr . zi p; c: \ j dbc\ Una2000. j ar; c: \ AppServer\ JSrvAny. j ar –c
com. genexus. di st ri but ed. NTServi ce

Para eliminar el servicio habría que ej ecut ar:
JSrvAny –n MyAppServer –r

Aplicaciones Mult i- t ier con ht t p como prot ocolo de
comunicación
I nt r oducci ón
En el generador Java de l a versi ón 7. 5 exi st en dos nuevas opci ones como
prot ocol o de ej ecuci ón en t res capas:

• St at eful HTTP
• St at el ess HTTP

Al cance
Obj et os: Wor k Panel s, Transacci ones, Pr ocedi mient os, Report es.
Lenguaj es: Java
I nt erfaces: Wi n Form.

Descr i pci ón
St at ef ul HTTP
Cuando se sel ecci ona ‘St at eful HTTP’, l a apli caci ón funci ona del mi smo modo
que con el rest o de l os prot ocol os ( DCOM, RMI , CORBA) , pero usando HTTP.

Ut ilizar HTTP en est os casos t i ene al gunas vent aj as i mport ant es:

• Si se ej ecut a en I nt ernet , no se t i enen l os probl emas de confi guraci ón de
Fi rewall s y Pr oxi es que exi st en con el r est o de l os prot ocol os.
• El ‘ser vi dor de apl i caciones GeneXus’ dej a de exi st i r, y l as apli caci ones
ej ecut an dent ro de un mot or de servl et s cual qui era. Est o permi t e
si mpli fi car l a i nst al aci ón, confi guraci ón y admi nist raci ón de l os ser vi dor es
de apl i caci ones.
• En el rest o de l os prot ocol os, cuando el cli ent e se conect a al servi dor,
mant i ene una conexi ón físi ca hast a que muere. Est o i mpli ca consumo de
recursos en el servi dor. Con HTTP l a conexi ón muere l uego de cada
requeri mi ent o.
• Es muy sencill o aument ar l a cant i dad de servi dor es de apl i caci ones, dado
que hay mucha t ecnol ogía para t ener bal anceo de carga en servi dor es
HTTP.
• Se pueden ut ili zar l os mecani smos de aut ent icaci ón de l os servi dor es
HTTP con l o que se eli mi na l a necesi dad de ut ili zar LDAP para
343
aut ent icarse con el servidor de aplicaciones.
• Es posi bl e usar HTTPS ( con al gunas rest ri cci ones de ambi ent es) , por l o
que se pueden t ener canal es de comuni caci ón encri pt ados sobre i nt ernet .

Ti ene t ambi én al gunas desvent aj as:

• Se genera más t ráfi co. Los mensaj es HTTP suel en ser mas grandes que
l os mensaj es CORBA/ DCOM/ RMI .
• Al t ener que conect arse en cada requeri mi ent o, es más l ent o. Est o es
sol uci onabl e si el servi dor HTTP soport a HTTP 1. 1, dado que en ese caso
el cli ent e HTTP mant i ene l a conexi ón vi va por un t i empo dado. La
mayoría de los ser vidor es soport an HTTP 1. 1.

St at el ess HTTP
Est a opci ón se comuni ca por HTTP pero t rabaj a de un modo di ferent e. Luego de
que fi nali za un requerimient o del client e al servidor, el servidor ‘desconect a’ al
cli ent e.

Concept ual ment e, el mecani smo ‘st at el ess’ es posi bl e i mpl ement arl o sobr e
cual qui era de l os ot r os prot ocol os. En l a ver si ón Solís sol o est á di sponibl e HTTP.

En l a opci ón St at eful se mant i ene en el servi dor ci ert a i nformaci ón para cada
cli ent e conect ado. Por ej empl o, si t i ene un workpanel con carga a pedi do y t i ene
un cursor abi ert o, ese cursor est a abi ert o en el servi dor y asoci ado al cli ent e. Si
se i nvoca a un procedi mi ent o act uali zó l a base de dat os y no hi zo commi t , se
mant i ene una conexi ón al DBMS asoci ada a ese usuari o hast a que haga commi t
o r ol l back. En l a opci ón St at el ess no exi st e nada de est o.

Al gunas consecuenci as de est e comport ami ent o:

• Si se i nvoca a un procedi mi ent o desde el cli ent e y el procedi mi ent o no
t i ene commi t on exi t , se hará aut omát i cament e un roll back. Est o i mpide
t ener un esquema en el que, por ej , desde un workpanel ll ame a un
procedi mi ent o que act uali ce l a base de dat os y no haga commi t , y que
luego se llame a ot ro pr ocedimient o que haga commi t .
• Como ef ect o l at eral de l o ant eri or, no es posi bl e t ener t ransacci ones
ani dadas en l a mi sma UTL.
• Si se ej ecut a un For Each desde el cl i ent e, se t r aen t odos l os dat os desde
el servi dor ant es de empezar a recorrer l os regi st ros. Est o i mpli ca por
ej empl o que t odos l os subfil es de l os workpanel s son cargados como si
t uvi eran ‘Load Al l ’ ( est amos est udi ando al guna al t ernat i va para
sol uci onar est o en al gunos casos) .
• No es posi bl e ej ecut ar desde el cli ent e procedi mi ent os que act uali cen l a
base de dat os. Deben ser ej ecut ados t odos en el servi dor. Est o es porque
si se t i ene un ForEach con un updat e dent ro, el foreach se recorrerá t odo
y reci én l uego empezará el updat e. Est o no funci ona en al gunos DBMSs
( por ej en el AS/ 400)
• En l as t ransacci ones, no se puede set ear l a propi edad ‘Opt i mi ze for
mul t i- t i er execut i on’ en NO. Est o l o que hace es que l as r egl as se
di sparen en el cli ent e, lo que permi t e que l as r egl as muest r en i nt erfaz de
usuari o ( por ej , que ll amen a un workpanel ) . En est e esquema desde l as
regl as no se puede t ener i nt eracci ón con el usuari o ( sal vo por l a regl a
msg y l a regl a er ror) .

Todo est o i mpli ca que es al t ament e probabl e que una apli caci ón escri t a en
344
GeneXus no funci one corr ect ament e si n modi fi caci ones en el di seño de l a
mi sma.

La úni ca vent aj a de est e mecani smo es l a escal abilidad de l a apli caci ón
resul t ant e:

• Con el mecani smo st at eful , una vez que un cli ent e se conect ó a un
servi dor, el rest o del diál ogo t i ene que ser con di cho servi dor . Est o t i ene
al gunas desvent aj as i mport ant es:
o Est o i mpli ca que el ‘l oad bal anci ng’ se t i ene que hacer en t i empo
de conexi ón, y no puede ser aj ust ado di námi cament e
dependi endo de l a carga del servi dor durant e l a vi da de l a
apli caci ón.
o Si un servi dor fall a, el cli ent e no t i ene f orma de recuperarse, por
l o que no puedo t ener un buen mecani smo de ‘fai l over’ en l os
servi dor es que garant i ce l a vi da de l os cl i ent es.
El mecani smo st at el ess permi t e que cada r equest vaya a un servi dor
di ferent e.
• No exi st e l a posi bilidad de que un cli ent e se quede con un l ock mi ent ras
t i ene una pant all a de i ngreso de dat os. Est o reduce al míni mo l os l ocks,
por l o que aument a l a capaci dad de concurrenci a de l a apli caci ón.
• En el mecani smo st at eful , si un requeri mi ent o al servi dor da err or , se
debe cancel ar l a apli caci ón. Por ej , si se ej ecut a un procedi mi ent o que
act uali za l a base de dat os y da un error durant e su ej ecuci ón, la
apli caci ón debe cancel ar, dado que no es posi bl e hacer un rol l back y
rei nt ent ar l a operaci ón porque no se puede saber si l a UTL se había
i ni ci ado con est e pr ocedi mi ent o o si se ya est aba ini ci ada previ ament e.
En el mecani smo st at el ess es posi bl e rei nt ent ar l as veces que qui era.

El mecani smo st at el ess es l a úni ca al t ernat i va exi st ent e hoy si se qui er e t ener
apli caci ones al t ament e escal abl es, con ser vi dor es que puedan t ener mecani smos
de fai l over, es deci r que en caso de que un servi dor cai ga haya ot ro que t ome
su l ugar. Dependi endo de l os requeri mi ent os de l a apli caci ón en est os aspect os,
puede val er l a pena o no pagar el cost o de redi seño.

Conf i gur aci ón del model o GeneXus
Pr ef er ences

Pr ot ocol – especi fi car el prot ocol o a ut ili zar, por ej empl o ‘Usi ng St at eful ht t p’
Appl i cat i on Ser v er Host – especi fi car l a URL base de ej ecuci ón de l a
apli caci on, baj o el mot or de servl et , por ej empl o:
ht t p: / / servername: 8080/ servl et

Mul t i - t i er l ocat i on – especi fi car un l ocat i on para l as cl ases r emot as, por
ej empl o appser ver.

Conf i gur aci ón del mot or de ser vl et s
En l os mot ores de servl et s exi st e el concept o de ‘Web Appli cat i ons’. Una ‘Web
Appli cat i on’ est a al macenada en un di rect ori o, y t i ene un conj unt o de
subdi rect ori os pr edefi nidos, cada uno con su cont eni do específi co.

345
Adi ci onal ment e, t odos l os mot ores de servl et s t i enen una ‘Web Appli cat i on’ por
def ect o, que es l a que general ment e se mapea a l a url ‘/ servl et / ’. El rest o de l as
apli caci ones web ( l as que no son defaul t ) , t i enen un prefi j o ant es de ‘/ servl et / ’,
por ej empl o ‘/ exampl es/ ser vl et / ’.

En el di rect ori o de l as apli caci ones web, hay un subdi rect ori o que debe ll amarse
‘WEB- I NF’, baj o el cual puede exi st i r un archi vo web. xml que t i ene i nformaci ón
de confi guraci ón de l a apli caci ón.

Adicionalment e, baj o el di rect orio WEB- I NF exist e un subdi rect orio ‘classes’
( donde se deben al macenar l os servl et s) y un di rect ori o ‘li b’ ( donde se debe
poner l os . JARs) .

Para que funci one una apli caci ón en 3 capas con HTTP es necesari o copi ar el
archi vo gxcl assr.zi p ( en al gunos mot ores de servl et s es necesari o r enombrarl o a
gxcl assr. j ar) , y l os . JARs con l os dri vers JDBC al di rect ori o WEB- I NF\ LI B.

El ser vi dor necesi t a encont rar el archi vo server. cfg, donde se encuent ra l a
i nformaci ón de confi guraci ón de l a apli caci ón. Para que ese ar chi vo pueda ser
ut ili zado, debe o bi en est ar en el di rect ori o ‘por def ect o’ del mot or de servl et s ( /
en Resi n, / bin en Tomcat ) , o se debe modi fi car el archi vo web. xml , de modo que
cont enga el pat h al server . cfg:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app (View Source for full doctype...)>
<web-app>
<servlet>
<servlet-name>com.genexus.distributed.ServletAppServer</servlet-name>
<servlet-class>com.genexus.distributed.ServletAppServer</servlet-
class>
<init-param>
<param-name>configurationFile</param-name>
<param-value>c:\bankliteplus\data003\server.cfg</param-value>
</init-param>
</servlet>
</web-app>

En el < param- val ue> se debe poner el pat h al server. cfg. Para prot ot i par, se
recomi enda poner el que corr esponde al model o de pr ot ot i po.
Aut ent i caci ón
Es posi bl e ut ili zar l a aut ent i caci ón del servi dor web como mecani smo de
seguri dad de l as apli caci ones que ej ecut an en 3 capas con HTTP. En caso de que
el servi dor est é confi gurado para que se necesi t e aut ent i caci ón, l a apli caci ón
cli ent e sol i ci t ará un usuari o/ cont raseña, y la ut ili zará en el t ráfico HTTP.
Adi ci onal ment e, l a función useri d( ‘server ’) devol verá est e nombre de usuari o.

Conf i gur aci ón de l a segur i dad en TomCat 4.0
En el di rect ori o / conf exi st e un archi vo t omcat - user s. xml si mil ar al si gui ent e:

< t omcat - user s>
< user name= "t omcat " password= "t omcat " rol es= "t omcat , manager" / >
< user name= " r ol e1" password= "t omcat " r ol es= "r ol e1" / >
< user name= "bot h" password= "t omcat " r ol es= "t omcat , rol e1" / >
< / t omcat - users>

Para cr ear un usuari o si mpl ement e se agrega una linea a di cho archi vo, y se l e
346
da un nombre de rol det ermi nado:

< t omcat - user s>
< user name= "t omcat " password= "t omcat " rol es= "t omcat , manager" / >
< user name= " r ol e1" password= "t omcat " r ol es= "r ol e1" / >
< user name= "bot h" password= "t omcat " r ol es= "t omcat , rol e1" / >
< user name= "gx" password= "gx" r ol es= "appserveruser " / >
< / t omcat - users>

Luego, en el web. xml de l a apli caci ón, se especi fi ca que se qui ere prot eger l a
apli caci òn, y el t ipo de aut ent i caci ón:

< ! - - Defi ne a Securi t y Const rai nt on t hi s Appli cat i on - - >
< securi t y- const rai nt >
< web- r esour ce- collect ion>
< web- r esour ce- name> Ent i re Appli cat i on< / web- resour ce- name>
< url - pat t ern> / * < / url - pat t ern>
< / web- r esour ce- col l ect ion>
< aut h- const rai nt >
< ! - - NOTE: Thi s rol e i s not present i n t he defaul t users fi l e - - >
< rol e- name> appser v er user < / r ol e- name>
< / aut h- const rai nt >
< / securi t y- const rai nt >

< ! - - Defi ne t he Logi n Confi gurat i on for t hi s Appli cat i on - - >
< l ogi n- confi g>
< aut h- met hod> BASI C< / aut h- met hod>
< realm- name> Tomcat Manager Applicat ion< / realm- name>
< / l ogi n- confi g>

En < rol e- name> se debe poner el nombre del rol al que se asi gnó el usuari o
cr eado en el t omcat - users. xml .
Not as
El codi go generado es el mi smo para ht t p st at eful , corba, dcom, y rmi . Por l o
que para cambi ar ent re est os, sol o bast a cambi ar el val or deseado en
pref erence prot ocol y regenerar forzado al gun obj et o para que se t omen en
cuent a l os cambi os en el cli ent .cfg y server.cfg ( Key REMOTE_CALLS) .

Cambi a el codi go generado para l as t ransacci ones cuando se usa ht t p st at el ess.
Por l o que si se desea cambi ar de un pr ot ocol o a ot r o, en el peor de l os casos es
cuando se pasa de st at el ess a ot ro o de ot r o a st at el ess, donde habrá que
regenerar l as t ransacci ones.

Est o nos habi lit ari a a t ener el mi smo codi go confi gurado para que por ej empl o
en una i nt ranet se use corba/ RMI / DCOM y en i nt ernet use ht t p. En t eori a seri a
mas rápi do que con HTTP, y HTTP para I nt ernet nos da escal abili dad y faci li dad
para convi vi r con fi rewall s.

TI Ps
Ti p 1
Para t est ear que el gxcl assr.zi p vay a ser encont rado por el cl i ent e, en el
browser probar l o si gui ent e en l a URL:
347

< Name Server Host > / com. genexus. di st ri but ed. Servl et AppServer

Por ej empl o:

ht t p: / / servername: 8080/ servl et / com. genexus. di st ri but ed. Servl et AppSer ver


Si t odo ok, debería aparecer l o si gui ent e en l a pant alla del browser:


Ser v l et AppSer ver est a f unci onando
cor r ect ament e!

Ti p 2

En caso de que no est e l evant ado el servi dor de ser vl et s, se pr esent ara el
si gui ent e er ror en el cli ent e:

class
com.genexus.distributed.stateless.transport.HTTPTransport/stateless

Connection refused
java.net.ConnectException: Connection refused
at java/net/PlainSocketImpl.socketConnect
(PlainSocketImpl.java)
at java/net/PlainSocketImpl.doConnect (PlainSocketImpl.java)
at java/net/PlainSocketImpl.connectToAddress
(PlainSocketImpl.java)
at java/net/PlainSocketImpl.connect (PlainSocketImpl.java)
at java/net/Socket.<init> (Socket.java)
at java/net/Socket.<init> (Socket.java)
at HTTPClient/HTTPConnection.getSocket (HTTPConnection.java)
at HTTPClient/HTTPConnection.sendRequest (HTTPConnection.java)
at HTTPClient/HTTPConnection.handleRequest
(HTTPConnection.java)
at HTTPClient/HTTPConnection.setupRequest
(HTTPConnection.java)
at HTTPClient/HTTPConnection.Post (HTTPConnection.java)
at
com/genexus/distributed/stateless/transport/HTTPTransport.send
(HTTPTransport.java)
at
com/genexus/distributed/stateful/client/StatefulApplicationClient.ge
tNewHandle (StatefulApplicationClient.java)
….

Ti p 3
Si se t i ene bi en confi gurada l a prefer ence ‘Name Server Host ’ y l a gxcl assr.zi p
en el cl asspat h del mot or pero no se copi ó el server. cfg o en el web. xml se di o
mal la ref er encia, dara el si guient e er ror:

348
java.lang.InternalError: Server configuration file not found:
server.cfg

Ti p 4
En caso de que encuent re un server.cfg por al guna razon, pero est e no sea el
generado para ese model o, puede present arse un er ror de est e t i po:

Client is using Stateful protocol whereas Server is using Stateless
protocol
com.genexus.distributed.stateful.StatefulException: Client is using
Stateful protocol whereas Server is using Stateless protocol
at
com/genexus/distributed/stateful/client/StatefulApplicationClient.getNewHan
dle (StatefulApplicationClient.java)
at com/genexus/db/UserInformation.getRemoteHandle
(UserInformation.java)
at com/genexus/db/UserInformation.getRemoteGXDBHandle
(UserInformation.java)
at com/genexus/db/DBConnectionManager.getDataStoreProvider
(DBConnectionManager.java)
at wtraamb.initialize (wtraamb.java)
….

War Deployment
I nt r oducci ón
Los servl et s pueden ser ej ecut ados por mot ores de servl et ( Tomcat , Resi n, Jrun,
et c) , o por ser vi dores J2EE ( WebSpher e, BEA Webl ogi c, et c) .

En el Depl oyment Wi zard se i mpl ement ó un nuevo out put processor ll amado
War Depl oyment que permi t e empaquet ar l os servl et s de f orma de poder
i nst al arl os y ej ecut arl os t ant o en un mot or de servl et s, como en un servi dor
J2EE. Est e depl oyment genera archi vos con ext ensi ón war ( Web Archi ve
Resource) . Est os ar chi vos cont i enen ser vl et s y cont eni do est át i co, como ser JSP,
HTML, imágenes, librerías adicionales ( . j ar) , et c.

Adicionalment e los archivos war cont ienen un ‘descript or’. Est e descri pt or es un
archi vo con f ormat o xml , que descri be ci ert a i nfor maci ón de l a apli cación que el
. war cont i ene; por ej empl o el nombre de l a aplicaci ón y nombre de l os servl et s.
Descr i pci ón
Al ej ecut ar el Depl oyment Wi zard ( form wi n) en un model o donde se t i enen
obj et os Web, se permi t e sel ecci onar l os mani s para l os que se desea armar un
. war que cont enga t odo l o necesari o para ej ecut ar al web panel mai n y t odos l os
ll amados. Adicionalment e dent r o del war se van a agregar t odos los archivos
que se encuent ren en el di rect ori o i ndi cado en l a prefer ence “ St at i c cont ent
di rect or y seen f orm cl i ent ”

349
Al fi nali zar, se present a un wi zard que permi t e gui ar l a creaci ón del . WAR con
l as si gui ent es opci ones:



Locat i on Aquí se debe sel ecci onar el Locat i on para el cual se qui era
armar el war. Para el caso de quer er armar un war para una
apli caci ón web se debe sel ecci onar el Locat i on “ < Cli ent > ” ; el
rest o de l os l ocat i ons son para el caso de querer di st ri bui r l as
cl ases necesari as para ej ecut ar el servi dor de apli caci ones en
un apli caci ón en 3 capas son prot ocol o ht t p.
Depl oy t hi s
Locat i on
Se debe chequear si se desea armar un war para el Locat i on
act ual ment e sel ecci onado
Descri pt or
Type
Se especi fi ca el mot or de servl et s que se va a ut ili zar y en
funci ón de ell o se arma el descri pt or cor respondi ent e ( ver mas
adel ant e)
Web
Appli cat i on
Name
Est e es el nombr e que i dent i fi ca a l a apli caci ón web. Para
al gunos mot or es de ser vl et s va a ser ut i lizado l uego en l a URL
para i nvocar l os servl et s.
Addi t i onal
Li brari es
Aquí se deben agregar t odos l as li brerías adi ci onal es para
ej ecut ar l a apli caci ón; el caso más común es el de l os dri vers
JDBC.
Addi t i onal
Fil es
Est a es una est ruct ura de di rect ori os ( que por def ect o es vacía)
en l as l a cual se puede agregar t odo el cont eni do est át i co que
se necesi t e para ej ecut ar l a apli caci ón.
Add
Di rect ory
Permi t e agregar un di rect ori o a l a est ruct ura de di rect ori os de
Addi t i onal Fil es
Remove Permi t e borrar un di rect ori o a l a est ruct ura de di rect ori os de
350
Di rect ory Addi t i onal Fil es
Add Fil es Agrega un cont eni do est át i co a l os Addi t i onal Fil es en el
di rect orio seleccionado.
Remove
Fil es
Borra un cont eni do est át i co ant es agregado en l os Addi t i onal
Fil es.

Depl oy ment Descr i pt or
En el wi zard, en el t ab ‘Depl oyment Descri pt or’, se edi t a – en f ormat o XML - el
descri pt or del .war a generarse.






Use Cust om Depl oyment
Descri pt or
Al chequear est a opci ón se permi t e modi fi car el
descri pt or por def ect o
Get Defaul t Vuel ve a obt ener el descri pt or por def ect o
Vali dat e Vali da el XML del descri pt or en caso de haberl o
modi fi cado.


351
I nst al aci ón del w ar sobr e mot or es de ser vl et s
Tomcat 3
El war debe ser copi ado al di rect ori o / webapps del Tomcat . Luego al rei ni ci ar al
mot or el war es descompri mi do.
Para ej ecut ar l os servl et s hay que ut ilizar l a si guient e URL:
ht t p: / / < servi dor> : < puert o> / < Web_Appl i cat i on_Name> / servl et / < Nombre_servl
et > por ej empl o ht t p: / / local host : 8080/ Ej empl oWar/ ser vl et / hmain
Si se qui ere vol ver a i nst al ar el war hay que borrar el di rect ori o que cr eo el
Tomcat al moment o de descompri mi r el war.

Resi n
El war debe ser copi ado al di rect ori o / webapps del Resi n. Luego al rei ni ci ar al
mot or el war es descompri mi do.
Para ej ecut ar l os servl et s hay que ut ilizar l a si guient e URL:
ht t p: / / < servi dor> : < puert o> / < Web_Appl i cat i on_Name> / servl et / < Nombre_servl
et > por ej empl o ht t p: / / local host : 8080/ Ej empl oWar/ ser vl et / hmain

Jun 3.0
Para i nst al ar un war en el Jun 3. 0 hay que ut ili zar el “ Jun Management
Consol e” .



Dent ro del Jun Management Consol e hay que sel ecci onar el “ Jun Defaul t
Ser ver/ Web Appli cat i ons” . Ahí hay que sel ecci onar “ Depl oy an Appli cact i on” que
muest ra est a pant all a.

352


Aquí hay que buscar el war generado e i ngresar en “ Appli cat i on Name” el
i dent i fi cador de l a apli caci ón y en “ Appli cact i on URL” al go que i dent i fi que a l a
apli caci ón que l uego va a ser ut ili zado en l a URL para l l amar a l os servl et s, por
ej empl o / mi app.
La URL queda de l a si gui ent e forma:
ht t p: / / < servi dor> : < puert o> / mi app/ servl et / < Nombre_Servl et >

I nst al aci ón del w ar sobr e ser vi dor es J2EE
El estándar J2EE indica que una aplicación web debe ser empaquetada en un archivo con
extensión .war. Los archivos war están contenidos dentro de un archivo con extensión .ear
(Enterprise Archive Resource) que representa una aplicación enterprise contenedora de
aplicaciones web. Estos archivos contienen además de archivos war, módulos EJB y un
descriptor general de la aplicación enterprise en formato xml.
Los archivos ear hay que instalarlos sobre un servidor J2EE y los archivos war hay que
instalarlos dentro los ear antes instalados. Por lo tanto en un servidor J2EE van a existir
varias aplicaciones enterprise que a su vez tienen dentro una o varias aplicaciones web.
Entonces para el caso de los servidores J2EE los archivos war generados por el War
Deployment hay que instalarlos sobre un aplicación enterprise.

WebSpher e 4.0
Para i nst al ar un war en el webspher e 4. 0 hay que ut ili zar el “ Admini st rat or’s
Consol e” .

353

Dent r o del Admi ni st rat or’s Consol e hay que sel ecci onar
“ Nodes/ < server > / Ent erpri se Appli cat i ons” . Ahí hay que presi onar el bot ón
“ I nst al l ” que muest ra est a pant all a.



354
Aquí hay que buscar el war generado en “ Pat h” e i ngresar en “ Appli cat i on
Name” el i dent i fi cador de l a apli caci ón y en “ Cont ext Root ” al go que ident i fi que
a l a apli caci ón que l uego va a ser ut ili zado en la URL para ll amar a l os servl et s,
por ej empl o / mi app.
La URL queda ent onces de l a si gui ent e forma:
ht t p: / / < servi dor> : < puert o> / mi app/ servl et / < Nombre_Servl et >

Al dar si gui ent e aparece l a si gui ent e pant all a:


Aquí hay que dar si gui ent e si n cambi ar nada y l a apli caci ón queda i nst al ada.

Para poder ut ili zar l a apli caci ón hay que rei ni ci ar el websphere.

355
Vi sual Basi c

Sección Específica del generador Visual Basic
Compat i bi l i dad
I MPORTANTE
En l a ver si ón GeneXus 7. 5 se real i zaron vari os cambi os en l as
pref erenci as del modelo y DBMS Opt i ons con respect o a l a versi ón 7. 0,
al gunos de est os cambi os son:

- Cambi o de val ores por def ect o
- Nuevas pr ef er enci as
- Nuevos val ores de pr ef erenci as
- Eli mi naci ón de pr ef erenci as

Cabe dest acar que el cambi o en l os val ores por def ect o de l as
pref erenci as pr ovocarán un cambi o en el comport ami ent o de l as
apli caci ones que l os ut ilizaran.
Por est e mot i vo se r ecomi enda r evi sar det eni dament e l a secci ón
del gener ador Vi sual Basi c en el document o “ Admi ni st r aci ón de
Pr opi edades” .


• Campos numér i cos se i mpl ement an como Cur r ency
A part i r de est a versi ón se cambi ó l a forma de defi ni r l os campos
numéri cos en el generador Vi sual Basi c.
Ahora l os numéri cos se defi nen de l a si gui ent e manera:

- Cur r ency : Numéri cos con cant i dad de deci mal es < = 4 y
l argo < = 18 ( i ncl uyendo part e ent era y deci mal )
- Doubl e: El r est o

Con est a i mpl ement ación se eli mi na el t i po de dat os si ngl e que se
ut ili zaba hast a ahora para defi ni r l os numéri cos.

Est a i mpl ement aci ón t i ene l a vent aj a de que cuando se reali zan
operaci ones con númer os que t i enen deci mal es no se t i ene que ut ili zar l a
funci ón round.

Wor k ar ound
Para vol ver para at ras l o ant eri or ( es deci r, segui r generando si ngl e y
doubl e, si n curr ency) hay que poner en el confi g. gx
WA0005= Y

y se vuel ve a l a defini r como se hacía ant eri or ment e ut ili zando l os t i pos
si ngl e y doubl e.

• Se el i minó l a prefer enci a “ Vi sual Basi c Versi on” , a part i r de est a versi ón
no est á mas l a preferenci a, porque uni cament e se permi t e t rabaj ar con
Vi sual Basi c 6. 0, y no con Vi sual Basi c 5. 0

• Se el i minó l a preferencia “ Generat e Web Panel s as WebCl asses” , a par t i r
356
de est a versi ón no es posi bl e generar Web Panel s como CGI , uni cament e
es posi bl e t rabaj ar con Web Panel s generados como WebCl asses.
Por est a razón t ambi én se el i mi nó el di ál ogo de pref erenci as de ej ecuci ón
para Web Panel s CGI ( CGI - BI N pat h y St art Url ) que se confi guraban en
el F5 de GeneXus ( Bui ld / Run / Bot ón de Opt i ons) .

• La Common Di al og Funct i on “ GXSel Di r” que es la que permi t e sel ecci onar
un di rect ori o, no est aba act uali zada, est o es, l e fal t aban al gunas
funci onali dades que permi t ían el rest o de l as funci ones.
Por ejemplo, la GXSelDir no permitía crear directorios y
no soportaba nombres de directorios largos.
A part ir de est a ver sión, la función GXSelDir est á act ualizada y per mit e
est as acci ones.

• Se cambió el cont r ol que se ut iliza para el calendario
En esta versión se cambió el control que se utiliza para
manejar el calendario que aparece cuando se presiona
botón derecho sobre un atributo de tipo fecha.
El cont rol que se ut ili za a part i r de est e moment o es MSCOMCT2. OCX.

• Se cambi ó el defaul t de l a propi edad ‘Prompt f or Confi rmat i on’
Por más i nformaci ón referi rse a l a secci ón Propi edad " Prompt f or
Confi rmat i on".

• Nuev a dl l par a apl i caci ones Cl i ent e/ Ser v i dor
A l os efect os de uni fi car el códi go con l os demas generadores, a part i r de
est a versi ón se ut iliza una nueva dll de Cli ent e/ Servi dor
( GXDATA70. DLL) .

La generaci ón de t race es di ferent e con est a nueva dll ( consul t ar l a
secci ón ‘Confi guraci ón de t race ( GeneXus DB Act i vi t y Trace) ’) .

• Cual qui er apli caci ón Cli ent e/ Servi dor sobre el DBMS DB2 Common
Servers que ut ili ce acceso ODBC para acceder a l a base de dat os y
real i ce cual qui er sent enci a SELECT FOR UPDATE, da el si gui ent e error:

OdbcMessage: ' [ I BM] [ CLI Dri ver] [ DB2/ NT] SQL0510N UPDATE or
DELETE i s not all owed agai nst t he speci fi ed cursor.
SQLSTATE= 42828

Para sol uci onarl o hay que apagar l a opci on "Def err ed Prepar e" en l as
pref erenci as del dat a source ( bot ón "Advanced" , Tab " Compat i bilit y") .

• Si se t rabaj a con model os que cont engan Transacci ones Web y base de
dat os Access, es recomendabl e confi gurar la pr ef er enci a a ni vel de
model o ‘Local Dat abase Fil e’, para i ndi car el cami no ( absol ut o o rel at i vo)
en que se encuent ra l a base de dat os ( GX_DATA. MDB) , i ncl uso se puede
cambi ar el nombre de l a mi sma.
Est o es porque a part i r de l a versi ón 7. 5, se genera el di rect ori o Web
para guardar l os obj et os generados con el Generador Web, pero l a base
de dat os se si gue accedi endo desde el di rect ori o Dat aXXX cor r espodi ent e
al modelo.
Est e cambi o pr ovoca que cuando se pongan en producci ón l os obj et os
Web, l a base de dat os se va a buscar un di rect ori o más arri ba que el que
se encuent ran l os obj et os compi l ados, y si en el servi dor Web no se t i ene
l a mi sma est ruct ura de di rect ori os que l a que se t enían en l a máqui na de
desarr oll o, no se encont rarán l os dat os.
357


Nuevas f unci onal i dades
DEVELOPER MENU PARA APLI CACI ONES CON I NTERFAZ WEB
Est e obj et o cont i ene a t odos l os obj et os con i nt erfaz Web que se haya defi nido
en el model o.
Es el que aparece cuando se presi ona F5 desde GX, con l a descri pci ón
“ Devel oper Menu” .

PRI NT COMMAND ( PRNCMD) VARI ABLE
A part i r de est a ver si ón el comando PRNCMD en report es, soport a que el val or
sea pasado en una vari abl e.
Sol o se permi t e el uso de una úni ca vari abl e, no se soport an expresi ones ni
mezcl a de vari abl es con const ant es.

Ej empl o:
Los si gui ent es comandos son vál i dos:
prncmd &pepe
prncmd \ 018 E \ 015


Los si gui ent es comandos no son váli dos:
prncmd &pepe \ 018
prncmd st r( 15)
prnmd &pepe + &pepe3


REORGANI ZACI ONES BATCH
A part i r de l a ver si ón 7. 5 es posi bl e ej ecut ar l as r eorgani zaci ones Vi sual Basi c en
forma bat ch.

Para hacerl o se debe ej ecut ar desde l a li nea de comando:

rmenu - nogui

Est o ej ecut a l a creaci ón / reorgani zaci ón si n necesi dad de l a i nt ervenci ón del
usuari o, es deci r no aparecen l os di ál ogos para confi rmar l as acci ones.

PROPI EDAD ‘ SETFOCUS’ PARA TAB DI ALOGS
Est a propi edad se puede cambi ar en t i empo de ej ecuci ón y l a si nt axi s para
ut ili zarl a es l a si gui ent e:

Nombredel Tab. Set Focus( )

SE I MPLEMENTÓ EL VALOR ‘ PASSI NG LAST CHAR’ PARA SUBFI LES DE
TRANSACCI ONES
Est a funci onali dad ya exi st ía para campos que no est aban en subfil es, y a pari t r
de l a ver si ón 7. 5 de GeneXus se i mpl ement ó el val or “ Passi ng l ast char” de l a
358
pref erence User I nt er face\ Key Confi gurat i on\ Fi el d Exi t para subfil es de
Transacci ones.

Est o i ndi ca que si se sel ecci ona est e val or , cuando se ej ecut e una Tr ansacci ón
con subfil e, al compl et arse l a i nformaci ón de cada uno de l os campos del subfil e,
el cursor aut omát i cament e pasará al si gui ent e campo ( en ver si ones ant eri or es
est e val or se cor r espondía con l a prefer ence Aut o Ski p de Vi sual Basi c) .

‘ GENEXUS VI SUAL BASI C RELOAD UTI LI TY’ EN PROYECTOS WEB
Es posi bl e ut ili zar el ut ili t ari o ” GeneXus Vi sual Basi c Rel oad Ut ilit y’” en
proyect os Vi sual Basi c que cont engan obj et os Web ( Web Panel s, Transacci ones
Web) .
Por el moment o, es posi bl e ut ilizar est e ut i lit ari o sol ament e en proyect os Web
generados en VB 6. 0.

Por más i nformaci ón sobre est e ut ili t ari o, consul t ar el document o en:
ht t p: / / www. art ech. com. uy/ gxdl sp/ pub/ GeneXus/ VB/ Ti ps/ Rel oad. ht m


Not a:
Cuando se ut ili za est e ut ili t ari o en proyect os Web, al sel ecci onar l a
opci ón Run/ St ar t del menu de Vi sual Basi c, l uego de cargar l os obj et os que
fuer on modi fi cados, se muest ra una pant all a como l a si gui ent e:




La opci ón “ St ar t Component ” aparece sel eccionada y su l ado se muest r a una
li st a de t odos l os Obj et os Web pert eneci ent es al proyect o. Se debe sel ecci onar
el Obj et o Web pri nci pal y presi onar el bot ón “ OK” para ej ecut ar nuevament e l a
apli caci ón.

359
PROPI EDAD ‘ ENABLED’ EN RUNTI ME PARA BOTONES EN OBJETOS WEB
Se pueden habi lit ar/ deshabilit ar bot ones en t i empo de ej ecuci ón en Web Obj ect s
ut ili zando l a propi edad Enabl ed.
Est a propi edad se puede modi fi car dent ro de al guno de l os event os del Web
Obj ect .

Obser v aci ón: Si se confi gura l a propi edad ‘Enabl ed= 0’, en Net scape 6. 0, se ve
como en I nt ernet Expl or er , es deci r, deshabi li t ado. No ocur re l o mi smo en
Net scape 4. 7 y ant eri or es.

OPTI MI ZACI ÓN EN LA GENERACI ÓN DE OBJETOS WEB
Se opt i mi zó l a generación de obj et os Web ( Web Panel s y Transacci ones Web) .
Est o si gni fi ca que se reduj o si gni fi cat i vament e el códi go de l os obj et os web
generados, con l a consi gui ent e reduccci ón de t i empos de generaci ón y t amaño
de l os ej ecut abl es.








Nuev as pr ef er enci as
‘ FORCE GENERATI ON OF DEVELOPER MENU’
Est a pr ef er ence se encuent ra en l a secci ón “ Gener al \ VB Speci fi c” y permi t e
i ndi car si se regenerarán el Devel oper Menu ( MENU. VBP) y el obj et o mai n que
i ncl uye l os Web Panel s que se t i enen en el model o ( GXWEBMN.VBP o como se
haya i ndi cado en l a pref er ence “ Mai n Web Proj ect Name” ) , cada vez que se
genere cual qui er obj et o.

Los val ores posi bl es de est a pef erence son:

No Es el comport ami ent o que se t enía en l a versi ón 7. 0,
est o es, no se regenerarán l os proyect os menci onados
ant eri orment e cada vez que se i nvoque al generador.
Est e es el val or por def ect o.
Yes I ndi ca que se r egenerarán l os proyect os MENU.VBP y
GXWEBMN. VBP ( o el nombre que se haya i ndi cado en
l a prefer ence “ “ Mai n Web Proj ect Name” ) .

Est a preference permi t e, con el val or en Yes, regenerar l os proyect os
menci onados, por si por al guna razón no se regeneraron y se desea que así se
haga. Se puede vol ver a poner en No después de una corri da y vol verán a
generar se sol o cuando se consi der e necesari o.

Además al gunas prefer ences se i dent i fi can como crít i cas, est o es que si se
cambi a alguna de ell as se regeneran est os proyect os, i ndependi ent ement e del
val or de l a pref er ence.
Hay pr ef er ences crít i cas I nt er act i v as, que fuerzan l a regeneraci ón del
MENU. VBP, hay pr ef er ences cri t i cas de Web, que fuerzan al GXWEBMN. VBP y
hay pr efer ences Gener al es que fuerzan ambos.
360

Las preferences cri t i cas son:

I nt eract i vas General \ VB Speci fi c\ Def aul t Edi t Cont rol
General \ VB Speci fi c\ Gri d Ver si on
User I nt erface\ Pri nt i ng\ Pri nt Met hod
User I nt erface\ Ri ght But t on\ Cal cul at or on numeri c
fi el ds
User I nt erface\ Ri ght But t on\ Cal endar on dat e fi el ds
User I nt erface\ VFP/ VB Speci fi c\ Generat e MDI
Appli cat i on
Web Web I nf ormat i on\ Generat e WebPanel s as
WebCl asses ( en part i cul ar cuando est a en No no se
genera el GXWEBMN. VBP)
Web I nf ormat i on\ Encrypt URL Paramet ers
Web I nf ormat i on\ Encrypt i on Key
General es General \ VB Speci fi c\ Vi sual Basi c Ver si on
General \ VB Speci fi c\ Local Dat a Access
General \ VB Speci fi c\ VB Proj ect Set t i ngs\ Compil at i on
Type
General \ VB Speci fi c\ VB Proj ect Set t i ngs\ Opt i mizat i on


‘ PROCEDURE AND REPORT GENERATI ON’
Est a prefer ence a ni vel de model o se encuent ra en el grupo “ General \ VB
Speci fi c” , i ndi ca si l os r eport es y procedi mi ent os se generarán como módul os o
como cl asses de Vi sual Basi c.

Los val or es posi bl es son:

As Modul es ( . BAS) I ndi ca que t odos procedi mi ent os y report es se
generarán como hast a ahora, un módul o . bas
para cada uno. Est e es el val or por defect o.
As Cl asses ( . CLS) I ndi ca que t odos l os procedi mi ent os y report es
del model o se generarán como cl asses de Vi sual
Basi c.


El val or “ As Cl asses ( . CLS) ” t i ene como vent aj a que l as vari abl es usadas por l os
procedi mi ent os y report es sól o se defi nen en el moment o que se van a ut ilizar,
dest ruyéndose luego de la ej ecución de los mi smos.
En cambi o si se generan como módul os ( val or “ As Modul es ( . BAS) ” de l a
pref erence) , en el moment o de ej ecut ar el proyect o se reserva memori a par a
est as vari abl es, y se mant i ene ocupada hast a fi nalizada l a ej ecución de l a
apli caci ón.
Al t enerl a como .CLS pueden apar ecer probl emas de perf ormance en el caso
que se t enga muchas vari abl es en l os procesos que se ej ecut an dent ro de un
l oop.

Generacion de SSP con el Generador Visual Basic
Para obt ener i nformaci ón sobre est a funci onali dad referi rse al document o en:
ht t p: / / www. art ech. com. uy/ gxdl sp/ pub/ GeneXus/ DevEnv/ Docum/ Rel easeNot es/
361
7. 0/ Smart St at i cPanel s. ht m

A di ferenci a de ot ros generadores, con Vi sual Basi c no es posi bl e ej ecut ar l os
SSP desde l a línea de comandos, sol o pueden ser ej ecut ados al ser l l amados por
ot r o obj et o.
Los parámet ros a confi gurar son:

Par ámet r o
SSP Di rect or y genexus. st at i cweb. di r= < di r>
SSP Dynami c URL genexus. st at i cweb. dynurl = < url >
SSP Overwri t e pages genexus. st at i cweb. over wri t e= < ” t rue” | ” fal se” >
SSP Expand Li nks genexus. st at i cweb. l i nks= < ” t rue” | ” fal se” >


NOTA: Para poder ut ili zar l as funci ones que permi t en confi gurar l os parámet ros
adi ci onal es desde l as apli caci ones GeneXus ( f unci ón set envpr opert y) , se debe
confi gurar l a pref er ence ‘Funct i ons = All ow non- st andard funct i ons’ t ant o en
di seño como en prot ot i po.

Para poder ej ecut ar l os SPPs y que l os mi smos gener en l os HTMLs
corr espondi ent es se deben segui r l os si gui ent es pasos:

- Compil ar el Web Panel que t i ene l a propi edad ‘Generat i on Mode= Smart
St at i c Panel ’ ( generando l a página ASP y l a DLL) , o al t ernat i vament e
ej ecut arl o en f orma i nt erpr et ada ( si se qui er e se puede cerrar el browser
y dej ar sol ament e l a ej ecuci ón del VBP) .
- Ej ecut ar el obj et o que va a est abl ecer l os parámet ros y l l amar al SSP.
- Al ej ecut arse l os SSP se despl i ega una vent ana que indi ca cual es fuer on
l os HTMLs gener ados por l a ej ecuci ón de l os SPPs. Est a vent ana se
corr esponde con un ut ilit ari o ll amado GXLOG. EXE.
Ej empl o
Se t i ene un Web Panel ( Pr uebaSSP) que será ej ecut ado como SSP y Work
Panel ( Ll amador ) que será el encargado de ej ecut arl o.

A cont i nuaci ón se det al lan l os pasos a segui r para ej ecut ar l os SSP.
• Confi gurar l a propi edad ‘Generat e Web Panel s as WebCl asses = Yes’ en
el Web Panel ‘PruebaSSP’.
• Agregar en el Work Panel ‘Ll amador’ un event o como el si gui ent e:

Event ' Ll amada’
&aux = set envproper t y( ' genexus. st at i cweb. dir' , ' d: \ ssp' )
&aux1 = set envpr opert y( ' genexus. st at i cweb. dynurl ' , ' ht t p: / / l ocal host / cgi-
bi n/ ' )
&aux2 = set envpropert y( ' genexus. st at i cweb. over wri t e' , fal se)
call ( HPruebaSSP, …. )
EndEvent

Los parámet r os adicionales que se configurar on fuer on:

genex us.st at i cw eb.di r para i ndi car donde quedarán l as páginas HTML
( d: \ ssp)
genex us.st at i cw eb.dy nur l para i ndi car l a URL corr espondi ent e a l os Web
Panel s di námi cos que serán ll amados desde l os SSPs ( ht t p: / / l ocal host / cgi -
bi n/ )
362
genex us.st at i cw eb.ov er w r i t e para que no se sobreescri ban l os SSP para l os
que ya exi st e un archi vo .ht ml con ese nombr e.

• Compil ar el Web Panel ‘PruebaSSP’ ( se genera l a pági na ASP y l a DLL) o
si se qui ere ej ecut arl o en forma i nt erpret ada.
• Ej ecut ar el Wor k Panel ‘Ll amador’, y ej ecut ar el event o ‘Ll amada’.

Al ej ecut ar el event o ‘Ll amador’ se generan l as pági nas HTML correspondi ent es
al SSP, que quedar án en el di rect ori o ‘d: \ ssp’.

I nt egr idad referencial en Visual Basic
I nt r oducci ón
Se i ncorpora l a posi bilidad de decl arar I nt egri dad Referenci al a ni vel del DBMS
t ant o en aplicaciones Client e/ Servidor como aplicaci ones locales ( Access) .

Al cance
Lenguaj e: Vi sual Basi c
I nt erfaces: Web, Wi n


Descr i pci ón
Est a nueva propi edad, permi t e que al moment o de cr ear l a base de dat os, se
regi st re en el DBMS ( o Access) que se va a t ener I nt egri dad Ref erenci al .
Por l o t ant o, si por medi o de procesos, o por el mi smo DBMS ( o Access) se
i nt ent a vi ol ar l a I nt egr i dad Refer enci al , se di sparará un mensaj e de er ror del
DBMS ( o Access) .

Para poder defi ni r est a propi edad de l a base de dat os se debe confi gurar l a
pref erence ‘Declare Ref er ent ial I nt egrit y’, en la sección ‘Creat ion/ Reor ganizat i on
I nf ormat i on’ dent ro de las ‘DBMS Opt i ons’ del model o.
Los val or es posi bl es son:

No No se genera I nt egri dad Ref erenci al en l a base
de dat os, es el val or por def ect o
Yes Genera l a I nt egri dad Referenci al
Remove Eli mi na l a I nt egri dad Referenci al exi st ent e


En el caso en que l a base de dat os sea Access, se debe defi ni r l a pref er enci a,
‘Decl are Local Referent i a I nt egri t y ( Access) ’ que se encuent ra en l a secci ón ‘VB
Speci fi c’ de l as pr ef er enci as del model o.
Los val or es posi bl es son:

No No se genera I nt egri dad Ref erenci al
Yes Se genera I nt egri dad Ref erenci al



363
Consi der aci ones Gener al es

• Est os val or es son t omados en cuent a sol o al moment o de l a Cr eaci ón de l a
base de dat os.
• En el caso de quer er eli minar l a I nt egri dad Ref erenci al exi st ent e, se debe
ut ili zar el val or Remove y ej ecut ando una reorgani zaci ón, luego se debe
cambi ar est e val or por No.
• En el caso de Access no exi st e el val or Remove, bast a con poner l a
pref erenci a en No y cr ear l a base de dat os para el i minar l a I nt egri dad.
• En caso de t ener un model o cli ent e- servi dor con t abl as l ocal es, no se defi ne
i nt egri dad cruzada, est o qui ere deci r que se permi t e reali zar acci ones sobre
una t abl a l ocal que vi ol a l a i nt egri dad de l a t abla del servi dor y vi ceversa.
• Si se est á t rabaj ando con l a prefer enci a “ Generat e Nul l for Null value” en NO
( el val or generado es el nul o de GeneXus, no el Nul o del DBMS) la regl a
Al l ow nul l s sobre una cl ave foránea produce un er ror pues el val or nul o de
GeneXus vi ol a l a i nt egridad ref erenci al del DBMS, pues se va a buscar di cho
val or como cl ave en al guna t abl a. En caso de t ener l a pref er enci a “ Generat e
Null for Nul l val ue” en YES no se pr oduce probl emas.
• En el caso de est ar en un model o Cl i ent e/ Servi dor, se puede ut i lizar l a r egl a
Er r or _handl er para manej ar el er ror evi t ando l a fi nali zaci ón del programa.
Si no se maneja el error el programa se cancelará al
violar la integridad Referencial.
• En l os model os l ocal ( l os que ut ilizan base de dat os Access) , l a regl a
Er r or _handl er ( ) no est á di sponibl e.


Ej empl o
Supongamos t enemos una apli caci ón con l as si gui ent es est ruct uras ( Con
I nt egri dad Referenci al) :

Tabl a Cat egorías
Cat I d*
Cat Nom

Tabl a Cli ent es
Cli I d*
Cli Nom
Cli Tel
Cat I d
Cat Nom

Consi der emos ambas t abl as con dat os.
Además exi st e un proceso l l amado Bor r ar , que el i mina t odos l os regi st ros de l a
t abl a Cat egorías:

For each
Defi ned by Cat Nom
Del et e
Endfor


Est e proceso i nt ent a borrar regi st ros de una t abl a que est án como cl ave f oránea
en ot ra, por lo t ant o se vi ol a la int egridad refer encial.
364
Dependi endo del DBMS o si est á en Access se present a un er ror.
Por ej empl o en SQL Ser ver se present a el si guient e di al ogo:




Est o pr oduce que el programa se cancel e.

En est e caso se puede ut ili zar l a regl a Er r or _handl er para manej ar el err or
evi t ando l a finali zaci ón del programa.
Se debería hacer l o si gui ent e:

Defi ni r una subrut i na al procedi mi ent o, que manej e el er ror:

Sub ' Manej o_Error'
i f &gxDBErr= 547 / / Codi go de error de SQL Server
msg( ' Est e Pr ocedi mi ent o no se puede real i zar porque vi ol a la
int egridad ref er encial. ' )
Rol l back
endi f
EndSub / / ' Manej o_Error'

Además defi ni r l a regl a:

Er ror_handl er( ‘Manej o_Er ror’)

Para conocer l os códi gos de error, consul t ar l a document aci ón del DBMS que se
est á ut i lizando.

Propiedad "Prompt for Confir mat ion"
I nt r oducci ón
Est a pr opi edad de l os report es i ndi ca si se most rará o no un di ál ogo para
confi rmar si el report e será ej ecut ado o no.
El di ál ogo que se muest ra t i ene el t ext o ' I s dat a ok ?' , o su correspondi ent e en
cada i di oma.
Al cance
Obj et os: Report es
Lenguaj es: Vi sual Basi c
I nt erface: Wi n
Descr i pci ón
Los val ores posi bl es de est a propi edad son:
365

Yes Est o i ndi ca que se most rará el di ál ogo de conf i rmaci ón del
report e
No No se most rará el di ál ogo


Hast a l a versi ón 7. 0 de GeneXus el val or por defect o de l a propi edad ' Prompt f or
Confi rmat i on' de report es era Yes.
Est o es que por def ect o se debería most rar el diál ogo.

En est a versi ón, se uni formi zó el comport ami ent o de est a propi edad para t odos
l os generadores, cambi ándose el val or por def ect o a No.


366
Vi sual Fox Pr o

Sección Específica Generador Visual FoxPro
Requer i mi ent os
Las versi ones de Vi sual FoxPro soport adas son:
• Vi sual FoxPro 6. 0 SP5 o superi or
• Vi sual Foxpro 7. 0

Para obt ener l a últ i ma versi ón del generador Vi sual FoxPro para GeneXus 7. 5,
si ga est e li nk: ht t p: / / www. gxt echnical.com/ cgi-
bin/ HDCent er.exe?2,5,133,4: VFPCS: 75: 2

Compat i bi l i dad
• I MPORTANTE

En l a ver si ón GeneXus 7. 5 se real i zaron vari os cambi os en l as
pref erenci as del modelo y DBMS Opt i ons con respect o a l a versi ón 7. 0,
algunos de est os cambi os son:

- Cambi o de val ores por def ect o
- Nuevas pr ef er enci as
- Nuevos val or es de pr ef er enci as
- Eli mi naci ón de pr ef erenci as

Cabe dest acar que el cambio en los valores por def ect o de l as
pref erencias pr ovocarán un cambi o en el compor t ami ent o de l as
apl i caci ones que los ut ilizaran. Por est e mot i vo se recomienda revisar
det enidament e la sección del generador XXX en el document o
“ Administ ración de Propiedades” .

• El orden de despli egue de l os cont rol es de un form en ej ecuci ón se
real i za según el si gui ent e orden:

1) Rect ángul os, cont rol es bi t map, act i vex.
2) At ri but os ( i ncl uye vari abl es bi t map)
3) Li t eral es

El resul t ado es que l os cont rol es del grupo 2, por ej empl o, se vi sualizan
enci ma de l os del grupo 1.

El orden de despl i egue dent ro de cada grupo es según l as coordenadas en
l as que se encuent r e el cont r ol en el form: de i zqui erda- derecha y de
arri ba - abaj o.

El movi mi ent o de l os cont rol es en di seño ( To back, To fr ont ) no es t omado
en cuent a en ej ecuci ón.

• Cual qui er apli caci ón Cli ent e/ Servi dor sobre el DBMS DB2 Common
Servers que ut ili ce acceso ODBC para acceder a l a base de dat os y
367
real i ce cual qui er sent enci a SELECT FOR UPDATE, da el si gui ent e error:
OdbcMessage: ' [ I BM] [ CLI Dri ver] [ DB2/ NT] SQL0510N UPDATE or
DELETE is not allowed against t he specified cursor.
SQLSTATE= 42828

Para sol uci onarl o hay que apagar l a opci on "Def err ed Prepar e" en l as
pref erenci as del dat a source ( bot ón "Advanced" , Tab " Compat i bilit y") .

Rest r i cci ón par a model os cont r a DBFs
No se soport an ‘nombr es l argos’ en Obj et os, Tabl as y At ri but os. El máxi mo
soport ado es 10 en cada uno; est o es así por una li mi t aci ón en l a pl at aforma
DBF ( fr ee t abl es) . Est e l argo es confi gurabl e en l as pr ef er ences del model o de
di seño.
Nuevas Funci onal i dades
Se han i ncl uído l as funci onali dades nuevas de GeneXus concerni ent es a l a
i nt erfase ‘Wi n’. Se dest acan ent re l as mi smas l as t i pos de dat os de manej o de
XML, NSubfi l es, t i pos de dat os de Offi ce, t i pos de dat os de manej o de cl i ent es
ht t p, t i po de dat os dbconnect i on, et c. Pero de t odas l as funci onali dades, l a
mayor si n duda es l a si gui ent e: Soport e de N DBMSes por model o.

NUEVA DLL PARA APLI CACI ONES CLI ENTE/ SERVI DOR CON SOPORTE
NDBMOD ( N- DBMSES POR MODELO)
A l os efect os de uni fi car el códi go con l os demás generadores, y soport ar N
DBMSes por model o a part i r de est a versi ón se ut iliza una nueva dll de
Cli ent e/ Servi dor ( GXDATA70. DLL) .

La generaci ón de t race es di ferent e con est a nueva dll ( consul t ar la secci ón
‘Confi guraci ón de t race ( GeneXus DB Act i vi t y Trace) ’) .

Ambientes ________________________________________________________________99
Definición de ambientes en un modelo ________________________________________________99

Help ____________________________________________________________________103
HTML Help ____________________________________________________________________103 Ayuda y Documentación HTML para atributos/dominios/variables _________________________111

Tipos de Datos ___________________________________________________________115
Nuevos Tipos de Datos ___________________________________________________________115 Tipo de Datos DBConnection ______________________________________________________115 Tipo de Datos WebWrapper________________________________________________________119 Tipo de Datos WebSession ________________________________________________________122 Tipo de Datos XMLWriter_________________________________________________________125 Tipo de Datos XMLReader ________________________________________________________135 Tipo de Datos para el manejo de planillas Excel ________________________________________143 Tipo de Datos para el manejo de documentos Word _____________________________________152 Tipos de Datos para el manejo de correos _____________________________________________159 Tipo de Datos HttpClient, HttpResponse y HttpRequest __________________________________185

Funciones _______________________________________________________________193
Funciones estándar _______________________________________________________________193 Funcion FileExist()_______________________________________________________________194 Función DeleteFile _______________________________________________________________195 Funciones de lectura y escritura del registro de Windows _________________________________195 Funciones de Encriptación _________________________________________________________197 Función Sleep___________________________________________________________________200 Función StrSearch _______________________________________________________________201 Función StrReplace ______________________________________________________________203 Función Isnull __________________________________________________________________204 Nombres Largos en función UserId() y Workstation() ___________________________________205

Funcionalidades Generales ____________________________________________ 207
Call dinámico ___________________________________________________________________207 Protocolo SOAP _________________________________________________________________208 Reportes PDF ___________________________________________________________________214 Consideraciones para manejo de reportes PDF en C/SQL _________________________________215 Consideraciones para manejo de reportes PDF en Visual Basic ____________________________217 Consideraciones para manejo de reportes PDF en Java ___________________________________218 Reportes/Procedimientos con salida XML_____________________________________________223

Funcionalidades para Aplicaciones Web _________________________________ 226
Transacciones Web ______________________________________________________________226 Web Components ________________________________________________________________235 Embedded pages ________________________________________________________________242 Create SSP on request ____________________________________________________________246 WAP__________________________________________________________________________248 Encriptación de Parámetros ________________________________________________________253 Paginado de subfiles en Web Panels _________________________________________________256 Uso de Web Panels en reglas prompt_________________________________________________259

Propiedades______________________________________________________________262
Propiedad OnClickEvent para imágenes ______________________________________________262 Propiedades BackColorEven, BackColorOdd de Subfiles _________________________________264 Propiedad Columns subfiles freestyle ________________________________________________267 Propiedad PageCount _____________________________________________________________269 Propiedad RecordCount ___________________________________________________________269 Propiedad Rows subfiles __________________________________________________________270 Propiedad Cache Expiration Lapse __________________________________________________271

2

Propiedad Enable para botones en objetos web _________________________________________271

Eventos _________________________________________________________________273
Evento refresh con múltiples subfiles ________________________________________________273 Evento click en Text block y Combo _________________________________________________274

Métodos _________________________________________________________________276
Método JSEvent _________________________________________________________________276

Funcionalidades para aplicaciones Win __________________________________ 278
Múltiples Subfiles _______________________________________________________________278 Acceso a las Propiedades de la Menu Bar _____________________________________________283 Opciones Confirm y Close en Menu bar ______________________________________________285 Propiedad When To Refresh _______________________________________________________285 Propiedad Caption en items de controles Radio Button ___________________________________286 Propiedades Caption y Visible en Tab Dialogs _________________________________________287

Funcionalidades para aplicaciones Cliente/Servidor ________________________ 288
Múltiples conexiones por modelo ___________________________________________________288 Comando SQL __________________________________________________________________292 Metodos de Conexion con Tecnologia ODBC__________________________________________293 Primary key index clustering _______________________________________________________295 Preferencia Lock Time-out(seconds) _________________________________________________296 Configuración de Trace (GeneXus DB Activity Trace)___________________________________298

Funcionalidades Específicas de los Generadores___________________________ 301
C#______________________________________________________________________301
Sección específica del generador C# _________________________________________________301

C/SQL __________________________________________________________________302
Sección Específica C/SQL _________________________________________________________302 C/SQL - Acceso vía ODBC ________________________________________________________305 Generación de Web Objects como ISAPI _____________________________________________306 Preferencia "Extension for WEB programs" ___________________________________________310 C/SQL- impresión gráfica en windows _______________________________________________311

Java ____________________________________________________________________315
Sección específica del generador Java ________________________________________________315 Transacciones con back-end HTTP __________________________________________________333 Servidores de aplicaciones JAVA 7.0 y 7.5 en el mismo host ______________________________335 Setup para aplicaciones generadas con GXWS Deployment _______________________________337 Propiedad Provider de subfile ______________________________________________________339 Instalación de aplicaciones Java como servicio NT con JSrvAny ___________________________340 Aplicaciones Multi-tier con http como protocolo de comunicación _________________________342 War Deployment ________________________________________________________________348

Visual Basic______________________________________________________________355
Sección Específica del generador Visual Basic _________________________________________355 Generacion de SSP con el Generador Visual Basic ______________________________________360 Integridad referencial en Visual Basic ________________________________________________362 Propiedad "Prompt for Confirmation" ________________________________________________364

Visual Fox Pro ___________________________________________________________366
Sección Específica Generador Visual FoxPro __________________________________________366

3

Instalación
Requerimientos
Para que esta versión funcione correctamente, es necesario tener instalado Internet Explorer 6.0 o posterior. En el caso de ser necesaria su instalación, se incluye una versión de dicho software en el directorio Utilities\Internet Explorer 6.0 del CD. Se deberá ejecutar el archivo IE6SETUP.EXE. NOTA: Algunas “features” tienen requerimientos propios, por lo cual es recomendable leer la sección de “Requerimientos” de cada una de ellas.

Instalación y activación
Instalación
La instalación de esta versión es similar a la de cualquier otra versión de GENEXUS. Una diferencia menor con respecto a las instalaciones anteriores es la creación del grupo de programas “GeneXus Utilities”, que posee shortcuts a diferentes utilitarios proporcionados con la versión. Dichos utilitarios son los siquientes: • • • • GeneXus Copy Model GeneXus Data View Generator GeneXus DB Activity Trace GX Register – Este utilitario se usa para registrar la versión de GeneXus desde el lugar donde se encuentra. Esto es para el caso en que se trabaje con mas de una versión de GeneXus en la misma máquina.

Para el generador C/Sql ademas se integra: • GeneXus CSQL Setup Wizard

En caso del generador Visual Basic tenemos además: • GeneXus Visual Basic 6.0 Reload Utility

Activación
Para autorizar el GeneXus Development Environment y los generadores que requieran autorización deberá realizar los siguientes pasos: 1. 2. Ejecute el "GeneXus License Manager" que se encuentra en el menú de programas de "GeneXus 75" o el Gxlmgr.exe del directorio donde se instaló GeneXus. Presione Select Computer e indique dónde residirá la licencia. Las opciones son: Local para licencias locales o Remote para licencias centralizadas (1).

4

3. 4.

5.

Seleccione todos los productos a autorizar. Presione Authorize, seleccione la opción Request License y continúe con los pasos del asistente para enviar los Site Code a su distribuidor. La solicitud se puede realizar vía web (automática) o puede generar un archivo con cada uno de los site code de los productos y enviar ese archivo a su distribuidor vía e-mail. Una vez obtenido los Site Key o el archivo con los mismos, presione el botón Authorize nuevamente y selecione la opción Enter Licenses para ingresar las claves de activación.

Licencias Centralizadas: si se desea mantener las licencias en forma centralizada, será necesario instalar el GeneXus Protection Server (versión 2.0 o superior) en un servidor NT o Windows 2000. La funcionalidad del mismo es servir licencias a cualquier cliente de la red independientemente de donde se encuentre instalado el producto (en un PC local, en el mismo servidor y/o en un servidor diferente). Por información más detallada sobre la protección consulte GXProtection 2000.

(1)

GXProtection 2000: Esquema de Administracion de Licencias Centralizadas.
Introducción
El License Manager, que es el administrado de licencias que se instalada con el producto que utiliza GXProtection 2000 (GeneXus, GXplorer, etc.), puede ser manipulado por cualquier usuario que tenga acceso al producto. En ciertos casos es deseable tener un usuario o grupo de usuarios que actúen como administradores de las licencias y restringir de esta forma el acceso a otros usuarios. A partir de la versión 1.4 de GeneXus Protection Server se dispone de un esquema para la administración de licencias centralizadas evitando así que usuarios no autorizados puedan autorizar, desinstalar y transferir las licencias.

Alcance
GeneXus 7.0 upgrade 1 o superior GXplorer 4.0 o superior

Descripción
La administración de licencias centralizadas permite definir un grupo de usuarios los cuales podrán utilizar el producto1, y un grupo de usuarios como administradores del License Manager, evitando así que usuarios no autorizados puedan autorizar, desinstalar y transferir las licencias.
1

Con producto en este documento nos referimos a cualquier aplicación que utilice

5

GXProtection 2000, por ejemplo, GeneXus y GXplorer. Por ser el GENEXUS Protection Server una aplicación DCOM que corre bajo Windows NT/2000, la solución se basa en el esquema de seguridad propio del NT y DCOM. Hasta ahora cualquier usuario que estaba bajo el dominio del servidor que contiene el GENEXUS Protection Server podía, tomando las licencias de ese servidor, utilizar el producto como realizar cualquiera de las acciones del License Manager (Autorización, Desinstalación, Transferencia, Log Setting). No se requería realizar ninguna configuración adicional. Con esta nueva funcionalidad, primero se desea mantener lo anterior para aquellos usuarios que no les interese una administración segura de las licencias, de forma de evitar configuraciones innecesarias. Para esto, basta con dejar marcada la propiedad ‘Use Default Access Permissions’ en la sección ‘Security’ del ProtSrvService en el DCOMCnfg (es el valor por defecto). Aquellos que adopten este esquema de administración de las licencias deberán realizar algunos cambios en el User Manager del NT (servidor donde se tiene instalado el GENEXUS Protection Server) y en la configuración del DCOM en el mismo servidor. A continuación se explican el funcionamiento de este esquema de administración y más adelante se especifican los pasos a realizar para la configuración del servidor.

Grupos de Usuario
Básicamente se tienen que definir dos grupos de usuarios: grupo Administrador y un grupo que contendrá los usuarios de la aplicación o producto.. Los usuarios del grupo Administrador son los únicos que pueden manipular las licencias del servidor correspondiente, mediante el License Manager. O sea, son los que tendrán permisos para Autorizar, Desinstalar y Transferir las licencias. Los usuarios de la aplicación, si están autorizados, pueden: ver la información de las licencias del servidor configurar dónde residen la licencias (opción Select Computer) usar cualquier producto que tome las licencias de ese servidor. Si el usuario no tiene permisos: no ve la información de las licencias ni puede realizar ninguna acción con ellas. no puede usar ningún producto que tome las licencias de ese servidor.

¿QUIÉN ES EL ADMINISTRADOR?
Si existe un grupo de usuarios en el NT (creado mediante el User Manager) con nombre ‘GXProtAdmin’, entonces sólo los usuarios pertenecientes a ese grupo podrán manipular el License Manager. Si no existe un grupo con ese nombre, cualquier usuario es el administrador. Nota: El grupo tiene que tener exactamente ese nombre (no es case sensitive).

6

¿QUIÉNES SON LOS USUARIOS?
Aquellos que se den de alta en el DCOMCnfg con derecho a acceso a la aplicación ‘GXPrtService’. En este caso se pueden dar de alta usuarios individuales o grupos de usuarios. Puede ser cualquier grupo de ese dominio, incluso el GXProtAdmin si se desea que estos usuarios también puedan ejecutar la aplicación.

COMBINACIONES POSIBLES
Existen diferentes niveles de acceso al Licence Manager y al producto, dependiendo si existen los grupos o no, y en caso de que existan, si se dan de alta en el DCOMCnfg o no. Las diferentes combinaciones son: 1) Si el grupo GXProtAdmin no esta creado y esta marcado el ‘Use Default Access Permissions’ en el DCOMCnfg entra cualquier usuario a la aplicación y cualquiera es el administrador (puede usar el License Manager) 2) Si el grupo GXProtAdmin no esta creado y se da permiso a un grupo X en el DCOMCnfg sólo ese grupo puede entrar a la aplicación y además es Administrador (puede usar el License Manager). 3) Si esta creado el grupo GXProtAdmin y marcado el ‘Use Default Access Permissions’ en el DCOMCnfg entra cualquier usuario a la aplicación pero sólo el administrador puede usar el License Manager. 4) Si esta creado el grupo GXProtAdmin y se da permiso al grupo X en el DCOMCnfg Sólo los usuarios del grupo X pueden usar la aplicación y nadie administra las licencias. 5) Si esta creado el grupo GXProtAdmin y se da permiso al grupo X y al grupo GXProtAdmin en el DCOMCnfg Los usuarios del grupo X más los usuarios del grupo GXProtAdmin pueden usar la aplicación, pero sólo los de este último administran las licencias. Nota: Si esta creado VACIO el grupo GXProtAdmin nadie puede administrar las licencias.

Configuración del servidor
Estos pasos implican cambios en la seguridad de Windows NT/2000 y DCOM por lo tanto deben ser realizados por algún usuario que tenga esos derechos, como ser el Administrador de la red. 1. Instalar el GENEXUS Protection Server versión 1.4 o superior en el servidor (http://www.gxtechnical.com/cgi-bin/hdcenter.exe?2,5,36,57 ). Este setup instala el servicio ‘ProtSrvService’ en el NT. 2. Crear los grupos 'GXProtAdmin' y el de usuarios de la aplicación en el servidor, mediante el User Manager y agregar los usuarios correspondientes en cada uno de ellos. En el primero van los administradores de las licencias y en el segundo los usuarios que ejecutarán la aplicación.

7

El nombre del grupo de usuarios puede ser cualquiera pero el del grupo Administrador se debe llamar ‘GXProtAdmin’ (no importa las mayúsculas y minúsculas. sólo el nombre). seleccionar la aplicación ‘ProtSrvService’ y en la sección de seguridad marcar 'Use custom access permissions' y con el botón Edit agregar los dos grupos creados en 1. Consideraciones • Sobre el paso 2 de la sección ‘Configuración del Servidor’: Si se esta con Windows 2000 se tiene que hacer un ‘Log Off’ para que los cambios sean tomados en cuenta. el mismo puede manipular el License Manager como si perteneciera al grupo. Ejecutar el DCOMCnfg en el servidor. Reiniciar el servicio ‘ProtSrvService’. • • 8 . se tiene creado el grupo ‘GXProtAdmin’ y el usuario no pertenece a ese grupo. Si se tiene más de un producto instalado (por ejemplo GeneXus y Gxplorer) cuyas licencias se encuentran centralizadas en el mismo servidor. no es posible utilizar el esquema de administración para un producto y para el otro no.3. 4. Si se está conectado como ‘Local’ en el propio servidor de licencias.

Esto es porque el generador de ese modelo no es válido en versiones anteriores. • Se modificaron los valores predeterminados para Tablas. al abrir el modelo aparecerá el mensaje "Error: Invalid model property. Por este motivo se recomienda revisar detenidamente la sección del generador XXX en el documento “Administración de Propiedades”. Objetos y Atributos ahora son de 30 caracteres.0. Antes cuando se los utilizaba en los eventos eran btn_Previo y btn_Refres ahora son btn_Previous y btn_Refresh. Esto trae el problema al convertir modelos que tienen métodos o propiedades aplicados sobre los botones que no especifican porque no encuentran los controles dando el error: Control/object 'Btn_previo' (o 'Btn_refres') referenced at line 2 not found/defined. Este cambio es notado al crear una nueva base de conocimiento.5 se realizaron varios cambios en las preferencias del modelo y DBMS Options con respecto a la versión 7. Consulte el SAC 11143 En la versión 7. • • • 9 . Se modificó el nombre de los botones Refresh de Work panels y Previous en transacciones. Is it on the form? Puede modificar el nombre del control o bajar un utilitario para cambiar automáticamente en todos los objetos. Choose Edit Model from File menu ". Por más información referirse a la sección Truncado de Atributos y Objetos.Funcionalidades Environment del Development Sección específica Development Environment Compatibilidad • En la versión GeneXus 7. Si se crea un modelo con este lenguaje ellos y luego se intenta abrir esa KB con versiones anteriores.5 se incluye el lenguaje C#. A partir de esta versión no es más necesario definir un web panel como main para poder ser ejecutado. algunos de estos cambios son: • • • • Cambio de valores por defecto Nuevas preferencias Nuevos valores de preferencias Eliminación de preferencias Cabe destacar que el cambio en los valores por defecto de las preferencias provocarán un cambio en el comportamiento de las aplicaciones que los utilizaran.

CliAddr on table Clientes" por: 'There is no index for order CliNom. Esta opción es válida cuando se especifica desde: CtrlF8. CliAddr on table Clientes.Se discontinúa el Generador FoxPro for Windows en esta versión.' Nueva opción al especificar un único objeto Se agregó un diálogo que permite seleccionar las opciones de especificación para poder cambiarlas o dar OK y usar los valores por defecto cuando se tiene seleccionado un solo objeto. Por más información consulte SAC 10671. Este diálogo es configurable en las User/Global Preferences en el check Show Options when specifying Current Object. Los modelos que posean más de 9999 atributos no podrán ser abiertos con las versiones anteriores. desde la toolbar o con la entrada del menú Build/Specify current object.?-?-? Nuevas funcionalidades Se modificó mensaje en la especificación Se modificó el siguiente mensaje en el diagrama de navegación: "A temporary index will be created for CliNom. dando un error como el siguiente: Internal error 3 in mdl-c_ie1b ISAM Error 0. poor performance may be noticed. 10 .

Figura 1 – Seteo de las opciones de especificación en las User Preferences El diálogo que aparece una vez que es indicada la especificación de un objeto es el siguiente: 11 .

La idea de ellos es poder aplicar algún filtro sobre la información a listar. Lo mismo sucede al realizar el cross reference sobre un atributo. etc. Dado un conjunto de Web Panels a especificar. Esto ayuda a reducir la cantidad de errores/warnings relacionados con especificar al llamador antes que al llamado (por ejemplo. para que al dar botón derecho sobre una tabla o un atributo y seleccionar 'List' se muestran los listados en formato XML. Se modificó el largo de la variable PGMNAME Dado que la cantidad de caracteres significativos en el nombre de los objetos ahora puede cambiar. Esto. Listado de tablas y atributos Se agregó una pantalla que permite la selección de atributos o tablas al realizar los listados de atributos o tablas respectivamente. Ahora cuando se manda especificar más de un objeto. En el caso de listar un objeto privado 12 . Listado de objetos con formato HTML Se implementó el listado de objetos en formato HTML.Figura 2 – Opciones a configurar en la especificación Este diálogo aparece sólo en caso que NO se esté en Diseño. ya que en Diseño las opciones son fijas (View navigation). Nota: Al cambiar la preferencia (Significant Object name length) pueden ocurrir cambios en los layouts (pantallas. se especifican primero los Web Components. Siempre tendrá un ancho de un carácter más que el especificado como caracteres significativos de los nombres de objetos en la preferencia Significant Object name length. Cambio del orden de especificación del árbol de calls Se cambió el orden de especificación. también se hizo que la variable &PgmName cambie en largo en forma acorde. errores de parámetros). listados. agregado al tema de que se especifica en orden inverso al árbol de calls permite expandir correctamente un Create con variable de Web Component.) que el usuario deberá arreglar. Se actualizaron los listados de tablas y atributos. Esta opción esta disponible desde la opción de menú Tools/List Objects. estos se especifican en orden inverso al árbol de calls (primero las hojas del árbol). así como mejorar el desempeño al momento de crear el listado. Listado de tablas detallado muestra la información de prompt En el listado de tablas detallado se muestra la información de los prompts asociados a la misma.

solo quedaron para variables. Optimización Open/Create KB Se optimizó la opción File Open/Create KBase. Por ejemplo al escribir el ‘(‘ luego de la regla default aparece el tooltip indicando los parametros necesario y el tipo de dato de los mismos. Dominio o Variable al mismo tiempo. propiedades y métodos. no se accede a las propiedades de las tablas. Se agregó el Ctrl-espacio para que habrá los intellitips sobre los controles de pantalla. para aquellas bases de conocimiento con varios modelos. Por más información ver Help HTML Limite de los atributos/variables character Se modificó el límite de los atributos/variables de tipo carácter el máximo ahora es de 9999. 13 . Posee la limitación de que no se puede editar el fuente html. dominios.se muestra un mensaje de que el mismo no puede ser listado. cuando se presiona el botón Remove solo serán eliminados aquellos que no estén siendo usados. Browser de objetos El botón Display Results que está en la opción Tools/Browser. Eliminación múltiple de atributos. Intellitips Se implementaron los intellitips en layout reportes y procedimientos. Esto permite refrescar la pantalla cuando el diálogo no se cierra y se realizan modificaciones. variables Es posible eliminar más de un Atributo. Para el caso de los atributos y dominios. queda habilitado después de mostrar los resultados. Edición de Help en HTML La edición del help dentro de GeneXus es en HTML. Infotips: Informacion de parámetros en el abre parentesis Se implementaron los infotips: información de parámetros y tipos de datos para los métodos y funciones standar al seleccionar el '(' (abre paréntesis). Se modificó el comportamiento de los intellitips. en sus respectivos diálogos (se habilita el botón Remove en la selección múltiple).

Nuevas opciones en el menu de objetos En el menú de objetos llamado desde el Menu/Object con el objeto abierto o con clic-derecho sobre el objeto se agregaron las siguientes opciones: • Browse (Call Tree y Callers Tree) . A su vez ahora se salva la última base de conocimiento con que se trabajó apenas se abre ésta.” al presionar el botón derecho sobre el detalle de objetos de un Folders.Permite ver la última navegación de ese objeto. Esto permite que si por algún motivo cancela GeneXus o se sale en forma anormal. (se cambiaron también las opciones Calles y Callers por estas opciones en el combo del Tools/Browsers) Last Navigation .A partir de la versión 7. se puede volver a seleccionar la misma de la lista.. List . pasó de las 4 últimas a las 8 últimas. 14 . posicionado sobre un objeto en particular. Nuevas Opciones del Botón Derecho – Lista de Objetos Se agregan las opciones “New Folder” y “New Object.Permite ver el listado del objeto en formato HTML. • • Lista de las últimas Base de Conocimiento abiertas Se incrementó la lista de las últimas bases de conocimientos abiertas en el Menú de File..5 es posible saber. saber a quién llama y quienes los llaman.

se agregó la opción List Last Impact Analysis. Nueva opción para ver el último Analisis de Impacto En el menú Tool. Se agrega: • • cantidad de objetos que existen en el folder cantidad de objetos seleccionados. Modificación de la Status Bar Se agregan dos opciones sobre la Status Bar. Se llama al diálogo Distribute Objets agregando todos los objetos que contiene el Folder seleccionado.Clic sobre un objeto – Lista de Objetos Se compatibiliza el diálogo de lista de objetos al estándar de Windows al cliquear sobre cualquier objeto en el diálogo de objetos o presionando el botón F2 se permite modificar el nombre del Objeto. 15 . Nuevas Opciones del Botón Derecho –Folder/Distribute Se agrega la opción Distribute seleccionando sobre un Folder. Edición de un Fuente Al modificar cualquier fuente se le agrega un asterisco “*” indicando que esta pendiente el salvado del mismo. la cual permite ver el último análisis de impacto realizado.

Se agregó a la propiedad el valor “SOAP”. en forma transparente para el usuario. Para seleccionarlo hay que ir en el modelo de Diseño a File/Edit Model/General. GENEXUS QUERY. Por más información consultar Protocolo SOAP. La propiedad Call Protocol de procedimientos sólo aparece disponible en el diálogo de propiedades del objeto cuando el mismo es main. asociada al modelo.5. De esta forma incorporamos a las consultas dinámicas como parte integrante del desarrollo de nuestras aplicaciones. Para ello cada vez que se realiza un impacto en la base de datos en un modelo GENEXUS.List Last Navigation por Modelo El listado de navegación se guarda por Usuario/Modelo. Propiedad Call Protocol. Nuevo idioma . consultar Call Protocol. Por lo tanto la opción Lista Last Navigation del Menu Tools muestra la última navegación del modelo posicionado. GENEXUS 7.5 se integra GENEXUS QUERY a GENEXUS. Esta opción está solo disponible para los generadores Java y Visual Basic MDB. De esta forma se podrá invocar en cualquier momento al GENEXUS QUERY que permitirá realizar consultas dinámicas sobre todos los atributos del modelo GENEXUS. se permite generar/impactar la metadata de GX QUERY. Objetivo El objetivo de esta feature es trabajar con GENEXUS QUERY desde GENEXUS de forma integrada.Chino Ahora es posible generar bases de conocimiento en idioma Chino. 16 . Por más información acerca de la propiedad. Integración GeneXus Query con GeneXus Introducción A partir de la versión de GENEXUS 7. Alcance • • • GENEXUS QUERY Manager.

Figura 3 . ¿ Como funciona GeneXus Query desde GeneXus? PROTOTIPO Para los modelos de tipo “Prototipo” el funcionamiento de la herramienta es a pedido. GX QUERY: Ejecuta Excel para utilizar GENEXUS Query. se agrega automáticamente nuevas opciones a GENEXUS en la barra de herramientas Tools. como detalla la siguiente figura: Figura 4 .Descripción Desde GENEXUS se invoca automáticamente o a pedido el GX QUERY Manager (para generar la metadata) y el GX QUERY (para realizar consultas dinámicas). Una vez realizada la instalación la primera vez que se genere un impacto/creación de cada modelo al finalizar la misma se desplegará un mensaje indicando si se desea ejecutar el producto QUERY Manager para crear una metadata asociada al modelo.Nuevas opciones • • QUERY Manager: Ejecuta GENEXUS QUERY Manager. Para ello al instalar el producto GENEXUS QUERY.Reorganización de una Metadata 17 .

Figura 5 – Opciones de Ejecución de GeneXus Query Es importante resaltar que esta opción solo es válida en caso de acceder al producto desde GENEXUS. GENEXUS QUERY Manager accede a esta información al realizar un impacto por lo que le permite saber sobre que metadata hacer el impacto.Las posibilidades son las siguientes • • • Yes: Procede a ejecutar el QUERY Manager desplegando en la Status Bar . de GENEXUS el siguiente mensaje No: Se saltea la ejecución del QUERY Manager. es equivalente a responder Yes y marcar Don’t ask me again. por lo que al finalizar la actualización del modelo directamente se crea/actualiza la metadata. • • • Ask me: Despliega la Figura 4 al finalizar una reorganización. sobre el 18 .5 tiene un identificador de Kb único. Catálogos y Metadatas Cada Base de Conocimiento GENEXUS mantenida con la versión 7. Always: Siempre ejecuta QUERY Manager. Es importante resaltar que esta opción se configura por Base de conocimiento / modelo. Never: Nunca se ejecuta. equivalente a responder No y marcar Don’t ask me again. Si desea modificar esta configuración deberá modificar el parámetro de la Figura 5. Por defecto se genera una metadata por cada para KB/Modelo. PRODUCCIÓN Para los modelos de tipo “Producción” el valor por defecto es ejecutar GENEXUS QUERY Manager siempre. Don’t ask me again: Esta opción decide si se desplegará nuevamente esta opción ante un nuevo impacto o creación de la base de datos asociada al modelo. Por defecto en la instalación se configura el valor Ask me . Esta opción implica que no se ejecute nunca o ejecutarlo siempre. Si desea cambiar esta configuración podrá acceder a GENEXUS QUERY Manager y seleccionar la opción Tools. Options.

No es posible modificar el catálogo si se trabaja integrado a GENEXUS. El valor predeterminado es Todos los Atributos. debiendo realizar una reparación de la instalación desde el Panel de Control. La llamada a GX QUERY es a pedido y permitira consultar todos los atributos de la base de conocimiento. sin embargo se puede configurar desde el GxQuery Manager. En caso de utilizar Microsoft Access se configura automáticamente un Data Source con nombre “KBName-ModelName" referenciando la base de datos. • • • • • • • 19 . para modelos grandes.catálogo que se encuetre activo. Al ejecutar el QUERY Manager a pedido desaparece GENEXUS. No es posible definir qué atributos se van a exportar desde GENEXUS. Cuando se crea la metadata se infiere automáticamente de las preferences del modelo GENEXUS las propiedades de conexión. El nombre de la metadata es la descripción de diseño con la descripción del modelo que se está impactando. La llamada a GENEXUS QUERY Manager se realiza en las siguientes condiciones en caso que esté configurada: o Después de realizar el impacto o Llamando explícitamente desde Tools / QUERY Manager. Consideraciones • • La integración sólo es válida para cualquier Base de Conocimiento mantenida con GENEXUS 7. el tiempo de carga de la metadata puede ser importante. Como el GENEXUS QUERY Manager analiza todas las transacciones en cada impacto. Si GENEXUS QUERY no se encuentra correctamente instalado aparecerá el siguiente error al intentar seleccionar las herramientas desde el diálogo asociado “Error: Tool interface not supported”. y hasta que no se cierre esta aplicación no se activa nuevamente.5 o superior. mediante el Wizard de Carga de metadatas. una vez seteado esto en el GxQuery Manager. se mantendrá siempre que se impacte esa metadata. En este caso se recomienda realizar la carga de la metadata a pedido y no en cada impacto.

Editores Editor de estructura . de manera que sea más intuitiva. Por ejemplo: Supongamos que se tiene una transacción donde se administran los distintos artículos existentes en la empresa. máximo y una lista de precios.Transacciones Introducción A partir de esta versión se modifica el “look and feel” relacionado al editor de estructuras. Lenguajes: Todos. Web. permite una fácil utilización tal como es el editor de las versiones anteriores manteniendo la misma funcionalidad. Descripción Se realiza un cambio en la interfaz para el manejo de estructura de transacciones manteniéndose las siguientes consideraciones: • • • Compatibilidad: Como primer punto y enfocado a usuarios GeneXus. Look and feel: mejorar el look and feel de la estructura cambiando la forma de desplegar los datos. Alcance Objetos: Transacciones. Interfaces: Win. el stock mínimo. Información: dar la posibilidad de aumentar la cantidad de información relacionada a la estructura de una transacción. el usuario puede ingresar una estructura digitando la misma cantidad de caracteres que en el anterior.Estructura ejemplo 20 . Como primer punto y para mantener el mismo formato de inserción de atributos utilizado en el editor anterior. detallando para cada uno de ellos. Una estructura tentativa que modele esta situación podría ser la siguiente: ArtId* ArtDsc TipArtId ArtStkMin ArtStkAct (ArtFchLta* ArtPrecLta) Figura 6 .

La estructura es desplegada como muestra la siguiente figura: Figura 9 . Simplemente se mejoró la forma de mostrar los datos de manera que sea más intuitiva su representación agregando información extra como por ejemplo el tipo de dato de cada atributo. y en caso que el mismo sea una fórmula como está formada. 21 . se verifica que el manejo de estructuras de transacciones con respecto a las versiones anteriores no cambió. descripción. se pide que el usuario ingrese los distintos tipos de datos asociado a los nuevos atributos y posteriormente la estructura es desplegada de la siguiente manera para la versión anterior: Figura 7 . En caso que se quiera agregar más atributos a la misma deberá ingresarlo manualmente antes de presionar <Enter> utilizando el botón derecho Set Key o directamente utilizando el asterisco.Al grabar la transacción.Nueva estructura De esta manera.Ingreso de una transacción (1) – GeneXus automáticamente asigna al primer atributo de cada nivel de la transacción la llave asociada al nivel.Antigua estructura Los pasos que se deben seguir son los siguientes: ArtId <ENTER>(1) ArtDsc <ENTER> TipArtId <ENTER> ArtStkMin <ENTER> ArtStkAct <ENTER> (ArtFchLta <ENTER><ENTER> <TAB> (1) ArtPrecLta) <SAVE> Figura 8 .

Copiar un conjunto de items. Setear como llave un conjunto de atributos. Para realizar cualquiera de las operaciones detallada en el paso anterior. facilitándole al usuario la manipulación de los mismos: • • • • • • Mover un conjunto de items.Movimientos disponibles 22 . Mostrar llaves y fórmulas con íconos diferentes. basta con seleccionar una lista de atributos y utilizar las opciones Special Copy o Move disponibles en el menú de opciones: Figura 10 – Menú Pop Up de Opciones En las siguientes secciones se especificarán las operaciones y movimientos disponibles.Además se agrega funcionalidad para manipular simultáneamente varios atributos. Drag and Drop de items. Movimientos La siguiente figura detalla los posibles movimientos a realizar: Figura 11 . Borrar un conjunto de atributos.

UP Y DOWN Se pueden seleccionar un conjunto de atributos y moverlos dentro de su nivel hacia arriba y hacia abajo utilizando las siguientes opciones: Move Up = CTRL + UP Move Down = CTRL + DOWN También es possible realizar dicha operación con el mouse directamente utilizando la funcionalidad Drag & Drop de Windows. o botón derecho y la opción Move (Figura 11) Move -> Up | Down | Right | Left COPIA La opción Copia permite copiar la definición de uno o varios atributos al portapapeles. Por ejemplo. Si desea ingresar un atributo sobre un subnivel ya existente deberá presionar Right (para que inserte un nuevo nivel) y posteriormente Left (para que cambie el atributo de nivel). OPERACIONES CON EL MOUSE Todas las operaciones que se pueden realizar con teclas son también posibles de realizar con el mouse. y se presiona Ctrl + C o desde la opción del menu “Copiar” se almacena la siguiente estructura: 23 . Estas se encuentran disponibles mediante “Drag & Drop” o botón derecho. Esto posibilita la inserción de atributos en cualquier parte de la estructura de la transacción. MOVIMIENTOS Se debe utilizar la opción Drag and Drop. mientras que presionando la opción Right el atributo seleccionado es insertado en la última posición del primer subnivel existente. En este caso se almacena internamente una estructura en formato XML con la lista de atributos seleccionado. siguiendo el ejemplo del la Figura 9 si se seleccionan los atributos ArtId y ArtDsc. desplegándose un menú pop up (Figura 10) con las diferentes opciones válidas. INDENTACIÓN (LEFT/RIGHT) Utilizando la tecla de función Tab y SHIFT Tab o las opciones del menú pop up Left/Right es posible indentar o no un atributo dentro de la estructura. Al presionar la opción Left el atributo seleccionado se elimina del nivel donde se encuentra y se ingresa sobre el nivel superordinado a continuación del subnivel donde se encontraba anteriormente. Al igual que en el punto anterior es possible realizar dicha operación con el mouse directamente utilizando la funcionalidad Drag & Drop.

SPECIAL COPY La opción “Special Copy” se utiliza para copiar el nombre del atributo en formato plano. Att = &Att: para la lista de atributos seleccionado copia al portapapeles la asignación de la variable al atributo. Al copiarla y pegarla sobre la estructura de transacciones se actualiza la vista con los nuevos atributos a partir del atributo seleccionado. Si el usuario lo desea podrá crear un archivo XML indicando la estructura que desea para la transacción.Copia de atributos Si realiza la operación “Paste” sobre cualquier objeto que no sea la estructura podrá verificar que se inserta líneas similares a la Figura 12. Por Ejemplo sin tengo seleccionado el atributo CliCod al utilizar esta opción se copia al portapapeles CliCod = &CliCod &Att = Att: para la lista de atributos seleccionado se copia al portapapeles la asignación del valor de cada atributo a la variable con el mismo nombre. Tecla rápida (shortcut): Space 24 .Special Copy • • Att: Copia el nombre de la lista de atributos seleccionados al portapapeles. Las opciones se despliegan en la siguiente figura: Figura 13 .Figura 12 . Siguiendo el ejemplo anterior: &CliCod = CliCod • Operaciones A continuación se detallan las operaciones válidas: EDIT Permite editar el nombre de un atributo existente Se debe seleccionar un atributo y presionar SPACE o haciendo doble click sobre el mismo.

En caso que se encuentre sobre la raíz de un nivel. En el siguiente ejemplo se presiona ENTER sobre el atributo ArtDsc. Si se encuentra posicionado sobre una atributo. se considera que se debe insertar un atributo perteneciente al mismo nivel por lo que a continuación se inserta un nuevo ítem para igresar el atributo. Para los primeros atributos de cada nivel no se realiza esta operación debido a que es obligatoria la inclusión de por lo menos un atributo clave por nivel. SET KEY Al seleccionar una lista de atributos y presionar la tecla ‘*’ (asterisco) se marca como clave la lista de atributos seleccionado. En caso que la cantidad de atributos secundarios sea mayor se infiere que el usuario quiere marcar la múltiple selección como clave. Al igual que el punto anterior si la operación se realiza sobre una selección múltiple solo aplica al primer atributo seleccionado. se considera que se tiene que insertar un atributo hijo. 25 . Como regla general se marca como clave en caso que la cantidad de atributos sin clave sea mayor que la cantidad de clave existentes en la selección. En caso que los mismos ya sean clave la selección es eliminada.FORMULA Permite ingresar la fórmula asociada al atributo seleccionado. como muestra la Figura 14. LIST Despliega la opción “Attribute Listing” sobre el atributo seleccionado. En caso de realizar una selección múltiple la operación se realiza para el primer atributo seleccionado. En caso que se realice una múltiple selección se considera la cantidad de objetos que tiene asociado una clave y dependiendo de esto es la operación que se realiza. CROSS REFERENCE Obtiene la referencia cruzada detallando los objetos en donde se encuentra. Tecla rápida (shortcut): * (asterico) INSERT NEW ATRIBUTE Se encarga de insertar un atributo en la estructura. por lo tanto se inserta un nuevo ítem donde se debe de agregar el nuevo atributo. Esta opción es sólo válida si se encuentra seleccionado un atributo. por lo tanto se inserta un ítem al principio del nivel. En caso que la cantidad de atributos sin clave sea mayor se considera que el usuario quiere eliminar todos los atributos seleccionados de la llave por lo que se elimina la llave para todos. por lo tanto se marcan como clave.

Si el ítem seleccionado es un atributo entonces se considera como un nivel paralelo. Interfaces: Win. Tecla rápida (shortcut): CTRL. Alcance Objetos: Transacciones.Insertar un atributo Tecla rápida (shortcut): ENTER INSERT LEVEL Inserta un nivel sobre la estructura. 26 . Si se está seleccionando un atributo éste es eliminado de la transacción. Work Panels. Reportes. Web Panels. + V Administración de preferencias Introducción En esta versión se realiza una reorganización de las preferencias en dos niveles. Tecla rápida (shortcut): ( (paréntesis izquierdo) DELETE Permite eliminar un atributo o nivel de la estructura dependiendo de donde se encuentre. Web. Tecla rápida (shortcut): CTRL. + C PASTE Permite pegar/insertar la definición de un atrbuto. Tecla rápida (shortcut): DEL COPY Permite copiar la definición de un atrbuto. Procedimientos. Por un lado se introduce un nuevo editor de propiedades para la manipulación de las mismas y se unifican también la administración de las mismas.Figura 14 . En caso que se esta seleccionando la raíz de un subnivel se eliminan todos los atributos subordinados. de lo contrario es un nivel subordinado (hijo). Lenguajes: Todos.

Cambio de valores por defecto de preferencias Preferencia Decimal Separator Date Format Year limit Date Format in CTOD Function Valor default Actual Point Default 0 ENG Nuevo valor default Language Dependent Language Dependent 40 Language Dependent 27 . Preferencias nuevas o preferencias que se eliminan o sustituyen. Cambio de descripciones de preferencias Descripción Actual Confirm Set Decimal Point Calculator on RBUTTON Report Viewer Maximized Report Viewer Always on Top Distributed Execution Images Directory Auto compress Web pages Show Connection Dialog Name Server Host Nueva Descripción Confirmation Decimal Separator Calculator on numeric fields Maximized Always on Top Protocol Static content base URL Auto compress http traffic(1) Show Connection Dialog in WinForms Application Server Host (1) . • • • • Cambios en las opciones de las preferencias (valores nuevos o que cambian). A continuación se detallan los cambios que afectan a los generadores. Reagrupación de las preferencias por categoría (nuevo agrupamiento).se agrega a nivel de objeto en procedimientos y reportes y sólo se muestra cuando la preference call protocol es HTTP. Cambios en las descripciones de las preferencias. Para cada propiedad modificada se detallan los cambios realizados. Diseño Nuevas Preferencias Significant Attribute name length Significant Table name length Significant Object name length Generador Java Se registran los siguientes cambios para el generador Java.Descripción Como consecuencia de la unificación de propiedades se registran los siguientes cambios.

gif Cambio en descripciones de las preferencias Preferencia Confirmation Descripción Anterior Confirm each action Do not confirm each action mm/dd/yy dd/mm/yy Yes No Yes No Descripción Actual Always prompt Never prompt English Spanish All Files No Files Alyaws Never Date Format Transactional Integrity Show Connection Dialog in WinForms Nuevos valores en preferencias Preferencia Decimal Separator Date Format Descripción Language Dependent ANSI (Y/M/D) Italian Portuguese F10 F12 Language Dependent ANSI (Y/M/D) Passing Last Char ‘+’ key.Initialize not referenced attributes Show Form Show Menu Bar Skip read only columns Add Button Bitmap Delete Add Button Bitmap Update Button Bitmap No After Start Event Yes Yes Yes Before Start Event No No gxconfirm_add.gif gxconfirm_dlt.gif gxconfirm_upd. Tab. Shift-Tab Enter. Shift-Tab None F2 F9 Yes No Exit Form None Yes No Installed ORB (1) Using stateful HTTP Using stateless HTTP Prompt Key Date Format in CTOD Function Field Exit Last Record Modal (Report Viewer) Esc Key Action Calculator on Numeric Fields Protocol 28 . Tab.

0 Fast First Row Encrypt URL parameters Http back-end base URL Help Mode Enable read-only pool Read-only pool size unlimited Maximum number of clients per connection Read-write pool size unlimited On Request SSP Server Directory On Request SSP Client URL Help Files Base URL Expand Dynamic calls Preferencias eliminadas Remote GXDB++ Location Generate makefile Read-only pool Read-write pool Multi tier location Authenticate users using LDAP Calculator on numeric fields Calendar on date fields Generate rebuild redundancy programs Show in TaskBar (SDI) Skip Read-Only Columns Automatic Remote Procedure Host Nuevas propiedades del DBMS Multi tier location Lock timeout Enable National Language Support Connect to server (1) Oracle Version (1) – A nivel de Data Store. Generador C/SQL Se implementan los siguientes cambios para el generador C/SQL. Nuevas preferencias First Record Next Record Previous Record Auto Center Objects in 0. Cambio de descripción de preferencias Descripción Actual Set Decimal Point Nueva Descripción Decimal Separator 29 .(1) – La opción es eliminada.

1 Windows Cambio en descripciones de las preferencias Preferencia Date Format Target Operating System Show Connection Dialog WinForms Descripción Anterior mm/dd/yy dd/mm/yy AIX Windows NT Yes No Descripción Actual English Spanish Unix-alike Windows Always Never in Nuevos valores en preferencias Preferencia Decimal Separator Date Format Descripción Language Dependent ANSI (Y/M/D) Italian Portuguese Language Dependent ANSI (Y/M/D) CGI ISAPI Automatic Date Format in CTOD Function Web Server Module Protocol Show Connection Dialog in WinForms Valores eliminados en preferencias Preferencia Target Operating System Descripción Not Specified Nuevas preferencias Reorganize Server Tables Encrypt URL Parameters Web Server Module Protocol 30 .Show Connection Dialog Show Connection Dialog in WinForms Cambio de valores por defecto de preferencias Preferencia Decimal Separator Date Format Date Format in CTOD Function Initialize not referenced attributes Show Connection Dialog in WinForms Pro*C version Target Operating System Descripción Actual Point Default ENG No Yes 2.1 Not Specified Nueva Descripción Language Dependent Language Dependent Language Dependent Yes Automatic 8.

Generador Visual Basic Se implementan los siguientes cambios para el generador Visual Basic.Extensions for Web Programs On Request SSP Server Directory On Request SSP Client URL Generate Developer menu MakeFile Help Files Base URL Check memory allocation Expand Dynamic calls Nuevas propiedades del DBMS Lock timeout Enable National Language Support User id User password Connect to server (1) Oracle Version (1) – A nivel de Data Store. Cambio de descripcionesde preferencias Descripción Actual Confirm Report Viewer Always on Top Report Viewer Always Maximized List of remote programs (ODBC) Main Web Project Name Show Connection Dialog Nueva Descripción Confirm Transaction Always on Top Maximized List of remote programs (ODBC/JDBC) Web Developer Menu Project Name Show Connection Dialog in WinForms Cambio de valores por defecto de preferencias Preferencia Date Format Date Format in CTOD Function Report Viewer Always On Top Maximum WorkFile Lines Show status bar Combo Style in Grid Show Connection Dialog in WinForms Descripción Actual Default ENG No Yes Combo Style in Grid Yes Nueva Descripción Language Dependent Language Dependent Yes 10000 Depending on type Combo Style Automatic object Cambio en descripciones de las preferencias Preferencia Date Format Descripción Anterior mm/dd/yy dd/mm/yy Descripción Actual English Spanish 31 .

Tab.Show Status Bar Field Exit Print Method Show Connection Dialog in WinForms Yes No Enter. Shift-Tab VB Native Printing Yes No Always Never Tab Enter Native Printing Always Never Nuevos valores en preferencias Preferencia Date Format Descripción ANSI (Y/M/D) Italian Portuguese F10 F12 ANSI (Y/M/D) Language Dependent Depending on object type None Passing Last Char Automatic Prompt Key Date Format Date Format in CTOD Function Show Status Bar Refresh Key Field Exit Show Connection Dialog in WinForms Preferencias eliminadas Visual Basic Version Generate Web Panels as Web Classes Nuevas preferencias Declare Local Referential Integrity (Access) Procedure and Report Generation Force Generation of Developer Menu Main Web Project Name Generation Mode Encription Key On Request SSP Server Directory On Request SSP Client URL Help Files Base URL Expand Dynamic calls Cambios específicos al generador Visual Basic Cliente/Servidor Cambio de valores por defecto de preferencias Preferencia Tables in Server Initialize not referenced attributes Descripción Actual No tables are in server No the Nueva Descripción All tables are in the server Yes 32 .

Cambio en descripciones de las preferencias Preferencia Confirm Transaction Descripción Anterior Confirm each action Do not confirm each action Descripción Actual Yes No Nuevas propiedades del DBMS Multi tier location Lock timeout Enable National Language Support User id User password Connect to server (1) Oracle Version (1) – A nivel de Data Store. El valor es “Passing Last Char” que permite cambiar el foco al próximo control válido al finalizar de llenar el campo actual. Cambio de descripciones de preferencias Descripción Actual Confirm Set Decimal Point Calculator on RBUTTON Report Viewer Maximized Report Viewer Always on Top GeneXus Grid Object Menu Bar Combo/List Box Style Show Connection Dialog Nueva Descripción Confirmation Decimal Separator Calculator on numeric fields Maximized Always on Top Text Grid Size Show Menu Bar Combo Box Style Show Connection Dialog in WinForms Cambio de valores por defecto en preferencias Preference Confirmation Decimal Separator Date Format Set Exact Esc Key Action Valor default Actual Do not Confirm each Action Point Default Off Exit level Nuevo valor default Never Prompt Language Dependent Language Dependent On Exit Form 33 . • La propiedad “Combo Style” aplica solamente a combos definidos dentro de subfiles. NOTAS: • La preferencia “Auto Skip” se elimina ya que a partir de ahora la propiedad “Field Exit” posee una opción que realiza lo mismo. Generador Visual Fox Pro Se realizan los siguientes cambios en el generador Visual Fox Pro.

Shift-Tab Never Automatic Field Exit Show Status Bar Show Connection WinForms Dialog in Cambios específicos al generador Visual Fox Pro Cliente/Servidor Cambio de descripciones de preferencias Preferencia Date Format Function in CTOD Descripción Actual English Nueva Descripción Language Dependent Cambio en descripciones de las preferencias Preferencia Confirmation Descripción Anterior Confirm each action Do not confirm each action Descripción Actual Always Prompt Never Prompt Nuevas preferencias Expand Dynamic calls 34 . Shift-Tab Enter.Color in read only fields Show Connection Dialog in WinForms Original Yes Grayed Default) Automatic (Windows Cambio en descripciones de las preferencias Preferencia Confirmation Descripción Anterior Confirm each action Do not confirm each action mm/dd/yy dd/mm/yy Exit Level Yes No Descripción Actual Always Prompt Never Prompt English Spanish Change Level Always Never Date Format Esc Key Action Show Connection Dialog in WinForms Nuevos valores en preferencias Preferencia Confirmation Decimal Separator Date Format Descripción Do not Prompt on First Level Language Dependent ANSI (Y/M/D) Italian Portuguese ANSI (Y/M/D) Passing Last Char ‘+’ key. Tab. Tab.

Específicas C# Use .Net Controls Application Namespace Compiler flags Controles del Form HTMLJava A continuación se detallan las nuevas propiedades disponibles en el formulario HTML. Generador C# Las preferencias que aplican al generador C# consta de: • • todas las preferencias que aplican a Cliente/Servidor.Nuevas propiedades del DBMS Lock timeout User id User password Connect to server (1) Oracle Version (1) – A nivel de Data Store. específicas al lenguaje. DISEÑO Nuevas Preferencias Objeto Columnas de Subfiles Subfiles Grupo Appearance Appearance Propiedad Format Rows Preferencias Eliminadas Objeto Atributos Columnas de Subfiles Grupo Appearance Appearance Propiedad Width Height Height RUNTIME Nuevas Preferencias Objeto Subfiles columnas de subfiles Grupo Appearance Appearance Propiedad BackStyle Format Preferencias Eliminadas 35 .

DB2 6000.0 Beep on errors Beep on Message Generate FOR UPDATE Clause Functions Call Protocol (1) When to Refresh (2) Use HTTP back-end Encrypt URL parameters Los valores posibles que pueden tomar las primeras cinco propiedades son: Descripción Use Model’s preference value Yes No (3) (1)– Solo se encuentra disponible si el objeto es main. (3) – No aplican a las cuatro últimas propiedades. File Name File Name Name 36 . Informix. Propiedades de Data Views Cambio de descripción Propiedad Table Name Descripción Actual Table name Nueva Descripción Name Aplica a Access. De lo contrario no se despliega y se utiliza el valor Internal. Oracle. (2) – Válida solo para Work Panels.Objeto Atributos columnas de subfiles Grupo Appearance Appearance Propiedad Width Height Height TitleBackStyle La columna Grupo hace referencia a la agrupación disponible en el editor de transacciones. Se utiliza en conjunto con la propiedad Automatic Refresh. Preferencias disponibles a nivel de objeto A continuación se detallan las preferencias que fueron implementadas a nivel de objeto a partir de esta versión: • • • • • • • • • Autocenter objects in 0. DBCFDIX. DB2 400. SQLServer AS400 Native.

AS400 Native. SQLServer.Library Database Location Location Index Name Index Name Name TAG Name Schema TAG Name Schema Name Schema Name DBFIDX Access. DB2/400. SQLServer 37 . DB2/400. DB2 6000. DBFIDX. DBFCDX. Informix. SQLServer. ORALCE DBFIDX Informix. Informix. AS400 Native. ORALCE Access. Oracle.

0. Controles (en caso de utilizar el nuevo editor de forms). • Valor por Defecto: Si se tiene seteado el valor por defecto. así como también las propiedades relacionadas a los controles de los objetos desarrollados con el editor HTML. Preferencias Nuevas o Eliminadas:Algunas de las propiedades eliminadas deberan setear su valor en un nuevo valor de alguna otra propiedad existente o nueva. A partir de esta versión se unifican todos los diálogos de administración de propiedades a este nuevo editor. Esto implica un cambio en la forma de guardar. Alcance Objetos: Transacciones. puede ocurrir que en ciertas propiedades los valores cambien al abrir la base de conocimiento con la nueva versión. acceder. RPG. Lenguajes: Cobol.Compatibilidad A continuación se detallan las consideraciones a tener en cuenta al abrir bases de conocimiento creadas con versiones anteriores a GENEXUS 7. Visual Basic. Web Panels. Win. Descripción Se unifica la edición de propiedades mediante la utilización del editor incluído en la versión 7. C/SQL.0. Work Panels. C# Interfaces: Web. fue introducido un nuevo editor de propiedades para administrar las propiedades relacionadas a la configuración de la Base de Datos. Java. editar y agrupar las definiciones de propiedades de: • • • Modelos. Si desea consultar a cerca de qué propiedades cambian podrá consultar la sección “Cambio de Valor Por Defecto” de cada generador. Agrupamiento de Preferencias El criterio de agrupación utilizado consiste en dividir las Preferencias en generales o específicas de una plataforma.5. Nuevas Descripciones: Al abrir un modelo con la nueva versión de GENEXUS. Reportes. Objetos. Procedimientos. Por ejemplo deja de existir la Propiedad AutoSkip y la Propiedad Field Exit agrega un nuevo valor para poder setear la opción Autoskip. El objetivo es dar al usuario mayor claridad y 38 . Visual FoxPro. las descripciones de las mismas son actualizadas automáticamente y esto no determina ningún cambio de comportamiento en el modelo. • • Editor de Propiedades Introducción En la versión GeneXus 7.

A continuación se muestra un ejemplo de configuración de propiedades para el generador Visual Basic Cliente/Servidor. Mediante la utilización de la tecla de función F2 (o botón derecho y “Alphabetic View”). podrá presionar nuevamente la misma tecla (F2). En caso de necesitar ubicar determinada propiedad en el árbol de preferencias. Esto es válido en caso que previamente 39 . el usuario tiene la posibilidad de ordenar alfabéticamente las propiedades no tomando en cuenta los grupos a los cuáles pertenece la misma. De esta manera se vuelve a la vista categorizada (“Categorized View”) al actualizarse el árbol de propiedades. Figura 15 – Configurando un modelo Cliente/Servidor Funcionalidad A partir de esta versión el editor de propiedades tiene la capacidad de guardar su estado anterior. Esto permite que al abrir el objeto nuevamente se “recuerde” (expandiendo/contrayendo) el estado del árbol de propiedades. posicionándose en la propiedad seleccionada en el paso anterior.facilidad de uso.

el usuario tiene la posibilidad de visualizar/ocultar el asterisco que permite actualizar al valor por defecto de las propiedades. 40 . Los valores que puede tomar la columna “Default” son los siguientes: Valor Descripción Se toma el valor por defecto Indica que el usuario cambió explícitamente el valor de la propiedad La actualización de las propiedades no se realiza hasta que el usuario presione el botón “OK”. Con la tecla de función F3 (o botón derecho y “Hide Default Column”). Para moverse entre las propiedades es posible utilizar la tecla Tab y Shift Tab.se encuentre expandido el árbol en el cuál se encuentra dicha propiedad.

se abre un diálogo con las propiedades del mismo. propiedades generales. A continuación se detalla un ejemplo de configuración de propiedades para un ComboBox. Al realizar doble click o presionar la tecla Enter sobre cualquier control. propiedades específicas del control (en caso que aplique).Configuración de propiedades de un ComboBox Editor de Pictures Introducción El objetivo de es facilitar la creación de pictures (máscaras o formatos de edición) 41 . El orden de aparición de propiedades es el siguiente: • • • propiedades relacionadas con la posición del control en el formulario.Nuevo Editor de Forms Se unifica también el manejo de propiedades para el nuevo editor de forms. Figura 16 . A partir de esta versión se utiliza el nuevo editor para configurar las propiedades de cualquier objeto creado con el nuevo editor de Forms.

Definición de pictures Para poder definir una pictures. donde se muestran las opciones disponibles dependiendo del tipo de datos que se haya seleccionado al definir el atributo/variable. Descripción Las pictures son máscaras o formatos de entrada sobre los datos. se permitía la edición de las mismas de forma manual. se debe utilizar el TAB Advanced del dialogo de creación/edición de atributo/variable. Se integra en esta versión a la definición de atributo/variable el poder seleccionar “pictures preestablecidas”. siendo éstas las de uso más común y que no dependen del generador utilizado. Dentro del mismo se encuentra el Tag “Picture”. Propiedades Numéricos Las siguientes propiedades se aplican al tipo de dato Numeric. Work Panels. 42 . Web Panels y Reportes. En versiones anteriores.sobre los atributos o variables de Transacciones.

5 Texto que desea colocarse anteriormente al número.50 123.99 ZZZZ.00 456. pero el número 0 si.00 0000.99 OUTPUT 456 456. INPUT N(7.99 OUTPUT 0 0. pero algunos símbolos pueden provocar un comportamiento no 43 . y el número 0 tampoco. N(7. con Left Fill = Blank.5 1. • Blank when Zero: los ceros no significativos no se muestran.2).Left Fill Indica como han de mostrarse los ceros no significativos (ceros a la izquierda) del número. Ejemplo: tomando el ejemplo anterior (visto en la propiedad Left Fill).2) Z. • Zero: se muestran los ceros no significativos. El separador de miles se representa siempre por una coma. Valores: • Blank: los ceros no significativos no se muestran. y con el lenguaje del sistema en inglés: INPUT N(7.2) ZZZ9. pero su verdadero valor lo toma de la Property del modelo: ‘Decimal Separator’ que por defecto es dependiente del lenguaje del sistema.00 True False Prefix 1123. Valores: • True: con separador de miles.00 123.5 123.50 Blank Blank when zero Zero Thousand Separator Determina si se desea incorporar separador para los miles o no. • False: sin separador de miles.99 ZZZ9.5 0123. Para esta definición. Ejemplo: considérese la definición de un numérico de largo 7 y 2 decimales.ZZ 9999.123. cuando se escribe la picture. se muestra como se define la picture y cual es la salida para una serie de valores.ZZ9.5 1123. Cabe aclarar que no se realiza ningún control sobre el texto escrito (si la plataforma utilizada lo soporta o no).

Alfanuméricos La siguiente propiedad se aplica a los tipos de datos Character y VarChar.esperado. Case Indica la forma en que ha de mostrarse el texto. y en la que se almacena Valores: • None: mostrar y almacenar el texto como se ha escrito y permitir la combinación de mayúsculas • Upper: mostrar y almacenar el texto todo en mayúsculas. 44 . (por ejemplo en Visual Basic no se admite el símbolo ! como prefijo). El siguiente diálogo es aplicable al tipo de dato DateTime. Ejemplo: INPUT C(10) None False @! OUTPUT “Hola Mundo” Hola Mundo HOLA MUNDO Fecha y Hora El siguiente diálogo es aplicable al tipo de dato Date.

• Hour and minutes (hh:mm): mostrar horas y minutos. Estos campos ahora aparecen deshabilitados. independientemente de cómo se edite. el campo se encuentra en 0. minutos y segundos. se modificaban los campos de largo y decimales para formar la picture. Ejemplo: INPUT Date None Year with two digits (99/99/99) Year with four digits (99/99/9999) Hour Format Determinar el formato de la hora. si se selecciona Date Format = Year with four digits (99/99/9999). el campo de largo se inicializa en 10. INPUT DateTime Only Hour (hh) Hour and minutes (hh:mm) Hour. minutes and seconds (hh:mm:ss): mostrar horas. la fecha siempre se almacenará con 4 dígitos en el año. • Hour. Es decir.Date Format Determinar el formato de la fecha (básicamente si se desea mostrar con 2 o 4 dígitos para el año. si Date Format = None.).0 inclusive para el tipo de dato DateTime. minuts and seconds (hh:mm:ss) 99 99:99 99:99:99 OUTPUT 123699 12 12:36 12:36:59 99/99/99 99/99/9999 OUTPUT 122501 12/25/01 12/25/2001 45 . Valores: • None: se muestra la fecha con el formato por defecto del generador (que es el año con dos digitos) • Year with two digits (99/99/99): mostrar la fecha con dos dígitos en el año • Year with four digits (99/99/9999): mostrar la fecha con cuatro dígitos en el año. Valores: • Only hour (hh): mostrar solamente la hora. NOTA: cabe aclarar que. Si se edita con 2 dígitos en el año entonces el siglo se completa dependiendo de la preference “First Year of the 20th century” Hasta la versión 7. y los valores son inicializados a través de los valores tomados de la picture.

Descripción Por defecto.) puedan ser utilizados controles ActiveX en la definición de formularios. 46 . Nuevo Editor de forms – Activex Introducción La característica fundamental del nuevo editor de forms (o formularios) es que está construido sobre un contenedor de controles ActiveX. Sin embargo. botones. todos los forms son creados con el editor anterior que no soporta ActiveX. en los Work Panels es posible utilizar este nuevo editor. Esto permite que además de los controles estándar (atributos.Observaciones En el caso de Objetos Web las pictures numéricas aplican únicamente en campos de solo lectura no así en campos de entrada. etc. Alcance Objetos: Work Panels Lenguajes: Java(*) – Visual Basic – Visual FoxPro Interfaces: Web (*) El soporte de ActiveX no aplica a Java. Para ello se debe configurar la propiedad de los mismos ‘Use New Form Editor’ en su valor ‘True’.

Una vez que los controles han sido agregados al form. El movimiento de los controles dentro del form. para que éste elija cuál es el que 47 . Si además se presiona la tecla de Mayúscula (Shift) se ignora el grid mientras se realiza el movimiento. también puede realizarse utilizando las flechas del teclado. Controles en general Para insertar controles en el form. Controles ActiveX El botón correspondiente a los controles ActiveX es el último de la paleta: Antes de insertar el control. el control es creado en forma inmediata en el form. A diferencia del editor anterior. Nota: Se sugiere utilizar este editor únicamente en el caso en que se desee incluir controles ActiveX en el formulario. la selección y el movimiento. funcionan exactamente igual que en el editor anterior. al abrirlo nuevamente se abrirá presentando el nuevo editor.Luego de esto se debe salvar y cerrar el objeto. se utilizan los correspondientes botones de la paleta de controles. al presionar uno de estos botones. GeneXus presenta al usuario la lista de todos los controles instalados y registrados en la máquina.

48 . Una vez elegido.desea insertar. el control es agregado al form. Edición de Propiedades Junto con este editor existe un nuevo editor de propiedades para los controles.0). En este ejemplo se eligió un control para manejar un calendario (Calendar Control 8.

com. No se soporta por el momento parámetros en la definición de los eventos de los controles ActiveX. se guardan en un *. Ejemplos Los ejemplos demuestran cómo insertar controles de tipo Treeview y Progressbar en un Work Panel así como su funcionamiento. Puede obtener documentación y una base de conocimiento que ilustra su funcionamiento bajo esta URL: http://www. además del *. 49 .31.uy/cgi-bin/webartech/hdcver03. Actualmente solo se puede especificar y generar los ActiveX que tienen la capacidad de salvarse "as text".481 Select object Introducción A partir de esta versión se modificó el selector de objetos.Al dar doble click o Enter sobre algún control. Descripción Al seleccionar el selector de objetos se ofrece una pantalla como la que se muestra a continuación. pues esta capacidad es opcional (En Visual Basic estos son los ActiveX que. permitiendo ver las descripciones de los objetos en forma completa.frx). Hay controles que no lo soportan. Consideraciones generales No se encuentra implementada la conversión de forms desde/hacia este editor.artech. cuando se salvan.frm. Los siguientes ActiveX no pueden ser utilizados por el momento: ActiveMovieControl object Microsoft NetShow player RealVideo ActiveX Control (32 bits) object.0. se abre un diálogo con las propiedades del mismo.exe?S.

permitiendo abrir uno desde este diálogo. una vez modificado conserva esa dimensiones hasta una próxima modificación. 50 . Dentro de los objetos que muestra se han agregado los folders.Figura 17 – Selector de Objetos A su vez se permite modificar el tamaño de la ventana permitiendo ver en forma completa las descripciones de los objetos.

Web Panels. Interface: Win. Procedimientos. Menues.:i Figura 18 – Búsqueda Nuevo “View” de Objetos Introducción A partir de esta versión se modifica la vista asociada a todos los objetos GeneXus. Data Views. Alcance Objetos: Transacciones. Lenguajes: Todos. 51 . Web. Menu Bars.Patrones de búsqueda Se permite buscar por el inicio de la descripción de los objetos. la forma de hacerlo es: <coma><dos puntos><pattern> como por ejemplo: . principalmente para mejorar la interfaz haciendola mas clara y amigable al usuario. Reportes. Work Panels.

A partir de esta versión. Transacciones Las transacciones permiten definir los objetos de la realidad. permitiendo que los componentes de un objeto sean mas fácilmente accesibles lo que mejora el trabajo de definición de los mismos. 52 . Se debe detallar los atributos pertenecientes a la transcción. Form: se detalla el formulario con interface GUI asociado a la estructura detallada en el punto anterior. niveles que la componen y clave para cada uno de los niveles especificados (Editor de Transacciones). A continuación se detallan los distintos “Tabs” que componen el objeto: Figura 19 . Subroutines: Subrutinas asociadas al objeto.Transacciones • Structure: En esta sección se ingresa la estructura de la transacción. • • • • • • • Al abrir un objeto Transaccion. también es posible generar transacciones disponibles para aplicaciones Internet (transacciones en el Web).Descripción En esta versión se cambia el “view” de todos los objetos GeneXus. el Tab por defecto que se selecciona es la estructura en diseño. Los Styles tienen el mismo comportamiento de las transacciones no main. Help: sección específica para ingresar la ayuda. De lo contrario (prototipo/producción) se abre en el Tab Form (GUI) si el generador principal es Win y Web Form si el generador principal es Web. En caso que el objeto sea main se abre el Form correspondiente asociado a ese ambiente. Documentation: sección especifica donde se ingresa la documentación relacionada al objeto. En este caso se separan las distintas partes que conforman la transacción en distintas vistas. Si se selecciona botón derecho y Edit HTML Source se despliega el fuente HTML asociado. Web Form: se detalla el formulario con interface WEB (HTML) asociado a la estructura definida. A continuación se detallan los cambios realizados. Para permitir tener una representación más intuitiva así como también una manera de separar los distintos aspectos que componen un objeto. Events: Agrupa los eventos asociados. Rules: En este tab se agrupan reglas relacionados a la transacción. obteniendo toda la potencia de este tipo de objetos para el ingreso de datos. donde se toma en cuenta el ambiente Default.

Work Panels Los objetos Work Panles permiten definir consultas interactivas a la base de datos. En esta sección el usuario podrá ingresar código HTML extra. Figura 21 . Por un lado los procedimientos tienen la posibilidad de extraer información y/o actualizar la base de datos (procesos batch). Subroutines: agrupan las rutinas asociadas al objeto.Work Panels 53 . Conditions: detalla las condiciones aplicadas. Web Panels Los Web Panels son objetos que permiten construir páginas WEB dinámicas que interactúan con la base de datos. Help: ayuda asociada al objeto.Reportes y Procedimientos A continuación se detallan los distintos Tabs que componen dichos objetos: • • • • • • Layout: especifica el formato relacionado a la salida y también la lógica involucrada para la obtención/actualización de la información. Figura 22 . Events: especifican los eventos relacionados al Web Panel. Rules: en esta sección se detalla las reglas asociado al objeto. Documentation: sección específica donde se ingresa la documentación relacionada al objeto.Reportes y Procedimientos Los reportes y procedimientos definen procesos no interactivos de extracción y/o actualización de datos. Conditions: detalla las condiciones aplicadas. Figura 20 . Rules: se detallan las reglas involucradas en la obtención de la información. Subroutines: agrupan las rutinas asociadas al objeto. Si se selecciona botón derecho y Edit HTML Source se despliega el fuente HTML asociado.Web Panels A continuación se detallan los distintos Tabs que lo componen: • • • • • • • Web Form: Detalla el formulario en formato HTML asociado.Como contrapartida los reportes están encargados de recuperar la información a partir de los datos almacenados sin tener la posibilidad actualizarlos. Help: ayuda asociada al objeto. Documantation: documentación asociada al objeto.

Data Views A continuación se detallan los Tabs relacionados: • • Structure: especifica la estructura relacionada al data view. Menues Los menues están encargados de organizar al resto de los objetos y por lo general marcan los puntos de entrada a la aplicación. Conditions: detalla las condiciones aplicadas. Documentation: documentación asociada al objeto. Subroutines: agrupan las rutinas asociadas al objeto. Events: especifican los eventos relacionados al Work Panel. Documentation: documentación asociada al objeto. Menu Bar Los objetos MenuBar permiten que los formularios hagan uso de su propia Menu Bar o Tool Bar. Help: ayuda asociada al objeto. Documentation: documentación asociada al objeto. Figura 24 . NOTA: Sólo son válidos para los generadores gráficos. Rules: En este tab se agrupan reglas que aplican al Work Panel. 54 . Figura 23 – Menues Consta de los siguientes Tabs: • • • Structure: Detalla la estructura del menú. Data Views Los Data Views son objetos que permiten manejar archivos externos como si pertenecieran a la Base de Conocimiento.A continuación se detallan los distintos Tabs que lo componen: • • • • • • • Form: Se detalla el formulario GUI asociado. detallando atributos e índices relacionados así como también plataformas. Help: ayuda asociada al objeto.

Figura 25 . Help: ayuda asociada al objeto. 55 . Work Panels y Web Panels: Se eliminan los Tabs Rules. Visual Basic. Alcance Objetos: Transacciones. Events: Permite ingresar eventos utilizados en el objeto. C#.0. y Conditions. Java. Consideraciones En caso que la base de conocimiento tenga objetos privados se eliminan ciertos tabs dependiendo del objeto.5 de GeneXus.Menu Bar A continuación se detallan los Tabs relacionados: • • • • Structure: especifica la estructura relacionada del Menu Bar.0 en: http://www. Work Panels y Reportes. A continuación se detallan los distintos Tabs que son eliminados para cada objeto. Reportes y Procedimientos: Se eliminan todos los tabs. Lenguajes: Visual FoxPro. Documentation: documentación asociada al objeto. • • • Transacciones: Se eliminan los Tabs Rules. Subroutines. También se pueden especificar este tipo de colores en el "Control Info" de los atributos. Events y Subroutines.com.31. por lo que resulta importante entonces definir en la documentación del objeto que parámetros y de que tipo son los que recibe para su correcta utilización. NOTA: Sólo son válidos para los generadores gráficos. Si desea obtenér más información a cerca de Objetos Privados podrá consultar las Relase Notes de GeneXus 7.exe?S.uy/cgi-bin/webartech/hdcver03. por lo cual no se tiene el conocimiento de los parámetros que recibe el objeto. Data Views y Menu Bar las consideraciones anteriormente mencionadas no aplican. debido a que no es posible acceder a esas secciones en caso que el mismo sea privado.artech. Es importante resaltar que en el modelo donde se consoliden no estarán disponibles las reglas.275 Colores del Form Grafico Introducción A partir de la versión 7. Para los objetos Menu. Events. C/SQL. en las propiedades de los controles del form (sólo modo gráfico) se pueden especificar colores dependientes del esquema de colores de Windows. El color definitivo a utilizar se recalculará en función del esquema de colores en tiempo de ejecución.

Ahora es posible especificar colores dependiente del esquema de Windows. También se incluye una paleta para la selección de colores que no dependan del esquema de Windows de la máquina. al ejecutar nuevamente la aplicación.Colores personalizados Compatibilidad con versiones anteriores de GeneXus Al leer objetos salvados con versiones anteriores o al consolidar objetos distribuidos con versiones anteriores se hacen las siguientes conversiones: Controles del Form 56 . El color definitivo a utilizar se recalculará en función del esquema de colores en tiempo de ejecución. si el usuario final cambia el esquema de Windows de colores.Interfaces: Win Form Descripción En las propiedades de los controles dentro del form gráfico (incluyendo el propio Form) y Control Info de atributos se cambió la paleta para la selección de colores.Colores del sistema Con esta opción todas las pantallas generadas de la aplicación respetan el esquema de colores de Windows y cambian dinámicamente (vale decir. la misma vuelve a tomar los colores predeterminados desde Windows). Figura 1 . Figura 2 .

background = "Window Background" (COLOR_WINDOW).255)) 4) Atributo (se modifica el ForeColor del control del form. background = Blanco (RGB(255.5 o superior se pierde la información de colores. text.0)). sólo se realizan las conversiones arriba mencionadas en caso de que ambos colores coincidieran con los predeterminados. background = Gris default en Win 95/98/NT (RGB(192.208.200)) 3) Atributo (control con colores por defecto): foreground = Negro (RGB(0.1. se convierte a "Window Text".) es el mismo utilizado por el esquema de colores estándar de Windows (ya sea para Windows 95/98/NT o para Windows 2000). 4) Atributo (control en form): foreground = Marrón. se mantiene el BackColor): foreground = Marrón. 1.255.255. background = Blanco (RGB(255. background = "Window Background" (COLOR_WINDOW).0) (verde).Si el color (RGB) que tenía el control (edit.192)) 2) Form: foreground = Verde (RGB(0. En caso contrario. columnas subfile. Si el atributo es distribuido con versiones anteriores y consolidado utilizando la versión 7. background = Gris default en Win 2000 (RGB(212. Consideraciones • Al consolidar en 7.0. 2. Si no es el color predeterminado se mantiene el mismo color. background = "Button Face" (COLOR_BTNFACE) 2) Form: foreground = RGB(0. no se convierte ninguno de ellos. etc. entonces se asume que era un color estándar y se sustituye el RGB por el color estándar correspondiente a ese control/propiedad.2. se convierte a "Window Background".0)). Esto se debe a que ya no se exportan los colores “viejos”.255)) Quedan convertidos a: 1) Form: foreground = "Window Frame" (COLOR_WINDOWFRAME).0. Control Info de Atributos La conversión de los colores definidos en el Control Info del propio atributo (no del control) se comporta de la siguiente manera: 1. Si el color de "foreground" coincidía con el color predeterminado para el esquema de colores estándar (Black). background = "Button Face" (COLOR_BTNFACE) 3) Atributo (control en form): foreground = "Window Text" (COLOR_WINDOWTEXT).0 un XPW exportado con la versión 7. Ejemplo: Se tenían los siguientes controles: 1) Form: foreground = Negro (RGB(0.255. se realizan las siguientes conversiones: 1. 57 .255. Si el atributo es salvado con versiones anteriores y abierto (o especificado) utilizando la versión 7.5.192.5. Si el color de "background" coincidía con el color predeterminado para el esquema de colores estándar (White).0)).

Descripción Al momento de crear un modelo de prototipo o producción se muestra la siguiente pantalla: Cuando no existe una base de datos para el modelo se genera la siguiente pantalla: Cuando existe un impacto pendiente. se genera la siguiente pantalla: 58 .Diálogos Diálogos de creación e impacto Introducción A partir de esta versión se modificaron los diálogos de creación de un modelo. creación de la base de datos e impacto de la base de datos.

A partir de esta versión ese contenido se almacena en XML. formato estándar para el intercambio de documentos estructurados. ahora el mismo pasa a ser XML. De esta forma se muestra la información de consolidación en un documento HTML que se crea dinámicamente con la información de los objetos consolidados. 59 . se crea automáticamente un archivo comprimido de extensión XPZ (XPW Zipped) con un archivo XML dentro conteniendo la información de los objetos y/o atributos distribuidos. Distribución Una vez seleccionado los objetos a distribuir e ingresado el nombre del archivo de distribución. Se han agregado además algunos controles en tiempo de consolidación como el de fechas de modificación y preferences del modelo. por ejemplo. Descripción El archivo de exportación XPW usando hasta ahora contenía toda la información de los objetos distribuidos en forma estructurada. También ha sido modificado el log de consolidación creándose ahora a partir de un XML.XML Por ejemplo. El archivo comprimido se crea con el nombre: <Distribution Name>. D:\Distr\MyExport o seleccionarlo desde el botón de búsqueda). supongamos que se exporta un conjunto de objetos y en el Distribution Name se le pone como nombre MyExport (no se requiere poner extensión y además se le puede especificar el path donde guardar el archivo. También se almacena en este formato toda la información de consolidación de los objetos. El formato usado hasta el momento (XPW) era un formato propietario de ARTech.XPZ y los xml internos con nombre: <Distribution Name>_<nro de archivo>. permitiendo de esta forma poder visualizar el log de consolidación y las estadísticas en formato HTML.Distribución y Consolidación Introducción A partir de la versión 7.5 de GeneXus se modifica el formato de los archivos de exportación del Knowledge Manager (KMW). Los usuarios contarán con un formato conocido que puede ser procesado por una gran cantidad de herramientas hoy en día.

xpz en el directorio especificado (si no se especifica un directorio se genera en el directorio de la KB). 60 . al abrir el archivo con WinZip aparecerá una pantalla con el comentario ingresado. Si se abre ese archivo con una herramienta tipo WinZip muestra que contiene un archivo con nombre MyExport_1.Figura 3 – Distribution Name GeneXus genera un archivo llamado MyExport.xml Figura 4 – Archivo de exportación XML TIP: Si al archivo de distribución XPZ se le ingresó un comentario en la sección “Descripción” (ver Figura Figura 3 – Distribution Name).

) para seleccionar un archivo de distribución se posiciona en el directorio especificado en el “Distribution File”. De esta forma se podrá consolidar este archivo en versiones 7. por un tema de performance a la hora de consolidar. Encriptación Cuando se exporta un conjunto de objetos en el cual alguno es Privado. se incrementa el sufijo en uno y se vuelve a intentar. si no existe se inicia en el directorio de la KB. XPZ 2.. Siguiendo con el ejemplo anterior. Si no se marca la opción Append. XML 61 . Consolidación Una vez seleccionado el “Distribution File” en el diálogo de consolidación. el KMW recorre el contenido del archivo XPZ y consolida cada uno de los archivos internos. XPW XPZ Cuando se selecciona un archivo con este formato. Es conveniente distribuir los privados en forma separada de los no privados. Si se marca la opción Append. se puede ver en el campo “Type” el tipo de archivo que se va a consolidar (ver Figura 5 Diálogo de Consolidación). generando ciertos errores en el Consolidation Log de las versiones anteriores. al salir del campo se habilita la sección Distribute Options para poder agregar la nueva distribución al archivo existente. se crearía un archivo MyExport_2. por tanto los archivos generados dentro del XPZ no podrán ser procesados como XML. el archivo se reemplaza con la nueva distribución. Si ya existe un archivo con ese nombre dentro del zip. Es posible consolidar los siguientes tres formatos de documentos: 1. se crea un nuevo archivo XML dentro del mismo ZIP.DISTRIBUTE OPTIONS Append to file Si en el Distribution Name del diálogo de distribución se ingresa el nombre de un archivo que ya existe. XML 3. Cabe recordar que aquellos objetos que usen funcionalidades de la nueva versión no podrán ser consolidados.0 o anteriores de GeneXus.zip.xml en el archivo MyExport. siempre y cuando tengan el formato XML adecuado. todo el archivo de distribución es encriptado. XPW Format Mediante esta opción es posible distribuir objetos con el formato anterior de exportación (XPW).. TIP: El botón de búsqueda (.

Para este caso se puede descomprimir y consolidar directamente el XML. Además. al intentar consolidarlo aparece el siguiente mensaje: Error: Parsing XML file <archivo dentro del zip> -> syntax error. NOTA: También es posible consolidar archivos con extensión ZIP. En caso de que no se corresponda. desde el Explorador de Windows y soltarlo (Drop) en GeneXus para ser consolidado. para cada uno de ellos.En algunos casos puede ser necesario consolidar algún XML en particular de todos los que contiene el XPZ. y se comporta igual que el XPZ. Figura 5 . sólo puede contener dentro un XML correspondiente a una distribución. el nombre. tipo de objeto y descripción. con cualquiera de los formatos anteriores. El KMW de GeneXus cuando se le especifica que se quiere consolidar un XPW lo que hace es llamar al conversor el cuál le devuelve un archivo XML temporal que luego GeneXus consolida. TIP: Es posible arrastrar (Drag) un archivo. XPW Para poder tener compatibilidad con el pasado se creo un componente que es el encargado de realizar la conversión de un archivo XPW a un archivo XML. 62 . es decir.Diálogo de Consolidación Presionando el botón “Advanced” ser puede ver la lista de objetos a consolidar mostrando. Por tanto la consolidación de XPW es más lenta que la de XML o XPZ. habilita el “Adapt From”.

Si hay alguna diferencia. Control de Preferences A partir de la versión 7.Figura 6 . antes de consolidar 63 .Lista de objetos a consolidar CONTROLES AL CONSOLIDAR Control de Fecha de Modificación Se agrega una nueva opción: “Do not overwrite newer objects” (ver Figura 5 Diálogo de Consolidación) para no sobrescribir objetos con fecha de modificación más nueva. Por información más detallada acerca de esta nueva facilidad consulte: Versión y Fechas de Objetos.5 en el archivo de exportación se incluyen las preferencias de Diseño “Function” y “Significant Attribute/Objact/Table Name length”. Al consolidar se controla si la KB destino difiere de alguno de estos valores que vienen en el archivo de exportación.

que se crea en la consolidación en el directorio del usuario. etc. en el log se muestra al principio que el modelo no cambio los valores pero con un Warning mostrando las diferencias (ver Figura 7 . en el log aparece el error de que el modelo no fue consolidado mostrando las diferencias. es XML. por cada tipo de objeto. Figura 7 .Log de Consolidación ESTADÍSTICAS Presionando el botón “Statistics” del diálogo de consolidación es posible ver en formato HTML las estadísticas del resultado de la consolidación: objetos nuevos..Log de Consolidación). no consolidados (con sus errores correspondientes). Si el usuario confirma. Si el usuario cancela.se le presenta al usuario una pantalla mostrando las mismas preguntando si de todas formas desea consolidar o no. no cambiados. modificados. 64 . Esto permite que el log de consolidación sea mostrado en formato HTML como se puede ver en la siguiente figura. CONSOLIDATION LOG El formato del archivo “GXIMPORT”.

el usuario podrá definir un XLS para ver el contenido de la exportación en un formato personalizado. Por ejemplo. o abrir el archivo con Internet Explorer 5.<Info> <Name>Clientes</Name> <Description>Clientes</Description> </Info> <ObjInfo /> + <PrivateObjInfo> + <Documentation> + <Help> <LastUpdate>2001-03-19 09:52:00</LastUpdate> + <Structure> .<Transaction> .Estadísticas Ejemplos Si bien el contenido y estructura del XML es análoga al XPW usado hasta ahora.<![CDATA[ CliCod* CliNom CliDir CliSexo ]]> + <Variable> + <Variable> + <Variable> + <Variable> + <Variable> + <Variable> + <Form> + <HTMLForm> 65 .0" encoding="UTF-7" ?> . el hecho de tener la información con este formato tiene varias ventajas.5 o superior.<GXObject> . Con esto es más fácil localizar un área en particular de la exportación. el cual tiene su propio XLS para ver el contenido del XML en forma de árbol. En el ejemplo de abajo se muestra la información de la Transacción Clientes y se ignora lo demás: <?xml version="1.Figura 8 .<ExportFile> + <Model> + <KMW> .

<![CDATA[ Parm( &Clicod . Diagrama de Impacto Al realizar una impacto de la base de datos se muestra un diagrama como el siguiente: 66 . subtipos y objetos se muestran como HTML. a las definiciones de los atributos. etc. por ej. navegación y los listados de tablas. Listados en XML Introducción Los diagramas de impacto. &Mode ).. a las tablas desde los diferentes diagramas y listados. que tablas accede. Se puede analizar la navegación de un objeto analizando el XML. Al poseer links se permiten acceder a los objetos GeneXus. ]]> </Rules> </Transaction> </GXObject> + <Attributes> + <GXObject> + <GXObject> </ExportFile> Si además de visualizar la estructura se desea capturar la información de la exportación en una base de datos se podrá usar el XMLReader para acceder al contenido del xml. CliCod = &Clicod if Update or Delete. Todos los links que se pueden realizar en los listados y en las navegaciones también aceptan botón derecho con las opciones pertinente a cada caso. Noaccept( CliCod ) if Update or Delete. atributos. Descripción Los diagramas en se muestran como HTML lo cual tiene las siguientes ventajas: Permite la navegación a los objetos de la base de conocimiento mediante links. Se puede personalizar los listados. A su vez los diagramas tienen la facilidad de permitir ocultar o mostrar información. Consideraciones • No es posible consolidar Objetos Privados distribuidos con versiones anteriores que estén encriptados en el XPW.<Rules> .

luego muestra información del generador. Version Form Class Program Name Parameters Visual Basic 7_5_RC3.Table CLIENTES conversion procedure CLIENTES is new Table Structure Attribute CliId CliNom CliDir CliTel PaisCod IvaCod Type N(4) C(30) C(30) N(6) C(4) N(4) Value Taken From El símbolo de una llave indica que el atributo es clave y el símbolo de sol . Table CLIENTES conversion procedure CLIENTES needs conversion Table Structure Attribute CliId CliNom CliDir CliTel PaisCod IvaCod CliSexo Type N(4) C(30) C(30) N(6) C(4) N(4) C(1) Value Taken From CLIENTES CLIENTES CLIENTES CLIENTES CLIENTES CLIENTES Null Diagrama de Navegación El listado de navegación muestra la información del objeto. si esta requerida su generación. indica que el atributo es nuevo cuando se esta realizando una reorganización como lo muestra el siguiente diagrama. También muestra información de las tablas que accede y los prompts llamados. Transaction Clientes Status Name Description Status Clientes Clientes Generation is required Environment Environment Spec.017 Graphic TClientes 67 .

indicando la descripción.IvaCod Delete from CLIENTES Referential integrity controls on delete: • LLAMADOS ( LlaCliId ) • INSTALAC ( InsCliId ) • CONTRATO ( ContCliId ) • FACTURA ( CliId ) CLIENTES CLIENTES Prompts Table TRATAIVA PAISES CLIENTES Program Gx00E0 Gx00B0 Gx0010 In Parameters Out Parameters IvaCod PaisCod CliId Listado de Tablas El listado de tablas muestra la información de los atributos.CliDir.CliNom.Levels Level CLIENTES • CLIENTES ( CliId ) o o PAISES ( PaisCod ) TRATAIVA ( IvaCod ) Insert into Attributes to update : CliId. Con el Con el símbolo de llave se indica que el atributo es inferido por el grupo de subtipo. A su vez clickeando en cada uno de los atributos se puede acceder a su definición.CliTel.0) D N (4.CliDir.IvaCod Update on Attributes to update : CliNom.CliSexo.CliSexo. el tipo. Table Instalac Name Description ID Instalac Instalaciones 9 Table Structure Name InstNro InstFch InsCliId Description Nro.CliTel. Seleccionando la tabla se puede acceder a la definición de la misma mostrando los índices que posee. se indica que el atributo es clave de la tabla.CliId 68 . si ellos son fórmula.PaisCod. símbolo de flecha El símbolo de indica que el atributo es fórmula y muestra su composición.PaisCod. Instalacion Fecha Instalacion InsCliId Type N (4.0) Formula Subtype of CliInst. y si son subtipos.

0) N (4. Table Instalac Name Description ID Instalac Instalaciones 9 Table Structure Name InstNro InstFch InsCliId EqId Description Nro. Instalacion Fecha Instalacion InsCliId Equipo Codigo Type N (4.EpPlazoGar) CliInst. InstNro Subordinated To Id 1 6 Table Clientes Equipos By: InsCliId EqId Superordinated To Id 3 5 Table Contrat1 Llamado1 By: InstNro InstNro Associated Prompts GX0090 Listado de Atributos El listado de atributos muestra el tipo del mismo. y cual es el control de ese atributo.0) Formula Subtype of CliInst.EpPlazoGar) CliInst. a que tablas pertenece.CliNom En caso de seleccionar ver detalles (Show Detailed List) para la tabla se muestra el siguiente listado. en que objetos se encuentra. las subordinaciones y superordinaciones de la tabla y los prompts asociados a la misma.CliNom Indices Name IInstalaciones IInstal3 IInstal2 CliInst Type Primary Key Foreign Key Foreign Key User Attributes InstNro InsCliId EqId InsCliId . el cual muestra la información anterior agregando la información de los índices. Attribute CliSexo Description ID Type Sexo 61 C (1) 69 .0) D N (4.0) InsCliNom InstGarFch InsCliNom Vigencia Garantia C (30) D addmth(InstFch.EqId Equipo Codigo N (4.CliId InsCliNom InstGarFch InsCliNom Vigencia Garantia C (30) D addmth(InstFch.

eventos. Inf. permitiendo acceder a la definición de los atributos clickeando en el mismo o mediante botón derecho y la opción List. el generador asociado. En el caso de listar un objeto privado se muestra un mensaje de que el mismo no puede ser listado. Group CliCont Attribute ContCliId ContCliNom Type Pri. condiciones. reglas. subrutinas. los llamadores. Name Description Folder Id Created Updated Factura 9 1998-08-21 13:06:44 1998-08-21 13:06:44 70 .Name Clientes Transactions Name Clientes Prompts Name GX0010 Description Clientes Description Clientes In Structure . Form Description Selection List CLIENTES In Conditions Control Info Name ForeColor BackColor CtrlType Value Window Text Window Background Radio Button Options 'Femenino' 'Masculino' Values F M Listado de Subtipos El listado de subtipos mostrado es el siguiente. la fecha de creación. Supertype CliId CliNom Listado de Objetos El listado de objetos desde la opción de menú Tools/List Objects muestra la información del objeto. los programas llamados.

Visual Basic (Default) Layout header end for each FacFch where FacFch =&facfch eject endfor Rules parm(&facfch ) . Variables Name Today Time Page Line Output Pgmname Pgmdesc facfch Description Today Time Page Line Output Pgmname Pgmdesc facfch Type Date Character Number Number Character Character Character Date Length 8 8 6 6 3 11 30 8 Decimals Picture ZZZZZ9 ZZZZZ9 Cross References Called Call by EmiFac 71 .Updated Generators 1998-08-21 13:06:44 (*) .

Esta ventana permite aplicar filtros sobre la información a listar. Atributos y Objetos Al seleccionar el listado de tablas o atributos aparece una ventana que permite seleccionar las tablas o atributos a listar. Los archivos XML generados son guardados en : <directorio KB>\<gxuser>\mdl<numero modelo>\gen<numero generador> ¿ Cómo enviar una navegación ? Al ser la navegación en HTML. Selección de Tablas.¿ Dónde es guardada la información de los diagramas de especificación y reorganización? EN LA ESPECIFICACIÓN El especificador graba un archivo llamado gxnavig con formato XML en: <directorio KB>\<gxuser> Este archivo tiene todos los objetos que fueron especificados. Por ej: se puede pegar en un HTML de Word. el status de cada objeto y una referencia al archivo XML de cada objeto. A su vez graba un archivo XML por cada objeto especificado en: <directorio KB>\gxspc<numero modelo>\gen<numero generador>\nvg EN LA REORGANIZACIÓN Al realizarse una reorganización se guarda el gxiar bajo el directorio del usuario en la base de conocimiento. se puede realizar un copy and paste de la misma a un archivo HTML. así como mejorar el desempeño al momento de crear el listado. 72 .

Figura 26 – Selector de Tablas Una vez listada la información seleccionada se muestra el siguiente listado. teniendo la posibilidad de agregar mas tablas mediante el botón LOAD. Esto permite agregar nuevas tablas. atributos y objetos a las ya previamente seleccionadas en el listado. 73 .

Esto resulta de mucha utilidad para bases de conocimiento corporativas donde se requería la definición de más atributos. atributos y tablas. Al querer abrir un modelo de la versión GeneXus 7. objeto o tabla. la base de conocimiento es almacenada igual que en las versiones anteriores de GeneXus.767. Descripción A partir de esta versión el límite de atributos por modelo pasó de 9. ya sea de atributo.000 atributos se almacena en forma diferente el identificador (ID) de los atributos.Atributos Límite de atributos Introducción Se aumentó el límite de atributos a nivel del modelo. Descripción Se agregaron tres nuevas propiedades en el modelo de diseño.?-?-? Truncado de objetos y atributos Introducción A partir de esta versión se permite indicar cuantos son los caracteres significativos para determinan la unicidad de los nombres de los objetos. quedando incompatible la base de conocimiento para las versiones anteriores. En cambio si se superan los 10.999 a 32.999. las cuales permiten modificar la cantidad de caracteres que se consideran significativos para identificar un nombre. 74 .5 con más de 9. Compatibilidad Si el número de atributos en la base de conocimiento no supera el límite de 9.999 atributos con versiones anteriores da el siguiente error: Internal error 3 in mdl-c_ie1b ISAM Error 0.

En caso de colocar un valor menor que el mínimo permitido para cada caso muestra el siguiente mensaje de error: 75 . el valor predeterminado y máximo es 30. indices y data views. y el valor mínimo es 4 caracteres. y el valor mínimo es 6 caracteres. web panels. work panels. procedimientos. menu.Figura 27 – Propiedades diseño Las propiedades son: Significant Attribute name length determina el largo significativo para los atributos y los dominios. y styles. el valor predeterminado y máximo es 30. menu bar. prompts. reportes. Significant Table name length determina el valor significativo para tablas. y el valor mínimo es 4 caracteres. Significant Object name length determina el valor significativo para transacciones. el valor predeterminado y máximo es 30.

objeto. y cuando se utiliza DBF para esos casos se deben seguir utilizando los siguientes valores: tablas e índices 10 y atributos 10. tabla que tenga los mismos caracteres significativos. En el momento de realizar una creación o reorganización donde los largos son mayores a 10 caracteres aparecen los siguientes mensajes y la tabla no se crea/reorganiza. Por más información referirse a Sección específica del Development Environment. Grupos. tablas e índices no es válida cuando se utiliza como DBMS el AS/400. It will not be created/reorganized. objetos y tablas siempre que no exista ningún atributo. Los nombres que no se pueden modificar son los de: Folder. • • • Problems found on table 'Nombre_tabla' structure. Nota: La modificación del largo de atributos. Al modificar el largo de los objetos también se está modificando el largo de la variable PGMNAME. Figura 29 – Error al modificar valores de las propiedades.Figura 28 – Error al colocar un valor menor al permitido Se puede disminuir el valor a cuanto truncar los atributos. Al realizarlo se presenta el siguiente mensaje de error. Consideraciones • Para SQL Server no pueden utilizarse nombres largos (de mas de 8 caracteres) para objetos si la tecnología de acceso es SQL Embebido (generador C/SQL). Attribute name 'Nombre_atributo' exceeds maximum name length allowed by language (10 characters). Table name 'Nombre_tabla' exceeds maximum name length allowed by language (10 characters). Modelos y Programas externos que tienen TODOS los 30 caracteres significativos. 76 .

se define una variable Based-On para cada atributo seleccionado.Variables basadas en atributos Introducción En el diálogo de definición de variables se agregó un nuevo botón para definir variables basadas en un atributo. 77 . Figura 30 – Diálogo de definición de variables Al presionar el botón "Add Based On" aparece la lista de atributos. Descripción En el diálogo de definición de variables se permite definir una variable basada en un atributo mediante el botón “Add Based On”. Seleccionando uno o más atributos y presionando OK.

Alcance Objetos: Transacciones.Figura 31 – Diálogo de selección de atributos Nuevas Propiedades de atributos Introducción Se agregan nuevas propiedades relacionadas a los atributos GeneXus. Win. Interfaces: Web. Lenguajes: Todos. Descripción Se agrega un nuevo “Tab” denominado “Advanced” que permite configurar las siguientes opciones sobre cualquier atributo: 78 . En la ventana de edición de un atributo se agrega un nuevo “Tab” denominado “Advanced” que permite configurar la descripción que será utilizada en las distintas interfaces gráficas de los objetos GeneXus.

De esta manera se busca ahorrar trabajo ya que. descripción de las variables en los prompts. generalmente. También se agrega esta información en el listado de atributos: Figura 32 . En este caso se define el título de la columna como “Artículo” y el título como “Identificador del Artículo”. mostrando en el Tab “Advanced” la siguiente información para las dos propiedades “Default: Attribute Description”. Web Panels. Prompts. Column Title: Permite definir el título asociado al atributo en las columnas de un subfile. 79 . en caso que no se ingrese información en estas nuevas propiedades se hereda la descripción detallada en la propiedad “Description” del atributo. la descripción del atributo se modifica en la mayoría de los lugares donde aparece. objeto sea generado. Utilizando la opción Este cambio afecta el aspecto visual de la mayoría de los objetos: Transacciones.• • Title: Permite definir la descripción utilizada en las estructuras planas. centralizando dichos cambios en éstas nuevas propiedades.Listado de atributos A continuación se detalla un ejemplo definiendo para una transacción de Artículos las propiedades del atributo ArtId. dicho cambio será reflejado la próxima vez que el podrá volver al valor por defecto. títulos de reportes generados con el report wizard (primer nivel). como por ejemplo primer nivel de una transacción. En caso que el usuario modifique las descripciones. Por defecto al crear un nuevo atributo. Work Panels en sus estructuras planas y subfiles así como también Reportes y Procedimientos.

Figura 33 . Figura 34 .Tab "Advanced" definiendo un atributo A continuación se detalla el layout obtenido para la transacción “Artículos” y un work panel asociado “Trabajar con Artículos” donde se da un ejemplo de la utilización de estas propiedades.Título 80 .

81 . Esto puede resultar útil para definir vectores de meses. los Dominios sólo podían ser escalares. años. Descripción Definición de Dominios En el diálogo de definición de dominios se agregó la sección Dimensions dando la posibilidad de definir un dominio como array. etc y tenerlos en un dominio para “padronizarlos”.Figura 35 – Título de la Columna Dominio como array Introducción A partir de la versión Solís es posible definir un dominio como “array” (vector) para cualquier tipo de dato. Hasta ahora. si bien una variable podía ser un array.

respecto a si están basados en un dominio array o escalar. Además DOM_1 no tiene la capacidad para modificar esa información. pero no los atributos debido a que no tienen dimensiones. 82 . Dominio basado en Dominio. si el dominio base no es array. llamémosle DOM_ESC. las mismas quedarán deshabilitadas. los dominios basados en él heredan el tipo de dato y además tienen habilitada la sección Dimensions. de forma tal de poder definir sus propias dimensiones. “Teléfonos” y luego definir el dominio “Teléfonos por cliente” basado en anterior (infiere el tipo) pero de una dimensión (Filas = 10). Esto permite que se pueda tener un dominio genérico escalar. repercutirá automáticamente en DOM_1. como por ejemplo. tanto el tipo de dato (lo que se hacía hasta el momento). como las dimensiones (filas y columnas). variables y dominios. De esta forma. el primero hereda del segundo toda la definición. Por otro lado. Cuando se define un dominio (DOM_1) en base a un dominio array (DOM_VEC). cualquier modificación que se realice en DOM_VEC.Figure 1 .Definición de Dominio Array Variables y otros dominios pueden estar basados en un dominio array. A continuación se detallan las diferencias de comportamiento de atributos.

éste no tiene habilitada la sección Dimension. manteniendo la definición de Filas = 10. NOTA: Debido a que las variables no son globales. sino que pertenecen a cada objeto. Podría decirse que esta modificación es posible sólo si es un domino 83 . DOM_ESC no tendrá habilitada la sección Dimensiones. Importante: Un dominio array que se modifica a escalar y tiene otros dominios basados en él. impedirá que las dimensiones del dominio puedan ser modificadas para que éste pase de ser un dominio simple a array. hereda la definición de dimensiones de dicho dominio sin poder sobrescribirla. por lo tanto. Esto se debe a que posiblemente DOM_2 pueda tener a su vez atributos basados en él. La definición de un atributo basado en un dominio.En este caso. no aparecerá en el combo de dominios del diálogo de definición de atributos. • Una variable basada en un dominio simple puede definirse como array. no podrá volver a ser array. como DOM_ESC tiene otro dominio basado en él (DOM_2). un dominio que es definido como array. si existe un atributo o dominio basados en el dominio base. Una gran diferencia que tienen con los dominios es que las variables no deshabilitan la definición del dominio base. por lo tanto el cambio no es posible (quedarían atributos basados en dominio array lo cual no tiene sentido). cuando en el dominio se realiza un cambio. ya que pueden definirse filas y columnas para la misma. Variable basada en Dominio Las variables pueden estar basadas en cualquier tipo de dominio (array o escalar). Las reglas sobre las dimensiones de las mismas son similares al esquema de dominios: • Una variable basada en un dominio definido como array. no se propagará a los dominios y variables basados. Esto implica además que se habilite la sección Dimensions de estos últimos. éste se propaga a las variables en el momento de apertura del objeto (cuando se lee la definición de variables). Esto es por lo comentado al final de la sección “Dominio basado en Dominio”) Cambio de Dominio Escalar a Dominio Array Como se mencionó anteriormente. Cambio de Dominio Array a Dominio Escalar Es posible modificar un dominio array a escalar. Los dominios y variables basados en él no modificarán su condición de array. Atributo basado en Dominio Los atributos no tienen dimensiones. Esto significa que el cambio de Filas = 10 a Filas = 0 en el dominio base.

No se deshabilitan las dimensiones del dominio base. Variables y dominios basados en él pueden modificar su propia definición de dimensiones. Alcance Objetos: Transacciones. Las variables y dominios basadas en él mantienen los seteos de las dimensiones. 84 . cuando se modifica un dominio de simple a array se despliega la siguiente advertencia: “Changes in domain rows and colums will update variable definition based on it” La modificación en la definición de una variable a través de este mecanismo puede producir errores en el salvado de objetos y en la especificación. mientras que en el segundo pasarán además de ser variables escalares a arrays. Si hay sólo variables da warning. Interface: Win. atributos y dominios pueden estar basados en él. Por esto. Dominio Base de tipo Array Variables y dominios pueden estar basados en él. Primary Key Introducción Se permite utilizar los atributos integrantes de una clave primaria sin la necesidad de que se encuentre en el formulario. Es importante tener en cuenta que la modificación de la definición del dominio base afecta a todas aquellas variables basadas en él. sólo verán sobrescrita su definición de filas y columnas por los valores del dominio. Se puede pasa a dominio escalar. haciendo la asignación correspondiente en las reglas. Variables heredan los cambios de dimensiones y tipo de datos del dominio base. Variables y dominios basados en él no pueden modificar su definición de dimensiones. Web. sean arrays o no. Se heredan los cambios de tipos y dimensiones. Resumen Dominio Base de tipo Escalar Variables.“orientado a variables”. los atributos y dominios sólo los cambios de tipo de dato. No puede pasar a array si hay atributos y dominios basados en él. Lenguajes: Todos. En el primer caso. Atributos y dominios basados en él deshabilitan la sección Dimensión del dominio base.

Modificación: Permite la modificación del registro donde se encuentra posicionado el cursor del subfile. Cerrar: Cierra el diálogo. En caso de utilizarse el modo de inserción. Para cada una de estas opciones se llama a la transacción asociada “Artículos” determinando para cada uno de ellos el modo (Insert. Display). Ejemplo Se realiza un work Panel denominado “Trabajar con Artículos” donde se listan la lista de artículos existentes. Para ambos objetos se definieron las siguientes reglas: 85 . A partir de esta versión no se despliega un error si la lista de atributos esta siendo asignado en las reglas. dado que en muchos casos no es necesario o no se desea mostrar la clave primaria de una determinada tabla. De esta manera se facilita el manejo de objetos que interactúen con las transacciones. Para cada uno de los valores se permite realizar las siguientes operaciones: • • • • • Alta: Permite ingresar un nuevo registro. cuando el usuario confirma la operación se llama al procedimiento de numeración automática de artículos. En caso que la asignación no se realice en las mismas aparecerá el siguiente mensaje en el reporte de especificación: Attribute ( Att ) must be present on the screen or assigned by a rule. Ver: Se muestran todos los datos relacionados al artículo seleccionado.Descripción Se levanta la restricción existente donde cada atributo que integra una llave primaria debe estar en el formulario. Update. Delete. Baja: Permite eliminar el registro actual.

Reglas relacionadas al Work Panel Relacionado a las reglas de la transacción: Figura 37 .Reglas relacionadas a la transacción Se ejecuta el Work Panel obteniéndose la siguiente salida: Figura 38 .Work Panel "Trabajar con Artículos Se presiona el botón modificar sobre el Artículo 1 obteniéndose el siguiente resultado: 86 .Figura 36.

Figura 39 .Detalle del "Artículo 1" 87 .

El valor de <salto> puede ser negativo. tanto en ambientes Win como en ambites Web..5 se agrega la posibilidad de utilizar este comando para someter procesos. Procedures. Work panels. Comando Submit Introducción Hasta la versión 7. A partir de la versión 7. el mismo se incrementa de a <salto>. VB. El valor por defecto de <salto> es 1. Java. Reports. VFP. indicando cual es el salto. el comando submit se utilizaba en ambiente Windows para lanzar un proceso en forma asíncronica en el AS/400.. Web Panels Lenguajes: RPG. Cobol. C/SQL.Comandos Comando For To Step Introducción A partir de esta versión se ha implementado el comando “For To Step” el cual es útil cuando es necesario iterar cierta cantidad de veces a partir de un cierto valor. <salto> es una constante. <fin> son expresiones numéricas.. ENDFOR <inicio>. Es un bucle desde el valor <inicio> de &Var mientras que &Var sea <= que <fin>. La sintaxis es la siguiente: FOR &Var = <inicio> TO <fin> [STEP <salto>] . Alcance Objetos: Transactions. C# Interfaz: Win y Web Descripción Se ha implementado el comando “For To Step” donde se permite indicar el comienzo y el fin del bucle.0 de GeneXus. 88 .

usuario. Este parámetro debe ir entre comillas simples. Es recomendable verificar que la definición de cada uno de los parámetros coincida con los tipos de datos del programa. los mismos pueden ser atributos o variables. Esto se debe a que el llamado con el comando Submit se traduce como el llamado a un exe. Procedimientos Lenguajes: C/SQL – C# .<Parm1>. No se soporta el pasaje de expresiones o constantes. Consideraciones Generales El procedimiento o reporte llamado con el comando Submit. SubmitParms Se utiliza para indicar ciertos parámetros referentes a la ubicación. por el momento es ignorado por todos los generadores. y el procedimiento llamado mediante el comando submit. la sintaxis es la siguiente: Submit(‘Proceso’. al poner en producción la aplicación se debe generar un archivo con extensión INI para indicar la ubicación del procedimiento.’SubmitParms’[. Puede ser un objeto GeneXus o un programa externo. contraseña que utilizará el proceso invocado. … . Este parámetro es utilizado unicamente en ambiente Win. y se debe crear una sección llamada [GxFiles] con la entrada: 89 .Visual Basic .Java (en próximas versiones) Interfaces: Win .<ParmN>]) Proceso Es el nombre del programa a llamar. Los objetos válidos dentro de GeneXus son reportes y procedimientos que no tengan salida. Parm1 … ParmN Son los parámetros que recibe el programa a llamar.Alcance Objetos: Reportes. se encuentra en un directorio diferente al directorio de la aplicación (exe o dll). debe se main y tener configurada la propiedad ‘Call protocol’ con el valor ‘Command Line’. Consideraciones específicas para el generador Visual Basic Si se trabaja con el generador Visual Basic. permite ejecutar programas en forma asíncronica. El archivo se debe llamar igual que el nombre del main (exe para aplicaciones Win y dll para aplicaciones Web) que realiza la llamada mediante submit.Web Descripción El comando Submit.

ini con la siguiente información: [GxFiles] SubmitPath=’c:\archivos\’ Ejemplos En el siguiente ejemplo se utiliza el comando submit para llamar a un programa denominado ‘Prog’ pasándole como parámetros &A y &B.SubmitPath=<Camino donde está el exe> Si se tiene más de un objeto main que realiza submit. &B) Endevent 90 .’’.exe) se encuentra en el directorio c:\archivos se debe crear el archivo prueba. Event ‘UsrEv’ Submit(‘Pprog’.asp. El camino debe terminar con \.asp POST Data: BUTTON1=Enter&sCallerURL= Ejemplo: Se tiene un objeto main llamado Prueba que realiza un submit a un procedimiento llamado Proceso. line 13 Page: POST 25 bytes to /cgi-bin/hllamo.&A. Cuando se pone en producción la aplicación. suponiendo que el exe procedimiento (proceso. se debe generar un INI por cada uno. Si el llamado se realiza desde un Web Panel y no se encuentra el procedimiento se produce el siguiente error: Error Type: HLLAMO_WebObj (0x800A0035) File not found /cgi-bin/hllamo.

como hasta ahora. Nota: Esta regla aplica únicamente a objetos que se especifiquen para interface Web. Cuando se especifica on <control> se utilizará el control referenciado. Transactiones Lenguajes: Java. Imagen.. Los controles posibles son aquellos que tengan la propiedad link (TextBlock. etc.. ] .Reglas Regla Prompt On Introducción A partir de esta versión se permite definir el control que activa la llamada a un determinado prompt en objetos Web. 91 . en lugar del bitmap utilizado por defecto. C/Sql. etc). En caso de omitirse on <control> se agregará (en los ambientes que corresponda) una imagen. Esto posibilita además la llamada desde Web Panels a prompts de GeneXus o de usuario. La sintaxis pasa a ser la siguiente: Prompt( <program>. [p1. en caso que se utilice en otros objetos. Al utilizarse esta regla se mostraran en el diagrama de navegación los prompts utilizados. Visual Basic Interfaz: Web Descripción La regla PROMPT permite especificar (opcionalmente) el nombre del control que activa la llamada a un determinado prompt. pn) [on <control>]. Alcance Objetos: Web Panels. se ignora la nueva funcionalidad. a la derecha del o los campo(s) que tienen prompt. botón.

Descripción Tanto las reglas MSG y ERROR (utilizadas para enviar mensajes de advertencia y error al usuario respectivamente) como el comando MSG permiten tener expresiones como parámetros de las mismas. por ejemplo. reglas del tipo: Error(Str(A)). Work Panels.Msg y error con expresiones Introducción Las reglas MSG y ERROR y el comando MSG permiten como parámetro una expresión. El objetivo de esta funcionalidad es poder indicar el tipo de pasaje de los parámetros. Esto simplificaba la programación y además se correspondía con los lenguajes en los que se estaba generando. ' no es correcto') ) IF A >= 10. La expresión debe ser de tipo Character. 92 . B)). Alcance Objetos: Transacciones. Reportes. Donde A es de tipo Numeric. B de tipo Character. C de tipo Date y D de tipo Datetime. Error(Concat(Concat('El valor' . Definición de parámetros de IN y OUT Introducción Históricamente. en GeneXus los parámetros siempre fueron de Entrada/Salida. TtoC(D)) ). Esto simplifica la programación y puede resultar muy útil para depurar secciones de código. Web Panels. Win Form. Msg(Concat('Fecha Ingresada: '. Str(A*2/100)). Procedimientos. debido a que no se requiere el uso de variables auxiliares para asignar funciones y/o expresiones de tipo Character. y no solamente un string o variables como en versiones anteriores. Lenguajes: Java – Visual Basic – Visual Fox – C/SQL. De esta forma es posible escribir. DtoC(C)) ). Msg(Concat('Fecha Hora Ingresada '. Msg(Concat('Valor de B: ' . Interfaces: Web Form.

C/SQL. por lo que para lograr la funcionalidad de pasarlos por referencia es necesario hacer conversiones de parámetros. por un lado. lo cual es bastante inconveniente. el valor por defecto varía de generador en generador. permite optimizar el pasaje de parámetros de las aplicaciones de acuerdo a la arquitectura en la que éstas se implementan. lo cual puede redundar en un overhead importante. En la mayoría de los lenguajes es más eficiente pasar por referencia que por valor. y por otro lado. En los generadores: Java. Ejemplo: parm( out:&par1. es el valor por defecto. La definición del tipo de pasaje de parámetros permite. especialmente en entornos tales como Internet. in:&par2. Web Panels. RPG. etc). Visual FoxPro. y el tercero (&par3) será de entrada/salida puesto que éste. Fox Pro for Windows y Xbase. Visual Basic. comportamiento que puede ser modificado por el usuario mediante la definición del tipo de pasaje. salida (out) o entrada/salida (inout). los parámetros solo se pueden pasar por valor. Mientras tanto. En cambio si los parámetros se definen de inout implica que hay que pasar todos los parámetros. cuando se está ejecutando en forma distribuida (Java.Alcance Objetos: Transacciones. El valor por defecto será inout. Visual FoxPro Interfaz: Web. una mejor especificación de la semántica de las interfaces. C/SQL) el valor por defecto es in para todos los parámetros. Por otro lado. Consideraciones Generales Programas llamados como UDP/UDF En los programas que son llamados con UDP o con UDF. &par3) En este ejemplo estamos indicando que el parámetro &par1 será de salida. Sintaxis REGLA PARM En la regla parm se dispone de un nuevo indicador para especificar como será el pasaje de los parámetros. la utilización de parámetros del tipo out tiene la ventaja de que no es necesario enviar dicho parámetro en la invocación. Work Panels. Reportes Lenguajes: Java. el parámetro &par2 será de entrada. Win Descripción Esta funcionalidad permite definir el tipo de pasaje de parámetros. Visual Basic. por ejemplo. salvo el último 93 . Procedimientos. Pero en Java. en el resto de los generadores (Cobol. DCOM. pudiendo elegir entre uno de los siguientes valores: entrada (in). el valor por defecto es inout para todos los parámetros. Esto tiene como consecuencia que se envíen más bytes de los necesarios.

es ignorada por el generador. y cualquier definición del tipo de pasaje.que es de tipo out. Asignaciones a parámetros definidos como in El especificador no dejará especificar un programa que asigne valores (en reglas/source/eventos) a parametros definidos como In. por parte del usuario. Un parámetro definido como In puede ser pasado como parámetro a otro programa donde esté definido como Out o InOut. 94 . Consideraciones No funciona el indicador in con parámetros del tipo Array. La especificación no esta controlando este caso pero es considerado un error y será validado en futuras versiones.

perdiendo de esta forma información acerca de su fecha de actualización real. Do you want to open the Knowledge Base anyway? El mismo control se realiza cuando se abre un modelo ya que puede haber modelos congelados que no tienen ningún objeto salvado con una versión más nueva. al salvar un objeto se graba junto con la información del mismo la versión de GeneXus con que fue salvado. Esto permite determinar al abrir una una KB o modelo si tiene objetos de versiones más nuevas de GeneXus. entre otras cosas. Esto permite dar un mensaje más amigable al abrir el objeto con una versión más vieja que la que fue salvado.0 no se distinguía en un objeto entre la fecha de modificación y fecha de consolidación. that cannot be open with this version. Otra información que se agregó al objeto a partir de esta versión de GeneXus es la versión con que fue salvado el mismo.Objetos Fechas y Versión del Objeto Introducción Hasta la versión 7. Esto hacía que cuando un objeto era consolidado. Descripción Versión del objeto A partir de la versión 7. y se agrega además la fecha de consolidación al mismo. la fecha de modificación del objeto de la KB origen. saber si un objeto fue modificado luego de la consolidación. Esto permite. en la KB destino. la fecha de modificación o edición del mismo se sobrescribiera con la fecha de consolidación. En el “Open KB” se avisa si hay algún objeto salvado con una versión más nueva con la siguiente advertencia: Warning: Some objects in this Knowledge Base were saved with a GeneXus NEWER version (<version>). evitar consolidar objetos más viejos y poder realizar comparaciones reales entre objetos de diferentes Bases de Conocimientos.5. Fechas del objeto Cada objeto de la base de conocimiento posee las siguientes fechas: Fecha de Creación Fecha de Modificación Fecha de Consolidación Fecha de Especificación 95 . A partir de esta versión se mantiene.

para esos objetos simplemente se mostrará una advertencia y el objeto será consolidado. FECHA DE MODIFICACIÓN Una de las cosas que permite el mantener la fecha de modificación en la consolidación es evitar sobrescribir objetos más nuevos. Cuando el usuario actualiza un objeto se actualiza la Fecha de Modificación con la fecha del momento. Entiéndase por crear un nuevo objeto cuando se hace New Object o cuando se consolida un objeto en una KB que no existe. Si se consolida un objeto. Para esto se agregó en el diálogo de consolidación del Knowledge Manager la opción: Do Not Overwrite Newer Objects Si la opción está marcada y un objeto que se consolida tiene en el archivo de exportación. ya que éstos tienen como fecha de modificación la del objeto más recientemente modificado dentro del mismo. una fecha de modificación anterior a la fecha de modificación en la KB destino. (*) No se consolida la fecha de la última modificación de los Folders.Control de Fecha de modificación Si la opción no se encuentra marcada. Estas fechas se pueden consultar en el Browser y List Object. se mantiene en la KB origen la Fecha de Modificación del objeto (*) y se graba además la Fecha de la Consolidación. el objeto no será consolidando mostrando el siguiente error en el Log de consolidación: Figura 9 . quedando los mismos con fecha de 96 . La Fecha de Especificación es la que se graba al momento de especificar un objeto.La Fecha de Creación se almacena al crear un nuevo objeto.

Compatibilidad • Lo siguiente aplica a la primer consolidación en GeneXus 7. Si no se tiene correctamente configurado el Time Zone puede suceder que el objeto no pueda ser consolidado. Para esto se agregó la opción “Equal but different consolidation date” en los filtros de dicho diálogo (ver siguiente figura). Todas las fechas de los objetos se almacenan en la KB con la fecha/hora "coordinated universal time" UTC (antiguamente llamada GMT o Greenwich Mean Time). o sea consolidado dejándole una fecha de modificación incorrecta. esto significa que un objeto salvado a las 10:00 de Uruguay en realidad se salva con hora 13:00. y si se envía el objeto o la KB a España mostrará que el objeto fue modificado a las 14:00. es necesario tener correctamente configurado el ‘TIME ZONE’ de Windows en los PC origen y destino.actualización igual a la de la KB origen. IMPACT OBJECT En el diálogo de Impact Object es posible ver los objetos que tengan igual fecha de modificación pero difieran en la fecha de consolidación.5 de objetos que 97 . A modo de ejemplo. Esta característica permite enviar una KB o una exportación de un País a otro (o simplemente máquinas con diferente Time Zone) y mantener correctamente las fechas. TIME ZONE IMPORTANTE: Para que el control de fechas antes mencionado pueda realizarse adecuadamente. dando el error de que la fecha de actualización es menor a la actual.

entonces se deberá desmarcar la opción “Do not overwrite newer object” para actualizar los cambios en la KB destino. Esto se debe a que la nueva fecha de modificación del objeto no coincide con la de al KB original (porque es la de la ultima consolidación). Se puede ignorar el error si el objeto no fue modificado desde la última distribución.hayan sido consolidados con versiones anteriores de GeneXus: Es importante recordar que las consolidaciones con versiones anteriores modificaban la fecha del objeto con la fecha de la consolidación. • Los archivos de exportación de versiones anteriores (XPW) exportaban la fecha de modificación con la fecha local. si el objeto fue actualizado entre la distribución y consolidación anterior. Si se vuelve a exportar un objeto que no ha sido modificado desde la ultima exportación. al consolidar (ahora con la versión 7. Ahora. por lo que si se consolidan en otra Time Zone quedarán con fecha errónea. dará el mensaje de error de que el objeto no puede ser sobrescrito con una versión más vieja.5 o superior) sobre la misma KB destino con la opción “Do not overwrite newer objects” marcada. 98 .

Ambientes Definición de ambientes en un modelo Introducción Se ha modificado el diálogo de definición de Modelos (Model Properties) en la versión 7.5 para facilitar la definición de modelos en base a ciertas características que tendrá el mismo. como ser. que se usa para la creación y reorganización de la base de datos y como ambiente por defecto para la generación de la aplicación. lenguaje a utilizar.Definición de Modelo Cada Modelo tiene un ambiente principal. sección Environment) e incluye los siguientes campos para la definición del mismo: 99 . Además puede tener varios ambientes secundarios que se definen en el tab de Environments El ambiente principal es el que se define en esta pantalla de Model Properties (tab General. tipo de interface y DMBS. Descripción Al crear un nuevo modelo o editar uno existente aparecerá el siguiente diálogo para definir las propiedades del mismo: Figura 10 .

Xbase for DOS. pero es posible cambiar el lenguaje y form del ambiente Default. C/SQL. el usuario podrá seleccionar el tipo de interface que desea utilizar para el ambiente principal (Win o Web Form) y el DBMS. lenguaje e interface. la siguiente figura muestra un modelo Visual Basic “Win” al que se le agrega un nuevo tipo de ambiente “Web” para la generación de objetos Web. Los tipos de ambiente Default y Reorg heredan por defecto la información del tab General. Visual Basic y Visual FoxPro. así como agregar nuevos tipos de ambientes. Luego de elegir el lenguaje. Los valores disponibles para User Interface y DBMS dependen del Lenguaje seleccionado. A continuación se muestra una tabla con los valores posibles para cada lenguaje. 100 . estos son: C#.Language User interface DBMS En Language aparece un combo con todos los lenguajes soportados por GeneXus. RPG. Java. Por ejemplo. Language C# C/SQL User Interface Web Form DBMS DB2 Common Servers DB2/400 Informix Oracle SQL Server Claudscape DB2 Common Servers DB2/400 Informix Oracle SQL Server Access DB2 Common Servers DB2/400 Informix Oracle SQL Server DBFCDX DBFIDX DB2 Common Servers DB2/400 Informix Oracle SQL Server AS/400 Native DBFCDX DBFIDX Java Web Form Win Form Visual Basic Web Form Win Form Visual FoxPro Win Form Cobol/400 RPG/400 XBase for DOS Win Form Win Form En el tab Environments existen tres columnas con: ambiente. Cobol.

si una transacción generada con el generador Java Win llama a un Web Panel. una Transacción con form Win y Web. por ejemplo si se tienen Web Panels en un ambiente Full Win. 101 . Si el objeto no es main. será generada en ambiente Web si es llamada por un Web Panel y/o en ambiente Win si es llamada por un Work Panel. Esto quiere decir que exista una transacción que sea generada en ambiente Win (Web).”Por otro lado. Si el objeto no se corresponde con ese ambiente. PROMPT Un Win Prompt (Web Pompt) se genera. Por ejemplo. se genera en los ambientes de los mains que lo llamen. en Prototipo o Producción. se produce el error.Figura 11 . como el Web Panel tiene que generarse con un generador Web y no existe dicho generador. Por ejemplo.Ambientes de un modelo ¿En qué ambiente se generan los objetos? Si el objeto es main se genera en el ambiente asociado a dicho objeto al definirlo como main. si un programa hace un call a otro que no puede ser generado se emite el siguiente error de especificación: “Call to program %1 that cannot be generated found at line %2”. En cualquier otro caso el objeto se trata de generar usando el Default Environment. sólo si se especifica una transacción que lo utilice. Cuando algún modelo tiene Win y otro Web forms se tienen ambos prompts en diseño. el objeto no se especifica y en la navegación se muestra la siguiente advertencia: “This object cannot be generated on this environment.

0 para poder generar Web Panels se tenían que definir todos como main. Además. Es posible eliminar la propiedad Main a aquellos que no lo requieran. pero se mantiene el check de main en todos esos objetos.MDB se continúa generando en el directorio del modelo DataXXX. La solución en este caso es modificar las opciones de estos objetos para asociarle el ambiente correspondiente. los objetos Web acceden a este directorio para tomar los datos. Es por esta razón que se recomienda utilizar la preferencia a nivel de modelo “Local Database File” para indicar la ubicación de la base de datos (absoluta o relativa).5 es con interfaz Win. si la interface de la mayoría de los objetos main es web.” 102 . se agrega un ambiente secundario Win y se modifica el Information de los objetos Win.5. En el caso de las aplicaciones Visual Basic que usan base de datos Access. Compatibilidad con versiones anteriores En la 7.¿Cómo se generan los objetos Web? Debajo del directorio del modelo (DataXXX) se crea un directorio Web que es donde se guardan todos los objetos generados en ambiente Web. se recomienda hacer lo siguiente: Si la mayoría de los objetos main de la aplicación se generan en ambiente Win. Por el contrario. Para esto. se cambia el User Interface del ambiente Default a Web. ya no es necesario tenerlos como main. el ambiente que se define por defecto al abrir la KB con la 7. para el caso de VB y Java. esto será indicado en la navegación del mismo con la siguiente advertencia: “This object cannot be generated on this environment.0). porque sino al poner en producción una aplicación Web no se encontrarán los datos (porque se buscarán en el directorio “padre” del objeto no en el directorio actual). no la base de datos. F5 – Run En el diálogo de ejecución (Run) se puede filtrar la lista de programas a compilar/ejecutar por ambiente. se crea un ambiente secundario Web y se asocia este ambiente a los Web Panels (Information->Option->Generated for). Si en algún caso no se corresponde el ambiente con la interfaz del objeto. La GX_DATA. y el combo para seleccionar un generador está vacío dado que no hay un ambiente Web definido (porque no existía en la 7. en el directorio Web sólo se guardan los objetos Web. Esto haces que todos los Web Panels estén marcados como main pero sin generador asociado. Al pasar a la 7. se deja el ambiente Default con User Interface Win.

Esto es especial importancia para aplicaciones Web. se genera por cada objeto/atributo/variable un documento HTML que contiene el texto de ayuda definido en GeneXus para el mismo. En ambos casos se genera un directorio HELP bajo el directorio del modelo. HTML La principal característica de este formato es el poder generar ayuda que no sea compatible solo con la plataforma Windows GUI. Alcance Lenguajes: Java – Visual Basic – Visual Fox Pro – C/SQL –C# Interfaces: Win . Este mecanismo permite la definición de ayuda para aplicaciones en el Web. En el caso de CHM.Help HTML Help Introducción A partir de esta versión se cambia la forma de generación de la ayuda.Web Descripción Se definen un nuevo esquema de ayuda. 103 . utilizado por el compilador del HTML Help Workshop para la generación del CHM. para pasar a generar en formato HTML. en el que se crea un archivo extensión HTML por cada objeto/atributo/variable que tenga ayuda. se maneja un archivo de definición de proyecto (de extensión HHP).CHM en el directorio del modelo. En esta versión. CHM Además de los archivos HTM. De esta manera se abrirá un browser con el HTML correspondiente a la ayuda. etc. con todas las características que esto acarrea como son la posibilidad de buscar en la ayuda generada. en el que se permite seleccionar entre dos formatos: CHM y HTML. Además se incorpora la posibilidad de empaquetar toda la ayuda generada en un único archivo de formato CHM. definir índices. se crea además un archivo de nombre APPHLP.

etc) y la ayuda de los distintos atributos/variables dentro de estos. el que permite inicializar algunas propiedades sobre el archivo que contendrá el help de la 104 .. Para definir la ayuda de un objeto. bajo el item Build.Definición de Ayuda En GeneXus existen dos instancias de ayuda. La ayuda a nivel de atributo/variable/dominio se definen el dialogo de creación/edición de estos. Work Panel. similar al editor utilizado para realizar los objetos Web. se cuenta con un editor HTML de atributos/variables/dominios con este fín. Al seleccionar la generación de menú se habilita un wizard. en la TAB Page correspondiente. la ayuda a nivel de objeto (Transacción. En dicha página se presenta el editor de HTML. Generación de la Ayuda La opción para generar el help de objetos/atributos GeneXus se encuentra en la barra de herramientas. se debe hacer seleccionar la Tab Page HELP del objeto.

• Type of Help Existen dos formas: CHM y WEB. que se encuentra en el CD del Visual Studio 6. donde cada objeto/atributo/variable con ayuda aparece como un ítem del contenido. La ayuda generada se presenta en un único archivo de formato CHM. El compilador que ha de utilizarse para generar la aplicación.aplicación. El wizard consta de tres pasos Paso 1 En el primer paso se definen: • El tipo de help que se quiere generar. simplemente se generan los archivos HTML correspondientes a cada ayuda de objeto.0. La principal diferencia entre ambos es que para la generación WEB no se requiere el uso de un compilador. CHM La elección de esta opción implica tener un compilador de ayuda HTML.CHM utilizado luego por la aplicación GeneXus. bajo el directorio HTMLHelp. a través del cual generar el archivo APPHELP. El compilador con el que se ha trabajado es el HTML Help Workshop. 105 .

Paso 2 Define opciones que modifican propiedades del archivo de definición del proyecto. En este caso no se requiere de un compilador. pero en caso de la generación CHM debe especificarse el mismo. En el caso de la generación WEB este campo es deshabilitado. o en caso contrario no podrá seguir avanzándose en la aplicación. 106 .HTML La principal característica de este formato es el poder generar ayuda que no sea compatible solo con la plataforma Windows GUI. De esta manera se abrirá un browser con el HTML correspondiente a la ayuda. simplemente se generarán los archivos HTM. Help Compiler Path Ubicación del compilador del HTML Help Workshop.

INCLUDE FULL-TEXT SEARCH Habilita la posibilidad de realizar búsquedas de texto sobre todos los documentos que conforman el CHM. aquella página que se muestra cuando no se ha especificado algún tópico en particular por defecto cuando no se ha seleccionado ningún tópico de la ayuda. DEFAULT HTML PAGE La página por defecto es aquella Definición de la página HTML por defecto. puede utilizarse en esta opción en vez de generar el archivo por defecto. Este archivo de contenido puede editarse con el HTML HELP Workshop y de esta forma crear un árbol mejor organizado personalizado. El archivo de contenido define una estructura de árbol que permite organizar los ítems dentro de la ayuda. 107 . Estas opciones aplican sobre todo para el caso de generar un archivo CHM o utilización de un activeX o componente Java para el Web. El usuario puede de esta forma se puede definir una página propia y utilizarla. CUSTOM CONTENTS Al igual que la página por defecto. así que por defecto se genera una raíz del árbol. Los únicos ítems que aparecen anidados es en el caso de las variables que poseen ayuda. Solo aplica si se seleccionó CHM en el paso 1. también se genera un archivo de contenido. Esta opción no es válida si se está generando para el Web. En GeneXus no hay forma de indicar como agrupar los ítems de la ayuda. La aplicación generación de help crea genera una página por defecto pero cuyo contenido es muy simple.Project Settings Define opciones que modifican propiedades del archivo de definición del proyecto. en ese caso estos ítems aparecen anidados debajo de la ayuda del objeto en el cual están definidas. Si ese archivo es salvado con otro nombre. de la que cuelgan todos los tópicos de ayuda.

el proceso termina en el paso 2.Se abre el HTML Help WorkShop para compilar la ayuda generada. Esto genera un archivo llamado APPHLP. puede utilizarse el HTML HELP Workshop para darle un orden alfabético a los ítems. El HTML Help Workshop presenta una herramienta para la edición de los archivos anteriormente descritos (cuya interfaz es la siguiente figura). Paso 3 Compilación de la ayuda. Se inicia el proyecto en el que se muestran todos los archivos que se incluyen así como la configuración del mismo. Este paso solo es valido válido si se genera la ayuda en formato CHM. En el caso del archivo de índice.CUSTOM INDEX Idem al archivo de contenido. en caso de generar HTML.CHM en el directorio del modelo. 108 . pero para el archivo de definición del índice. o la opción Compile del ítem Se debe compilar el proyecto por medio del botón File del menú.

ya que los browser por defecto no pueden interpretar el formato CHM. Cada vez que se genera la ayuda. prototipo/producción.Consideraciones generales • • • • • • La ayuda se define a nivel de modelo. HHC. etc. debemos generar la misma como HTML. mas detalles en la documentación de SOAP Consideraciones específicas de Aplicaciones WEB En caso de trabajar con aplicaciones Web. se asocia al evento predefinido “HELP” la ayuda del objeto. la ayuda es anexada en el WSDL del mismo. quedan creados los documentos con los nombres anteriores. poder visualizar un CHM desde un browser. No se borran archivos HTM. se sobrescriben TODOS los archivos htm (aunque no hayan sido modificados). El evento “HELP” puede ser asignado a un botón o a una imagen. Esto quiere decir que al disparar el evento “HELP” en un objeto Web se va a mostrar en una nueva ventana del browser la ayuda en formato HTML del mismo. Para indicar el directorio donde se ubican los archivos de Ayuda (HTM) se creó la preferencia del modelo Help Files Base URL. HHK se sobrescriben si son default (es decir. si no son personalizados). Los documentos HHP. bajo el grupo Web Information. como son agregar botones. En dicho directorio. que puede indicarse absoluto o relativo. Si se renombran objetos/atributos/variables. En el caso de procedimientos y reportes con protocolo SOAP. se deben colocar los 109 . Para incluir ayuda en una aplicación Web. Existe un documento con ciertos TIPS sobre el HTML Help Workshop.

Windows HTML Help Si se va a generar la ayuda como CHM Web HTML Help Si se va a generar la ayuda como HTML 110 . Consideraciones específicas para el generador Java En el caso de Java es posible generar la ayuda en archivos HTML para aplicaciones GUI. por lo que se debe tener en el directorio de la aplicación (o de archivos estáticos en el caso de Java) el JavaScript gx_help. ya que el CHM no es multiplataforma Por este motivo se han instrumentado un conjunto de propiedades: Help Mode Esta preferencia define que tipo de ayuda van a utilizar las aplicaciones.archivos de ayuda generados en formato HTM correspondiente a cada objeto (no se tiene en cuenta la ayuda a nivel de variables/atributos) La ayuda se maneja a nivel de JavaScript. es independiente de cómo se realice la ayuda.js .

se permite agregarles tanto sea ayuda como documentación HTML.En el caso de tener esta última seleccionada se habilita la siguiente preferencia: WebHelp base URL Define la URL base donde se van a buscar los HTML de la ayuda. en los TAB page Help y Documentation se encuentran opciones de edición del formato HTML. con este fin existen opciones de edición de formato HTML en el dialogo de definición de los mismos. dominio o variable. Ayuda y Documentación HTML para atributos/dominios/variables Introducción Al definir atributos.Web Descripción Al definir un atributo. variables o dominios. Alcance Lenguajes: Java – Visual Basic – Visual Fox Pro – C/SQL –C# Interfaces: Win . 111 .

el tamaño real que se aplica a la fuente para cada uno de estos valores está definido por el Internet Explorer. Tamaño de la fuente Los valores válidos son del 1 al 7. Son válidos los siguientes valores: • Normal • Heading 1 • Heading 2 • Heading 3 • Heading 4 • Heading 5 • Heading 6 112 . 2. Tipo de fuente Se habilitan todos los tipos de fuente instalados en el sistema.Opciones de edición 1. 3. Formato de párrafo La lista de formatos es fija.

Selección de todo el documento (Ctrl + A) Copiar (Ctrl + C) Pegado (Ctrl + V) Cortar (Ctrl + X) Búsqueda de texto (Ctrl + F) Deshacer (Ctrl + Z) Rehacer (Ctrl + Y) Negrita (Ctrl + N) Itálica (Ctrl + I) 113 . Este nuevo diálogo es propio del ActiveX que manipula el documento HTML (es decir que no corresponde a GeneXus). 7. centrada y a la derecha un párrafo 9. Color 6. 6. 11. Shortcuts 1. 9. Justificación a la izquierda. 2. 3. Inserción de imágenes Se habilita un diálogo a través del cual se especifica la ubicación de la imagen que desea incorporarse en el documento. Edición del documento HTML en formato texto Se habilita un nuevo diálogo donde puede modificarse el documento HTML a través de un editor de texto.4. Listas ordenadas y Listas 7. Decremento e Incremento de sangría del párrafo 8. 4. Visualización de detalles 10. Negrita. 5. Esta es una opción a través de la cual se pueden incorporar otros elementos al documento que no están habilitados a través de los botones o shortcuts definidos (como puede ser la definición de una tabla). Itálica y Subrayado 5. Los cambios introducidos en dicho diálogo se reflejarán en la vista HTML cuando se acepten los mismos. 8.

Borrar (Supr or Delete) 114 .10. Subrayado (Ctrl + U) 11.

Reportes.Tipos de Datos Nuevos Tipos de Datos En esta versión se incluyen nuevos tipos de datos para la definición de variables. Tipo de Datos DBConnection Introducción El objetivo del tipo de datos DBConnection es permitir que las opciones de configuración para las conexiones ODBC a la base de datos puedan ser determinadas en tiempo de ejecución. Work Panels. Procedimientos. configurar sus propiedades y ejecutar sus métodos en vez de realizar llamados a funciones externas. Alcance Objetos: Transacciones. 115 . Lenguajes: Visual Basic – Visual Fox – C/SQL. Web Panels. Win Form. Interfaces: Web Form. Estos nuevos tipos son: WebWrapper WebSession ExcelDocument WordDocument XmlWriter XmlReader MAPISession OutlookSession POP3Session SMTPSession MailRecipient MailMessage HttpRequest HttpResponse HttpClient DBConnection Location Con esta implementación se pasa a un modelo de objetos y se pueden crear desde GeneXus variables que tienen como tipo estos objetos.

ODBCDriverName Asocia un nombre de driver a la conexión. UserPassword Asocia una contraseña a la conexión. El valor es de tipo carácter. Es válido solamente cuando el datastore asociado utiliza un datasource de archivo para conectarse. se debe utilizar la función GetDatastore(). El valor es de tipo carácter. para asignar un datastore a la variable. La propiedad debe contener siempre el mismo valor que el retorno de la funcion userid('server'). Es válido solamente cuando el datastore asociado utiliza un driver para conectarse. por ej: &MyConn = GetDatastore(“Default) ODBCDatasourceName Asocia un nombre de datasource a la conexión. Es válido solamente cuando el datastore asociado utiliza un datasource para conectarse. Esto es cierto inmediatamente luego de realizada la conexión y hasta que el programador eventualmente cambie su valor. 116 . se debe definir una variable del tipo de datos DBConnection y luego invocar a los métodos y propiedades necesarios. Esta propiedad es solo de lectura. El valor es de tipo carácter. UserName Asocia un usuario a la conexión. Propiedades: DatastoreName Indica el datastore GeneXus que esta asociado a la variable. El valor es de tipo carácter. en ese caso el valor podrá ser diferente hasta que se ejecute el método Connect(). ODBCFileDatasourceName Asocia un nombre de datasource de archivo a la conexión.Descripción Para poder modificar las opciones de configuración de los diferentes datastores en tiempo de ejecución desde un objeto GeneXus. El valor es de tipo carácter. El valor es de tipo carácter.

En caso de error devuelve el código del mismo. simplemente la conexión se cierra y se vuelve a abrir con los nuevos valores. El valor es de tipo numérico. Disconnect() Se realiza la desconexión al datastore asociado. Se utiliza normalmente para especificar parámetros adicionales para la conexión. ErrCode Devuelve el código del último error. ShowPrompt Indica si se mostrará el diálogo al realizarse la conexión. por ejemplo la base de datos. El valor es de tipo carácter. Los valores posibles son: 1 2 3 Siempre se muestra el diálogo de conexión Nunca se muestra el diálogo Se muestra el diálogo si es necesario. y es cero en caso de éxito. El valor que devuelve es de tipo numérico. ErrDescription Devuelve la descripción del último error. El valor es de tipo numérico. Métodos: Connect() Se realiza la conexión al datastore asociado. Este método no da error si es utilizado en un programa que esta 117 . es decir si faltan datos para que la conexión sea posible. y es cero en caso de éxito. El valor es de tipo carácter. En caso de error devuelve el código del mismo. El valor que devuelve es de tipo numérico. Este método no da error sobre una conexión abierta. Los códigos de error se describen mas adelante.ConnectionData El contenido de esta propiedad se concatena al string de conexión que GeneXus genera a partir del resto de las propiedades.

generado con la preference "Connect at first request" y la conexión aun no se hizo. Normalmente se debe a un valor de parámetro no válido o fuera de rango.Disconnect &MyConnection. puede ocurrir cuando se pide la descripción de un código de error que no existe.ShowPrompt = 2 &MyConnection. Se soluciona asignando previamente la propiedad DatastoreName. Error no conocido. Se uso un método o propiedad sobre una variable que no tiene asociado un datastore.UserName = "Administrador" &MyConnection. 2 No GeneXus attached Datastore 3 Internal Error: Function call failed Ejemplo A continuación se detalla un ejemplo de utilización en un objeto GeneXus: Variables &MyConnection tipo DBConnection Comienza Fuente GX &MyConnection = GetDatastore("default") &MyConnection. Códigos de Error: &µGLJR 0 1 'HVFULSFLµQ No Error Unknown Error &RPHQWDULRV No hubo error.Connect Fin Fuente GX 118 .Password = "Adm!Password" &MyConnection. El método o propiedad recibió un error comunicando un valor al acceso a datos.

Procedimientos . • Tipo de Datos WebWrapper Introducción WebWrapper es un nuevo tipo de datos de GeneXus que permite encapsular la ejecución de los objetos Web (el código HTML generado). si se realiza la desconexión en la mitad de un procedimiento. por lo tanto hay que tener en cuenta que el cliente de correo que reciba el mail debe tener la capacidad de interpretar lenguaje HTML.Visual Basic – C/SQL – C# . También existe la posibilidad de que continúe trabajando si el procedimiento se reconecta.Objetos: Transacciones. pero en todo caso los resultados son impredecibles.Lenguajes: Java .Consideraciones generales • Solo esta implementado cuando se utiliza tecnología de acceso a datos ODBC (para el caso del generador C/SQL. y la propiedad ErrCode quedará con el valor 2. Por ej. Web Panel. en caso contrario verá el código del Web Panel. para luego aplicar los métodos y propiedades necesarios. Se debe tener en cuenta que los métodos Connect()/Disconnect() cierran los cursores que estén abiertos en la conexión a la que aplican. Por lo anterior. La idea es capturar el contenido de un Web Panel en su código HTML. Alcance . Es responsabilidad del desarrollador utilizar la conexión/desconexión en lugares correctos. • Cuando se utiliza el generador Visual Basic es necesario haber accedido a la base de datos antes de utilitar la función GetDatastore(). de lo contrario al ejecutarse la misma fallará. Win Descripción Para poder enviar el contenido de un Web Panel vía mail desde un objeto GeneXus es necesario definir una variable de tipo WebWrapper.Interfaces: Web. y enviar este vía mail. En particular permite enviar el contenido de un Web Panel por mail. probablemente la ejecución cancelará. 119 . Work Panel. la preferencia “C/SQL Access Method” deberá tener dicho valor). no es posible ejecutar los métodos Connect() y/o Disconnect() dentro del alcance de un comando For each.

Propiedades: BaseURL Es la dirección Base del Web Panel La dirección base determina el servidor y directorio virtual al que apuntarán los links y a donde se irá a buscar el Web Panel en caso de que se presione algún botón. Si se desea hacer un WebWrapper de un Web Panel que incluya imágenes. 120 .jpg). se hace el POST al servidor Web.e. el comportamiento al apretar dicho botón (o control con evento click) en Outlook XP difiere del de Outlook 2000 y Outlook Express. por este motivo al enviarlos vía mail. Parámetros) Metodos: GetResponse Retorna el código HTML que devolvería el objeto Web especificado en la propiedad Source con los parámetros allí indicados. en el evento). y dicho Web Panel tiene un botón o evento click. disparar un procedimiento. y en el browser se muestra la respuesta (incluso puede haber una redireccion. el inconveniente de esto es que el usuario debe estar conectado en el momento de leer el mail. Por lo tanto cualquier evento que se produzca en el Web Panel que realice un post al servidor ( por ejemplo hacer click en un botón. En este caso la ruta de la imagen no debe incluir directorios (i. en la dirección especificada en la propiedad BaseURL. Consideraciones Generales Los objetos Web Panel de GeneXus. no son estáticos. logo. se puede hacer de dos maneras: • Poner en el Web Panel las imágenes en forma absoluta. • Poner en el Web Panel las imágenes relativas y mandarlas como atachment en en el mail. etc) producirá que se abra el web panel en el browser. call o link. /imágenes/logo.jpg) si no hacer referencia directamente a la misma (i. en realidad se está enviando una imagen estática. Si se utiliza un objeto WebWrapper para mandar un Web Panel mediante mail. En Outlook 2000 y Outlook Express el comportamiento es el esperado: se abre un browser. La dirección base es agregada al código HTML que devuelve el método GetResponse. Object Objeto Web a encapsular en la variable de tipo WebWrapper A la propiedad Object debe asignársele siempre el resultado de la función Create( Objeto.e.

) endif End Event En el evento de usuario de HMailForm se haría la modificación a la base de datos por la cual se chequea en la condición. pars. En Outlook XP se hace la modificación a la base de datos pero no se muestra nada. HGracias es el Web Panel al cual se quería hacer la redirección al procesar el evento. pero el form de respuesta nunca se mostrará. 2) Usar un Web Component. 121 . el Web Panel que se manda por email está compuesto solamente por un webcomponent. Consideraciones específicas del generador C/SQL Al utilizar el tipo de dato WebWrapper con el generador C/SQL. ni siquiera se abre el browser. si se tiene un evento asociado a un botón que graba algo en la base de datos y asigna cierto valor a una variable que está en el form. por lo que se hará el cambio a la base de datos. Por ejemplo.. Hay dos formas en las cuales podemos cambiar nuestra programación para asegurarnos de que el comportamiento sea el mismo en los 3 clientes de mail: 1) No usar eventos. En Outlook XP se ejecutará el evento. Luego se abrirá un browser donde se desplegará el form SIN MODIFICAR LA VARIABLE. el evento se ejecuta siempre). y se abrirá un browser donde se verá en el form la variable con el valor que se le asignó en el evento. En Outlook 2000 y Outlook Express. Pero dicho GET se hace solamente si no había una redirección en el evento que ejecutó el POST. Siempre se pueden usar links. si puede ser un WebComponent. Es decir. haciendo el cambio en la base de datos.. Otro ejemplo: el evento asociado al botón modifica la base de datos y hace un call a otro webpanel. hay que tener en cuenta los siguientes factores: • • El objeto Web que se crea para enviar por mail por medio de la función Create no puede ser main.. Dicho WebPanel tendría en el evento Refresh algo así: Event Refresh if base de datos fue modificada webcomponent.En Outlook XP el comportamiento es el siguiente: el POST lo hace el propio Outlook (no se abre un browser para hacer el POST). (De todas formas. al apretar dicho botón en el mensaje se ejecutará el evento.object = create( HMailForm. al apretar el botón se hace la modificación a la base de datos y se abre un browser donde se muestra el Web Panel llamado.object = create( HGracias. En Outlook 2000 y Outlook XP. La propiedad BaseUrl debe estar después de la función Create. pars.) else webcomponent. Luego se abre un browser haciendo un GET de la página para mostrarla..

Object = Create(Hnotify. Variables Definidas: &Wrap del tipo WebWrapper &MailMsg del tipo MailMessage &Outlook del tipo OutlookSession &Wrap. que se mantiene mientras el usuario continúe en el sitio Web.Interfaces: Web Descripción Los servidores Web permiten manejar el concepto de sesión. Procedimientos .To.C# .Objetos: Transacciones. CliCod) &MailMsg. mediante Outlook.GetResponse() &Oulook. Dicha tabla tiene clave primaria CliCod. Web Panel. se debe indicar la preferencia del objeto “Generation Mode” en Smart Static Panel. Una sesión se identifica por una clave única.New(CliNom. el cual se pasará como parámetros al Hnotify.HTMLText = &Wrap. con la dirección de correo el electrónico del cliente.Visual Basic . Alcance . y CliMail. 122 .Send(&MailMsg) EndFor Tipo de Datos WebSession Introducción WebSession es un nuevo tipo de datos de GeneXus que permite almacenar datos en una sesión de usuario del servidor Web. el Web Panel Hnotify para cada registro de la tabla CLIENTE.Lenguajes: Java . con el nombre del cliente. También tiene entre sus atributos secundarios a CliNom. Ejemplo El siguiente ejemplo es un procedimiento que ilustra como enviar por mail.BaseURL = “http://myserver/mysystem/” For each CliCod &Wrap.Consideraciones específicas del generador Visual Basic En caso de tener en el Web Panel que se envía como Web Wrapper Link o Embedded Pages a objetos GeneXus del mismo modelo. CliMail) &MailMsg. accesibles mientras la sesión esté activa. De esta manera se pueden tener variables globales.

destroy() Consideraciones Generales • El ID de la sesión se guarda en una cookie en el cliente. aunque esto es transparente para el programador. Por ejemplo: &Session. Key y value deben ser del tipo String. si es que existe este concepto en la misma. se debe definir una variable de este mismo tipo y aplicarles los métodos y propiedades adecuados. 123 .El objeto WebSession permite almacenar información que será visible desde cualquier objeto Web dentro de la sesión activa como si fueran variables globales al sitio. Por ejemplo: &Session.get(“user”) Remove(key) Permite remover un valor de una sesión.Id Metodos: Set(key.set(“user”. Para utilizar el objeto WebSession. &User) Get(key) Retorna un String correspondiente a la entrada key de la sesiones. value) Permite hacer una entrada en la sesión activa. Propiedades: Id Esta propiedad retorna un String que es el identificador de la sesión.remove(“user”) Destroy() Detruye el contenido de la sesión. Por ejemplo: &User = &session. En caso de que la clave no exista retorna el String nulo. Por ejemplo: &Iden = &Session. Por ejemplo &Session. Es recomendable utilizarlo cuando el usuario hace un “logout”.

La forma en que se almacena la información de sesión también depende de la plataforma.Set(“Name”. si la sesión se almacena de forma local al servidor Web. pero si abro en una ventana nueva se mantiene. Esto implica que no puedo hacer un link de un Web Panel VB a un Web Panel Java y mantener los valores de la sesión Si no se ejecuta el 'destroy()'. UsrNombre) Call (HWelcome) When none Return //Usuario no valido endfor 124 . el servidor Web destruye la sesión cuando ha pasado un determinado tiempo desde la última vez que se utilizó. pero si inmediatamente se pide ID de la sesión devuelve el mismo ID. Ejemplos Supongamos un sistema Web donde el usuario debe autentificarse por medio de un usuario y una password que están previamente gravadas en la base de datos. y se configura de forma nativa en cada una. Java devuelven un nuevo ID. solo es visible en ese servidor Web.• La validez de la Websession es similar a la validez de las cookies que solo valen por la sesión. Entonces podemos definir en el Web Panel de Inicio una variable tipo WebSession (&Session) y las variables de entrada &User y &Password. no va a tener disponible los valores de sesión. se pierde la sesión. Los datos y el ID de una sesión son diferentes para cada generador. por lo que si el siguiente request del cliente va a parar a otro servidor Web. Básicamente. y condiciona la capacidad de tener la aplicación en mas de un servidor Web. • • • Consideraciones específicas para el Generador Visual Basic • En VB el destroy() limpia los valores almacenados en la sesión. Esto depende del servidor Web/plataforma. En el evento Enter del Web Panel definir For each Where UsrNom = &User Where UsrPsw = &Password &Session. Esto quiere decir que si se abre una instancia nueva del browser.

Se recomienda leer también el documento XMLReader. Luego en el Web Panel Welcome definir en el evento Start: &UsrNombre = &session.De esta manera validamos el usuario con la base de datos y en caso de los valores correspondan guardamos el nombre del usuario en la sesión y vamos a un Web Panel de bienvenida (HWelcome) . Métodos: MÉTODOS BÁSICOS: Open([FileName]) Permite crear un documento XML. Reportes. Interfaces: Web Form. Web Panels. Work Panels.Get(“Name”) If Trim(&UsrNombre)=”” Return ///Sesión no valida Else TX. se debe definir una variable de un nuevo tipo de datos denominado XmlWriter (xmlwrt) y luego invocar a los métodos necesarios para crear los nodos que lo componen. el mismo se genera por 125 . obtenemos el nombre del usuario desde la sesión y escribimos un mensaje de bienvenida en pantalla. Lenguajes: Java – Visual Basic – Visual Fox – C/SQL – C#. Tipo de Datos XMLWriter Introducción El objetivo del tipo de datos XMLWriter es proveer la posibilidad de grabar archivos XML de un modo más sencillo que las funciones incluidas en versiones anteriores. Procedimientos. si se omite.Caption = “Bienvenido “+ &UsrNombre + “a nuestro sitio!” Endif De esta manera. Descripción Para poder crear un archivo XML desde un objeto GeneXus. File Name es el nombre de archivo con el cual se va a crear el documento. Alcance Objetos: Transacciones. El documento XML contiene una introducción a dicho lenguaje. Win Form.

etc. <Value> . El contenido del buffer puede ser consultado por medio de la propiedad ResultingString WriteStartElement(<ElementName>) Comienza un elemento compuesto. por lo que es valido anidar llamadas a WriteStarElement/WriteElement. (Funciona con CGI. el '>' por '&gt. etc. FileName – Character OpenToString() Permite crear un documento XML a un buffer inerno en lugar de a un archivo.Character . <ElementValue>) Almacena un valor dentro del tag de nombre ValueName. <ElementName> Character WriteElement(<ValueName>.“standard output”.'.). ISAPI WebClasses y Servlets).'.'. A diferencia del caso anterior este elemento no contiene subelementos. En el caso de que ElementValue sea de tipo Character. <ValueName> <ElementValue> WriteText(<Value>) Genera character data con el string <Value>. <Value> .Character 126 .'. el '>' por '&gt. Este elemento puede tener subelementos.). Se sustituyen los caracteres especiales por secuencias de caracteres (el '<' se sustituye por '&lt. se sustituyen los caracteres especiales por secuencias de caracteres (el '<' se sustituye por '&lt. En caso de ser un objeto web se genera en el response.Character WriteRawText(<Value>) Genera cualquier texto sin sustituir los caracteres especiales por secuencias de caracteres.Character .

al elemento que se creó con la última invocación a WriteStartElement(<ElementName>) o WriteElement(<ValueName> . Ejemplo: 127 . <Entity> . Close() Cierra el documento. OTROS MÉTODOS: WriteComment(<Comment>) Escribe el comentario indicado en <Comment> Ejemplo: WriteComment(‘Comentario’) genera lo siguiente: <!— Comentario --> <Comment> . <ElementValue>).WriteAttribute(<AttriName>.Character WriteEntityReference(<Entity>) Escribe una referencia a la entidad <Entity> Ejemplo: WriteEntityReference(‘Entidad’) genera lo siguiente: &Entidad.Character WriteEndElement() Cierra el último elemento abierto.Character WriteCData(<DataValue>) Escribe una sección Cdata con el valor <DataValue>. <AttriValue>) Asigna un atributo al último elemento. Si el contenido especificado para la sección Cdata contiene la secuencia de caracteres ]]>.Character <AttriValue> . el mismo es fraccionado y se generan tantas secciones Cdata como sean necesarias para obtener un documento XML bien formado. <AttriName> . Es decir.

0 y codificación ISO-8859-1. Ejemplo: WriteDocType(‘<book>’.WriteCData(‘Value’) genera lo siguiente: <![CDATA[value]]> <DataValue> . Si se incluye un SubSet se ingresa entre corchetes al final de la declaración.wav”’) 128 . genera lo siguiente: <? Play sound=”Hello.wav” ?> <Action> .Character <Value > .SunSet]) ‘sound = “Hello.Character WriteProcessingInstruction(<Action>. Este método debe ser llamado al comienzo de la generación del documento (luego del open() y antes de cualquier otro método).<uri> [. ‘<!ENTITY ge “entity”>’) genera lo siguiente: <!DOCTYPE <book> [<!ENTITY ge “entity”>]> <DocName> .Character SubSet – Character WriteDocTypeSystem(<DocName>. Opcionalmente se puede indicar un entero (0/1) como valor booleano para usar en la declaración standalone. Ejemplo: WriteStartDocument() genera lo siguiente: <?xml version=”1.Character WriteStartDocument([StandAlone]) Escribe la declaración de XML usando la versión 1. <Value>) Escribe el registro del tipo processing instruction indicado por <Action> y <Value> Ejemplo: WriteProcessingInstruction(‘play’.SubSet]) Escribe la declaración DOCTYPE del documento XML.0” enconding=”ISO-8859-1” ?> StandAlone – Integer (0/1) WriteDocType(<DocName> [.

Por defecto se utiliza un espacio en blanco. 129 . ‘file.Escribe la declaración DOCTYPE del documento XML con una declaración de tipo SYSTEM. Por defecto es 2. Ejemplo: WriteDocTypePublic(‘<book>’.Character <uri> . ‘http://www.com/dtd’) genera lo siguiente: <!DOCTYPE <book> PUBLIC “Id” “http://www. Ejemplo: WriteDocTypeSystem(‘<book>’.SunSet]) Escribe la declaración DOCTYPE del documento XML con una declaración de tipo PUBLIC.‘Id’.<PubId>.Character SubSet – Character WriteDocTypePublic (<DocName>.ser. Si se incluye un SubSet se ingresa entre corchetes al final de la declaración. Si se incluye un SubSet se ingresa entre corchetes al final de la declaración.dtd’) genera lo siguiente: <!DOCTYPE <book> SYSTEM “file. IndentChar Define el carácter que se utiliza para indentar el código generado. ErrDescription Contiene la descripción del error ocurrido cuando ErrCode tiene un valor distinto de cero.dtd”> <DocName> .com/dtd”> <DocName> <PubId> <uri> Subset Character Character Character Character Propiedades: Indentation Define cuantos caracteres se utilizan para indentar el código generado. ResultingString Permite consultar el valor del documento XML que se encuentra en un buffer interno cuando el documento se creó a partir del método OpenToString().ser. ErrCode Retorna un valor mayor que cero en caso de haber ocurrido un error durante la generación del documento XML. <uri> [.

se crea automáticamente el atributo xmlns:prefix=URI <LocalName> Prefix NameSpaceURI .Character . El prefijo se determina automáticamente en base a los prefijos definidos en el ámbito del elemento. NameSpaceURI]) Este método es análogo al WriteStartElement.genexus.Character .Character . ‘http://www. Si el nombre del atributo es “xmlns” o comienza con “xmlns:” se registra la definición del atributo como la definición de un name space. De esta forma. MÉTODOS: WriteNSStartElement(<LocalName> [.genexus. Si se indica un NameSpaceURI que no está en el ámbito de definición del elemento. Si ningún prefijo estuviera asociado al URI especificado.5</Precio> <LocalName> NameSpaceURI <Value > .El documento retornado puede ser incompleto si se invoca a la propiedad antes de la ejecución del método close() Soporte para Name Spaces En esta sección se describen las funcionalidades disponibles para generar documentos XML que utilizan name spaces. se define junto con el elemento un name space por defecto. en futuras invocaciones de un método WriteNSStartElement o WriteNSElement puede determinarse el 130 .Character . o este tiene un prefijo diferente del parámetro Prefrix.5</prefijo:Precio> o <Precio xmlns=” http://www.NameSpaceURI [. Ejemplo: WriteNSElement(‘Precio’.com”>20.Character WriteAttribute(<LocalName>.Prefix. <Value>) Cuando se trabaja con documentos con name sapace. el método WriteAttribute tiene un comportamiento especial para algunos atributos.com’) genera lo siguiente: <prefijo:Precio>20.Value]]) Este método es análogo al WriteElement. ’20.5’.Character WriteNSElement(<LocalName> [.

‘http://defecto.xml &writer.xml’) &writer. for each &filexml.WriteNSElement(‘b’.com" xmlns:p2="http://www.com/segundo" p2:att1="a1" /> </a> Ejemplo El siguiente procedimiento genera un archivo llamado Reunion. dtoc(ReuFch) ) 131 .Open(‘ejemplo.com’) &writer. ‘a1’) &writer.WriteEndElement() &writer.xml que contiene datos de una reunión. ‘a1’) &writer.Close() El archivo ejemplo.genexus.com’) &writer. indicando que integrantes participaron de la misma. ’http://www.WriteAttribute(‘p1:att2’.artech.WriteAttribute(‘xmlns’.genexus. ’http://www.WriteAttribute('Fecha'.WriteStartElement('REUNION') &filexml.open('Reunion.xml') &filexml.xml queda de la siguiente forma: <a xmlns:p1="http://www.prefijo correspondiente a una determinada URI.artech.com’) &writer.com/segundo’) &writer.artech.WriteAttribute(‘p2:att1’. ‘a1’) &writer.WriteAttribute(‘xmlns:p2’.WriteAttribute(‘xmlns:p1’.com" xmlns="http://defecto.’http://www.WriteNSElement(‘b’. ‘a2’) &writer.WriteAttribute(‘att’.WriteStartDocument() &filexml.WriteAttribute(‘xmlns:p1’.’http://www. EJEMPLO DE SOPORTE DE NAME SPACE: El siguiente procedimiento genera el archivo ejemplo. y cuales son las tareas de cada uno.artech.com" att="a1"> <p1:b att1="a1" p1:att2="a2" /> <p1:b xmlns:p1="http://www.genexus. ’http://www.WriteAttribute(‘att’.WriteNSStartElement(‘a’) &writer.artech.com’) &writer.com’) &writer.

WriteStartElement('TAREAS') for each &filexml.WriteStartElement('TAREA') &filexml. ReuPerNom ) endfor &filexml.Descrpción de la reunión--> <![CDATA[ Reunion del equipo de desarrollo de la aplicación.]]> <INTEGRANTES> <INTEGRANTE>Juan Pedro</INTEGRANTE> <INTEGRANTE>Laura</INTEGRANTE> <INTEGRANTE>Diego</INTEGRANTE> <INTEGRANTE>Florinda</INTEGRANTE> </INTEGRANTES> <TAREAS> <TAREA> <RESPONSABLE>Juan Pedro</RESPONSABLE> <![CDATA[ Realizar la documentción de la aplicación]]> </TAREA> <TAREA> <RESPONSABLE>Florinda</RESPONSABLE> <![CDATA[ Reunion con los clientes. ReuTarPerNom) &filexml.WriteComment('Descrpción de la reunión') &filexml.]]> </TAREA> <TAREA> <RESPONSABLE>Laura</RESPONSABLE> <![CDATA[ Realizar el maunal de usuario]]> </TAREA> <TAREA> <RESPONSABLE>Diego</RESPONSABLE> <![CDATA[ Documentar las especificaciones.WriteElement('INTEGRANTE'.]]> </TAREA> 132 .WriteElement('FECHA'.WriteEndElement() endfor &filexml.&filexml.WriteEndElement() &filexml.WriteCData(ReuTarDsc ) &filexml.WriteEndElement() &filexml.0" encoding="ISO-8859-1" ?> <REUNION Fecha="06/03/01"> <FECHA>06/03/01</FECHA> <!-.xml contiene: <?xml version="1.Close() endfor El archivo reunion.WriteEndElement() &filexml.WriteCData(ReuDsc ) &filexml. dtoc(ReuFch) ) &filexml. La reunión fue realizada el Viernes a las 9:30 horas.WriteStartElement('INTEGRANTES') for each &filexml.WriteElement('RESPONSABLE'.

</TAREAS> </REUNION> 133 .

CDATA section delimiters. this text is considered an integral part of the document. processing instructions. Parsed entities are invoked by name using entity references. outside the document element and not inside any other markup).org/TR/1999/REC-xml-names-19990114/ • Character data: Markup takes the form of start-tags.Glosario Las siguientes definiciones fueron extraídas de “Extensible Markup Language (XML) 1. text declarations. All text that is not markup constitutes the character data of the document. Document type declaration: XML provides a mechanism. XML places no constraints on the contents of unparsed entities. Each unparsed entity has an associated notation. The standalone document declaration. y para el caso de los Namespaces referirse a http://www. An XML document is valid if it has an • • • • • • 134 . examples are attribute defaults and entity declarations. emptyelement tags. document type declarations. CDATA sections may occur anywhere character data may occur. CDATA sections begin with the string "<![CDATA[" and end with the string "]]>". they all have content and are all (except for the document entity and the external DTD subset) identified by entity name. unparsed entities by name. as passed from an XML processor to an application. character references. the document type declaration. may be other than XML. entity references. which may appear as a component of the XML declaration. end-tags. identified by name. Entities: An XML document may consist of one or many storage units. signals whether or not there are such declarations which appear external to the document entity or in parameter entities. An unparsed entity is a resource whose contents may or may not be text. A parsed entity's contents are referred to as its replacement text. Beyond a requirement that an XML processor make the identifiers for the entity and notation available to the application. por más información referirse a http://www. Standalone document declaration: Markup declarations can affect the content of the document. These are called entities. Entity reference: Refers to the content of a named entity.0 (Second Edition)”. and any white space that is at the top level of the document entity (that is. comments. they are used to escape blocks of text containing characters which would otherwise be recognized as markup.w3. Entities may be either parsed or unparsed. to define constraints on the logical structure and to support the use of predefined storage units.org/TR/2000/REC-xml-20001006 .w3. and if text. XML declarations. given in the value of ENTITY or ENTITIES attributes. Processing instructions (PIs) allow documents to contain instructions for applications.

se debe definir una variable de un nuevo tipo de datos denominado XmlReader y luego invocar a los métodos y propiedades necesarios para obtener la información de los nodos que lo componen. The XML document type declaration contains or points to markup declarations that provide a grammar for a class of documents. or can do both. Interfaces: Web Form. • XML namespaces provide a simple method for qualifying element and attribute names used in Extensible Markup Language documents by associating them with namespaces identified by URI references. Alcance Objetos: Transacciones. El documento XML contiene una introducción a dicho lenguaje. Procedimientos. La idea básica del funcionamiento es la siguiente: existe un método Read() que se comporta a manera de cursor avanzando al siguiente nodo del archivo. Se recomienda leer también el documento XMLWriter. Descripción Para poder leer el contenido de un archivo XML desde un objeto GeneXus. The DTD for a document consists of both subsets taken together. en este caso el nombre y el valor del mismo. Work Panels. Métodos: MÉTODOS BÁSICOS: 135 . Win Form. Lenguajes: Java – Visual Basic – Visual Fox – C/SQL – C#. De esta forma utilizando el método Read() se “navega” a lo largo del documento en forma secuencial obteniendo los distintos nodos del mismo. This grammar is known as a document type definition. Tipo de Datos XMLReader Introducción El objetivo del tipo de datos XMLReader es proveer la posibilidad de leer el contenido de los archivos XML. The document type declaration can point to an external subset (a special kind of external entity) containing markup declarations. or can contain the markup declarations directly in an internal subset. or DTD.associated document type declaration and if the document complies with the constraints expressed in it. Reportes. luego utilizando ciertas propiedades como por ejemplo Name y Value se puede obtener los datos del nodo. Web Panels.

La restricción <NodeTypeConstraint> especifica cuales son los tipos de nodos que quiero leer.Open(<FileName>) Permite abrir un documento XML. Se especifica indicando las constantes del tipo de nodo concatenadas por medio del carácter “+” Por ejmplo: <NodeTypeConstraint> = 1 + 4 (especifica el tipo Element y Text) Si NameConstraint tiene un valor no nulo. <DocXML > – Character Read() Este método se utiliza para ir obteniendo en forma secuencial los distintos nodos del archivo abierto. <NodeTypeConstraint> – Character NameConstraint – Character GetAttributeByIndex(<Index>) Retorna el valor del atributo en la posición <Index> del nodo actual obtenido por el método Read o ReadType. <FileName> – Character OpenFromString(<DocXML>) Permite abrir un documento XML contenido en un string. Solo es válido para nodos de tipo Element. este método avanza al siguiente nodo pero que cumpla con las restricciones indicadas y retorna un valor entero mayor que cero si se leyó un nodo y cero en caso contrario. Invocando al mismo se avanza al siguiente nodo y retorna un valor entero mayor que cero si se leyó un nodo y cero en caso contrario. ReadType(<NodeTypeConstraint> [.NameConstraint]) Al igual que el método Read(). especifica que valor debe de tener el nombre del nodo que quiero leer. Las posiciones se numeran desde 1. Puede usarse la propiedad ErrCode para consultar el éxito de la operación. <Index> – Integer 136 . siempre y cuando el nodo sea de tipo Element o EndTag. File Name es el nombre de un archivo XML o una URL con un archivo XML.

<Name> – Character Close() Cierra el documento. El valor indicado tiene precedencia sobre la propiedad encoding de la declaración <?xml?> del documento. OTROS MÉTODOS: SetDocEncoding (<Encoding>) Permite establecer explícitamente la codificación de caracteres utilizada en el documento. <Name> – Character ExistsAttribute(<Name>) Retorna 1 si el atributo de nombre <Name> del nodo actual obtenido por el método Read o ReadType existe y 0 en caso contrario.GetAttributeByName(<Name>) Retorna el valor del atributo de nombre <Name >del nodo actual obtenido por el método Read o ReadType.Character SetNodeEncoding(<Encoding>) Permite establecer la codificación de caracteres utilizada para los valores retornados por el objeto XMLReader al programa GeneXus. 137 . Solo es válido para nodos de tipo Element. Los valores posibles de <Enconding> son: ANSI US-ASCII UTF-8 UTF-16 ISO-8859-1 <Enconding> . Los valores posibles de <Enconding> son: ANSI UTF-8 El valor por defecto es ANSI. Solo es válido para nodos de tipo Element.

Si no se indica [Namespace]. [Namespace]) Indica que se va a utilizar el “schema” de la <URI> para validar el XML del [Namespace] indicado. ReadRawXML() Permite obtener texto XML plano a partir del inicio de un elemento. AddSchema(<URI>. Para utilizar este método hay que indicar en la propiedad ValidationType que se realice validación por esquema o automática.Character Skip() Permite saltear un elemento completo con todos sus hijos. <URI> – Character Namespace – Character Propiedades: PROPIEDADES BÁSICAS Nodetype Retorna el tipo de nodo actual obtenido por el método Read o ReadType. se toma el del atributo targetNamespace del esquema. Solo es válido para nodos de tipo Element. Los valores posibles son: 1Element 2EndTag 4Text 8Comment 16 WhiteSpace 32 Cdata 64 ProcessingInstruction 128 .DocumentTypeElementType EndTagType TextType CommentType WhiteSpaceType CDataType ProcessingInstructionType DoctypeType Estas propiedades contienen valores constantes que pueden utilizarse para comparar el resultado de la propiedad NodeType o con el método ReadType Name Retorna el nombre del nodo actual obtenido por el método Read o 138 . Solo es válido para nodos de tipo Element.<Enconding> . Lo indicado en este método tiene prioridad sobre el atributo schemaLocation del documento XML (en caso de que exista).

el objeto XMLReader leerá y procesará en forma transparente para el usuario toda referencia a archivos o URLs externas que sean incluidas por el documento. El valor por defecto es TRUE. ErrLineNumber. Comment. ErrCode Retorna un valor mayor que cero en caso de haber ocurrido un error durante el procesamiento de un documento XML. tabuladores y finales de línea del inicio y fin del valor de un nodo de tipo TEXT o ELEMENT. DocumentType y Element IsSimple Indica si el nodo actual obtenido por el método Read o ReadType responde a una estructura del tipo <Elemento>Valor</Elemento> AttributeCount Retorna la cantidad de atributos que posee el nodo actual obtenido por el método Read o ReadType. OTRAS PROPIEDADES ReadExternalEntities Esta propiedad booleana indica si deben leerse las entidades externas parseadas que forman parte del documento XML que se esté procesando (esto incluye el subconjunto externo del DTD). ProcessingInstruction. En caso contrario. EOF Retorna si se alcanzo el final del docuemnto. Solo es válido para los nodos de tipo Text. Solo es válido para nodos de tipo Element. ErrDescription Retorna la descripción del error en caso de que ErrCode sea distinto de cero. RemoveWhiteNodes Esta propiedad booleana indica si deben pasarse por alto los nodos de tipo WhiteSpace al procesar un documento. ErrLinePos Retornan el numero de linea y posición dentro de la misma respectivamente en caso de que ErrCode sea distinto de cero. Solo es válido para nodos de tipo Element y EndTag. El valor por defecto es TRUE. Si la lectura está habilitada. 139 . RemoveWhiteSpaces Esta propiedad booleana indica si deben eliminarse los espacios en blanco. Value Retorna el valor del nodo actual obtenido por el método Read o ReadType. las referencias a entidades externas son ignoradas.ReadType.

SimpleElements Esta propiedad determina si los elementos con una estructura simple como la siguiente <elemento>valor</elemento> o <elemento/> son procesados como un único nodo de tipo Element El valor por defecto es TRUE.. If there is no <!DOCTYPE .> declaration but there is a schema declaration (<schema>)..None) If there is no <!DOCTYPE ...> declaration and no XSD or XDR schema information then the parser is a non-validating parser (i.. ValidationType Esta propiedad determina como se va a validar el XML leído. Los valores posibles son: • 0 – No se realiza validación • 1 – Validación automática • 2 – Validación por medio de DTD • 3 – Validación por medio de un “Schema” • 4 – Validación por medio de XDR Cuando se elige validación automática el comportamiento es el siguiente (extraído de la documentación de . If there is a DTD defined in a <!DOCTYPE ... General entities are only loaded and parsed if they are used (expanded). it will load and process those XSD schemas and it will return any default attributes defined in those schemas. it will validate using the in-line schema.. Soporte para Name Spaces En esta sección se describen las funcionalidades disponibles para procesar documentos XML que utilizan name spaces.NET): If there is no DTD or schema.. it will load and process those schemas and it will return any default attributes defined in those schemas. ValidationType=ValidationType.e.> declaration but there is an XSD "schemaLocation" attribute. If there is no <!DOCTYPE . If there is no <!DOCTYPE . 140 .> declaration..> declaration and no XSD "schemaLocation" attribute but there are some namespaces using the MSXML "x-schema:" URN prefix. it will load the DTD and process the DTD declarations such that default attributes and general entities will be made available. it will parse the XML without validation.

las propiedades Name y LocalName coinciden. Las posiciones se numeran desde 1. NameSpaceURI Retorna el URI usado para identificar al name space. tanto las entidades internas como externas son procesadas automáticamente reemplazando las referencias por sus valores. GetAttributeName(<Index>) GetAttributePrefix(<Index>) GetAttributeLocalName(<Index>) GetAttributeURI(<Index>) <Index> Integer PROPIEDADES Las siguientes propiedades sólo son válidas para nodos de tipo Element y EndTag. Entity references Por defecto. El atributo puede especificarse por medio de su posición en el texto o por su nombre y no se verifica que sea de tipo ENTITY. Name Retorna el nombre completo prefijo:nombrelocal Prefix Retorna el prefijo que representa al name space del nombre LocalName Retorna el nombre sin el prefijo que representa al name space. Se dispone además de las siguientes funcionalidades: MÉTODOS Los siguientes métodos permiten acceder a la notación y entidad referenciadas por un atributo de tipo ENTITY. Cuando un elemento no está calificado con un name space. El procesamiento de las externas sin embargo puede ser desactivado usando la propiedad ReadExternalEntities. Solo son válidos para nodos de tipo Element.MÉTODOS: Los siguientes métodos retornan los distintos componentes del nombre de un atributo indicado por <Index>. Si ninguna declaración fue 141 .

]]> <INTEGRANTES> <INTEGRANTE>Juan Pedro</INTEGRANTE> <INTEGRANTE>Laura</INTEGRANTE> <INTEGRANTE>Diego</INTEGRANTE> <INTEGRANTE>Florinda</INTEGRANTE> </INTEGRANTES> <TAREAS> <TAREA> <RESPONSABLE>Juan Pedro</RESPONSABLE> <![CDATA[ Realizar la documentción de la aplicación]]> </TAREA> <TAREA> <RESPONSABLE>Florinda</RESPONSABLE> <![CDATA[ Reunion con los clientes. GetAttEntityValueByIndex(<Index>) GetAttEntityValueByName(<Name>) GetAttEntityNotationByIndex(<Index>) GetAttEntityNotationByName(<Name>) <Index> <Name> Integer Character Ejemplo Se tiene el siguiente documento XML.hecha en el DTD del documento para el valor atributo se devuelve una cadena vacía.xml <?xml version="1. llamado Reunion.]]> </TAREA> 142 .Descrpción de la reunión--> <![CDATA[ Reunion del equipo de desarrollo de la aplicación. La reunión fue realizada el Viernes a las 9:30 horas.0" encoding="ISO-8859-1" ?> <REUNION Fecha="06/03/01"> <FECHA>06/03/01</FECHA> <!-. Solo son válidos para nodos de tipo Element.]]> </TAREA> <TAREA> <RESPONSABLE>Laura</RESPONSABLE> <![CDATA[ Realizar el maunal de usuario]]> </TAREA> <TAREA> <RESPONSABLE>Diego</RESPONSABLE> <![CDATA[ Documentar las especificaciones. Las posiciones se numeran desde 1.

xml’ ) &readfile.value &readfile.close() Este procedimiento GeneXus lee el archivo y obtiene las tareas de un integrante de la reunión. 'INTEGRANTES') &readfile.open(‘Reunion.read() do while &readfile.value else &tareas = Nullvalue(&tareas ) Endif &readfile. Web 143 . &readfile.ReadType(1. Web Panels. Procedimientos. 'RESPONSABLE') If &exito = 0 Exit Endif enddo If &exito <> 0 &readfile. &readfile. es que se manejan las planillas con un modelo orientado a objetos. 'RESPONSABLE') do while &readfile.</TAREAS> </REUNION> Este procedimiento GeneXus lee el archivo y obtiene los integrantes de la reunión.xml’) &exito = &readfile.read() &tareas = &readfile.close() Tipo de Datos para el manejo de planillas Excel Introducción La finalidad de este nuevo tipo de datos es unificar las funciones de interacción con la generación de planillas Excel para los distintos lenguajes generados.ReadType(1. Visual Basic .ReadType(1. Visual FoxPro Interface: Win.value <> &Integrante &exito= &readfile. No hay que llevar control de los manejadores de los documentos (Handles). Work Panels. Reportes Lenguajes: Java. Una ventaja importante de esta implementación con respecto a las anteriores.name <> 'INTEGRANTES' &Integrante = &readfile.open(‘Reunion. Alcance Objetos: Transacciones.read() enddo &readfile.

si se especifica un valor negativo (excepto –1).Bold Esta propiedad solamente devolverá 1 si todas las celdas en el objeto ExcelCells están en negrita. Si existen celdas en el objeto ExcelCells con distintos colores. Sintaxis: &ExcelDocument. Además internamente se implementa el tipo de datos ExcelCells. En caso contrario devolverá 0. En cambio.Color Si se especifica un valor positivo se tomará dicho valor como índice de color de Excel. esta propiedad devolverá 0. se toma el color por defecto definido en Excel.Descripción Para utilizar esta nueva funcionalidad se creó el tipo de datos llamado ExcelDocument que permite. Si se especifica el valor –1. a través de sus propiedades y métodos generar y manejar planillas de Microsoft Excel.Cells(…). Color Especifica el color de las celdas. se tomará su valor absoluto como número de color en el esquema RGB (es decir. que se utiliza para manejar al conjunto de celdas que existen en la planilla. Sintaxis: &ExcelDocument. ExcelCells Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad Bold Color Date Font Italic Number Size Text Type Underline Tipo Numérico Numérico DateTime Carácter Numérico Numérico Numérico Carácter Carácter Numérico Acceso Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura Lectura/Escritura PROPIEDADES Bold Especifica si las celdas se muestran en negrita (1) o no (0).Cells(…). 144 . como un valor retornado por la función RGB).

Date Si existen celdas en el objeto ExcelCells con distintos valores.Cells(…). Sintaxis: &ExcelDocument.Cells(…).Text Si existen celdas en el objeto ExcelCells con distintos valores.Cells(…). la propiedad Number devolverá cero. En caso contrario devolverá 0. la propiedad Date devolverá la fecha nula. Font Especifica la fuente utilizada para desplegar el valor de las celdas.Size Si existen celdas en el objeto ExcelCells que utilizan distintos tamaños fuentes. Sintaxis: &ExcelDocument. la propiedad Text 145 . Number Valor de las celdas en formato numérico. Sintaxis: &ExcelDocument. Italic Especifica si las celdas se muestran en itálica (1) o no (0).Date Valor de las celdas en formato de fecha y hora.Font Si existen celdas en el objeto ExcelCells que utilizan distintas fuentes. Size Especifica el tamaño de la fuente utilizada para desplegar el valor de las celdas.Cells(…).Italic La propiedad Italic solamente devolverá valor 1 si todas las celdas en el objeto ExcelCells están en itálica. Sintaxis: &ExcelDocument. la propiedad Size devolverá 0. Sintaxis: &ExcelDocument. Sintaxis: &ExcelDocument.Cells(…).Cells(…). Text Valor de las celdas en formato de texto.Number Si existen celdas en el objeto ExcelCells con distintos valores. la propiedad Font devolverá la cadena vacía.

Si existen celdas en el objeto ExcelCells que contienen distintos tipos. ExcelDocument Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad AutoFit Delimiter ErrCode ErrDescription ErrDisplay MacroReturnText MacroReturnNumber MacroReturnDate ReadOnly Template Tipo Numérico Carácter Numérico Carácter Numérico Carácter Numérico Fecha Numérico Carácter Acceso Lectura/Escritura Lectura/Escritura Lectura Lectura Lectura/Escritura Lectura Lectura Lectura Lectura/Escritura Lectura/Escritura Método Cells Parámetros Row Column Height Width (ninguno) (ninguno) Tipo Numérico Numérico Numérico Numérico Clear Close 146 . la propiedad Type devolverá “U”.Cells(…). si el tipo es fecha o fecha/hora. si el tipo es carácter. Underline Especifica si las celdas se muestran subrayadas (1) o no (0).Cells(…).devolverá la cadena vacía. En caso contrarió devolverá 0. La propiedad Type tendrá uno de los siguientes valores: “N” “C” “U” “D” • si el tipo es desconocido. Sintaxis: &ExcelDocument.Type si el tipo es numérico. Type Devuelve el tipo del valor de una celda determinada. Sintaxis: • • • &ExcelDocument.Underline La propiedad Underline solamente devolverá valor 1 si todas las celdas en el objeto ExcelCells están subrayadas.

ErrDescription Ver sección “Códigos y Mensajes de Error”. ErrDisplay Desplegar o no mensajes de error.ErrCode Ver sección “Códigos y Mensajes de Error”. 147 .Delimiter El valor por defecto es la coma (“. Sintaxis: &ExcelDocument.Hide Open Print RenameSheet RunMacro Save SelectSheet Show Unbind (ninguno) FileName Preview SheetName MacroName Par1 … Par30 (ninguno) SheetName (ninguno) (ninguno) Carácter Numérico Carácter Carácter (Cualquiera) Carácter Numérico PROPIEDADES AutoFit Ajustar automáticamente o no el ancho de las columnas. Sintaxis: &ExcelDocument. El ajuste automático se hará de manera tal que quede visible todo el contenido de las celdas modificadas. Sintaxis: &ExcelDocument. Delimiter Separador de campos a utilizar al abrir archivos de texto. ErrCode Código de error de la última operación. ErrDescription Mensaje de error de la última operación. El valor por defecto es 0. Sintaxis: &ExcelDocument.AutoFit Especifica si se ajustará automáticamente (1) o no (0) el ancho de las columnas al modificar cualquiera de las propiedades de una celda o un grupo de ellas.”).

MacroReturnNumber Ultimo valor numérico devuelto por un llamado a una macro mediante el método RunMacro.MacroReturnText Nota: . Sintaxis: &WordDocument.Esta propiedad no está disponible para el generador Java.MacroReturnDate Nota: . ReadOnly Abrir el próximo documento como sólo lectura. MacroReturnText Ultimo valor de tipo carácter devuelto por un llamado a una macro mediante el método RunMacro.MacroReturnNumber Nota: . Sintaxis: &WordDocument. la próximas llamadas al método Open causarán que las planillas se abran como sólo lectura. 148 .ReadOnly Si ReadOnly es 1. El valor por defecto es 0. Template Nombre del template a utilizar para documentos nuevos. El valor por defecto es 0. Sintaxis: &ExcelDocument.Sintaxis: &ExcelDocument.Esta propiedad no está disponible para el generador Java. MacroReturnDate Ultimo valor de tipo fecha devuelto por un llamado a una macro mediante el método RunMacro. Sintaxis: &WordDocument.Esta propiedad no está disponible para el generador Java. Si es 0 se intentarán abrir como lectura/escritura. pero si ya se encuentran abiertas se abrirán como sólo lectura.ErrDisplay Especifica si al ocurrir un error se desplegará un mensaje advirtiendo al usuario con el texto del error (1) o no (0).

MÉTODOS Cells Devuelve una celda o un conjunto de celdas.Sintaxis: &ExcelDocument. Width]) Devuelve un objeto ExcelCells con las celdas que componen el área que comienza en la fila Row y columna Column y tiene Height celdas de alto y Width celdas de ancho.Clear() 149 . pasando por parámetro un string vacío (“”). Si no se especifican los parámetros Height y Width se devolverá solamente la celda ubicada en la fila Row y columna Column Clear Borra el contenido y el formato de todas las celdas de la hoja activa. para volver a utilizar el template por defecto se debe hacer una llamada a esta propiedad. Por defecto. se usará el template por defecto. En este caso se utilizará el template por defecto. Column[. Si es el string vacío. Sintaxis: &ExcelDocument. Sintaxis: Close Salva y cierra el documento. y luego se borra porque ya no se necesita. El tipo de archivo puede ser cualquiera permitido por Excel para utilizarlo como Template.Close() &ExcelDocument. no hay template asignado y por lo tanto se utiliza el template por defecto.Cells(Row. El valor por defecto es la cadena vacía. Height.Template Indica el camino y el nombre del archivo que se que se utilizará como Template en las próximas llamadas al método Open con un nombre de archivo no existente.Hide() &ExcelDocument. Sintaxis: &ExcelDocument. Si se define un template. Sintaxis: Hide Oculta el documento.

Open Abre el documento especificado. Para mostrarlo es necesario llamar al método Show.Para poder utilizar este método se debe configurar la preferencia “Functions = Allow non standard functions” en diseño y prototipo. esto es una limitación de Office 97.Open(FileName) De no existir el documento especificado.Print([Preview]) El parámetro Preview indica si se mostrará el documento por pantalla (1) o no (0) antes de imprimirlo. Par1 . • Esta función no está disponible para el generador Java. Por esta razón tampoco es posible invocar las propiedades MacroReturnText. no es posible utilizar parámetros. 150 . Si la macro llamada devuelve valores. Al abrir un documento mediante el método Open. MacroReturnNumber y MacroReturnDate.Par30]]) Notas: • Los parámetros son sólo de entrada.RenameSheet(SheetName) RunMacro Ejecuta una macro contenida en el documento con los parámetros que se especifiquen. Sintaxis: &ExcelDocument. Sintaxis: &ExcelDocument. MacroReturnNumber y MacroReturnDate en este caso. dependiendo de su tipo. Save Guarda el documento a disco. RenameSheet Renombra la hoja activa al nombre especificado. • Hay un máximo de 30 parámetros.. esto es una limitación de Word. El valor por defecto es 0. Sintaxis: &ExcelDocument. [. éstos quedarán almacenado en las propiedades MacroReturnText. Sintaxis: &ExcelDocument. • Si se utiliza este método con Office 97. éste se crea utilizando el template especificado en la propiedad Template. Print Imprime el documento en la impresora por defecto. Nota: ..RunMacro(MacroName[. éste no es desplegado en pantalla.

Show() Este método es útil si se desea que una planilla permanezca abierta luego de que se pierde de alcance el objeto ExcelDocument. Las operaciones sobre el objeto ExcelDocument no afectan más al documento. De hecho. Códigos y Mensajes de Error Los valores posibles son: Código 0 2 3 4 5 6 7 8 9 10 11 12 Mensaje Ok Workbook no longer valid (sucede cuando un libro que fue abierto desde un programa es cerrado a mano por el usuario). Sintaxis: &ExcelDocument.Unbind() &ExcelDocument.Sintaxis: &ExcelDocument. Invalid template Invalid worksheet name Invalid font properties Invalid cell value Invalid cell coordinates Invalid file name Could not open file Error running macro Could not save file 151 . Sintaxis: &ExcelDocument. incluso luego de finalizada la aplicación.SelectSheet(SheetName) De no existir la hoja especificada. el objeto ExcelDocument se comporta como si no tuviera un documento abierto hasta que no se llame nuevamanete al método Open. Application no longer valid (sucede cuando Excel es cerrado a mano por el usuario). se crea. Show Muestra el documento en pantalla.Save() SelectSheet Cambia la hoja activa a la especificada. Al liberar una planilla se pierde por completo la referencia entre el objeto ExcelDocument y el documento abierto. Sintaxis: Unbind Permite dejar abierta la planilla Excel. luego de finalizar la aplicación.

Web Descripción Para utilizar esta nueva funcionalidad se creó el tipo de datos llamado WordDocument que permite.Consideraciones Generales Los métodos descritos anteriormente fueron implementados de forma tal que devuelven (como si fueran funciones) el código de error. Visual Basic . Work Panels. Reportes Lenguajes: Java. Estas funciones se soportan unicamente por compatibilidad. Procedimientos. Web Panels. Una ventaja importante de esta implementación con respecto a las anteriores. Alcance Objetos: Transacciones. Tipo de Datos para el manejo de documentos Word Introducción La finalidad de este nuevo tipo de datos es unificar las funciones de interacción con la generación de documentos Word para los distintos lenguajes generados. Visual FoxPro Interface: Win. por lo que no se recomienda hacer nuevas implementaciones con las mismas pues las nuevas funcionalidades no serán implementadas en dichas funciones. Por ejemplo: &Err = &ExcelDocument. 152 . se siguen soportando. no es necesario llevar control de los manejadores de los documentos (Handles).Open(Archivo) Compatibilidad con versiones anteriores de GeneXus Las funciones de GXoffice que existían hasta la versión 7. a través de sus propiedades y métodos generar documentos de Microsoft Word.0 de GeneXs. es que se manejan las planillas con un modelo orientado a objetos. el generador funciona de forma tal que mapea internamente estas funciones para que utilicen estos nuevos tipos de datos. por lo que es posible llamarlos como funciones.

Sintaxis: &WordDocument. 153 .ErrCode Ver sección “Códigos y Mensajes de Error” en este mismo documento.WordDocument Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad ErrCode ErrDescription ErrDisplay MacroReturnText MacroReturnNumber MacroReturnDate ReadOnly Template Text Tipo Numérico Carácter Numérico Carácter Numérico Fecha Numérico Carácter Carácter Acceso Lectura Lectura Lectura/Escritura Lectura Lectura Lectura Lectura/Escritura Lectura/Escritura Lectura/Escritura Método Append Close Hide Open Print Replace RunMacro Save SaveAs Show SpellCheck Unbind Parámetros Text (ninguno) (ninguno) FileName Preview Background OldText NewText MatchCase MatchWholeWord MacroName Par1 … Par30 (ninguno) FileName FileType DOSText LineBreaks (ninguno) (ninguno) (ninguno) Tipo Carácter Carácter Numérico Numérico Carácter Carácter Numérico Numérico Carácter (Cualquiera) Carácter Carácter Numérico Numérico Numérico PROPIEDADES ErrCode Código de error de la última operación.

Sintaxis: &WordDocument.Esta propiedad no está disponible para el generador Java. Sintaxis: &WordDocument. MacroReturnDate Ultimo valor de tipo fecha devuelto por un llamado a una macro mediante el método RunMacro.MacroReturnDate Nota: .MacroReturnText Nota: . Sintaxis: &WordDocument.ErrDisplay Especifica si al ocurrir un error se desplegará un mensaje advirtiendo al usuario con el texto del error (1) o no (0).Esta propiedad no está disponible para el generador Java.Esta propiedad no está disponible para el generador Java.ErrDescription Mensaje de error de la última operación. Sintaxis: &WordDocument. Sintaxis: &WordDocument. 154 .MacroReturnNumber Nota: . ErrDisplay Desplegar o no mensajes de error.ErrDescription Ver sección “Códigos y Mensajes de Error” en este mismo documento. ReadOnly Abrir el próximo documento como sólo lectura. MacroReturnText Ultimo valor de tipo carácter devuelto por un llamado a una macro mediante el método RunMacro. MacroReturnNumber Ultimo valor numérico devuelto por un llamado a una macro mediante el método RunMacro. El valor por defecto es 0.

pero si ya se encuentran abiertas se abrirán como sólo lectura. Sintaxis: Close Salva y cierra el documento. Si es 0 se intentarán abrir como lectura/escritura.Append(Text) 155 . Template Nombre del template a utilizar para documentos nuevos.ReadOnly = Valor Si ReadOnly es 1. pasando por parámetro un string vacío (“”). El valor por defecto es 0. &WordDocument.Sintaxis: &WordDocument. la próximas llamadas al método Open causarán que los documentos se abran como sólo lectura. y luego se borra porque ya no se necesita. El valor por defecto es la cadena vacía. Sintaxis: &WordDocument. En este caso se utilizará el template por defecto. se recomienda utilizar el método Append. Si se define un template. Si ningún documento está visible. Sintaxis: Hide Oculta el documento. Sintaxis: &WordDocument.Template(Template) Indica el camino y el nombre del archivo que se que se utilizará como Template en las próximas llamadas al método Open con un nombre de archivo no existente. oculta el Word. para volver a utilizar el template por defecto se debe hacer una llamada a esta propiedad. Text Texto completo del documento. MÉTODOS Append Agrega nuevo texto al final de un documento.Text En caso de querer agregar nuevo texto a un documento existente sin perder el formato actual.Close() &WordDocument.

MatchCase[.Replace(OldText. Para mostrarlo es necesario llamar al método Show. Indica cual es el texto que se va a sustituir Indica cual será el nuevo texto en el documento Si tiene valor 1 sólo se sustituirán las ocurrencias que tengan igual configuración de mayúsculas y 156 . éste no es desplegado en pantalla. Al abrir un documento mediante el método Open.Sintaxis: Open &WordDocument. El parámetro puede contener el camino y el nombre del documento. Sintaxis: &WordDocument.Hide() Abre el documento especificado. Replace Permite sustituir todas las ocurrencias de un texto por otro.Open(FileName) De no existir el documento especificado en el parámetro. si solo se especifica el nombre el documento se creará en el directorio por defecto (directorio del modelo DataXXX). Este parámetro es opcional. Print Imprime el documento en la impresora por defecto. éste se crea utilizando el template especificado en la propiedad Template. Indica si la impresión se llevará a cabo en segundo plano (valor 1) o no (valor 0). ésta será cancelada. Background Numérico Nota: .Para poder utilizar este método se debe configurar la preferencia “Functions = Allow non standard functions” en diseño y prototipo. Sintaxis: &WordDocument. Este parámetro es opcional y el valor por defecto es 0. 0 (no se muestra el documento). Los valores posibles son 1 (se muestra el documento). Sintaxis: Preview &WordDocument.Print([Preview[. MatchWholeWord]]) OldText NewText MatchCase Carácter Carácter Numérico NewText[. el valor por defecto es 1. En caso de indicar impresión en segundo plano se devolverá el control al programa llamador mientras se realiza la impresión y si en el programa se cierra el documento cuando aún no terminó la impresión. Background]]) Numérico Indica si se mostrará el documento en pantalla o no antes de imprimirlo.

Par30 &WordDocument. Sintaxis: SaveAs Guarda el documento a disco con un nuevo nombre. Save Guarda el documento Word a disco.MatchWholeWord Numérico minúsculas. MacroReturnNumber y MacroReturnDate. no se contempla el texto del cabezal (Header) y el pie de página (Footer) para realizar la sustitución. [.La sustitución se realiza solo en el texto del documento. • Hay un máximo de 30 parámetros.. contenida en el documento. Sintaxis: MacroName Par1 . no es posible utilizar parámetros. el comportamiento por defecto es como si tuviera valor 0. Sintaxis: &WordDocument. dependiendo de su tipo.. con los parámetros que se especifiquen.. DOSText[.RunMacro(MacroName[. si tiene valor 0 se sustituirán todas las ocurrencias Este parámetro es opcional. Si tiene valor 1 sólo se sustituirán aquellas ocurrencias que no formen parte de otra palabra. éstos quedarán almacenado en las propiedades MacroReturnText.Save() 157 .SaveAs(FileName[. • Esta función no está disponible para el generador Java.Par30]]) Carácter (Cualquiera) Macro que se desea ejecutar Parámetros utilizados por la macro. y opcionalmente se puede seleccionar un nuevo tipo de archivo. si tiene el valor 0 se sustituirán todas las ocurrencias Este parámetro es opcional. • Si se utiliza este método con Office 97. MacroReturnNumber y MacroReturnDate en este caso. Por esta razón tampoco es posible invocar las propiedades MacroReturnText. RunMacro Ejecuta la Macro indicada. esto es una limitación de Word. Par1 . el comportamiento por defecto es como si tuviera valor 0 Nota: . &WordDocument. Notas: • Los parámetros son sólo de entrada. esto es una limitación de Office 97.. Si la macro llamada devuelve valores. LineBreaks]]]) FileType[.

Al liberar un documento se pierde por completo la referencia entre el objeto WordDocument y el documento abierto. En caso de especificar tipo TXT se podrá especificar si el formato del texto a utilizar será el de DOS (valor 1) o no (valor 0). el valor por defecto es 0.SpellCheck() Este método es útil si se desea que un documento permanezca abierto luego de que se pierde de alcance el objeto WordDocument. el objeto WordDocument se comporta como si no tuviera un documento abierto hasta que no se llame nuevamanete a su método Open. luego de finalizar la aplicación. En caso de especificar tipo TXT indica si se agregará un salto de página al final de cada línea (valor 1) o no (valor 0). el valor por defecto es 0. Los tipos de archivo válidos son: DOC (Formato de Word) RTF (Rich Text Format) HTM (HyperText Markup/ HyperText Markup Language) DOT (DOC Template) TXT (Texto) Este parámetro es opcional. Este parámetro es opcional.FileName FileType Carácter Carácter DOSText Carácter LineBreaks Numérico Nuevo nombre del documento Word.Unbind() &WordDocument.Show() SpellCheck Ejecuta el corrector ortográfico en el documento. De hecho. Sintaxis: &WordDocument. Este parámetro es opcional. Sintaxis: &WordDocument. el tipo de archivo por defecto es DOC. Las operaciones sobre el objeto WordDocument no afectan más al documento. 158 . Sintaxis: Unbind Permite dejar abierto el documento Word. Nuevo tipo de archivo que se desea generar a partir del documento Word. Show Muestra el documento en pantalla. incluso luego de finalizada la aplicación.

Invalid template Invalid file name Could not open file Could not save file Invalid value Error running macro Could not complete operation Consideraciones Generales Los métodos descritos anteriormente fueron implementados de forma tal que devuelven (como si fueran funciones) el código de error. es que permite utilizar más de una instancia de conexión al servidor de correos.0 de GeneXs. Estas funciones se soportan unicamente por compatibilidad. Una ventaja importante de esta implementación con respecto a las anteriores. Tipos de Datos para el manejo de correos Introducción La finalidad de estos nuevos tipo de datos es unificar las funciones de interacción con el envío y recepción de mensajes para los distintos lenguajes generados. Application no longer valid (sucede cuando Word es cerrado a mano por el usuario).Códigos y Mensajes de Error Los valores posibles son: Código 0 2 3 4 5 6 7 8 9 10 Mensaje Ok Document no longer valid (sucede cuando un documento que fue abierto desde un programa es cerrado a mano por el usuario). Por ejemplo: &Err = &WordDocument. el generador funciona de forma tal que mapea internamente estas funciones para que utilicen estos nuevos tipos de datos. por lo que es posible llamarlos como funciones. 159 . por lo que no se recomienda hacer nuevas implementaciones con las mismas pues las nuevas funcionalidades no serán implementadas en dichas funciones.Open(Archivo) Compatibilidad con versiones anteriores de GeneXus Las funciones de GXoffice que existían hasta la versión 7. se siguen soportando.

requiere Office. Java.Alcance Objetos: Transacciones. No requiere Office. Web Descripción Para utilizar esta nueva funcionalidad se crearon los siguientes tipos de datos: Tipo de Datos OutlookSession MAPISession Descripción Permite utilizar una sesión de correo para enviar y recibir mensajes mediante Microsoft Outlook. a través de diferentes propiedades y métodos.2 o posterior. Nota: Los CDO 1. MAPISession. Web Panels.5 Server (Versión 1.2 o Versión 1. Protocolo TCP/IP.MS Outlook 98 y MS Outlook 2000 (Versión 1. Protocolo TCP/IP. Permite configurar el nombre y la dirección del destinatario de un mensaje. C# (solo OutlookSession. Procedimientos.21). y Collaboration Data Objects (CDO) 1. MailMessage MailRecipient Para configurar el mensaje que se va a enviar/recibir.21 en SP1 o mayor). Microsoft Outlook 97 o superior o Cliente de Microsoft Exchange. Work Panels. Permite utilizar una sesión de correo para recibir mensajes desde un servidor utilizando el protocolo POP3 (Post Office Protocol Versión 3). Reportes Lenguajes: C/SQL (solo SMTPSession y POP3Session). SMTPSession y POP3Session indican el modo en el que se va a realizar el envío y recepción de correos. No Nota: No se recomienda utilizar este último modo a menos que se deseen utilizar los servicios de Microsoft Exchange Server y no se cuente con Microsoft Outlook SMTPSession POP3Session Permite utilizar una sesión de correo para enviar mensajes mediante un servidor utilizando el protocolo SMTP (Simple Mail Transfer Protocol). Visual FoxPro. Además internamente se manejan los tipos de datos: 160 . Permite enviar/recibir correos mediante MAPI (Mail Application Program Interface) de Microsoft. Visual Basic .2 vienen con los siguientes productos: . SMTPSession y POP3Session) Interface: Win. MS Exchange 5. Los tipos de datos OutlookSession. Requerimientos Microsoft Outlook 97 o superior.

Colección de objetos de tipo Carácter. retornará 161 . El valor por defecto es la cadena vacía ( “”). Si esta propiedad contiene una cadena vacía (“”).MailRecipientCollection StringCollection Colección de objetos de tipo MailRecipient. Es decir.AttachDir Especifica en qué directorio se deben guardar los archivos adjuntos cuando se ejecuta el método Receive. si se abrió la carpeta o la sesión especificando que se recibirán solamente los mensajes no leídos (mediante la propiedad NewMessages). Count Cantidad de mensajes a recibir. En el caso del método Send se tomará como directorio base para búsqueda de los archivos adjuntos al mensaje (propiedad Attachments).Count Retorna la cantidad de mensajes que cumplen con las condiciones de apertura de la carpeta. Sintaxis: &OutlookSession. Sintaxis: &OutlookSession. no se guardarán los archivos adjuntos. OutlookSession Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad AttachDir Count EditWindow ErrCode ErrDescription ErrDisplay NewMessages Método ChangeFolder Delete MarkAsRead Receive Send Tipo Carácter Numérico Numérico (0 | 1) Numérico Carácter Numérico (0 | 1) Numérico (0 | 1) Parámetros FolderName (ninguno) (ninguno) Message Message Acceso Lectura/Escritura Lectura Lectura/Escritura Lectura Lectura Lectura/Escritura Lectura/Escritura Tipo Carácter MailMessage MailMessage PROPIEDADES AttachDir Directorio de archivos adjuntos.

La lista de mensajes se detallan en la propiedad ErrorNumber. Sintaxis: &OutlookSession.ErrDisplay Especifica si al ocurrir un error se desplegará un mensaje advirtiendo al usuario con el texto del error o no. Si es 0. se mostrará la ventana de edición del mensaje a enviar cada vez que se invoque a la propiedad Send.la cantidad de mensajes no leídos.NewMessages Si NewMessages es 1 los llamados al método Receive devolverán solamente los mensajes no leídos de la carpeta actual. EditWindow Indica si se mostrará o no la ventana de edición del mensaje antes de enviarlo. retornará la cantidad total de mensajes. ErrDisplay Indica si se desplegará o no mensajes de error. ErrDescription Mensaje de error de la última operación. 162 . Si es 0. devolverán todos los mensajes de la carpeta. El valor por defecto es 0.ErrDescription Ver sección “Códigos y Mensajes de Error” en este mismo documento. ErrCode Código de error de la última operación. NewMessages Indica si se recibirán solamente los mensajes nuevos o todos los mensajes.ErrCode Ver sección “Códigos y Mensajes de Error” en este mismo documento. Sintaxis: &OutlookSession. El valor por defecto es 0. Sintaxis: &OutlookSession. según si ErrDisplay es 1 o 0 respectivamente. El valor por defecto es 0. se enviará el mensaje sin interacción del usuario.EditWindow Si EditWindow es 1. Sintaxis: &OutlookSession. Sintaxis: &OutlookSession. mientras que si se abrió la carpeta especificando que se recibirán todos los mensajes.

El valor de esta propiedad tendrá efecto a partir del próximo llamado al método ChangeFolder. Si el servidor no soporta la propiedad NewMessages=1 se dará el error 29.

MÉTODOS
ChangeFolder Cambia la carpeta desde la cual se recibirán mensajes. Sintaxis: &Error = &OutlookSession.ChangeFolder([FolderName]) Nombre de la carpeta desde donde se van a leer los correos. Consultar las Notas para conocer las reglas de definición de nombres de carpetas. Este parámetro es opcional, si se omite o deja en blanco, se hará referencia a la carpeta Inbox.

FolderName

Notas:
Reglas para la correcta definición de nombres de carpetas. La notación es similar a la utilizada en DOS y UNIX para navegar entre directorios, con algunas excepciones. En general, las reglas son: Se puede utilizar el carácter “.” para indicar la carpeta actual. Se puede utilizar la cadena “..” para indicar la carpeta de un nivel más alto. Se puede utilizar el carácter “\” para indicar una subcarpeta. Se puede utilizar el carácter “\” al inicio del nombre para indicar la raíz. Si se especifica un nombre simple, sin “\” ni “..”, se hará referencia a una carpeta hermana del Inbox. Los valores “*Inbox”, “*Outbox”, “*Sent Items”, “*Deleted Items” y “*Drafts” se utilizan para referenciar las carpetas comúnmente llamadas por estos nombres, aunque sus nombres no sean exactamente estos. Esto es útil cuando se utiliza un cliente en otro idioma. Por ejemplo, si se tiene Outlook en español, “*Inbox” hará referencia a la carpeta “Bandeja de entrada”.

A modo de ejemplo, si se tiene la siguiente estructura: Maibox Drafts Inbox Urgentes Outbox Pendientes En espera Sent Items

163

Public Folders Favorites All Public Folders General Los siguientes valores de FolderName son válidos: “Pendientes” “Pendientes\En Espera” “\Mailbox\Pendientes” “\Public Folders\All Public Folders\General” “*Inbox\Urgentes” Si actualmente está seleccionada la carpeta Inbox\Urgentes: − “..” (Selecciona Inbox) − “..\..\Pendientes\En espera” Si actualmente está seleccionada la carpeta Inbox: “.\Urgentes” Delete Elimina del servidor el último mensaje que haya sido recibido mediante el método Receive. Sintaxis: &OutlookSession.Delete()

El mensaje borrado se moverá a la carpeta “Deleted Items”. Si no se llamó al método Receive o si el último llamado no retornó un mensaje (debido a un error por ejemplo), la llamada a Delete resultará en el error 26. MarkAsRead Marca como leído el último mensaje que haya sido recibido mediante el método Receive. Sintaxis: &OutlookSession.MarkAsRead()

Si no se llamó al método Receive o si el último llamado no retornó un mensaje (debido a un error por ejemplo), la llamada a MarkAsRead resultará en el error 26. Esta propiedad se debe configurar luego de realizar el Receive. Receive Devuelve los datos del siguiente correo en la sesión actual. Si el correo tiene archivos adjuntos y se especificó un directorio en la propiedad AttachDir, éstos se graban a disco, de lo contrario no se guardan. Sintaxis: &OutlookSession.Receive(Message)

Nota: - El parámetro Message es de tipo MailMessage.

164

Send Envía un mensaje. Sintaxis: &OutlookSession.Send(Message)

Notas: - El parámetro Message es de tipo MailMessage. - Si alguna dirección de destino no puede ser resuelta, se mostrará la ventana de edición, como si la propiedad EditWindow tuviera valor 1.

MAPISession
Las propiedades y métodos disponibles para este tipo de datos son los siguientes:

Propiedad AttachDir Count EditWindow ErrCode ErrDescription ErrDisplay NewMessages Profile Método ChangeFolder Delete Login Logout MarkAsRead Receive Send

Tipo Carácter Numérico Numérico (0 | 1) Numérico Carácter Numérico (0 | 1) Numérico (0 | 1) Carácter Parámetros FolderName (ninguno) (ninguno) (ninguno) (ninguno) Message Message

Acceso Lectura/Escritura Lectura Lectura/Escritura Lectura Lectura Lectura/Escritura Lectura/Escritura Lectura/Escritura Tipo Carácter

MailMessage MailMessage

PROPIEDADES
AttachDir Directorio de archivos adjuntos. Sintaxis: &MAPISession.AttachDir

Especifica en qué directorio se deben guardar los archivos adjuntos cuando se ejecuta el método Receive. Si esta propiedad contiene una cadena vacía (“”), no se guardarán los archivos adjuntos. En el caso del método Send se tomará como directorio base para búsqueda de los archivos adjuntos al mensaje (propiedad Attachments). El valor por defecto es la cadena vacía ( “”).

165

Count Cantidad de mensajes a recibir. Sintaxis: &MAPISession.Count

Retorna la cantidad de mensajes que cumplen con las condiciones de apertura de la carpeta. Es decir, si se abrió la carpeta o la sesión especificando que se recibirán solamente los mensajes no leídos (mediante la propiedad NewMessages), retornará la cantidad de mensajes no leídos, mientras que si se abrió la carpeta especificando que se recibirán todos los mensajes, retornará la cantidad total de mensajes. EditWindow Indica si se mostrará o no la ventana de edición del mensaje antes de enviarlo. Sintaxis: &MAPISession.EditWindow

Si EditWindow es 1, se mostrará la ventana de edición del mensaje a enviar cada vez que se invoque a la propiedad Send. Si es 0, se enviará el mensaje sin interacción del usuario. El valor por defecto es 0. ErrCode Código de error de la última operación. Sintaxis: &MAPISession.ErrCode

Ver sección “Códigos y Mensajes de Error” en este mismo documento. ErrDescription Mensaje de error de la última operación. La lista de mensajes se detallan en la propiedad ErrCode. Sintaxis: &MAPISession.ErrDescription

Ver sección “Códigos y Mensajes de Error” en este mismo documento. ErrDisplay Indica si se desplegará o no mensajes de error. Sintaxis: &MAPISession.ErrDisplay

Especifica si al ocurrir un error se desplegará un mensaje advirtiendo al usuario con el texto del error o no, según si ErrDisplay es 1 o 0 respectivamente. El valor por defecto es 0.

166

NewMessages Indica si se recibirán solamente los mensajes nuevos o todos los mensajes. Sintaxis: &MAPISession.NewMessages

Si NewMessages es 1 los llamados al método Receive devolverán solamente los mensajes no leídos de la carpeta actual. Si es 0, devolverán todos los mensajes de la carpeta. El valor por defecto 0. El valor de esta propiedad tendrá efecto a partir del próximo llamado al método ChangeFolder. Si el servidor no soporta la propiedad NewMessages=1 se dará el error 29. Profile Perfil a utilizar para comenzar una sesión. Sintaxis: &MAPISession.Profile

El valor de esta propiedad tendrá efecto a partir del próximo llamado al método Login. Si no especifica esta propiedad, el llamado al método Login mostrará una ventana de selección de perfiles.

MÉTODOS
ChangeFolder Cambia la carpeta desde la cual se recibirán mensajes. Sintaxis: &OutlookSession.ChangeFolder([FolderName]) Nombre de la carpeta desde donde se van a leer los correos. Consultar las Notas para conocer las reglas de definición de nombres de carpetas. Este parámetro es opcional, si se omite o deja en blanco, se hará referencia a la carpeta Inbox.

FolderName

Delete Elimina del servidor el último mensaje que haya sido recibido mediante el método Receive. Sintaxis: &MAPISession.Delete()

El mensaje borrado se moverá a la carpeta “Deleted Items”. Si no se llamó al método Receive o si el último llamado no retornó un mensaje (debido a un error por ejemplo), la llamada a Delete resultará en el error 26.

167

Login Inicia una sesión. Sintaxis: &MAPISession.Login

La sesión MAPI se iniciará con el perfil indicado en la propiedad Profile. Si dicha propiedad no fue asignada se abrirá una ventana que preguntará el perfil a utilizar. Luego de iniciar una sesión con el perfil indicado, se abre la carpeta “Inbox” (o equivalente). Logout Finaliza la sesión. Sintaxis: &MAPISession.Logout

MarkAsRead Marca como leído el último mensaje que haya sido recibido mediante el método Receive. Sintaxis: &MAPISession.MarkAsRead

Si no se llamó al método Receive o si el último llamado no retornó un mensaje (debido a un error por ejemplo), la llamada a MarkAsRead resultará en el error 26. Nota: - Para poder utilizar esta propiedad se debe configurar la preferencia “Functions = Allow non standard functions” en diseño y prototipo. Receive Devuelve los datos del siguiente correo en la sesión actual. Si el correo tiene archivos adjuntos y se especificó un directorio en la propiedad AttachDir, éstos se graban a disco, de lo contrario no se guardan. Sintaxis: &MAPISession.Receive(Message)

Nota: - El parámetro Message es de tipo MailMessage. Send Envía un mensaje. Sintaxis: &MAPISession.Send(Message)

Notas: - El parámetro Message es de tipo MailMessage. - Si la dirección de algún destinatario no puede ser resuelta, se mostrará una ventana de resolución de nombres que dará a elegir al usuario el

168

-

destinatario correcto de entre los posibles destinatarios para la dirección especificada. Se fuerza el envío inmediato de mails luego de hacer un Send. Esto tiene como consecuencia que si se utiliza conexión telefónica a Internet, se realice el discado al llamar al método Send.

SMTPSession
Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad AttachDir Authentication ErrCode ErrDescription ErrDisplay Host Password Port Sender Timeout UserName Tipo Carácter Numérico (0 | 1) Numérico Carácter Numérico (0 | 1) Carácter Carácter Numérico MailRecipient Numérico Carácter Acceso Lectura/Escritura Lectura/Escritura Lectura Lectura Lectura/Escritura Lectura/Escritura Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura

Método Login Logout Send

Parámetros (ninguno) (ninguno) Message

Tipo

MailMessage

PROPIEDADES
AttachDir Directorio de archivos adjuntos. Sintaxis: &SMTPSession.AttachDir

Especifica cuál será el directorio base para búsqueda de los archivos adjuntos al mensaje (propiedad Attachments). El valor por defecto es la cadena vacía ( “”). Authentication Indica si se intentará o no autentificación con el servidor. Sintaxis: &SMTPSession. Authentication

Algunos servidores SMTP requieren autenticación. En dichos casos podrá especificarse la propiedad Authentication en 1 y especificar en las propiedades UserName y Password el nombre de usuario y la clave a

169

La lista de mensajes se detallan en la propiedad ErrCode. Si se especifican los parámetros UserName y Password y el servidor no soporta autenticación por Clear Text se producirá el error 23. Host Dirección del servidor SMTP. ErrDisplay Indica si se desplegará o no mensajes de error. Sintaxis: &SMTPSession.ErrDisplay Especifica si al ocurrir un error se desplegará un mensaje advirtiendo al usuario con el texto del error o no. Password Contraseña a utilizar para autenticarse en el servidor. Sintaxis: &SMTPSession. Sintaxis: &SMTPSession.Password Está propiedad será ignorada si la propiedad Authentication está en 0. El valor por defecto es 0. ErrDescription Mensaje de error de la última operación. 170 . El valor por defecto es 0.ErrDescription Ver sección “Códigos y Mensajes de Error” en este mismo documento. Sintaxis: &SMTPSession. según si ErrDisplay es 1 o 0 respectivamente.ErrCode Ver sección “Códigos y Mensajes de Error” en este mismo documento.Host Puede especificarse tanto el nombre del servidor como su dirección IP. El único mecanismo de autenticación soportado es Clear Text. Nota: Esta propiedad no está disponible en el generador C/SQL. ErrCode Código de error de la última operación.utilizar. Sintaxis: &SMTPSession. Estos valores serán tomados en cuenta en el próximo llamado al método Login.

para esperar por una respuesta del servidor luego de cada pedido.Timeout Este valor debe adaptarse a la velocidad de la red de comunicaciones y a la carga del servidor. 171 . Se deben utilizar valores pequeños para redes locales y valores mayores si está utilizando Internet. la propiedad Sender contiene un objeto MailRecipient con las propiedades Name y Address vacias. en segundos. MÉTODOS Login Inicia una sesión con un servidor SMTP.UserName Está propiedad será ignorada si la propiedad Authentication está en 0. El valor por defecto es 30. UserName Nombre de usuario a utilizar para autenticarse en el servidor.Port El valor por defecto es 25. Sender Datos del emisor a incluir en los mensajes enviados. especialmente si se conecta a servidores muy remotos. Sintaxis: &SMTPSession. Sintaxis: &SMTPSession. Por esta razón. el puerto normalmente utilizado por los servidores SMTP. Timeout Tiempo de espera máximo. Sintaxis: &SMTPSession.Port Puerto del servidor SMTP en el Host. los datos del emisor se pueden asignar directamente sobre las propiedades Name y Address del objeto ya creado o se puede asignar otro objeto de tipo MailRecipient. del cual se copiarán estas propiedades. Es necesario tener datos válidos en la propiedad Sender para que funcione el método Login. Sintaxis: &SMTPSession.Sender Al crearse una variable de tipo SMTPSession.

POP3Session Las propiedades y métodos disponibles para este tipo de datos son los siguientes: Propiedad AttachDir Count ErrCode ErrDescription ErrDisplay Host NewMessages Password Port Timeout UserName Tipo Carácter Numérico Numérico Carácter Numérico (0 | 1) Carácter Numérico (0 | 1) Carácter Numérico Numérico Carácter Acceso Lectura/Escritura Lectura Lectura Lectura Lectura/Escritura Lectura/Escritura Lectura/Escritura Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura Método Delete Login Logout Receive Parámetros (ninguno) (ninguno) (ninguno) Message Tipo MailMessage 172 .El parámetro Message es de ti