UN C - Repositorio Digital-UPS

Anuncio
UN
NIVERSIIDAD POLITÉC
CNICA SALESIIANA
DE CUE
ENCA
SED
FAC
CULTAD DE IN
NGENIE
ERÍAS
C
CARRER
RA: ING
GENIER
RÍA DE SISTEM
S
MAS
Tesis prrevia a laa obtencióón del Títu
ulo de Inggeniero en
n Sistemaas
“DES
SARROL
LLO DE
E PATRO
ONES EN GENE
EXUS X
EVOL
LUTION Y APLIICACIÓ
ÓN EN MIGRAC
M
CIÓN DE
E
OBJET
TOS DES
SDE LA
A VERSIÓN DE GENEX
XUS 9.0 A
GEN
NEXUS X EVOL
LUTION
N – CASO
O ETAP
PA EP.”
AUTOR
R:
Cuenca Agudo
A
Gusttavo Patricio
D
DIRECTO
ORA:
In
ng. Bertha Tacuri.
T
Cuenca, Septiemb
bre del 20011
DE
ESAR
RROL
LLO DE
D PA
ATRO
ONES EN
GE
ENEX
XUS X EVO
OLUT
TION
NY
AP
PLICA
ACIÓ
ÓN EN
N MIG
GRAC
CIÓN
N DE
OB
BJET
TOS DESDE
D
E LA VER
RSIÓN
N DE
GE
ENEX
XUS 9.0
9 A GEN
NEXUS
SX
EV
VOLU
UTION
N 1– CASO
C O ETA
APA EP.
E
Pattricio Cuuenca
U – CU
UPS
UENCA
II
Responsabilidad de Autoría
El análisis de los conceptos y las ideas vertidas en el presente documento de tesis son de
total responsabilidad del Autor.
Cuenca, Septiembre de 2011
__________________________
Cuenca Agudo Gustavo Patricio
III
Ing. Bertha Tacuri
CERTIFICA:
Haber dirigido y revisado prolijamente cada uno de los capítulos del informe de
monografía realizada por el Señor Gustavo Patricio Cuenca Agudo, así como, el
cumplimiento y desarrollo de la parte práctica de la misma; en base a ello y cumpliendo
honrosamente con todos los requisitos necesarios, autorizo la presentación de la misma
Cuenca, Septiembre del 2011
Ing. Bertha Tacuri
DIRECTORA
IV
DEDICATORIA:
Esta tesis está dedicada a mis Padres por haber
sido el pilar fundamental para lograr esta meta.
A mi abuelito que estuvo brindándome su
apoyo y me acompaño con su presencia
durante casi toda mi vida de estudiante. A
toda mi familia quienes me brindaron su apoyo
ante todos los retos que he tenido que
enfrentar. A mis amigos que estuvieron
presentes en este trayecto y siempre obtuve
palabras de aliento por parte de ellos.
Y a una persona especial que siempre me
empujaba a seguir adelante.
V
AGRADECIMIENTO
A mis Padres Germán y Mariana, por el apoyo
constante
que me dieron para cumplir mis
propósitos, a mis hermanos Gonzalo, Bertha,
Yolanda y Blanca también a mi sobrina
Verónica.
A mis amigos Pablo, Milton, Lenin, Wilson,
Edison, Saúl. También a
Jorge, Mauro,
Carlos., y a la persona que me dio su apoyo
incondicional durante este tramo de mi carrera.
Finalmente a los Ingenieros
Xavier Mejía,
Xavier Espinosa, Galo Criollo quienes me
brindaron su ayuda en las distintas etapas del
proyecto y a mi directora de Tesis quien me
guio en el desarrollo de esta tesis.
VI
ÍNDICE DE CONTENIDOS
Contenido
ÍNDICE DE CONTENIDOS ............................................................................... VII
ÍNDICE DE ANEXOS……………………………………………………..IX
ÍNDICE DE FIGURAS ........................................................................................ IX CAPÍTULO I –INTRODUCCIÓN A LA EMPRESA ETAPA EP. ......................... 11 INTRODUCCIÓN ...................................................................................................................... 11 ORGANIZACIÓN INTERNA .................................................................................................. 12 PENSAMIENTO ESTRATÉGICO DE ETAPA EP. ............................................. 12 Valores Empresariales ............................................................................................... 12 Objetivos Estratégicos ............................................................................................... 13 SERVICIOS QUE BRINDA ETAPA A LA COMUNIDAD .................................................. 13 CAPÍTULO II – INTRODUCCIÓN TEÓRICA ........................................... 17 INTRODUCCIÓN A GENEXUS .............................................................................................. 17 ARTECH..................................................................................................................... 17 GENEXUS .................................................................................................................. 18 GENEXUS PARA LOS DISEÑADORES ............................................................... 21 GENEXUS 9.0 ............................................................................................................ 27 Características ............................................................................................................ 28 GENEXUS X EVOLUTION ..................................................................................... 32 PATTERNS (PATRONES) ....................................................................................... 38 Características ............................................................................................................ 39 Ventajas y Desventajas .............................................................................................. 41 CAPÍTULO III– PROGRAMACIÓN ............................................................. 43 MICROSOFT VISUAL STUDIO 2008 .................................................................................... 43 MICROSOFT .NET FRAMEWORK ....................................................................................... 43 MICROSOFT VISUAL C# ........................................................................................................ 44 ANÁLISIS DEL PATTERN ...................................................................................................... 45 DISEÑO DEL PATTERN.......................................................................................................... 45 PROGRAMACIÓN DEL PATTERN....................................................................................... 46 CAPITULO IV – MIGRACIÓN ...................................................................... 49 DESCRIPCIÓN DEL PROCESO DE MIGRACIÓN ............................................................. 49 Preparación de la Base de Conocimiento ........................................................................... 49 GENEXUS X EV1 CONSIDERACIONES GENERALES ..................................................... 53 VII
ANÁLISIS DE LOS OBJETOS A SER MIGRADOS ........................................................... 54 VALIDACIÓN Y VERIFICACIÓN DE PATRONES ............................................................ 55 CONCLUSIONES ....................................................................................... 173 RECOMENDACIONES ............................................................................. 174 VIII
ÍNDICE DE ANEXOS
ACTA DE ACEPTACION DE PROYECTO
ESPECIFICACIÓN DE REQUERIMIENTOS DE SOFTWARE ................... 61
DISEÑO DEL MÓDULO DE SEGURIDAD ...................................................... 72
PATTERN WWETAPA ........................................................................................ 84
MIGRACIÓN DEL MODELO WEB DEL SIGECOM …………….............138
PLAN DE PRUEBAS DEL SISTEMA .............................................................. 154
MANUAL DE USUARIO PATTERN WWETAPA ......................................... 164
ÍNDICE DE ILUSTRACIONES
ILUSTRACIÓN 1- CAP. II CICLOS DISEÑO - PROTOTIPO Y DISEÑO - PRODUCCIÓN ..........24
ILUSTRACIÓN 2 CAP. II –INTEGRACIÓN Y EXTENSIÓN DE GENEXUS X EV1 ...................32
ILUSTRACIÓN 3CAP. II –MECANISMOS DE INFERENCIA Y REGLAS DE APLICACIÓN ........33
ILUSTRACIÓN 4 CAP. II – IMAGEN DEL SECTOR DE DOCUMENTACIÓN INTERNA .............36
ILUSTRACIÓN 5 CAP. II – IMAGEN DEL PANEL DE FILES EXTERNOS. ...............................36
ILUSTRACIÓN 6 CAP. II – IMAGEN DEL PANEL DE RELACIONES ENTRE
TRANSACCIONES. .......................................................................................................... 36
ILUSTRACIÓN 7 CAP. II – PATTERN COMO UNA MÁQUINA DE PROCESAMIENTO..............39
ILUSTRACIÓN 8 CAP. II – MENÚ EN DE ELEMENTOS DE UN OBJETO EN GENEXUS ..........39
ILUSTRACIÓN 9 CAP. III – PANEL EN VISUAL STUDIO CON GENEXUS SDK. ..................46
ILUSTRACIÓN 10 CAP. IV – ETAPAS DEL PROCESO DE MIGRACIÓN. ................................51
IX
CAP
PÍTUL
LO I
IN
NTRO
ODUC
CCIÓN
N A LA
L EM
MPRE
ESA
ET
TAPA EP.
INTRODUC
CCIÓN A LA EMPR
RESA ETAPA EP –– CAPÍTULO I CAPÍTULO I –I
– NTROD
DUCCIÓ
ÓN A LA EMPRE
ESA ETA
APA
EP.
INTR
RODUCCIIÓN
La Em
mpresa munnicipal ETA
APA EP., haa venido trab
bajando dessde hace máás de 42
años al servicio de la población cuencaana ofrecienndo eficientte servicios de agua
potab
ble, alcantarrillado y teleecomunicacciones. Duraante este larrgo trayectoo ha ido
crecieendo acordee a las a lass exigenciass que Cuencca le ha exigido y el deesarrollo
tecno
ológico lo reequiere.
ETAP
PA EP., está constituid
da como unaa de las mej
ejores empreesas del paíís con su
recon
nocida eficiiencia en laa prestación de los servicios po
or los que ETAPA
trabajja.
Segúnn mandato Constitucioonal, se establece el derecho dee disponer de estos
serviccios públicoos en cantiddad y calidad óptima para
p
satisfaacer adecuadamente
las neecesidades básicas.
b
El éx
xito de ETA
APA EP., tiene comoo pilar funddamental laa labor de todo su
persoonal tanto addministrativvo pero sobrre todo el esfuerzo de los
l obreros..
La dinámica
d
ecconómica y social deel país, el ordenamiennto territorrial y la
densidad demoggráfica partticularmentee de la ciuudad de Cuenca,
C
exiggen que
ETAP
PA EP., cam
mbie y se adapte al ritm
mo de los avances.
a
Co
on el afán de
d cubrir
las nu
uevas necessidades de la comunidaad, así comoo el estableecimiento dee nuevas
políticas y direcctrices en laa Empresa, han determ
minado quee posteriorm
mente se
aprueeben nuevaas Ordenannzas muniicipales
que han ido facilitaando la
modeernización de
d la estructtura orgánicca y funcio
onal de ETA
APA, acordde con el
proceeso de desaarrollo de laas telecomuunicaciones y de los servicios
s
dee agua y
saneaamiento.
- 111 -
INTRODUC
CCIÓN A LA EMPR
RESA ETAPA EP –– CAPÍTULO I ORGA
ANIZACIIÓN INT
TERNA
PENS
SAMIENT
TO ESTRATÉGICO DE
D ETAPA
A EP.
Miisión
"C
Contribuir all mejoramieento de la caalidad de viida de la pooblación, a través
t
de
la
prestaciónn
de
serrvicios
de
Telecomuunicacioness,
Agua
Potable,
neamiento, Gestión Ambiental
A
y otros de interés pú
úblico; busccando la
San
sattisfacción de nuestros clientes,
c
conn eficienciaa, calidad, coompromiso social y
am
mbiental".1
Viisión
"Seer un referrente nacioonal e interrnacional en
e la presttación de servicios
s
púb
blicos por nuestro lidderazgo, innnovación, calidad y satisfacciónn de los
clientes; garanntizando la sostenibiliddad de nuesttra gestión".2
presariales3
Vaalores Emp

Trabajjo en Equip
ipo: Trabajaamos de la mano paraa alcanzar objetivos
o
comunnes.

Pro acctividad: Po
or nuestra inniciativa vam
mos más alllá de lo espeerado.

Eficien
ncia: Utiliizamos respponsablemeente los reecursos en nuestra
gestiónn.

Vocacción de Servvicio: El Cliiente guía nuestro
n
accioonar.

Comprromiso: Los retos de ETAPA
E
EP. son mis rettos.

Honesstidad: Una gestión trannsparente abbierta al conntrol ciudaddano.
1
http://www.etaapa.net.ec/Empreesa/emp_pla_plaeest_met_obj.aspx
http://www.etaapa.net.ec/Empreesa/emp_pla_plaeest_met_obj.aspx
3
http://www.etaapa.net.ec/Empreesa/emp_pla_plaeest_met_obj.aspx
2
- 122 -
INTRODUC
CCIÓN A LA EMPR
RESA ETAPA EP –– CAPÍTULO I Ob
bjetivos Esttratégicos
“Los objetivos estratégiccos definen y cuantificaan un horizzonte visiblee para la
Plaanificación Estratégicaa de ETAP
PA EP. Son
n aquellas metas quee se van
midiendo y quue van a gaarantizar quue está avan
nzando en el
e camino prropuesto
porr la Visión Empresaria
E
al.” 4

Mejoraar la satisfacción del Cliente
C

Mejoraar el clima laboral
l

Garanttizar Eficienncia y Sosteenibilidad

Diverssificar los prroductos y servicios
s
SERV
VICIOS QUE
Q
BRIN
NDA ETA
APA A LA
A COMU
UNIDAD5
AG
GUA Y SAN
NEAMIEN
NTO

Agua Potaable

Alcantarillado

Tratamiennto de Aguas Residualees
TE
ELECOMU
UNICACIO
ONES
Telefonía Fija

Local

Regionnal

Nacionnal

Internaacional

Celulaar

Serviccios especialles

Serviccios temporaales
Telefonía Pública

Teléfoonos Públicoos Inteligenntes

Locutoorios Alo ETAPA
4
http://www.etaapa.net.ec/Empreesa/emp_pla_plaeest_met_obj.aspx
http://www.etaapa.net.ec/Empreesa/emp_quisom__nue_ser.aspx
5
- 133 -
INTRODUC
CCIÓN A LA EMPR
RESA ETAPA EP –– CAPÍTULO I 
Tarjetaa Prepago para
p Telefonnía Pública
Internet de
d alta Veloocidad (Ban
nda Ancha
a)

Resideencial ADSL
L Familia Net
N

Corporativo Segu
undo Nivel ADSL
A

Corporativo Prim
mer Nivel AD
DSL

Corporativo Prim
mer Nivel SH
HDL

Serviccio de Intern
net y telefonnía fija en Áreas
Á
Ruralees
Red de Datos

Serviccio de enlacees Clear Chhanel

Serviccios de enlacces FrameR
Relay

Líneass dedicadas no conmutaadas

Enlacees Súper Lin
nk de 2 MB
B

Housinng

Hostinng
GE
ESTIÓN AMBIENTA
A
AL

Recoleccióón de Aceittes Usados

Recoleccióón de Pilas Usadas

Escuela dee conocimieentos continnuo

Educaciónn Ambientall

Laboratoriios Ambienntales
Análisis

Físico Químicos

Nutrieentes

Indicaadores de Coontaminacióón Bioquím
mica

Indicaadores de Coontaminacióón Microbio
ológica

Indicaadores biológicos

Metalees (a.a)
- 144 -
INTRODUC
CCIÓN A LA EMPR
RESA ETAPA EP –– CAPÍTULO I PA
ARQUE NA
ACIONAL CAJAS

Manejo Inntegral del Parque
P
Naciional Cajas

Visitas Guuiadas

Centros dee Interpretacción

Educaciónn y Apoyo Comunitario
C
o

Albergue y Cafetería
Laa Gestión addecuada y oportuna
o
enn cada una de
d sus áreass, es un retoo el cual
ha estado en constante modificación
m
n, es por esso que La Empresa
E
M
Municipal
ET
TAPA EP., está consttituida com
mo una de las más im
mportantes del País
connvirtiéndosee en un ejem
mplo de connservación del
d medio ambiente.
- 155 -
C ÍTULO
CAPÍ
O II
I RODU
INTR
UCCIÓ
ÓN TE
EÓRIICA
CAP
PÍTUL
LO III
ANÁL
LISIS DE
D HERR
H RAMIE
ENTA
AS PA
ARA
GIS
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II CAPÍÍTULO II
I – INT
TRODU
UCCIÓN TEÓ
ÓRICA
INTR
RODUCCIIÓN A GE
ENEXUS
S
ARTECH
La emp
presa Uruguuaya Artech
h lidera el mercado
m
de las
l herramieentas CASE
E. Desde
1988 see ha especiaalizado en la
l construccción de herrramientas innformáticas con una
visión en
e la gestiónn automáticca del conoccimiento.
Tanto ha
h sido el crecimiento y los casoss de éxito qu
ue han sido
o reflejados que han
hecho que
q Artech se haya exppandido en muchos paííses como son
s Estados Unidos,
Méxicoo, Brasil y JJapón y coontando conn una red de
d más de 30
3 distribuiddores en
todo el mundo.
En Ecu
uador no ha
h sido differente la situación
s
yaa que muchas empressas muy
importaantes del paaís utilizan a su produccto líder (G
GeneXus) coomo herram
mienta de
desarro
ollo informáático.
Anteceedentes de Artech
A
Remitiééndonos a los
l primeroos sistemas empresarialles y la form
ma de funccionar de
estos se
s veía quee únicamen
nte tenían una
u visión centrada para
p
manejjar a un
departaamento y potenciar únicamentte los pro
ocesos de negocio de ese
departaamento, lo cual
c
repercuutía en la faalta de integ
gración en las
l aplicacioones que
soportaaban los proocesos de neegocio lo cuual dificultabba enormem
mente la inteegración
de info
ormación im
mportante paara la toma de decisionnes, surge aquí
a
la neceesidad de
contar con una teccnología quee empiece a eliminar estas debilidades. Era la época
“
de infformación”.
de las “islas
Las apllicaciones ccomenzaron
n a formarse e ir integ
grándose, todo esto fuee posible
por la aparición
a
d las bases de datos corporativas que en esee entonces fueron
de
f
y
hasta la
l actualidaad son la base fundaamental paara el desaarrollo de sistemas
empressariales. Noo únicamentte para llevvar a cabo los procesoos de negoocio sino
- 177 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II tambiénn en recopiilar la inforrmación neccesaria paraa ser analizzada y dotarr de una
mejor visión
v
para lla toma de decisiones.
d
El éxito de las Baases de Dattos corporaativas fue in
nminente y las cantiddades de
do a gran vellocidad.
informaación que estas almaceenaban fueroon creciend
La soluución al probblema de laa integraciónn de las aplicaciones fuue solucionaada pero
ante estte se presenntó otro de igual
i
o mayyor magnituud el cual erra la adminiistración
de los cambios
c
en los procesoos de negoccio a los quee están sujettos las emprresas. El
colapsoo de las apliicaciones inntegradas eraa inminentee.
La tend
dencia de laa globalizaciión de los aaños 90 afecctó a todo ell mundo e hizo
h que
los procesos de neegocio de laas empresas cambiaran drásticameente y se maantengan
nstantes modificacion
m
nes, entonces surge la
l necesidaad de conntar con
en con
herram
mientas de desarrollo
d
de
d softwaree rápidas, y que manttengan la visión
v
de
integrid
dad de las aplicaciones
a
, con un cossto relativam
mente bajo.
Como respuesta
r
a todas estas necesidadees es la aparición de GeeneXus
“Desdee 1984, Arrtech ha deesarrollado importantes y originaales actividdades de
investiggación en el área de las basees de datos relacionaales, desarrrollo de
aplicaciones, CASE (Compputer Aidedd Softwaree Engineeriing) e inteeligencia
artificiaal. Estas acctividades han
h requeriido muchass horas de dedicaciónn, y han
producido una excclusiva tecnoología que es
e el núcleo
o de GeneXuus”6.
GENEXUS
GeneX
Xus, es una de
d las prim
meras herram
mientas CAS
SE que fue desarrolladda con el
propósiito de creaar, desarrollar y manttener, en forma
fo
autom
mática apliccaciones
multipllataforma de
d misión crítica
c
que fácilmente
f
se adaptan a los cam
mbios del
negocioo y a las nueevas posibillidades brinndadas por la
l evolución
n tecnológicca.
GeneX
Xus tiene com
mo objetivoo, brindar apoyo
a
al an
nalista y a los usuarios en todo
el ciclo
o de vida dee las aplicacciones, conn el fin de reeducir notaablemente el
e tiempo
de dessarrollo de aplicacionnes informááticas adem
más de
6
brrindar la adecuada
a
http://www.ggenexus.com/portaal/hgxpp001.aspx
x?2,69,1103,O,S,,0,MNU;E;252;3;;MNU;,173412;P
P;94;167744;S
- 188 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II asistenccia en el m
manejo de errores, y lo fundam
mental que es crear un
u mejor
acoplam
miento de laas aplicaciones a los procesos de negocio
n
cam
mbiantes.
GeneX
Xus en sus inicios
i
hasta la versiónn 9.0 maneejaba 3 etap
pas de desaarrollo la
primeraa que es de diseño y la segunda quue es prototiipo, estos dos
d son reallizados y
probados en un am
mbiente Windows. Cuaando el prototipo es to
otalmente approbado,
mas de apliicación son generados en la platafforma de
la base de datos y los program
ollo escogidda y el motoor de Base de
d Datos ellegido, estaa es la terceera etapa
desarro
llamadaa etapa de Producción
P
La ideea de GenneXus es automatizarr todo aqquello que es automatizable:
normallización de los datos y diseño, geeneración y mantenimiento de la base de
datos y de los programas de aplicación.
a
GeneXus trrata de haceer que la geestión de
estos aspectos de desarrollo sea
s más fáccil y rápida proponienddo metodologías de
ollo que perm
mitan que los program
madores agiliiten el tiemppo de desarrrollo, de
desarro
esta manera
m
cubrriendo las expectativvas de los desarrolladores y por ende
mejoran
ndo los traabajos de deesarrollo. Con
C esta ideea se pretennde evitar laas tareas
rutinariias y tediosaas que se geeneran en el
e transcursoo del desarrrollo de un proyecto
p
de Softtware.
GeneX
Xus en el muundo es connsiderada como una dee las herram
mientas de diseño
d
y
desarro
ollo de apliccaciones em
mpresarialess más poderrosas y con
n mayores casos
c
de
éxito su
s principaal caracterísstica que la
l ha diferrenciado dee las demáás es la
generacción multipllataforma permitiendo
p
el cambio de
d plataform
ma de desarrrollo y/o
la Basee de Datos.
GeneX
Xus ha sido creada con
n el propósiito de geneerar el 100%
% de la apllicación,
básicam
mente se paarte del diseeño de la base
b
de datos y a parttir de eso GeneXus
G
realiza todo el trabbajo de creaación de objetos tanto de
d la Base de
d Datos com
mo de la
e que vayaa a ser construida la
aplicación, generaando el códiigo en el leenguaje en el
aplicación,
sin
necesidad
de
programar,
peermite
adeemás
geneerar
procediimientos alm
macenados así como taambién la geeneración de
d reportes.
- 199 -
los
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Desarrrollo Basad
do en Conoccimiento y Metodolog
gía incremeental
En loss últimos años
a
se haa hablado mucho en
n la industrria de Knowledge
Management y, dentro
d
de esta teoría eestán involu
ucradas muuchas premisas que
m distantees del desarrrollo Basaddo en Conoccimiento.
están muy
La induustria del sooftware se ha
h enfocadoo a las form
mas de recopilar organiizar y /o
accederr a la infoormación para converrtirlo en co
onocimientoo el cual debe
d
ser
utilizaddo por la organizaciónn para tomaar decisionees adecuadaas y oportuunas que
permitaan darle el rumbo
r
correecto a la orgganización.
Una caaracterística del conociimiento es que
q no es entendible
e
p
para
la máquuina por
ende laa máquina no
n puede operar por si sola
s sobre el
e conocimieento que se obtenga
a travéss de la inforrmación reccopilada, coomo el razonnamiento dee los seres humanos
h
puede lidiar
l
razonablemente con
c la ambiigüedad y, aún,
a
con la inconsistenncia, este
conocim
miento mucchas veces no
n es riguroso”.
El desaarrollo basaddo en conoccimiento debbe cumplir las siguienttes condicioones.
• Riguroso
• Representaable en form
ma objetiva
• Operable
diendo quee no es
El desaarrollo de sistemas innformáticos debe partiir comprend
posiblee construir un modeloo de datos estable dee la empreesa, utilizanndo una
filosofíía incremenntal y optar por
p un Desaarrollo Basaado en Conoocimiento.
En un esquema
e
inccremental no
n se manejan grandes problemas,, se van resoolviendo
los peq
queños problemas a medida
m
quee se presenntan. Iniciaalmente parrece una
solucióón muy senccilla pero noo es así, si nos
n remitim
mos a hablarr desde el ám
mbito de
la prog
gramación, nos
n daremoos cuenta quue esto impllica un cam
mbio muy grrande en
los sisttemas y sobbretodo llevvaría muchoo tiempo poder adaptaarlos a los cambios
que este requiere para
p poder solventar
s
lass necesidaddes que este debe cumplir.
Primeraamente se ddebe tener en
e cuenta quue el modello de datos estaría en constante
c
modificcación, porr ende los costos de mantenimiiento llegarrían a elevvarse de
- 200 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II maneraa notable. Y la adaptaciión a los cam
mbios podría implicar mucho esfuuerzo en
la codifficación dell sistema coompleto.
GENEXUS PARA
A LOS DIS
SEÑADOR
RES
Un asp
pecto extremadamentee importantte de GeneeXus es qu
ue no es necesario
n
conocer sobre las plataformas de desarroollo en la que
q se generará la apliccación y
tampocco de la Baase de Dattos puesto que GeneX
Xus se encarga de reaalizar la
generacción de toddo el código, por estaas razones se
s garantizaa seguridadd ante el
cambio
o de tecnoloogías porquue con GenneXus la fortaleza del desarrolladdor es el
que use
conocim
miento que tenga del negocio
n
frennte a los lennguajes o plataformas
p
el merccado.
» GeneXus se encarga dee generar ell 100% de la aplicació
ón y de la base de
a
el
e modelo de
d datos,
datoos así como también dee mantener en forma automática
la in
nformación y las aplicaaciones.
» GeneXus
G
es una herraamienta conn un entorrno de desaarrollo orieentado a
inten
nciones y neecesidades del desarrolllador lo cual lo hacen intuitivo.
» GeneXus
G
auttomatiza ell desarrolloo y mantennimiento de las apliccaciones,
autoomatizando las tareas ruutinarias.
» GeeneXus permite integraar diferentees tecnologíaas a fin de lograr herraamientas
más potentes y reciclar trabbajos anteriiores o de teerceras partees.
os usuarios”; plasmánndolo en
El trabajo de GenneXus parte de las “vissiones de lo
d conocim
miento, GenneXus es
una baase de conoocimiento. A partir dee su base de
capaz de diseñarr, generar y manteneer de maneera totalmeente autom
mática la
estructuura de la baase de datoos y los proogramas de la aplicación, permitiiéndonos
cambiaar de platafformas de desarrollo y arquitectuuras cuanndo las necesidades
requierran de este proceso.
p
- 211 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Tipos de
d Objetos
GeneX
Xus para llevvar a cabo el
e desarrolloo de softwarre soporta los
l siguienttes tipos
de objeetos: Transaacciones, Reportes,
R
Prrocedimienttos, WorkPanels, Webb Panels,
Data Views,
V
Transsacciones dee BI.
 Transacciones. Una tran
nsacción es un procesoo interactivoo o pantallaa (Win o
Webb) que perm
mite a los ussuarios interractuar conn la base de datos y reaalizar las
operraciones creear, modificcar, eliminarr, se puede decir que una
u transacción es la
interrfaz de la taabla que está incluida en la base de datos. La
L transacciión tiene
elem
mentos esennciales com
mo la estrucctura de daatos de la pantalla,
p
reeglas del
negoocio y fórm
mulas y elem
mentos comoo la forma de
d las pantaallas (en estee caso el
desaarrollador puede
p
darle con los edditores dispoonibles la forma
f
que quiera u
optaar por utilizaarla automááticamente innferida por el sistema).
 Rep
portes Un reporte
r
es un
u proceso que permiite generar a los usuuarios la
visu
ualización de
d los datoss de una foorma organizada y cohherente. See pueden
definnir desde liistados simpples hasta muy
m sofisticcados, en donde existaan varios
cortees de controol, múltiplees lecturas a la base dee datos y parametrizacción. Se
disp
pone ademáss de una heerramienta G
GXquery paara realizar reportes diinámicos
sobrre la base dee datos.
 Proccedimientoos. Este objjeto tiene toodas las carracterísticass de los Repportes, y
adem
más permite actualizzar la basse de datoos. Los Procedimienntos son
com
múnmente ussados para tres
t tipos dee procesos:
o Procesos
P
baatch de acctualizaciónn. Por ejem
mplo: cambiiar el valoor de un
campo en toddos los regiistros de unaa tabla.
o Subrutinas
S
de uso geeneral. Porr ejemplo: cambiar números
n
poor letras,
(5
5000 = ‘cinnco mil’)
o Procesos
P
a ejecutar en
n un serviddor de apliccaciones o servidor
s
de base de
datos:
d
procesos (generaalmente escrritos en Jav
va o .NET) para una MultiTier
M
Architecture
A
e, para ser ejecutados
e
een un servid
dor de apliccaciones o de
d bases
de
d datos.
 WorrkPanels: Son pantaallas que permiten
p
al usuario interactuar con la
inforrmación dee las transaccciones se puede
p
realiizar consulttas interactiivas a la
basee de datos.
- 222 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II  Web
b Panels: T
Tienen la misma
m
funciión de los work panells con la diiferencia
que son exclusiivos para am
mbientes Weeb.
 Dataa Views: Permiten
P
reecuperar innformación de tablas de bases de
d datos
preeexistentes o pertenecienntes a otro sistema
s
exteerno o del mismo
m
sistem
ma.
Desarrollo basado en el conocimiento
El moddelo físico de las apliccaciones paarte de la definición dee la Base de
d Datos
relacionnal la cual debe
d
estar normalizada
n
a en su terceera forma noormal. Y a partir de
este moodelo se connstruye la applicación y la base de datos.
d
Múltipless plataform
mas, arquiteectura de múltiples
m
caapas
Una dee las principales caraccterísticas de
d GeneXuss es el que se puede crear un
modeloo de la apliccación en vaarios lenguaajes de proggramación a partir de uno
u solo
de diseño. Es decirr que podem
mos tener unn modelo de
d la aplicacción en .Nett, otro en
mente en caada modelo creando loss objetos neecesarios
Java, ottro en RPG etc. Obviam
para traabajar en caada plataforrma.
Es imperioso podeer contar coon este tipo de aplicaciones por ejeemplo la applicación
de un sistema
s
banncario debee poder correr en un servidor
s
iSeeries o Linuux en la
oficina central y enn una red dee PC’s en laas sucursalees del banco
o.
Con ell uso progrresivo de los
l ambienntes Clientee/Servidor e Internet /Intranet
/Extran
net, surge laa necesidad de manteneer un sistem
ma de inform
mación corriiendo en
distintaas plataform
mas. En esttos casos, es
e también indispensaable que exxista una
correcta intercomuunicación enntre las distiintas partes de la platafforma.
Desarroollar aplicacciones con GeneXus da
d la posibillidad de divvidir una applicación
de mannera
que cada parte puede serr ejecutada en una plataforma diferente,
d
utilizánndose el lennguaje más apropiado para
p
generaar las aplicaaciones en cada
c
una
de estaas plataform
mas. Esto haa dado lugaar al advenimiento de las
l arquiteccturas de
múltiplles capas, quue a la vez optimizan
o
e uso de loss recursos disponibles.
el
d
- 233 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Etapass de desarroollo en Gen
neXus
Para lleevar a cabo las tareas de
d desarrolloo de softwaare, GeneXuus se maneja en tres
etapas.
Ilustraciión 1- CAP. II Ciclos Diseño - Prototipo y Diseño
D
- Produ
ucción
1. Diseño: Conssiste en la captación dee las visionees del usuarrio. En esta primera
etaapa interviene la particcipación del analista, La
L tarea de diseño connsiste en
priimera instanncia en idenntificar y deescribir a caada entidad de la base de
d datos,
GeeneXus sisteematiza el conocimient
c
to capturado y va consstruyendo, en
e forma
to.
inccremental, la Base de Conocimien
C
Estta Base dee Conocimiento es unn repositorioo de toda la informacción del
disseño, a parttir de la cuual GeneXuus crea el modelo
m
de datos
d
físicoo (tablas,
atrributos, índiices, redund
dancias, regglas de inteegridad refeerencial, etcc.), y los
pro
ogramas de aplicación.
2. Prrototipo: Esta
E
etapa está destiinada para poder realizar las pruebas
neccesarias dell sistema yaa que en la tarea
t
de dessarrollo surg
gen muchoss traspiés
que son norm
males pero no dejan de
d presentaar un probleema en pérrdida de
mpo y gastoo de recurso
os, como enn cualquier otra herram
mienta de deesarrollo
tiem
es fundamentaal poder prrobar. Si duurante la pruueba del Prrototipo se detectan
e
se retorna a la fase de Diseñoo, se realiizan las
meejoras o errores
moodificacionees correspoondientes y se vuelvee al Protottipo. Este ciclo es
connocido com
mo Diseño/P
Prototipo.
Unn prototipoo GeneXuus es unaa aplicació
ón completa funcionnalmente
equuivalente a la aplicacción de prooducción Laa diferenciaa entre proototipo y
pro
oducción consiste
c
enn que la primera see hace en
n un ambiiente de
microcomputaador, mientrras que la producción se
s realiza en
n el ambientte objeto
dell usuario (IIBM iSeriess, servidor Linux, Clieente / Servidor, JAVA
A, .NET,
etcc.). El protootipo permitte que la applicación seea totalmentte probada antes de
- 244 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II passar a produccción. Duraante estas prruebas, el usuario
u
finall puede trabbajar con
dattos reales, o sea que prueba,
p
de una
u forma natural,
n
no solamente
s
f
formatos
de pantallas, informes, etc. sino también fórmulas,
f
reeglas del nnegocio,
esttructuras de datos, etc.
3. Prroducción: Es la etapa en la que GeneXus
G
geenera autom
máticamentee la Base
de Datos y ell código neecesario parra manteneerla, así missmo aquí genera
g
el
códdigo de la aaplicación de manera ínntegra.
Tecnollogías que soporta
s
GeeneXus
Platafoormas
Platafo
ormas de ejeecución
JA
AVA, Microsoft .NET, Microsoft
M
.NE
ET Compacct Framewoork
Sistema
as Operativvos
IBM
M OS/400, LINUX, UNIX,
U
Wiindows NT//2000/2003 Servers,
Wiindows NT//2000/XP/C
CE y
Wiindows Vistta
Interneet
JA
AVA, ASP.N
NET, Visuall Basic (ASP),
C/S
SQL, HTM
ML, Web Serrvices.
Bases de
d Datos
IBM
M DB2 for iSeries y UDB,
U
Inform
mix,
Miicrosoft SQL
L Server, MySQL,
M
Oraacle y
PostgreSQL.
Lenguaajes
JA
AVA, C#, CO
OBOL, RPG
G, Visual Basic.
B
Servidoores Web
etc.
Miicrosoft IIS,, Apache, WebSphere,
W
Múltiplles Arquiteccturas
Arrquitecturas de múltiplees capas, baasadas en weeb, Cliente//Servidor,
centralizadass (iSeries)
- 255 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Mantenimiento
Esta ess una de las
l caracterrísticas máss importannte de GeneeXus, y laa que lo
diferenncia de maneera más clarra de sus coompetidoress: el mantennimiento, tannto de la
base dee datos (esstructura y contenido)) como de los program
mas, es tottalmente
automáático.
Caractterísticas ún
nicas de GeeneXus

E diseño parrte de las viisiones propporcionadass por los usuuarios. Debiido a sus
El
acctividades diarias,
d
ellos son quiennes saben cómo
c
debenn y como no
n deben
fuuncionar las cosas.

Laa descripcióón de cada objeto
o
es tottalmente inddependientee de la de loos demás
poor lo que, enn el caso dee que se debba modificarr la descripcción de unoo, ello no
im
mplicará la necesidad
n
d modificarr manualmeente la descrripción de cualquier
de
c
ottro. Esta característic
c
ca exclusivva de GenneXus (ortoogonalidad de las
deescripcioness) es la que permite unn mantenimiiento totalm
mente autom
mático de
las aplicacionnes.

L curva de aprendizajee es corta.
La

E diseño, creación
El
c
y mantenimie
m
ento de la base de daatos son tottalmente
auutomáticos.

Laa aplicaciónn (base de datos
d
y proggramas) tien
ne siempre, sean
s
cuales sean las
m
modificacion
nes que hayaa sufrido, laa mejor caliddad:
-
La basse de datos es
e siempre la
l óptima (ttercera form
ma normal).
-
No se modifican programas: cuando yaa no son adeecuados, se generan
otros nuevos,
n
óptiimos y no reemendados,, que los susstituyen.

Uttilización loos archivoss o bases de
d datos prreexistentess como proopios de
GeeneXus.

Leenguajes pooderosos de muy alto nivel
n
para laa definición de Procesoos, Work
Paanels y Weeb Objects. Esta caractterística permite una total
t
indepeendencia
enntre los datos
d
y diichas espeecificacionees. Como consecuenncia, las
esspecificacionnes de alto nivel de GeneXus
G
no necesitan modificacio
m
ones ante
m
modificacion
nes de la basse de datos.

M
Mantenimien
nto 100% auutomático: El
E conjunto
o de estos elementos
e
ppermite a
GeeneXus gennerar y manntener autom
máticamentee el 100% de
d los progrramas en
- 266 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II applicaciones
de
nego
ocios
(com
merciales,
administraativas,
finaancieras,
inndustriales, etc.).
e

GeeneXus funnciona en PC
Cs, dejando al entorno de producción totalmeente libre
paara el processamiento dee las aplicacciones.

Fáácil distribuución del co
onocimientoo corporativo para facillitar el desarrrollo de
nuuevas aplicaaciones.

So
oluciones dee Reportes y Data Warrehousing siimples y potentes.

Veerificación automática de consisteencia, y con
nsolidación, entre apliccaciones
deesarrolladas separadam
mente.

Inndependenciia de platafoorma y arquuitectura.

Siimplicidad: GeneXus utiliza
u
los recursos
r
máás avanzadoos de la inteeligencia
arrtificial paraa que el anaalista y los usuarios,
u
puuedan usarlo
o de una forrma muy
sim
mple.
GENEXUS 9.0
La verssión 9.0 de la herramieenta CASE desarrollada
d
a por la emp
presa Artecch ha ido
evoluciionando dessde su aparrición y debbido a la grran acogidaa y a la satiisfacción
que han
n encontraddo sus clienntes en una herramientaa de desarroollo esta haa tomado
gran im
mportancia en todo ell mundo, sus creadorees han estaado constanntemente
trabajanndo en asppectos com
mo mejorarr a la herrramienta y adjuntarle nuevas
funcionnalidades que
q
están destinadas
d
a mejorar los proceesos de deesarrollo,
volviénndolos cada más fáciless de manejaarlos.
La verssión 9.0 partte con la sigguiente consigna:
“Concé
éntrese en su
s negocio,, GeneXus se
s encarga
a del resto“
7
La visió
ón que GenneXus tiene es, en la quue la organización debee concentrarrse en lo
que la hace
h
única y la diferenncia del restoo y es preciisamente el conocimiennto de su
negocioo.
Para lo
ograr esto, GeneXus 9.0
9 incorpoora funcionalidades quue permitenn que la
empressa desarrollee esta idea y logre mejoores resultaddos en la geestión de la misma.
7
http://www2.ggxtechnical.com/pportal/hgxpp001.aaspx?15,9,65,O,S
S,0,MNU;E;10;1;;MNU;,
- 277 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II El uso adecuado del
d conocim
miento del neegocio perm
mitirá tomarr mejores deecisiones
y estar en constantte actualizacción ante loos cambios de
d la globalización.
La creaación y manntenimientoo de aplicaciiones críticaas. Aplicaciiones que será cada
vez máás difícil desarrollar a mano. Soobre todo por
p los requuerimientoss que en
cuestiones de tiem
mpo vienen a ser solicittados en el menor
m
tiemp
po posible.
ograr este propósito GeneXus 9.0
9 ha pueesto énfasiss en las siiguientes
Para lo
características.
Caracterrísticas
1.
paraa el
Produ
uctividad. Uno
U de los objetivos de
d GeneXuus 9.0 es darr soporte
aumeento de la productividdad
es deecir mejoraando el tieempo de
desaarrollo. Paraa ello se incorporan las siguientes herramientaas:
Gen
neXus Pattterns. Esta herramiennta permite la generacción autom
mática de
objeetos a partirr de una trannsacción, essta funcionaalidad perm
mite al desarrrollador
autoomatizar graan parte del trabajo repeetitivo.
Los Patterns puueden ser crreados y/o m
modificados en base a las necesiddades de
miento de
cadaa organizaciión tal es assí que es aquuí en dondee interviene el conocim
los programadoores y el ingenio
i
e iniciativa para poder lograr obteener un
d la aplicacción inform
mática.
Patteern que autoomatice aúnn más la connstrucción de
Business Com
mponents. Los Busineess Componnents utilizzan como base
b
a la
transsacción ya que cada trransacción posee
p
una estructura
e
d datos dife
de
ferente, a
partiir de ese objeto se geenera un prrograma de altas, bajaas y modificcaciones
sobrre un conjunnto de tablaas. De esta forma la aplicación
a
q
queda
lista para
p
que
con la interface de usuario a través de la cuall se modifiican los datos y se
o de la Basee de Datos como
c
de las reglas de negocio
n
.
conttrola la integgridad tanto
Los Business Components
C
s permiten utilizar las reglas de integridad,
i
es decir
mulas y regglas de neggocio sin laa necesidad
d de utilizarr el formullario, un
fórm
objeetivo de esta funcionaalidad es que
q las regglas de inteegridad pueedan ser
reutiilizadas poor los demáás objetos de la
Baase de connocimiento, incluso
prog
gramas exteernos puedden invocarr a los Bussiness Com
mponents
vvía web
Serv
vices o EJB
B el uso dentro de la base deel conocim
miento es mediante
m
- 288 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II prop
piedades y métodos qu
ue expone el BussineesComponennt. De estaa manera
facillita la inteeracción e integraciónn de las ap
plicaciones GeneXus con las
apliccaciones exxternas
Masster Pages. Esta funccionalidad permite
p
deffinir una plaantilla para páginas
web
b en la quee es posiblle ubicar varios
v
Web Panels, laa Master Paage está
dividdida
en
contenedorres,
cada
web
pannel
puede invocar
a
otro
indeependientem
mente de loo que sucedda en el reesto de la página,
p
faccilitan el
desaarrollo increemental de las aplicacciones web.. Cambianddo una master page
cam
mbian todas las
l asociadaas a la mism
ma
2.
Desarrrollo de aplicaciones Enterprise
E
level
Inteerface de usuario más
m
interaactiva.
Como una característica muy
impoortante es laa implemenntación de laa arquitecturra Ajax.
Paraa potenciar el
e desarrollo
o incorpora las siguienntes funcionnalidades
Web
b Client-Side Validation: en unaa aplicación
n Web, un problema
p
quue quizá
no se lo tome mucho
m
en cuuenta es quee las pruebaas sobre los cambios reealizados
t
que hacer
h
direcctamente
o nuuevas características incorporadaas se las tiene
ejecuutándola soobre el servvidor, con Web
W Clientt-Side Valiidation estee tipo de
prueebas no se laas hará en el
e servidor loo cual ayuddará a ahorraar tiempo.
Inpu
utType. En
E muchas ocasiones cuando hem
mos realizaado aplicaciiones en
Gen
neXus una molestia haa sido al m
momento de relacionar las tablas y extraer
inforrmación dee ella a quee necesariam
mente siemp
pre hemos tenido que trabajar
mannipulando el
e ID, con Input Typee ya no ess necesario tener que invocar
direcctamente all ID se lo puede
p
hacer mediante otro campo, por ejem
mplo una
enfeermedad se lo
l invocará por su nom
mbre y no poor su ID.
Suggest: esta propiedad
p
está asociada al Input Type
T
y mueestra cualess son los
regisstros que vaayan concorrdando mienntras el usuario digita, se van haciiendo las
com
mparaciones y presentanndo los registros que co
oncuerdan.
- 299 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Com
mbos Dinám
micos: Si enn la KB se tiiene una esttructura de países
p
y proovincias,
el coombo de paaíses será esscogido y el
e otro combbo directam
mente presenntará las
prov
vincias del país
p escogid
do en el com
mbo anteriorr.
Localización de
d Aplicaciiones: Sirvve para locaalizar produ
uctos desarrrollados
por empresas de
d softwaree, que quieeren reutilizzar el conoocimiento qque está
geneerado en differentes paísses.
Ingeeniería Invversa de Baases de Dattos: Esta prropiedad cubre la problemática
de cuando
c
se tiene
t
una baase de datoos pero la misma
m
no tiene el diseeño y se
quieere construiir la aplicaación sobre esa base de datos,
Database Reverse
EngineeringToool permite capturar ell conocimiento de esa base de Datos e
C
to.
impoortarlos a laa base del Conocimient
Prop
piedad Nu
ull: Esta proopiedad es para definnir a los atrributos quee pueden
almaacenar valoores nulos, esta funcioonalidad tieene como consecuenciaa mayor
segu
uridad de los datos, mejoras
m
en los contro
oles de inteegridad refferencial,
adem
más permitee la creaciónn de los Joinns con mejoor rendimien
nto.
Com
municación
n Asíncronaa entre apllicaciones: Esta funció
ón está inteegrada al
nuevvo tipo de datos
d
Queuee y permite que las apliicaciones see conecten con
c otras
mensajes, de esta manera
m
estaableciendo una comunicación
a trravés de
asíncrona sin laa necesidad
d de estar coonectadas a una red all mismo tieempo las
dos.
Mon
nitoreo
y
Adminisstración
d
de
aplicacciones:
M
Muchas
vecces
los
desaarrolladores no imagin
namos de cuuán grande puede llegar a ser unn sistema
com
mpleto empreesarial y cuuan laboriosso es el mon
nitoreo de la
l misma, GeneXus
G
penssando en este
e
probleema implem
mentó
estta funcionaalidad que permite
monnitorear los servidores de aplicacioones y las bases
b
de dattos, el moniitoreo se
lo reealiza en applicaciones Web y de 3 capas. Addemás perm
mite que se realicen
cam
mbios en el tiempo
t
de ejecución
e
a la configurración de algunas
a
proppiedades
del servidor,
s
esppecíficamen
nte al pool de
d conexionnes de los seervidores
- 300 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II 3.
Proteccción de su
u inversión:: más plataaformas y mejor
m
prep
paración
para
a el futuro..
J2E
EE
Gen
neXus 9.0 soporta la generaciónn de los EJB
E
de tippo SessionB
Beans y
MesssageDrivennBeans y uttiliza JDBC
C para accedder a las baases de datoos de las
apliccaciones geeneradas.
De esta
e maneraa las aplicacciones creaddas con el generador
g
Jaava se beneffician de
segu
uridad, monnitoreo y de la interoperrabilidad qu
ue brinda J22EE
El principal
p
o
objetivo
dee J2EE sirrve exclusivamente para
p
minim
mizar la
prog
gramación de
d acceso a los datos
Las transaccionnes definidaas como buussinesCom
mponents pu
ueden ser exxpuestas
mo Web Serrvices de taal forma quue la lógicaa que está encapsulada
e
a, pueda
com
geneerar un EJB
B que tieneen la posibiilidad de seer utilizadoss en los prrogramas
exteernos y otross objetos dee GeneXus
u
puedde incluir fáácilmente SeessionBeans y/o MessaageDrivenB
Beans. El
El usuario
EAR
RDeploymeentWizard de
d GeneXuus 9.0 sopoorta los serrvidores J2EE más
popu
ulares: J/Ruun, JBOSS, Oracle 9iAS, SunOne, Weblogic, y Webspheere.
- 311 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Gen
nerador .NE
ET Mobile..
En esta
e versiónn de GeneX
Xus se incoorpora el geenerador paara .NET Compact
C
Fram
mework, quue cumple con
c todos loos requerim
mientos de GeneXus
G
paara hacer
el caambio de plataforma si
s el usuarioo lo necesitaa, el único inconveniennte es el
tamaaño de las pantallas
puede lleegar a
vaariar pero no
n la lógicca de la
apliccación.
Gen
neXus 9 ya provee
p
un excelente sopporte para el
e trabajo coon MySQL.
GENEXUS X EV
VOLUTION
N
GeneX
Xus X no esttá consideraada únicameente como una
u versión
n más, repreesenta un
gran saalto adelantee en muchos aspectos y,
y muy espeecialmente, en su capacidad de
integración y de exxtensión.
v
quee completaa el soportee para múlltiples plataaformas, faacilita el
Es la versión
trabajo en equipo, lleva la exp
periencia deel desarrollaador a un niv
vel superiorr
manejar dee manera más
m amigabble aplicaciones empreesariales
Permitee crear y m
mucho más compllejas.
“El objjetivo de GeneXus
G
es (a través de la descrripción de las visioness de los
usuario
os) conseguiir un muy buen
b
tratam
miento autom
mático del conocimient
c
to de los
sistemaas de negocioos.”
BreogánnGonda& Niccolás Jodal
GeneX
Xus es una hherramienta que parte de
d las visionnes de los usuarios;
u
caaptura su
conocim
miento y loo sistematizza en una base de coonocimientoo. A partir de esta,
GeneX
Xus es capaz de diseeñar, generrar y man
ntener de manera tottalmente
automáática la estruuctura de la base de dattos y los proogramas de la aplicacióón.
Ilustraación 2 CAP. II
I –Integración
n y Extensión de
d GeneXus X Ev1
Fuente: Libroo_Genexus_x_episodio_uno_
_2da_ed.pdf
- 322 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II GeneX
Xus desde suus principio
os ha venido manejanddo el conceepto de una base de
conocim
miento, quee inicialmeente tiene asociado
a
unn conjunto de mecanissmos de
inferenncia y algunnas reglas de aplicacción generaal, como laas que asegguran la
consistencia.
Ilustraciión 3CAP. II –Mecanismos
–
d inferencia y reglas de apliccación
de
Fuente: Libroo_Genexus_x_episodio_uno_
_2da_ed.pdf
“GeneX
Xus trabaja permanenttemente sobbre la Basse de Conocimiento. Todo el
conocim
miento de laa Base de Conocimient
C
to es equivaalente al coontenido dell Modelo
Externo
o (subconjuntto de ella), ya
y que consisste en el proppio Modelo Externo
E
máss reglas y
mecanissmos de inferrencia indeppendientes dee él y un conj
njunto de otrros elementoss que son
automátticamente innferidos a partir del mismo. Ell desarrollaador puede alterar,
modificaando objetoss de la realiddad del usuaario, el Moddelo Externo y las modifi
ficaciones
se propagarán autoomáticamentee a todos loss elementos que
q lo necessiten: otros eelementos
ase de Datoss y programaas de la apliicación. De la misma
de la Baase de conoccimiento, Ba
manera,, el desarroollador no puede alterrar directam
mente ningúún elemento que no
pertenezzca al Modeelo Externo”
”… TODO eel conocimiento está conntenido en el Modelo
Externo
o y, por ello, mañana pod
dríamos sopoortar la Basee de Conocim
miento de unaa manera
totalmennte diferentee y el conociimiento de nuestros clien
ntes seguiría
a siendo utiliizable sin
problem
ma alguno”.
BreogánnGonda& Niccolás Jodal
”Es neccesario un ddramático auumento de productivida
p
d (en el dessarrollo de sistemas)
s
pero la productividdad de los leenguajes de programaciión ha llega
ado hace ya bastante
ductividad
tiempo a una estabilización”… “¿Cómo lograr, entoncces, el aumento de produ
n
Haaciendo desarrrollo basaddo en conocim
miento y no en
e programaación: ¡la
que se necesita?
soluciónn es describir en vez de programar!”
p
”.
BreogánnGonda& Niccolás Jodal
Beneficcios Princip
pales
La emp
presa Artechh ha queridoo mejorar muchos
m
aspeectos en GeneXus con el fin de
satisfaccer las necesidades quee se van preesentando enn el transcuurso del tiem
mpo para
ello con
n versión X Evolution de GeneXuus se plasmaan los siguieentes benefiicios.

Tiempo reecord en la implemenntación del conocimieento del neggocio en
solucioness informáticcas
- 333 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II 
Validaciónn de los reqquerimientoss usando pro
ototipo en la etapa de diseño
d

Análisis del
d impactto y actuaalización au
utomática en los programas
generados

diante
Maximizaar los resultaados de la empresa med
o Inttegración coon sistemas “Legacy”
o Im
mplementación de poderrosas soluciiones de Buusiness Intellligence,
Woorkflow, y acceso
a
a dattos Win o Web.
W
o Perrmite Exploorar todo el potencial de
d los Web Services
S
basados en
XM
ML

Uso del KnowK
how de la emprresa para el desarrollo de las apliccaciones
críticas.

d
seerá el encarggado de dessarrollar el negocio
n
El departaamento de desarrollo

Ahorro siggnificativo de dinero ya
y que no es necesario la capacitaación del
personal en
e lenguajess específicoss.

GeneXus X no da cabbida a que la
l empresa quede atrappada en plattaformas
obsoletas

Potencia la
l productivvidad de loos programaadores graccias a que su
s uso y
aprendizajje es fácil.

GeneXus X incorporra varias caaracterísticaas, un editoor wiki y ambiente
a
multiusuarrio, que faciilitan la inteegración de todo el equuipo de trabajo.
Cara
acterísticaas.
»
DevelooperExperiience
Laa versión X Evolution, permite que la applicación este
e
potencciada en
dinnamismo e interaccióón para consultar la informació
ón, menorees tareas
adm
ministrativaas, una inteerface más enriquecidaa, un debuggger integraado y la
posibilidad dee desarrollarr sin inconvvenientes pro
oyectos de gran
g
tamañoo.
»
Team Developmeent
Unno de los problemas más com
munes en el
e desarrolllo de apliccaciones
infformáticas siempre
s
ha sido y hasta ahora ess el trabajo en equipo, por esa
- 344 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II razzón GeneXuus ha puesto énfasis en
e reducir esa problem
mática exisstente en
toddas las emppresas, por tal
t razón see afirma quue con la veersión Evolution de
GeeneXus es
mucho más
m simple trabajar enn equipo, colaborar
c
y recibir
collaboracionees gracias a GXservver y Chaange Defennder, que proveen
meecanismos de
d integraciión y propaagación de cambios seeguros, conoocidos y
fácciles de usarr.
»
Entrep
prise Levell Applicatioons
El crecimientoo del mund
do web, el mercado
m
infformático que
q año a añño se ha
c
solu
uciones es realizar
idoo fortalecieendo dan paso a exxigencias cuyas
traansacciones Online, debido a este temaa GeneXuus X brinda más
connocimiento y más teecnología para
p
crear de forma mucho m
más fácil
apllicaciones worldclass
w
q aprovecchen todas laas ventajas de la web 2.0
que
2 y que
se adapten a laas exigenciaas del mercaado.
»
Comp
pleteness
Al soporte paara web, see suman generadores para
p
GUI, iSeries y Windows
W
Moobile. Tambbién se inccorporan edditores para: Work Panels,
P
Mennu Bars,
Meenus y Textt Mode Reports.
»
Standaard routinees publisheed
GeeneXus Evoolution perrmite a los desarrolladdores revisaar el códigoo fuente
com
mpleto de las aplicaciiones generradas, esto recibe el nombre
n
de “rutinas
esttándar” con la excepcióón de los lennguajes inteerpretados como
c
es Rubby.
»
Docum
mentando desde
d
dentrro
Laa documentaación es un proceso
p
muuy importan
nte en el desarrollo de cualquier
c
tipo de aplicacción softwaare
mentación inntegradas a la KB.
GeeneXus conntiene funciionalidades de docum
Doocumentos, archivos, diiagramas, objetos
o
puedden estar tod
dos
- 355 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Intterrelacionaados mediaante links, fácilmentte accesibles por cualquier
c
miembro del equipo. La documentaación es acttiva e integrrada, constiituyendo
w
un verdadero wiki.
Ilustración 4 CAP. III – Imagen del sector de docu
umentación intterna
»
Files
xto que sirvan de
Estta propiedaad permitee almacenaar documenntos de tex
infformación, o manuales..
Ilu
ustración 5 CA
AP. II – Imagen
n del panel de Files externos..
Unna propiedadd muy impoortante de los IDE de desarrollo
d
e el contar con una
es
venntana que refleje
r
gráfficamente laas relacionnes entre taablas de la base de
dattos lo que loo conocemo
os como Inteegridad Refferencial
Ilustración
n 6 CAP. II – Imagen del pan
nel de relaciones entre transaacciones.
Enn este tipo dde diagrama, la punta siimple de la flecha reprresenta la exxistencia
de una instanccia de la tabbla apuntadda para cadaa instancia de la otra; es
e decir:
parra cada ciudad existe sólo un país; Reccíprocamentte, la puntta doble
de varias innstancias, es
reppresenta la ocurrencia
o
e decir: parra cada paíss existen
mu
uchas ciudaddes relacionnadas; para cada ciudadd muchas attracciones.
- 366 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II »
Determ
minando un
n Atributo Identificad
dor como Autonumbe
A
er
Laa función Autonumber
A
r provee la facilidad
d necesaria por ejempplo para
traabajar con los
l atributoos Primary Key numééricos sobree los DBM
MSs que
sopportan esta funcionaliddad. Solucioonando la manera
m
antigua de trabbajar con
genneradores automáticos
a
s de atribuutos clave,, la cual es
e con el uso de
pro
ocedimientoos almacenaados.
Toodos los objjetos de GeeneXus conntienen prop
piedades qu
ue afectan tanto su
apaariencia com
mo su comp
portamientoo.
- 377 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II PATTE
ERNS (PATRONES)
Definición
Loos Patterns son
s una proopiedad de GeneXus que
q se pued
den implem
mentar en
lass transaccioones de la KB,
K como objetivo
o
tieene crear en
n forma auttomática
toddos los objeetos necesarrios para prroveer variaas funcionallidades reduundantes
en las transaccciones de un
na aplicacióón.
d conocimiiento. O
Unn Pattern ess un generaador de coonocimientoo a partir de
tam
mbién lo puuede definir como una funcionaliddad que perm
mite autom
matizar lo
auttomatizado..
Los Paatterns son muy potenttes; evita quue se deba crear manuualmente obj
bjetos; se
puede crear patronnes de acueerdo a la nnecesidad dee cada orgaanización o usuario
ndolos a las
l
necesiddades del negocio. Introducen
I
un alto nivel
n
de
adaptán
producttividad y geeneran apliccaciones dee calidad, coon interfacees más unifoormes, y
una lóggica consisteente.
Es muyy común teener en lass aplicacionnes formulaarios que sean
s
muy similares
s
aunquee no sean loo mismo, pero
p
compaarten muchaas cosas en
n común, coomo son
conjunttos de datos para filtraar, la red, oordenacionees, accioness, podemos también
crear menús,
m
las ventanas de mantenimieento, e incluuso los Patteerns son cappaces de
cargar en la aplicaación bases de conocim
miento com
mpletas y haacer que loss nuevos
objetoss interactúenn con dich
ha base. Perro lo más importante
i
es que tennemos la
posibiliidad de m
modificar dichos
d
objeetos generaados, e im
mplementar nuevas
funcionnalidades a los patroness existentes y/o desarro
ollar nuevoss patrones.
Los Paatterns puedden ser la solución
s
máás óptima cuando se quiere miggrar una
aplicación Win a Web.
W
Podemos pensar al Pattern coomo una mááquina, cuyaa entrada ess una transaacción (y
la KB) y cuya salida es un conjunto de nuevos objjetos GeneX
Xus (algunoos de los
m cambioss en algunaas propiedaddes de la
cuales mostramos antes en ejecución), más
KB, más
m la propiia transacciión modificcada con toodo el conj
njunto de fuunciones
- 388 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II necesarrias para ell funcionam
miento en conjunto
c
dee la transaccción y loss objetos
creadoss con la KB
B.
Ilustracción 7 CAP. II – Pattern com
mo una máquin
na de procesam
miento
Caaracterísticcas
 Dinamism
mo entre laa transaccióón y el Patttern
Todos los objetos qu
ue son geneerados por los Pattern
ns son creaados con
on represenntados por los siguientees íconos, en
e donde
partes por defecto y so
c
parte deel código quue es necesaario en un objeto.
o
se encuentrra alojado cada
Ilustracióón 8 CAP. II – Menú en de elementos
e
de un
n objeto en GeeneXus
La aplicaciión basada en las partees predefiniidas proporcciona el dinnamismo
entre la transacción y el Patterrn. Cuando cambia unna propiedaad en la
nstancia o hace un
definición del Patternn, agrega unn nuevo filltro en la in
cambio en la Transaccción, todos los objetoos generadoos por los Patterns
a cambio sin
s la neceesidad de volver
v
a
reaccionaráán automátticamente al
aplicar el Pattern. Auunque en muchas
m
ocaasiones es necesario volver
v
a
P
a la transacción
t
cuando estaa haya sufriido algún caambio.
aplicar el Pattern
Para lograrr una verdaadera autom
matización, el Pattern permite
p
reaalizar las
acciones prropias de unna transacciión como soon Insertar, modificar, eliminar
y visualizarr.
Personalizzación: cadda instanciaa de un Patttern puede ser modifiicada de
acuerdo a los
l requerim
mientos del negocio,
n
es decir se pu
uede agregarr nuevos
filtros, ordeenamientos, ocultar o visualizar
v
attributos de las
l transaccciones.
Configuraación: los Paattern tienenn un archivo
o que config
guración geeneral en
el que se puuede cambiar ciertas prropiedades de los objettos.
- 399 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Adaptabiliidad: debiddo a que el funcionamiiento de loss Pattern see basa en
plantillas se
s puede acceder
a
al código
c
de estas para poder moddificar o
agregar nueevas funciones sobre loos objetos que
q son creaados por el Pattern.
P
Inclusión de otras KB:
K los Paatterns perm
miten que en
e su conteenido se
puedan inccluir bases de conocim
miento com
mpletas quee pasaran a formar
parte de la KB en la quue se está trrabajando.
Si bienn es ciertoo los patteerns son usados paraa KB en ambientes
a
W
Web,
la
program
mación de uno de ellos
e
no requiere quee el códigoo sea basaado para
aplicaciones Web,, además quue se puede obtener loss mejores beneficios
b
yya que se
utilizarrá la misma plantilla paara la creaciión de una pantalla
p
web y esto se reflejará
en el asspecto visuaal y uniform
midad en toddos los objetos creados por los pattterns.
Los paatterns estánn enfocadass específicaamente paraa el desarro
ollo de apliccaciones
Web poor esta razóón se puede ver la diferrencia en deesarrollar unna aplicacióón Win y
una apllicación Weeb.
Los paatrones perrmiten que se hagan constantes cambios sobre
s
elloss lo que
conllev
va a que las aplicaciones informátticas futurass cada vez requieran
r
d menos
de
tiempo para ser construidas
c
debido a que los Paatterns cadaa vez tendrrán más
funcionnalidades, laa capacidadd de incluir partes
p
o basses de cono
ocimiento coompletas
en un Pattern coomo por ejemplo
e
unn módulo de
d seguridaad permite que el
desarro
ollador de laa aplicaciónn no tenga que
q preocupparse sobre la
l manera en
e que se
manejee los aspectoos de seguriidad en la applicación.
Los paatterns estánn construidos en el leenguaje C#,, y se geneeran a partiir de los
ensambblados que
proporcioona GeneX
Xus para recuperar la informacióón de la
transacción.
Ademáás se proveeen librerías que dotan los
l tipos dee objetos, tippos de datoos que se
definenn en GeneX
Xus, y a paartir de estaas se crea un
u proyectoo desarrolladdo en el
lenguajje C#, los Templates
T
t
también
se generan a partir
p
de lo
os ensamblaados que
proveenn la informaación de la transacción
t
n y de los obbjetos de GeeneXus.
- 400 -
INTRODUCC
CIÓN TEÓRICA – CAPÍTULO II Uno dee los princiipales inconnvenientes que se enccuentran a la
l hora de elaborar
patronees es la maanera en la que se deeclararán vaariables y objetos
o
debbido a la
escasa informacióón existentee sobre la forma
f
de uttilizar las liibrerías quee provee
Xus.
GeneX
En el Anexo
A
de construcción
c
n del Patterrn WWEtappa se detalllará más a fondo
f
la
forma de crear vaariables a partir
p
de atrributos, decclaración dee variables con los
tipos de
d datos dee GeneXus, el uso dee dominios, creación de
d los webb panels,
insercióón de eventos, reglas variables
v
en el proyectoo en C# y enn las plantilllas.
Ventaajas y Desvventajas
Veentajas:

Tiemppo de Prograamación sum
mamente coorto, si se desarrolla
d
unn Pattern
para el
que implemente
i
e todas laas funcionaalidades necesarias
n
funcionamiento correcto
c
dee los objettos de la KB,
K
el tieempo de
r
de foorma notablle.
prograamación se reduce

Unificcación de Esstándares y Formatos entre
e
todas las aplicaciones de
una orrganización..

Generaación autom
mática de cóódigo, el Paattern generra automátiicamente
el códdigo necesarrio en cadaa objeto quee se crea a través del Pattern,
manejaando los atrributos y noombres prop
pios de cadaa transacciónn.
Deesventajas:

El dessarrollo de Patterns requiere de un
u profundoo análisis sobre
s
las
libreríaas de GeneX
Xus que prooveen los objetos
o
e infformación necesaria
n
de la trransacción para
p generaar una Patterrn.

Falta de
d herramientas de apoyo para el desarrollo
d
d Patterns.
de

Escasaa documentaación sobre el desarrollo de Patterrns.
- 411 -
C
CAPÍT
TULO
O III
PROG
P
GRAM
MACIIÓN DEL
D
PA
ATTE
ERN
PRO
OGRAMACIÓN – C
CAPÍTULO III CAPÍTU
ULO III– PROGRA
P
AMACIIÓN DEL
L PATT
TERN
MICRO
OSOFT VIISUAL ST
TUDIO 2008
2
Visual Stuudio 2008 es
e una herraamienta quee tiene com
mo propósito
o ofrecer faccilidades
para la caaptura y annálisis de in
nformación, dándoles un
u trato adeecuado a esttas, para
así brindaar soporte al desarrolllo de apliicaciones, para
p
así ob
btener los mejores
resultadoss en el mannejo adecuado de la información
n. Visual Studio
S
20088 ofrece
avances cllave para deesarrolladorres en funcióón de los sig
guientes trees pilares:

Desarrollo
D
ráápido de aplicaciones

Colaboración
C
n eficiente entre
e
equipoos

In
nnovación en
e experiencias de usuaario
MICRO
OSOFT .N
NET FRAM
MEWOR
RK
.NET Fram
mework prooporciona un
u entorno dde ejecución
n administraado, un desarrollo e
implemenntación simpplificada y la
l integracióón con una gran varieddad de lengguajes de
programacción.
Proporcionnar un entoorno gráficco de proggramación orientada a objetos, para los
distintos lenguajes de progrramación que
q
soporrta. Ademáás provee a los
programaddores herraamientas quue facilitann y agilitann el proceso de obtennción de
informació
ón y el desaarrollo de programas.
p
N
Nombramo
os algunas de
d las bondaades que
brinda Microsoft Visuual Studio.
 Offrece un enttorno de ejecución de código que
e fomente la
l ejecuciónn segura
del
d mismo.
 Pro
oporciona uun entorno de
d ejecuciónn de código
o que elimin
ne los probllemas de
reendimiento de los ento
ornos en los que se utiliizan secuenncias de com
mandos o
inntérpretes dde comandoss.
 Offrecer al pro
ogramador una
u experiencia cohereente entre tipos de apliccaciones
muy
m diferenttes, como laas basadas en
e Windowss o en el Weeb.
 Ba
asa toda la comunicacción en esttándares del sector paara asegurarr que el
código de .N
NET Framew
work se pueede integrar con otros tiipos de código.
- 433 -
PRO
OGRAMACIÓN – C
CAPÍTULO III MICRO
OSOFT VIISUAL C#
C
C# es un lenguaje
l
de programación que tom
ma las mejorres caracterrísticas de leenguajes
como Vissual Basic, Java, C++ y los com
mbina en unno solo, utiilizando de manera
adecuada el uso de reecursos harrdware, al ser
s un lengu
uaje hibridoo que está eenfocado
ogramaciónn orientada a objetoss se ha co
onvertido en
e un lengguaje lo
en la pro
suficientem
mente potennte para construir aplicaciones sooftware capaces de adm
ministrar
procesos de
d negocios de cualquieer tipo de em
mpresas.
- 444 -
PRO
OGRAMACIÓN – C
CAPÍTULO III ANÁLISIIS DEL PA
ATTERN
El Patternn como tal es
e un sistem
ma que interaactúa directtamente con
n otro consttruido en
GeneXus con el proppósito de construir
c
más objetos que dotaránn de una lóógica de
miento al sisstema.
funcionam
El Patternn está constituido por otros
o
sistem
mas o partess de sistem
mas desarrolllados en
GeneXus, La empresa Artech provee el pproyecto WorkWith,
W
el mismo que
q está
#. El proyecto basa su potencial
p
desarrolladdo en el lennguaje de prrogramaciónn Visual C#
en la impo
ortación dee las libreríaas que dotaan de la infformación del
d o de loss objetos
transacció
ón que son afectadas por el Patttern y a paartir de estee proyecto con los
archivos de
d especificcación y con
n los Tempplates se coonstruyen loos objetos GeneXus
G
que pasaráán a formar parte de la base de connocimiento.
El análisiss estará bassado en la im
mplementacción de un módulo de seguridad que será
acoplado a la base dee conocimiiento y meddiante el Paattern se harrá la generaación del
código y objetos
o
neceesarios paraa el funcionaamiento ópttimo del Sisstema.
El análisis del móduulo de Seg
guridad se detalla en el Anexo B “MODU
ULO DE
DAD PARA
A EL SIGE
ECOM DE
E ETAPA EP”. ESPE
ECIFICACIIÓN DE
SEGURID
REQUER
RIMIENTOS
S (ERS). Siguiendo ell formato dee la empresa ETAPA EP.
E
DISEÑO DEL PATT
TERN
El diseño del móduloo de seguridad esta detaallado en el Anexo C “D
DISEÑO DEL
O EN BASE
E AL DOCU
UMENTO ERS”.
E
MODULO
- 455 -
PRO
OGRAMACIÓN – C
CAPÍTULO III PROGRA
AMACIÓN
N DEL PAT
TTERN
WWEtap
pa.
El Patternn WWEtapa es el objetiivo en la quue se centra el desarrollo de este pproyecto,
ya que a partir de esste se crean
n las distinttas aplicaciiones clasess y Templates que
agregarán la funcionalidad requuerida a las aplicacionees construid
das en GeneXus. A
e lenguaje C Sharp ell Pattern acccederá a loos ensamblaados que
través del proyecto en
proveen laas clases neccesarias paara trabajar sobre
s
los ob
bjetos GeneeXus.
GeneXus X Evolutioon 1 Platafo
orm SDK
El Platafo
orm SDK de
d GeneXuus es una herramienta
h
a desarrollada por Arttech que
provee lass librerías addecuadas paara el desarrrollo de Paatterns mediiante la herrramienta
Visual Stu
udio en las versiones
v
20005 y/o 20008.
El SDK tiene probleemas de insstalación coon la versióón Standardd Edition dee Visual
Studio yaa que estass no proveeen el sopoorte necesaario para laa instalacióón de la
herramien
nta SDK.
Una vez que
q se haya realizado laa instalaciónn exitosa deel SDK se creará
c
en la bandeja
de Visual Studio un icono que permite la construcción de Patteerns y Packkages de
GeneXus.
Ilustración 9 CAP. IIII – Panel EN V
Visual Studio con
c GeneXus SDK.
S
us X Evolution 1 Plataaform SDK trae como ejemplos
e
el código del
El GeneXu
proyecto desarrollado
d
o en lenguajje C# de loss Patterns WorkWith
W
y Category.
- 466 -
PRO
OGRAMACIÓN – C
CAPÍTULO III El proyectto sobre el cual se basa el tema de
d Tesis es el
e WorkWitth Pattern, para
p
ello
debemos escoger
e
el proyecto
p
dessarrollado en
e Visual Sttudio,
”Artech.P
Patterns.WoorkWith ”; de la siguieente dirección.
“C:\Program Files
(x86)\Artech\GeneXus\GeneX
XusXEv1Pla
atformSDK\Patterns\
\WorkWith\
\Source
”
En el Exp
plorador de solucioness podemos observar
o
toodo el códig
go de la solución y
entre ellas encontram
mos un dirrectorio llam
mado Refeerences, enn este direcctorio se
encuentran
n incorporaadas las libbrerías DLL
L, estas libbrerías son las que prooveen la
informació
ón de la traansacción y las clasees que se utilizan
u
paraa la declaraación de
variables, dominios, sdt
s Web Pannnels, proceedimientos, etc.
El proyectto genera unn ensambladdo Dll, que es la que see encarga dee hacer funccionar al
Pattern cada vez que esta sea apllicada en unna transacciión. Este ensamblado se genera
siempre y cuando se haga algúnn cambio enn el código fuente del proyecto enn C#, no
mplates.
involucra a los Tem
La
L librería del Patterrn se geneera en el siguiente
s
directorio..
C:\Program Files\Artech\GeneXus\Gen
neXusXEv1P
PlatformSD
DK\Pattern
ns\
WorkWith\Source\obj\Release
Siguiendo
o el Formatto de ETAP
PA EP., se Elaboró unn Documen
nto que capptura las
instruccionnes más im
mportantes del Patterrn, el cuall interactúaa con el pproyecto
WWEtapaa, en la obteención de laa informacióón de la trannsacción, y construccióón de los
objeto quee interactúann con ella.
El anexo D “PATTE
ERN WWEttapa.” Detallla el proceeso de consttrucción dell Pattern
haciendo énfasis
é
en laas sentenciaas más relevvantes del código fuentte.
- 477 -
CAPÍT
TULO
O IV
MIG
GRACIIÓN
MIGRACIÓN – C
CAPÍTULO IV CAPIITULO IV
I – MIIGRAC
CIÓN
El prooceso de migración
m
deel sistema que
q está connstruido en GeneXus 9.0
9 hacia
la verrsión X EV1 de GeneX
Xus, es un procedimien
p
nto de costee elevado, quizás
q
en
las versiones
v
a
anteriores
esta no presentaba
p
un grado de confliictividad
imporrtante, paraa la converssión a la veersión Evoluution, hay que
q tener enn cuenta
much
hos ámbitoss, como so
on cambios de datos, cambios de
d sintaxis, etc., la
empreesa Artech,, ha innovad
do a su prooducto tal es
e así, que muchos
m
erroores que
surgirrán en el prroceso de migración
m
haarán referenncia al cam
mbio de la siintaxis y
otros en la declarración de vaariables y attributos.
DESC
CRIPCIÓN DEL PROCESO
P
O DE MIG
GRACIÓ
ÓN
Preparración de laa Base de Conocimien
C
nto
La prreparación de
d la base de conocim
miento hacee referencia a trabajar sobre la
base desde GeneeXus 9, busscando errores, adverteencias, elim
minando objetos que
no see utilicen etc.
e
Cabe recalcar
r
quee si se cuennta con objeetos o sistem
mas que
estén desarrolladdos en verssiones anteriores a la 9, primeroo se debe convertir
c
estos objetos a la versión 9 para possteriormente convertirrlos a la veersión X
ution. La preparación
p
de la basee de datos se resume en los doss puntos
Evolu
siguieentes.
1
Crear un respald
do de la KB
B
Una
U forma adecuada de
d respaldarr el KB es copiar tod
do el directoorio que
contiene los objetos.
2
Limpiiar la KB
El
E procesos de limpiezza implica que a travéés de GeneeXus 9 se eeliminen
toodos los modelos
m
inneecesarios, si se contaara con moddelos que no
n serán
utilizados
u
el proceso dee conversiónn tardara, si es que exisste algún moodelo de
Backup,
B
tam
mbién se lo debe
d
eliminnar porque, cuando haablamos de bases
b
de
- 499 -
MIGRACIÓN – C
CAPÍTULO IV conocimientto grandes el
e proceso de
d conversió
ón puede tom
mar muchass horas y
sii se produjeera un error nuevamentte se deberíaa realizar toodo el proceso.
La
L versión X de GeneX
Xus no sopoorta modeloos Win, estaa versión fuue creada
únicamente
ú
para el desarrollo
d
d aplicacioones en am
de
mbientes Web.
W
La
Versión
V
Evoolution sopoorta aplicacciones desaarrolladas en
n ambientes Win y
RPG,
R
pero no
n tiene sopporte para Visual Bassic. Los dirrectorios y archivos
que
q se debenn eliminar son los siguiientes.

Los objetos quee no están siiendo usadoos

En ell directorio y subdirectoorios de la KB
K los archhivos *.ari y *.00
3
Conveertir la KB a GX X Evvo1
Los
L pasos más
m importan
ntes de este punto del proceso
p
de migración
m
soon:

Convvertir la KB a GX X Evv1

Resoolver problem
mas que se presentan GX
G 9.0

Convvertir nuevaamente
Se
S pude defi
finir dos forrmas de miggrar de Gen
neXus 9 a GeneXus
G
X Evo. El
primero
p
que es la conveersión y connsiste en abrrir la Base de
d Conocim
miento en
laa Versión X Evo, y el otro que ess exportar e importar. Si bien es cierto el
reesultado sería
s
el mismo
m
exiisten alguunas difereencias y también
innconvenienttes que se generarían
g
e ambos prrocedimienttos. Las priincipales
en
diferencias
d
son las siguuientes:

La conveersión no funciona
fu
en objetos quue tienen errrores por lo que el
proceso se detiene cuando
c
aparrece un erroor mientras que la impportación
puede deejar una partte del objetoo y continuaar con el ressto.

La convversión trataa de manteener todo el modelo y las prefferencias
estableciidas por el usuario enn la versión
n anterior, además
a
cuaando una
preferenccia cambia su valor por
p defecto en la nuevva versión, el valor
anterior se mantienne en la KB
K convertida, cosa que
q no se produce
cuando se
s importa lo
os objetos a una nuevaa base.
- 500 -
MIGRACIÓN – C
CAPÍTULO IV En
E algunos casos es mejor
m
exporttar e imporrtar en lugaar de la connversión,
por
p ejemploo si se trataa de la migración
m
de
d una apliccación com
mpleta la
conversión seria la oppción más adecuada y la que mejores reesultados
presentaría
p
a final dell proceso, por
al
p el otro lado si se quiere úniicamente
extraer una parte de laa KB (por ejemplo unas
u
cuantaas transacciones) la
exportación e importación es el paaso que se debe seguiir debido a que con
mos mucho tiempo.
t
este proceso ahorraríam
Cuando
C
se haga
h
una coonversión see mostrará la siguientee barra de pprogreso
por
p cada tareea a realizarrse.
Ilu
ustración 10 CAP. IV – Etapas del proceso de migración..
Durante
D
la conversión
c
algunos errores o adv
vertencias pueden
p
aparrecer, la
innformación se muestraa en las venntanas de saalida y una vez que finnalice la
innformación completa de salida
se guarddará en unn archivo llamado
conversión.log.err, cuanndo ocurre un
u error en este proceso
o, el detallee de este
- 511 -
MIGRACIÓN – C
CAPÍTULO IV see encuentraa en el archhivo nombrrado, y el paso
p
a seguuir es correegir este
problema
p
en GeneXuus 9.0 paraa nuevameente reiniciiar el procceso de
conversión.
La
L conversiión es considerada exxitosa cuanndo no hann sido encoontrados
errores duraante el procceso, si aparrece algún error este se debe ressolver en
GeneXus
G
9 y volverlo a convertir.
Después
D
de una conveersión exitoosa la KB está lista para
p
ser ussada con
GeneXus
G
X ev1,
Laa Base de conocimiennto de la versión anttigua es
guardada
g
en un directorrio llamado Backup.
A continuaciión se deben
n configuraar las siguienntes propieddades en la KB.
Data
D
Store, User, passsword.
S es neceesario, estaa propiedadd no es
Si
convertida ddurante la coonversión dee la Kb.
•
Seleccionnar el theme correcto es
e necesarioo
•
Estableceer el Masterr Page por defecto
d
•
Analizarr las adverteencias durannte el processo de conveersión
Si
S se usa el control QuueryViewerr, un processo de conveersión tienee que ser
ejjecutado
4
Análissis detallad
do
Realizar
R
unaa reconstruccción (rebuilld) de toda la
l KB.
Realizar
R
unaa comparaciión de naveggación.
Comprobar
C
l problem
los
mas de comppatibilidad general.
g
Una
U vez quue la base de conocimiento está lista para su uso en GenneXus X
ev1 el siguiente paso es
e realizar una BuildA
All o ejecuttar directam
mente un
objeto
o
princiipal, a contiinuación se debe comp
parar el procceso de navvegación
de
d los objetoos con la veersión anteriior de esta manera se puede obtenner más
innformación acerca de algunos caambios intro
oducidos en
e la versióón actual
(n
nuevas caraacterísticas, corrección de errores, etc.) y com
mo estas differencias
podrían
p
afecctar a la apliicación.
- 522 -
MIGRACIÓN – C
CAPÍTULO IV GENE
EXUS X EV1
E CON
NSIDERA
ACIONES
S GENER
RALES
-
Modelo de conversiónn para el Am
mbiente o veersión.
El conceptto de modello ya no exxiste en Gen
neXus X evv1. Los prottotipos y
modelos de producció
ón se conviierten en unn entorno o en una veersión en
función de su sincroníía con el moodelo de disseño.
Cuando
o todos los modelos
m
so
on sincronizados con ell modelo dee diseño esttos serán
converttidos como entornos.
Si hay un
u análisis de impacto pendiente desde
d
el mo
odelo de diseño para ell:
Modello
Prototippo/Producciión
Prototippo/producciión
en
y
aqquí
comparació
c
ón
no
hay
con
el
e
nuevoss
de
objetos
disseño,
el
en
el
modelo
Prototippo/Producción será convertido
c
como un entorno dependiendo
d
o de la
plataforrma y de la base de dattos.
Si aquíí está pendiiente un anáálisis de im
mpacto desdde el modello de diseñoo para el
modeloo
protootipo/produccción
Y
algunoss
objetos
en
el
modelo
prototippo/producciión son máss recientes que
q en el moodelo de disseño
Interfaace
A diferrencia de GX
X X la evollution 1 sopporta no sollo interfacess Web sino también
formulaarios Windoows y form
mularios de Character
C
Generaadores
El geneerador de Visual
V
Basicc no es expoortado, los modelos qu
ue utilizan a este se
converttirán en un generador
g
d C# que detalla
de
d
el sigguiente mennsaje
WARNING
G: Model \"VB - Ac
ccess\" def
fault envi
ironment is
i
not sup
pported.
Changed
dto C#
Preferrencias
Prefereencias con valores
v
inváálidos in GX
X X EV1 serán
s
conveertidos con un
u valor
desconocido.
- 533 -
MIGRACIÓN – C
CAPÍTULO IV Objeto
os no soportados
Los sigguientes objetos no sonn convertidoos:
Objeto
os de estilo: a pesar dee no soportaar estos objjetos como en GX X,, cuando
converttimos a GX
X X Ev1, el estilo será aplicado paara estos objjetos basados en él,
durantee el procesoo de converssión. Tambiién la refereencia al estiilo se mantiene para
casos futuros,
f
estoo permite saber
s
fácilm
mente cual objeto estáá basado enn estilos
específficos a travéés de la venttana de refeerencia de ob
bjetos.
Se debbe consideraar que todaas las propiedades moodificadas en
e el estiloo no son
aplicaddas para connversión dee objetos, en
e este casoo las propieedades en el
e objeto
deben ser
s cambiaddas manualm
mente
Objeto
os Privadoos: cambia la visibilidaad de los obj
bjetos de lo
o contrario tendrá
t
el
siguiennte error
ERROR: Privatetra
ansaction '<ObjectNam
'
me>'
FONT TY
YPES NO SOP
PORTADOS
Desde GeneXus X los fonts soportadoss en la ID y aplicacion
nes generaddas son
restringgidas para las fuentes TrueTypees, las fueentes TruTyypes preserrvan las
propieddades cuanndo imprim
me, es comoo un WYSIWYG (lo que ves ess lo que
tienes) para las im
mpresoras.
ANÁL
LISIS DE
E LOS OB
BJETOS A SER MIGRADO
M
OS
En prim
mera instanncia el pro
oyecto plannteaba la migración
m
de
varios módulos
m
perteneecientes a distintos
d
sisstemas quee conforman
n el SIGEC
COM. Debido a la
problem
mática que se
s iba a gennerar al sepaarar los mód
dulos, y porr la poca o casi
c nula
funcionnalidad que se iba a tenner del sistem
ma se plantteó migrar todo el moddelo Web
del SIG
GECOM, laa aplicación del Patternn se realizarrá a los móddulos que presenten
p
mayor nivel de neecesidad porr parte de laa Empresa.
El procceso de migrración del Modelo
M
Web del SIGECOM se deetalla en el anexo
a
D
“MIGR
RACIÓN DE
EL MODEL
LO WEB DEL
D SIGECOM”.
- 544 -
MIGRACIÓN – C
CAPÍTULO IV VALIIDACIÓN
N Y VERIIFICACIÓ
ÓN DE PATRONE
P
ES
Una vez laa migraciónn y verificacción del funncionamientto del sistem
ma el siguieente paso
con las pruebas
p
de verificaciónn en donde se comprobara el funcionamie
f
ento del
Pattern.
El Patternn para ser aprobado
a
no
n debe perrmitir errorees de dupliicidad de atributos,
a
índices, nombres de las tablas etc.,
e
debe ggenerar todo
os los objettos para intteractuar
con el móddulo de segguridad.
El primer paso fue aplicar
a
el Pattern
P
en una
u transaccción y veriificar que toodos los
objetos deel módulo de
d seguridad
d sean creaados en su totalidad y no generenn ningún
error con las
l demás taablas del sisstema.
Este proceedimiento puede llegar a hacer quee se modifiqque el patró
ón.
El siguiennte paso a seguir
s
una vez verificcado la creaación de todos los objjetos del
Pattern es el funcionaamiento del sistema intteractuando con el mód
dulo de seguuridad.
Para llevaar a cabo estas pruebaas se definiieron las caaracterísticaas a ser proobadas y
estas se encuentrann detalladass en el annexo E “P
PLAN DE
E PRUEBA
AS DEL
SISTEMA
A”
- 555 -
AN
NEX
XO
OS
C
CAPÍT
TULO
O IV
MIG
GRACIIÓN
C
CAPÍT
TULO
O III
P GRAM
PROG
MACIIÓN
ANEXO
A
OA
ACTA
A A DE RECEPCIION
E PRO
OYEC
CTO
DE
C
CAPÍT
TULO
O IV
MIG
GRACIIÓN
ANEX
A
XOB
ESPE
ECIF
FICAC
CIÓN
N DE
R UERIM
REQU
MIEN
NTOS
S DE
S TWAR
SOFT
RE (E
ERS)
D
DEL
Módulo de seguridad para el SIGECOM de
ETAPA EP.
Especificación de Requerimientos de
Software (ERS)
Versión 1.1
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
Versión:
1.1
Fecha: 24/02/2011
Historial de Revisiones
Fecha
Versión
Descripción
Autor
24/02/2011
1.1
Detalle de los requerimientos
para el módulo de seguridad.
Patricio Cuenca
CMM-N2/PLT01
Universidad Politecnica
Salesiana, 2011
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
Versión:
1.1
Fecha: 24/02/2011
Tabla de Contenidos
1.INTRODUCCIÓN ................................................................................ 64 1.1. Propósito ...................................................................................................................... 64 1.2. Alcance .......................................................................................................................... 64 1.3. Definiciones, acrónimos y abreviaturas ........................................................... 64 1.4. Referencias .................................................................................................................. 64 1.5. Visión General del Documento............................................................................. 64 2.DESCRIPCIÓN GENERAL .............................................................. 65 2.1. Perspectiva del Sistema ......................................................................................... 65 2.2. Funciones del Sistema ............................................................................................ 65 2.3. Características de los Usuarios ............................................................................ 65 3.REQUERIMIENTOS ESPECIFICOS ........................................... 66 3.1. REQUERIMIENTOS FUNCIONALES .............................................................. 66 3.1.1. Requisitos Funcionales del usuario .................................................................... 66 3.1.2. Requisitos Funcionales del Sistema ................................................................... 66 3.1.3. requerimientos de funcionalidad basados en casos de uso......... 66 4.1. REQUERIMIENTOS NO FUNCIONALES ...................................................... 68 4.APÉNDICES .......................................................................................... 69 CMM-N2/PLT01
Universidad Politecnica
Salesiana, 2011
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
1.
Versión:
1.1
Fecha: 24/02/2011
INTRODUCCIÓN
El presente documento refleja la en referencia al manejo de la seguridad en el SIGECOM de la Empres
ETAPA EP, y una propuesta de solución para el manejo de seguridad el que será añadido al Pattern Work
With Versión ETAPA EP.
1.1.
Propósito
Crear una especificación funcional del módulo de seguridad que se implementara en el Pattern Work With,
detallando la forma en la que el usuario interactuara con el mismo y la manera en la que el sistema
responderá ante las acciones del Usuario.
1.2.
Alcance
Obtener la especificación de requisitos para el desarrollo del módulo de seguridad.
Describir la forma en la que responderá el sistema ante las acciones que realice el usuario.
1.3.
Definiciones, acrónimos y abreviaturas
TERMINO
Pattern (Patrón)
DEFINICIÓN
Conjunto de funciones similares para cada transacción de una aplicación
informática.
Acción
Formas de interactuar con el objeto, pueden ser insertar, modificar, eliminar,
consultar
1.4.
Referencias
http://www.ingenierosoftware.com/analisisydiseno/casosdeuso.php
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software
http://www.galeon.com/zuloaga/Doc/AnalisisRequer.pdf
1.5.
Visión General del Documento
El presente documento parte con la especificación de los requerimientos de usuario, los cuales se van
detallando en funciones que debe cumplir el sistema para el manejo de la seguridad, detallando algunos de
los atributos que deben utilizarse obligatoriamente para el funcionamiento correcto y oportuno del módulo
de seguridad, es importante proveer la forma en la que se plantea que funcionara el modulo con los
usuarios que manipulen dicho modulo para eso utilizamos las plantillas de caso de uso con las cuales se
detalla más cuidadosamente el funcionamiento del sistema de acuerdo a los requerimientos plateados al
inicio. Todo esto con el fin de que el usuario tenga una visión clara sobre el modulo a construirse y el
manejo que debe tener con el mismo.
CMM-N2/PLT01
., 2011
- 64 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
2.
Versión:
1.1
Fecha: 24/02/2011
DESCRIPCIÓN GENERAL
2.1.
Perspectiva del Sistema
El módulo de seguridad que se implemente en el Pattern Work With Versión ETAPA EP., debe ser capaz
de brindar soporte para el manejo de usuarios, perfiles, objetos y acciones. El módulo de seguridad se
basara en un método recursivo de asignación de permisos sobre los objetos, es decir, el sistema
mostrara en pantalla la descripción de los sistemas siguiendo con los módulos que lo componen para
finalmente llegar hasta los objetos qué forman parte de cada módulo y precisamente a cada objeto se
le asignara un perfil que posteriormente será validado con el perfil de usuario
2.2.
Funciones del Sistema
FUNCIÓN
Presentación de los listados de: Cuentas de usuarios, Sistemas Módulos y Objetos, Roles, y acciones
existentes.
Creación del usuario Admin
Permitir al usuario Admin dar Mantenimiento a cada uno de los registros del módulo.
Asignación de Roles a los objetos y asignación de permisos sobre las acciones a los objetos.
Visualizar una ventana de Loggin, y visualización en forma de árbol el listado de objetos.
Verificación de los permisos y activación de las funciones a las que el usuario tiene acceso sobre el objeto
seleccionado.
2.3.
Características de los Usuarios
USUARIO
CARACTERÍSTICA
Admin
Acceso a todos los objetos del sistema y a todas las acciones.
Usuarios Registrados
Permisos limitados según el rol asignado.
CMM-N2/PLT01
., 2011
- 65 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
3.
Versión:
1.1
Fecha: 24/02/2011
REQUERIMIENTOS ESPECÍFICOS
3.1.
REQUERIMIENTOS FUNCIONALES
3.1.1.
RFU.1
RFU.2
Requisitos Funcionales del usuario
Autenticación de los usuarios a través de su nombre de usuario y contraseña.
Mantenimiento del Módulo de seguridad y relaciones entre objetos
3.1.2.
Requisitos Funcionales del Sistema
RFS.1 Creación del Usuario Admin.
RFS.2 Presentación de listados, de usuarios, roles, acciones, usuarios que tengan un rol, objetos,
y objetos que tengan asignado el rol.
RFS.3 Ingreso automático del nombre y descripción de los paneles de mantenimiento de cada
transacción que haya sido afectada por el Pattern WWetapa.
RF.4 Creación automática del árbol recursivo que muestre los objetos dentro del módulo al que
pertenece y los módulos dentro de que sistema están anclados
DESCRIPCION DE LOS ACTORES:
ACTOR
Admin
DESCRIPCION
Creación de Usuarios, Roles, asignación de roles los usuarios.
Mantenimiento de los sistemas módulos y objetos
Asignación de permisos sobre los objetos a los usuarios
Usuarios del sistema
3.1.3.
Ingreso de datos, ingreso a los objetos del sistema
REQUERIMIENTOS DE FUNCIONALIDAD BASADOS EN CASOS DE USO
Caso de
Uso
Actores
Nº
1.
Descripción
Mantenimiento del módulo de Seguridad
Usuario Admin
Configuración de Acciones, Roles, Usuarios, Usuarios y Roles, Objetos Roles y Permisos
Flujo de Eventos
Básico
1.
El Usuario Admin ingresara al sistema digitando su nombre de usuario y
contraseña.
2.
El sistema muestra el árbol de sistemas modulo y objetos
3.
EL usuario Selecciona un objeto
4.
El sistema mostrara el panel de mantenimiento del objeto seleccionado
5.
El usuario Admin dependiendo podrá ingresar, modificar y eliminar los registros
de las tablas del objeto seleccionado.
6.
El sistema abrirá la transacción dependiendo del modo en la que el usuario lo
invoca
Flujo de Eventos
Alternativo
2. El sistema muestra el árbol de sistemas módulos y objetos, primero validara que los
datos ingresados estén correctos caso contrario mostrara en pantalla un mensaje de error.
4.
El sistema antes de abrir el panel de mantenimiento verificara que el usuario sea
“admin” en caso de no serlo mostrara una pantalla indicando que no tiene privilegios
para acceder a ese objeto.
Pre-Condición
Post-Condición
CMM-N2/PLT01
El usuario admin debe ingresar al sistema pasando por la venta de login.
El sistema almacenar los cambios realizados por el usuario.
., 2011
- 66 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
Versión:
1.1
Fecha: 24/02/2011
Volumen de Datos
Frecuencia
Diario []
Prioridad
Opcional []
Semanal []
Mensual []
Ocasional [X]
Deseable []
Necesario []
Obligatorio [X]
Características del Producto
Caso de
Uso
Actores
Nº
2.
Creación del Usuario Admin
Usuario Admin
Descripción
Creación automática del Usuario Admin
Flujo de Eventos
Básico
Automático [X]
Flujo de Eventos
Alternativo
1.
El usuario ingresara al sistema
2.
El sistema verificara que no exista el usuario admin y sus dependencias
3.
El sistema creara el usuario admin y la contraseña 12345,
4.
El sistema creara el rol admin y asignara este rol al usuario admin.
2.
El sistema verifica que no exista el usuario admin y sus dependencias, en el
inicio del panel de login (Home) primero verificara por medio de un procedimiento que no
exista el usuario admin, si no existe crea el rol admin y el usuario con la contraseña, y
almacena en la base de datos, enseguida relaciona la el rol admin con el usuario admin
Pre-Condición
Post-Condición
El usuario admin deberá ingresar al sistema y configurar los sistemas módulos y objetos.
Volumen de Datos
Frecuencia
Diario []
Semanal []
Mensual []
Ocasional [X]
Prioridad
Opcional []
Deseable []
Necesario []
Obligatorio [X]
Requerimientos Especiales
RE.1.0
Procedimiento almacenado que verifique la existencia del Usuario Admin, y lo cree si este no
existe.
Caso de
Uso
Actores
Nº
3.
Descripción
Ingreso de los objetos creados por el Pattern en el sistema
Usuario Admin
Ingreso Automático de los paneles de mantenimiento de las transacciones en el sistema
Flujo de Eventos
Básico
1.
Automático [x]
2.
El sistema ingresara los objetos obtenidos en el procedimiento en la tabla SMO
Flujo de Eventos
Alternativo
2
El sistema que por cada objeto que este conste en la tabla SMO, si no lo hay, lo
Pre-Condición
CMM-N2/PLT01
El Usuario arrancara el sistema, y obtendrá en un procedimiento un listado de los
paneles de Mantenimiento existentes.
ingresara.
Existencia correcta del procedimiento con los datos del objeto.
., 2011
- 67 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
Post-Condición
Versión:
1.1
Fecha: 24/02/2011
Se visualizara el árbol con los sistemas modulo y objetos.
Volumen de Datos
Frecuencia
Diario [x]
Prioridad
Opcional []
4.1.
Semanal []
Deseable []
Mensual []
Ocasional []
Necesario []
Obligatorio [X]
REQUERIMIENTOS NO FUNCIONALES
RNF1 - El sistema debe permitir ser usado de manera intuitiva por cualquier usuario, que tenga acceso
a él.
RNF2 – El módulo debe evitar realizar actividades d repetitivas con el fin de no tardar más de 3
segundos en el acceso a los objetos.
RNF3 – El sistema para su correcto funcionamiento deberá trabajar con el navegador Explorer de
Microsoft
RNF4 - El módulo estará desarrollado formando parte del sistema SIGECOM y no funcionara como un
sistema externo que se maneje en base a consumo de servicios.
RNF5 - A cada usuario se le asignará un login y una clave del sistema, los cuales le permitirán el
ingreso de acuerdo un perfil determinado.
RNF6 – se realizara encriptación para pasar variables entre objetos cuando se requiera.
CMM-N2/PLT01
., 2011
- 68 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
4.
APÉNDICES
a)
Formatos ejemplo de Entrada/Salida
Versión:
1.1
Fecha: 24/02/2011
Caso de Uso Nº1
Caso de Uso
CMM-N2/PLT01
Nº2
., 2011
- 69 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo de Seguridad
b)
Versión:
1.1
Fecha: 24/02/2011
Problema a ser resuelto
La aplicación del módulo de seguridad el Pattern WWEtapa., Proveerá de forma sencilla el manejo de
seguridad en el SIGECOM. Dotara al sistema de muchos procedimientos automáticos los cuales evitaran que
el usuario interactué en el sistema, la creación automática de objetos reducirá los errores.
Aprobación de ERS – Modulo de Seguridad
NOMBRES
CARGO
DEPARTAMENTO
Gustavo Patricio
Cuenca
Desarrollador
Ingeniero. Xavier
Mejía
Director Proyecto
CMM-N2/PLT01
., 2011
FIRMA
- 70 -
C
CAPÍT
TULO
O IV
MIG
GRACIIÓN
ANEXO
A
OC
DISEÑ
ÑO DE
EL MODU
M ULO
DE SEGU
URID
DAD
Módulo de seguridad para el SIGECOM de ETAPA
EP.
Diseño del módulo de Seguridad en base al
documento (ERS)
Versión 1.1
Módulo de seguridad para el SIGECOM de ETAPA EP.
Versión:
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
Fecha: 24/02/2011
de Seguridad
Historial de Revisiones
Fecha
Versión
Descripción
24/02/2011
1.1
Aprobacion del Diseño
modulo de seguridad.
CMM-N2/PLT01
Autor
del
Universidad Politecnica
Salesiana, 2011
1.1
Patricio Cuenca
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
de Seguridad
Versión:
1.1
Fecha: 24/02/2011
Tabla de Contenidos
1.INTRODUCCIÓN ..................................................................................................... 75 1.6. Propósito..................................................................................................................................... 75 1.7. Alcance ......................................................................................................................................... 75 1.8. Definiciones, acrónimos y abreviaturas ................................................................. 75 1.9. Suposiciones y Dependencias ....................................................................................... 75 1.10. Referencias................................................................................................................................ 75 2.VISIÓN GENERAL LA ARQUITECTURA ...................................................... 75 3.METAS Y RESTRICCIONES DE LA ARQUITECTURA ............................. 76 3.1DIAGRAMAS EN BASE A LOS CASOS DE USO ..................................... 77 4. MODELO LÓGICO Y MODELO CONCEPTUAL ........................................... 79 4.1 Modelo de Diseño .................................................................................................................. 80 4.1.1 Vista de Capas y Subsistemas ....................................................................................... 80 4.1.2 Capa de Interfaces o Elementos Comunes............................................................ 80 CMM-N2/PLT01
Universidad Politecnica
Salesiana, 2011
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
1.
de Seguridad
Versión:
1.1
Fecha: 24/02/2011
INTRODUCCIÓN
1.6.
Propósito
El presente documento provee una visión general de la arquitectura del módulo, usando diferentes vistas
para ilustrar los diferentes aspectos del mismo. También intenta capturar y transmitir las decisiones de
arquitectura que sean significantes y hayan sido realizadas en el sistema.
1.7.
Alcance
Dotar un visión más profunda y clara sobre la manera en la que se implementara el modulo de seguridad,
definiendo objetos y formas de acceder a las tablas.
1.8.
Definiciones, acrónimos y abreviaturas
TERMINO
DEFINICION
Pattern (Patrón)
Conjunto de funciones similares para cada transacción de una aplicación
informática.
Acción
Formas de interactuar con el objeto, pueden ser insertar, modificar, eliminar,
consultar
1.9.
Suposiciones y Dependencias
DESCRIPCION
La empresa Etapa proveerá los Themes que se aplicaran en el módulo de seguridad.
1.10. Referencias
En ciertas partes del documento se harán referencias al documento de “Especificación de Casos de Uso”.
2.
VISIÓN GENERAL LA ARQUITECTURA
La arquitectura técnica, del módulo de Seguridad se encuentra dividida en 4 capas funcionales, las que
proporcionaran un nivel de información más detallado para la construcción del módulo de seguridad.
1.
Capa de Interfaces Comunes
2.
Capa de Lógica de negocio
3.
Capa de Acceso a Datos
4.
Capa de Datos

Capa de Interfaces Comunes
En esta capa se ubica la parte del sistema que será mostrada al usuario. La misma que será
desarrollada en GeneXus X Evo 1. Esta se compilara y generara bajo la arquitectura .NET,
produciendo como salidas archivos aspx.

Capa de Lógica de Negocio
En esta capa se llevan a cabo las operaciones necesarias para ejecutar satisfactoriamente el
flujo de trabajo del negocio. Lo hace a través de la conjunción de los objetos usados en las
siguientes capas a través del uso de Procedimientos almacenados

Capa de Acceso a Datos
En esta capa se encuentran las interfaces y las clases que las implementan que se encargan de
hacer una invocación a los procedimientos almacenados que se encuentran en la capa de datos.
En esta capa, se hace uso de Procedimientos Almacenados y eventos en los objetos.

Capa de Datos
CMM-N2/PLT01
., 2011
- 75 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Versión:
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
1.1
Fecha: 24/02/2011
de Seguridad
Esta capa provee el almacenamiento persistente de la información necesaria para el sistema,
allí se guardan los resultados obtenidos a través del correcto y normal flujo de operaciones,
además de la lógica a nivel de datos expresada en procedimientos almacenados. Aquí se hace
uso del motor de Base de Datos DB2.
3.
METAS Y RESTRICCIONES DE LA ARQUITECTURA
Clasificación
Descripción
Se
enfoca
a
las
características de estética
y consistencia en las
interfaces gráficas
Usabilidad
Rendimiento
Se
enfoca
con
características
tiempo
tiempo
las
como
respuesta,
iniciación
y
término.
Se concentra en las
características
como
pruebas,
adaptabilidad,
mantenimiento,
configuración,
Instalación, escalabilidad,
y localización.
Soporte
Consideraciones
diseño
de
de
Requerimientos
RNF1 - El sistema debe permitir ser usado
de manera intuitiva por cualquier usuario,
que tenga acceso a él.
de
Especifica
del
las
diseño
opciones
para
el
sistema.
Aspectos Generales
Especifica
los
requerimientos
de
seguridad
que
deben
tener el sistema y sus
características generales.
CMM-N2/PLT01
., 2011
RNF2 – El módulo debe evitar realizar
actividades d repetitivas con el fin de
no tardar más de 3 segundos en el
acceso a los objetos.
RNF3 – El sistema para su correcto
funcionamiento deberá trabajar con el
navegador Explorer de Microsoft.
RNF4 - El módulo estará desarrollado
formando parte del sistema SIGECOM y
no funcionara como un sistema externo
que se maneje en base a consumo de
servicios.
RNF5 - A
un login y
cuales le
acuerdo un
cada usuario se le asignará
una clave del sistema, los
permitirán el ingreso de
perfil determinado.
RNF6 – se realizara encriptación para
pasar variables entre objetos cuando se
requiera.
- 76 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
de Seguridad
Versión:
1.1
Fecha: 24/02/2011
3.1 DIAGRAMAS EN BASE A LOS CASOS DE USO
3.1.1
CU Nº 1 – Mantenimiento de Modulo de Seguridad
Escenario: CU Nº 1 Flujo Básico de Eventos
El flujo Básico de eventos será el mismo para el ingreso al sistema de todos los usuarios.
El primer usuario que arrancara el sistema siempre será el usuario admin.
A partir del primer uso del sistema empezara la configuración automática, para dar paso al
usuario Admin a la configuración manual del sistema.
Diagrama de Secuencia de Análisis
3.1.2
CU Nº 2 – Creación del usuario Admin
Escenario: CU Nº 2 Flujo Básico de Eventos
La creación del usuario admin se realiza apenas se ingrese por primera vez al sistema,
mediante un procedimiento almacenado el cual se encargara de realizar la verificación de la
existencia o no del usuario en el sistema
CMM-N2/PLT01
., 2011
- 77 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
de Seguridad
Versión:
1.1
Fecha: 24/02/2011
Diagrama de Secuencia de Análisis
3.1.3
CU Nº 3 – Ingreso de objetos creados por el Pattern al sistema
Escenario: CU Nº 3 Flujo Básico de Eventos
El ingreso automático de objetos en el sistema al igual que la creación del usuario admin, se
realiza mediante la invocación de un procedimiento almacenado, para que se realice esta
operación es necesario que el Pattern haya generado correctamente todos los objetos y haya
embebido el código en el procedimiento modInit con la información de cada objeto.
Diagrama de Secuencia de Análisis
CMM-N2/PLT01
., 2011
- 78 -
Módullo de segurida
ad para el SIG
GECOM de ETA
APA EP.
Nomb
bre del Proyecto
Espec
cificación de Casos
C
de Uso: Modulo
4.
de Seguridad
Versió
ón:
1.1
1
Fecha
a: 24/02/201
11
M
MODELO LÓG
GICO Y MODE
ELO CONCEPT
TUAL
Debido a que el sistema se con
nstruirá en la herramienta GeneXus, el modelo lógico y modelo conceptual
c
án basados en
n uno solo, ya
a que GeneXus
s construye automáticamen
nte los formularios que inte
eractuaran
estará
directtamente con la
a base de Dattos
CMM--N2/PLT01
., 201
11
- 79 -
Módullo de segurida
ad para el SIG
GECOM de ETA
APA EP.
Nomb
bre del Proyecto
Espec
cificación de Casos
C
de Uso: Modulo
de Seguridad
Versió
ón:
1.1
1
Fecha
a: 24/02/201
11
4.1 Modelo de Diseño
4.1.1
Vista
V
de Capa
as y Subsiste
emas
No aplicable es este mo
odulo
4.1.2
Capa
C
de Interrfaces o Elem
mentos Comu
unes
Interfaz para login de Usuarios. Estte es el prim
mer objeto que se visualiza
ara cuando un
u usuario
ingresa al sistema.
Interfaz para
p
visualiz
zación de sistemas, subsistemas, mó
ódulos y obje
etos.
Una vez que el usuario haya iniciado
o sesión corre
ectamente se visualizara en
n pantalla la estructura
e
egué los enlac
ces a los objettos
que desple
Interfaz para
p
manten
nimiento de las transacc
ciones, esta interfaz será la misma para
a todas, lo
único que cambiara es los atributos que se visua
alicen. Y los campos para rrealizar la filtrración por
criterios.
CMM--N2/PLT01
., 201
11
- 80 -
Módullo de segurida
ad para el SIG
GECOM de ETA
APA EP.
Nomb
bre del Proyecto
Espec
cificación de Casos
C
de Uso: Modulo
de Seguridad
Versió
ón:
1.1
1
Fecha
a: 24/02/201
11
mprueba que el usuario sollicitante tenga
a permiso de acceso al
Panel de error, se dispara cuando no se com
objeto
o solicitado
CMM--N2/PLT01
., 201
11
- 81 -
Módulo de seguridad para el SIGECOM de ETAPA EP.
Versión:
Nombre del Proyecto
Especificación de Casos de Uso: Modulo
de Seguridad
1.1
Fecha: 24/02/2011
Aprobación del Modelo de Diseño – Modulo de Seguridad
NOMBRES
CARGO
Gustavo Patricio Cuenca
Desarrollador
Ingeniero. Xavier Mejía
Director Proyecto
CMM-N2/PLT01
DEPARTAMENTO
., 2011
FIRMA
- 82 -
C
CAPÍT
TULO
O IV
ANEXO
A
OD
PATTERN
N WW
WETA
APA
PAT
TTERN WW
WETAPA
PA
ATTER
RN WW
WETA
APA.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
PAT
TTERN WW
WETAPA
T
Tabla
de Con
ntenido
os
1.INTROD
DUCCIÓN ................................................................................... 86 1..1. Prop
pósito .......................................................................................................................86 1..2. Alcan
nce del Document
D
to .......................................................................................86 1..3. Defin
niciones, acrónimo
os y abre
eviaturas ....................
.
...............................86 1..4. Referencias ..................................................................................................................86 1..5. Visió
ón Genera
al del Doc
cumento ........................................................................86 1..6. Supo
osiciones y Depend
dencias..........................................................................86 2.D
DESARR
ROLLO DE
D PATT
TERNS ................
.
....................................... 86 2..1. Escriibir una descripció
d
ón del patttern ............................................................87 2..2. Programar el ejemplo establecido ................................................................87 2..3. Archivo Patte
ern Definiition.................................................................................87 2..4. Patte
ern Espec
cification Files. .............................................................................90 2.4.1 Instance
e file ........................................................................................... 90 2.4.2 Settings
s file .......................................................................................... 104 2..5. Patte
ern Temp
plates (.dkt) ..................................................................................110 2.5.1. Directivas ............................................................................................... 111 2.5.2. Code Tags. ............................................................................................. 112 2.5.3. Objeto Selection
S
n ............................................................................... 113 2.5.4. SubLink
kAttributes.dkt ................................................................... 119 2.5.5. Objeto View
V
.......................................................................................... 119 2.5.6. Objeto General.
G
................................................................................. 122 2.5.7. Objeto tab
t
wc ...................................................................................... 124 2.5.8. SubStan
ndardVar
riables.d
dkt ......................................................... 125 2.5.9. Procedim
miento ModInit
M
................................................................. 126 2.5.10. SubChe
eckSecurrity.dkt ................................................................. 127 2.5.11. Permis
sos.dkt ...................................................................................... 128 2.5.12. Procedimiento ListProg
grams ................................................. 129 2..6. Configuración
n de objettos que serán
s
afec
ctados po
or los
Te
emplates. ...............................................................................................................................130 2..7. Edita
ar el códig
go por defecto de
el Instanc
ce file....................................131 2.7.1. Clase WWEtapaU
W
UpdateT
Transactiion ..................................... 131 2.7.2. Clase Ac
ctionElem
ment....................................................................... 134 2.7.3. Clase Pa
arameter
rElement ............................................................ 134 2..8. Módu
ulo de Se
eguridad ...........................................................................................134 CMM--N2/PLT03
Revis
sión 28/07/2
2011
PAT
TTERN WW
WETAPA
1. INTRODUCC
CIÓN
1.1. Propósito
Desarrollar la documentación del código del Pattern WW
WEtapa.
1.2.
Alcance del Docum
mento
l
cambios,, adiciones y/o
y eliminaciones de fun
nciones en el
e código de
el Pattern
Detallar los
Work Witth, indicar la
a forma de recuperar información sobre los objetos generados en
GeneXus,, proporcion
nar la inform
mación sobre
e cómo crearr nuevas va
ariables, la forma
f
de
ingresar código de eventos para los objeto, construcc
ción automá
ática de Web
b Forms,
creación de Rules.
1.3.
Definicio
ones, acrón
nimos y abr
reviaturas
Work Witth
Pattern
Template
e
Specificattion file
Xpz
1.4.
Trabajar Con
C
Patrón
Plantilla
archivo de especificac
ción (.patterrn)
d archivo qu
ue exporta GeneXus
G
formato de
cias
Referenc
http://wiki.gxtechnic
cal.com/comm
mwiki/servle
et/hwiki?How
w+to+Create
e+a+New+P
Pattern,
010
29/10/20
http://wiki.gxtechnic
cal.com/comm
mwiki/servle
et/hwiki?Pattern+Definittion,
http://wiki.gxtechnic
cal.com/comm
mwiki/servle
et/hwiki?Pattern+Templa
ate+Syntax,
http://wiki.gxtechnic
cal.com/comm
mwiki/servle
et/hwiki?Con
nfiguration+ffile,
http://wiki.gxtechnic
cal.com/comm
mwiki/servle
et/hwiki?Insttance+file,
1.5.
Visión General
G
del Documento
o
u
guía com
mpleta sobre
e el Pattern WWEtapa.,
W
para
p
un rápido entendim
miento en
Proveer una
futuras modificacione
m
es al Pattern.
1.6.
pendencias
s
Suposiciiones y Dep
El Pattern
n Work With será modificado y no de
esarrollado completame
c
nte.
La modifficación del Pattern Wo
ork With se
e hará en base
b
el proy
yecto que provee
p
la
empresa Artech.
La empre
esa ETAPA EP.
E
proveerá
á la herramienta GeneX
Xus X Evolution1, y el GeneXus
SDK para
a el desarrolllo de Pattern
ns.
DESARROLL
LO DE PATT
TERNS
2. D
o regla gene
eral para la construcción
c
de un Patte
ern se debe seguir
s
las sig
guientes tare
eas.
Como
a)
b)
c)
d)
Escrib
bir una descripción del Pattern.
P
Progrramar el ejem
mplo estable
ecido.
Crearr el archivo Pattern
P
Defin
nition.
Defin
nir el Pattern
n specificatiion file. Se necesita de
efinir cada ob
bjeto que ge
enerara y
que parámetros
p
t
tendrá,
existten dos tipos
s de cada pa
arámetro.
i. Instance
e Paramete
ers. Los Insttance Param
meters son lo
os parámetro
os que el
usuario establecerá
e
e el archivo
en
o Pattern Ins
stance Specification.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 86 -
PAT
TTERN WW
WETAPA
ii.
General Parameterrs. Son los parámetros que aplica a todos los Instance
files (com
mmon text, location of gxchart, etc
c.),
a esto
os parámetro
os se los
definen en
e el archivo Settings Sp
pecification
bir los archiv
vos .dkt
e) Escrib
f) Editar el código por defecto
o del Instanc
ce file. El có
ódigo debe ser amigab
ble con el
pezar una nu
ueva instanc
cia del archivo, esta es la parte técnica más
usuarrio para emp
alta de los patte
erns, el cua
al normalme
ente requierre leer el KB (usando los DLL
provistos por el Pattern
P
tool).
Desde Visual Studio se generra un archivo
o con extens
sión DLL, el mismo que contiene info
ormación
de lo
os archivos de
d instancia,, especificac
ción y eleme
entos de los que está co
ompuesto el Pattern.
Cada vez que modifiquemo
m
s alguno de
e estos arch
hivos, los archivos con extensión .CS o el
vo .Pattern es necesariio volver a general el proyecto
p
y conjuntamen
c
nte con los archivos
archiv
modificados copia
ar el DLL en las carpetas
s a las que pertenecen.
p
2.1. Escribir una
a descripción del patttern
apa, será ca
apaz de cons
struir los pan
neles de man
ntenimiento de la transa
acción, el
El Pattern WWEta
mism
mo que estarrá asociado al
a módulo de
e seguridad desarrollado
o en GeneXus, el Pattern
n además
crearra el usuario
o admin me manera auttomática, ingresara dire
ectamente a la base de datos el
link de los paneles de mantenimien
m
nto de cad
da transacc
ción afectad
da por el Pattern,
ementara un
n árbol que
e visualice lo
os sistemas módulos y objetos pa
ara el acces
so de los
Imple
usuarrios a través
s de él.
2.2. Programar el ejemplo
o establecid
do
Usualmente un Pattern tiene un ejem
mplo canónico, para ell Pattern WWEtapa
W
el ejemplo
canón
nico puede ser
s una base
e de conocim
miento de un
na hacienda,, y el ejemp
plo se Demo
ostrara el
funcio
onamiento del
d Pattern in
nteractuando
o con el mód
dulo de segu
uridad.
2.3. A
Archivo Patttern Definition.
El arc
chivo Patterrn Definition lleva la ex
xtensión .Patttern. Es la
a configuración principal para la
definición de los Patterns, en dicho arch
hivo se defin
nen los obje
etos que cre
eara el Patte
ern, tiene
como
o restricción que el nomb
bre del Patte
ern y GUID deben ser únicos.
El arrchivo .Patttern incluye
e como prim
mer punto la definició
ón del patrón bajo la sintaxis
(<Def
finition></D
Definition>).
.
Como
o primer paso se prove
ee de un nombre de la instancia de
el pattern el cual inicia por una
caden
na por defec
cto seguido del
d nombre del
d objeto, d
dentro de la sintaxis <InstanceName>
A
c
continuación
n
se
deffinen
<Inst
tanceSpecif
fication>.
la
instancia
del
Pattern
dentro
de
la
sintaxis
Es ne
ecesario inc
cluir en la definición
d
el archivo Se
ettings que contiene los
s objetos qu
ue serán
imple
ementados a través de la
a instancia dentro
d
de la sintaxis <Se
ettingsSpec
cification>
>
Y uno
o de los arch
hivos más im
mportantes es
e el que co
orre la implementación o el que inte
erpreta el
códig
go generado
o en C# y en
n este caso se trata de la librería que
q
se crea cuando
c
se co
ompila el
Patte
ern desde el lenguaje C#
#.
<Defi
inition>
<Inst
tanceName>Tr
rabajarCon{0}
}</InstanceN
Name>
<Inst
tanceSpecification>WWEta
apaInstance.
.xml</Instan
nceSpecifica
ation>
<Sett
tingsSpecification>WWEta
apaSettings.
.xml</Settin
ngsSpecifica
ation>
<Impl
lementation>
>PC.Patterns.
.WWEtapa.dll
l</Implement
tation>
<P
ParentObject
ts>
<ParentObject Typ
pe="Transact
tion" />
/ParentObjec
cts>
</
finition>
</Def
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 87 -
PAT
TTERN WW
WETAPA
La pa
arte del <InstanceName> es
e el nombre
e que toma la
l instancia, enlaza el te
exto TrabajarCon y el
nomb
bre de la transacción, la imagen mue
estra la insta
ancia del Patttern y los objetos
o
cread
dos:
El objjeto asociado con el Pattern (ParenttObject) pue
ede ser incluido también como instan
ncia si es
que este
e
es una Transacción.
T
.
e el Pattern es aplicado,, son invocad
Los o
objetos que serán
s
importtados la prim
mera vez que
dos en la
secció
ón Resource
es del Patttern Definition, en esta
a sección es
e posible cargar
c
archivos que
conte
engan Bases de Conocim
miento completas, así como también objetos inde
ependientes.
Gene
eXus brinda la facilidad de
d exportar una base de
e conocimien
nto o ciertos
s objetos de ella a un
archiv
vo xpz que puede ser descomprimid
d
do y trae intternamente un archivo XML el cual contiene
la definición de lo
os objetos, y es este arc
chivo el que puede ser im
mportando en
e cuando se
e aplique
primera vez el
e Pattern
por p
<Resource
es>
<R
Resource Id=
="Resources"
" Version="0
0.8"
="Resources\WWEtapaResou
urces.xml"/>
>
File=
Resource Id=
="ResourcesS
SDTheme" Ver
rsion="0.5"
<R
="Resources\WWEtapaResou
urcesSDTheme
e.xml"/>
File=
Resource Id=
="ResourcesS
SD" Version=
="0.3"
<R
="Resources\WWEtapaResou
urcesSD.xml"
"/>
File=
Resource Id=
="ResourcesExt" Version=
="0.1"
<R
File=
="Resources\WWEtapaSegur
ridad.xml"/>
>
ces>
</Resourc
El priimer archivo
o WWEtapaR
Resources.xm
ml contiene:





Dominios
s:
Las carpe
etas: Contex
xtManageme
end, GeneralWeb y Security
Los pro
ocedimientos
s: Get TabImage, Is
sAutthorized
d, ListProgrrams, Load
dContext,
SetConte
ext
Los Strructure Da
ata Type: Context, GridState, ProgramNames, Tab
bOptions,
TransactiionContext
Los WebP
Panel: Home
eWWE, NotA
AuthorizedWW
WE, TabbedV
View
El arc
chivo WWEtapaResource
esSDTheme..xml es el te
ema que se puede aplic
car a las aplicaciones
SmarrtDevise
El arc
chivo WWEta
apaResource
esSD.xml contiene el We
eb Panel App
pMasterSD
El arc
chivo WWEtapaSegurida
ad.xm; contiene la base
e de conocim
miento del módulo
m
de se
eguridad,
imple
ementa el prrocedimiento
o IsAuthorize
edWWE que agrega nuev
vo código para la verific
cación de
perm
misos.
Finalm
mente la sig
guiente secc
ción indica los objetos que formara
an parte de la transacción. Los
tipos de objetos que principa
almente se generan
g
son transaccion
nes, atributo
os, subtypes, groups,
Web Pannels, Pro
ocedure entre otros. Es
s necesario especificar
e
e qué planttilla está la lógica de
en
los o
objetos que se construirrán como (rules,
(
events, forms, etc.)
e
Esta es
s la parte en
e la que
interv
vienen los Te
emplates y se
s comienzan a crear ins
stancias del proyecto en
n C#, en las plantillas
encon
ntraremos código
c
C# embebido.
e
<Object Type="WebPan
T
nel" Id="Sel
lection" Name
e="WW{Parent
t.Name}" Des
scription="W
Work With
ent.Descript
tion}" Elemen
nt="instance
e/level/sele
ection">
{Pare
<P
Part Type="W
WebForm" Tem
mplate="Temp
plates\SelectionWebForm.
.dkt" />
<Part Typ
pe="Variable
es" Template="Templates\
\SelectionVa
ariables.dkt
t" />
<P
Part Type="C
Conditions" Template="T
Templates\SelectionCondi
itions.dkt" />
<P
Part Type="E
Events" Temp
plate="Templ
lates\SelectionEvents.dk
kt" />
<P
Part Type="R
Rules" Templ
late="Templa
ates\SelectionRules.dkt"
" />
</Object>
>
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 88 -
PAT
TTERN WW
WETAPA
Los e
elementos de
el objeto tien
nen los siguientes atribu
utos:






Type = el
e tipo del ob
bjeto que va a generar.
Id = Identificador de
el elemento.
Name = Nombre dell objeto gene
erado.
Descripttion = Descrripción del objeto
o
genera
ado.
Elementt = El elemento que pue
ede ser visua
alizado en la instancia.
Part = partes que co
onforman al objeto y de
eclaración de
el Template que intervie
ene en la
creación de la parte.
El Ob
bjeto Selectiion es el priimer objeto en crearse y este es el
e que presenta una grilla con el
listad
do de los reg
gistros y los botones que
e con los que se invoca a la transac
cción en sus distintos
modo
os.
<
<Object
Ty
ype="WebPane
el"
Id="Vi
iew"
Name=
="Vista{Pare
ent.Name}"
Element="i
instance/
l
level/view">
<
</Object>
El Ob
bjeto Vista {Parent.Name
e} es el Web Panel Vistta que prese
enta la inforrmación en forma
f
de
tabla cuando se selecciona
s
un registro.
El ob
bjeto TabGrid es un tab al que se
e agrega el detalle de una
u
transacc
ción en una relación
maes
stro detalle, y muestra nuevamente
n
una grilla co
omo la del objeto Element.
<
<Object
T
Type="WebCom
mponent"
Id="TabGrid
d"
Name="
"{Element.wc
cname}"
C
Count="*"
E
Element="ins
stance/level
l/view/tabs/tab[@type=&q
quot;Grid&qu
uot;]">
El objjeto ExportS
Selection es el procedimiento que re
ealiza la expo
ortación a Ex
xcel de los datos
d
que
se en
ncuentran en
n la grilla dell panel de mantenimient
m
to de la transacción.
<
<Object
Type="Proce
edure"
Id="ExportSe
I
election"
Name="Exp
portar{Paren
nt.Name}"
E
Element="ins
stance/level
l/selection">
<
</Object>
E
El Objeto Ex
xportTabGrid
d Es un proc
cedimiento que
q
exporta los datos de
d la grilla pero
p
esta
v
vez de la griilla que se en
ncuentra en el Tab detalle
<O
Object
Type=
="Procedure"
"
Id="Expor
rtTabGrid"
Name="Export
tar{Element.
.wcname}"
C
Count="*"
El
lement="instance/level/v
view/tabs/ta
ab[@type=&qu
uot;Grid&quo
ot;]">
</
/Object>
El pro
ocedimiento ListProgram
ms es el que
e obtiene los nombres de
e los objetos
s Selection a los que
se ag
gregaran los enlaces que
e se visualiza
aran en la pa
antalla de Us
suario.
<
<Object Type="Procedure"
" Id="ListPr
rograms" Nam
me="ListProg
grams" Globa
al="true" />
El pro
ocedimiento modInit obttiene el nom
mbre y descrripción de ca
ada objeto Selection,
S
rec
corriendo
todas
s las instanc
cias del Pattern o dicho de otra forma de todas
s las transacciones a la
as que se
aplicó
ó el Pattern.
<
<Object Type="Procedure"
" Id="modIni
it" Name="mo
odInit" Glob
bal="true" />
Los o
objetos defin
nidos en el arrchivo de de
efinición se crean
c
con la siguiente sin
ntaxis:




TrabajarC
ConMedicam
mentos (Nombre de la ins
stancia)
TCMedica
amentos (ob
bjeto Selectio
on).
VistaMedicamentos (objeto View).
MedicamentosGenera
al (objeto Ta
ab (General)).
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 89 -
PAT
TTERN WW
WETAPA


MedicamentosMedicin
naPresentacionesWC (ob
bjeto Tab (M
Medicina Pres
sentaciones))).
Procedim
mientos de ex
xportación de registros.
Im
magen 2.3.1 In
nstancia de un Pattern aplicaada a la Transacción y objetoos creados.
2.4. Pattern Esp
pecification
n Files.
stos archivos
s se definen los objetos que se van a crear en el Pattern y que
q
parámettros van
En es
a ten
ner establecid
dos por defe
ecto
2
2.4.1
Insta
ance file
Es un
n archivo XM
ML en donde
e se encuenttran definido
os todos los nodos que contendrá el
e Pattern
por d
defecto, es decir,
d
tiene toda la inform
mación nece
esaria para poder
p
crear a partir de ella
e
y con
la ap
plicación de ciertos pro
ogramas (Te
emplates) un
u archivo XPZ
X
que es
s el resultad
do de la
aplica
ación de un Pattern.
El archivo de especificación de instancia
a lleva en nombre del Pattern seg
guido con la
a palabra
e XML. “W
WWEtapaInsttance.xml”. El Instance
e File se encarga de
Instance y cuya extensión es
consttruir la estru
uctura del Pattern,
P
(tod
dos los objettos que este
e va a conte
ener), es un
n archivo
XML, asociado a la Transacc
ción, dicha estructura
e
puede ser vis
sualizada en
n forma de TreeView
T
en el panel de GeneXus
G
abriendo el Patttern aplicad
do en la tran
nsacción y puede
p
ser modificado
ncia de estas
s en cada trransacción, se
s pueden agregar
a
más
s funciones, botones,
para cada instan
camb
biar nombres
s etc.
El no
odo raíz contiene inform
mación general (como el
e nombre del Pattern, la
l plantilla asociada,
a
etc.)
Hay un no
odo ElementtType para cada tipo diferente de elemento en
e el archivo
o Pattern
Instance.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 90 -
PAT
TTERN WW
WETAPA
I
Imagen
2.4.1.11 Instancia apllicada a una trransacción
Roott Node
<Patt
tern
xmlns="
"http://sche
emas.genexus
s.com/Patter
rns/InstanceSpecificatio
on/v1.0"
Na
ame="Work
With"
" Version="1.0" RootElem
ment="instan
nce" RootTyp
pe="Instance
e"> </Patter
rn>
Es el primer Nod
do dentro del
d archivo, especifica la
a informació
ón general sobre
s
el Patttern, los
eleme
entos que co
omponen el root node so
on los siguie
entes.








Name: El
E nombre de
el Pattern, que debe ser único para cada
c
Pattern
n
Version:: La versión del Pattern. Este núm
mero de versión se utiliza para determinar si
las instan
ncias se generaron con
n la versión actual del modelo o uno anterior (para la
conversió
ón, si es nec
cesario).
RootElem
ment: El no
ombre utilizado para el elemento
e
raíz
z de cada arrchivo Instan
nce.
RootTyp
pe: El tipo del
d root Element, el cu
ual debe corrresponder a una entrada de la
colección de ElementtTypes.
HelperAssembly: Para algun
nas tareas que no pueden se
er resueltas
s en el
patternIn
nstance, com
mo la imple
ementación de
d las accio
ones, el Patttern puede usar un
assembly
y (a .Net DLL) que prove
ee esta func
cionalidad. El assembly debe
d
contener clases
.Net que conforman las interface
es.
DefaultG
Generator: El nombre completo de las clas
ses usadas para generrar una
menú de
instancia por defecto
o del Pattern (cuando el
e "new" o "new
"
de la Operación"
O
opciones se ejecu
utan. Debe
e pertenece
er al Helper Assem
mbly y ap
plicar el
IPatternD
DefaultGenerrator. Si no se especifica generado
or, las insta
ancias se cre
earán en
blanco y el usuario te
endrá que re
ellenar manu
ualmente.
VersionA
Adapter:
(Opcional)
una
c
clase
que
impleme
enta
la
interfaz
"IPatternVersionAdap
pter". utiliza
a para convertir instancias de un
u patrón entre
e
las
s.
versiones
clase
que
interfaz
MetadattaManager:
(Opciona
al)
una
implementa
la
"IPatternMetadataMa
anager", usada para mantener los metadattos asociados a la
instancia
D
Dentro de es
ste nodo se define
d
el nod
do <ElementT
Types> </Ele
ementTypes>. Y es aquí en
e donde
c
comienza a insertarse to
odos los ele
ementos que
e forman la instancia del
d Pattern cada
c
uno
d
dentro de un <ElementTy
ype></Eleme
entType>
N
No necesariamente deben especificarrse todos es
stos atributos
s en el Root Node.
Nodo
os ElementT
Type
Estos
s nodos son usados parra describir el tipo de c
cada elemen
nto que form
ma parte de
el archivo
Instance. Cada elemento co
orresponde a un nodo de
d elemento
o XML, los componentes
s de este
ento describ
ben, la forma
a en la que se
s visualizara
a en el TreeV
View en el panel
p
de Gen
neXus.
eleme





Name: El
E nombre de
el ElementTy
ype, debe se
er único.
Caption y Caption
nParameter
rs: Establec
cen el nombre con el cual el no
odo será
presentad
do en el edittor. Se lo pu
uede relacionar como un
n alias.
KeyAttriibute: Un attributo se pu
uede seleccionar con lo que indica el
e Primary Ke
ey de los
nodos de
e este tipo. Es usado en
n el compara
ador de insttancia para que coincida
a con los
nodos correspondientes entre do
os instancias. Este valor es opcional.
Validato
or: Esta clas
se será empleada para validar los contenidos
c
d los nodos
de
s de este
tipo. Deb
be estar pres
sente Helperr Assembly, y usar la inte
erface IPatte
ernElementV
Validator.
Icon: es
s el icono usado
u
para los elementos de este
e tipo en ell Instance e
editor de
GeneXus.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 91 -
PAT
TTERN WW
WETAPA
Todos es
stos compon
nentes descrritos son inc
cluidos para la presenta
ación del no
odo en el
editor de
e GeneXus. Una vez creado un ElementTyp
pe se debe
e implementtarlo con
funcionalidades u otrro tipo de elementos los
s que van a ir formando
o al nodo ffuncional.
Los elementos que co
onstituyen un
u ElementTy
ype son:



Una lista de nodos Atttribute, pa
ara describir los atributos de estos elementos.
e
Una lista
a de nodos ChildEleme
ent, son ottros ElementType que subordinado
os por el
elemenTy
ype padre.
Una lista
a de nodos Action, des
scribiendo la
as acciones personaliza
adas aplicables a los
elemento
os de este tip
po en el Tree
eView.
Nodo
o Attribute
Los a
atributos de
escriben al elemento
e
qu
ue aparece en el TreeV
View del Patttern
atribu
utos se visua
alizan en una cuadricula llamada pro
opiedades.








GeneXus. Los
Name: Nombre
N
del atributo.
a
Type: Da
atatype del atributo.
a
Los
s valores pos
sibles son sttring, "text",, int, bool, and enum
{value1; value2;.} estos
e
se presentan en fo
orma de com
mbo. Los po
osibles valorres que a
un usuarrio se le pe
ermite seleccionar. Si un asterisco es incluid
do como una opción
entonces el usuario será capaz de ingresarr un valor arbitrario.
a
es
ste puede ser usado
para pro
oponer una lista de valores por defecto, por ejemplo pa
ara usar "enum {5,
10,20,*}" como el tipo
t
de un hipotético Row
wsPerPage attribute.
a
"T
Text" es simiilar a un”
go el usuario puede ser
s
capaz de
e abrir un editor para ingresar
String” sin embarg
s líneas o tex
xto largo.
múltiples
Category
y, Descrip
ption, PretttyName, Visible
V
(opcionales): Determina
D
como el
atributo se
s mostrara en la cuadriicula de prop
piedades. Si PrettyName no es espe
ecificado,
el atributto name es el
e que aparecerá en la grilla.
DefaultV
Value: El va
alor por deffecto. Cuand
do el elemento que con
ntiene el atrributo se
crea en blanco,
b
el atributo tiene este valor. Debe coincid
dir con el tip
po de datos definido,
o se prod
ducirá una ex
xcepción
Serializa
ationType: Establece co
omo el valorr del atributo
o será almacenado en el
e archivo
XML. (po
or defecto co
omo un atrib
buto XML). Los valores posibles son: default, attribute,
a
element, innertext, CDATA.
C
ValidVallues: El nom
mbre de la clase se utiliz
za para mosttrar un comb
bo box para
a permitir
la selección del valor. Debe perrtenecer al Helper
H
Assem
mbly e imp
plementar la
a interfaz
IPattern
nAttributeV
ValidValues.
GXLink, GXLinkClass: indica que
q
el atribu
uto almacen
nara una referencia a un
u objeto
GeneXus, atributo o dominio pa
ara el Id inte
erno de este
e en lugar del
d nombre. De esta
forma, sii un objeto o atributo se cambia el nombre de
entro de Gen
neXus, la relación se
mantendrá.
NotNull:: Indica que
e un valor para el atributo es nec
cesario (valiidarlo al guardar un
ejemplo).
Nodo
o ChildElem
ment
Indica cuales elementos perttenecen com
mo hijos del elemento
e
actual, los atriibutos que tiene este
uientes.
nodo son los sigu




Name: nombre
n
del child
c
element en el archivo XML.
ElementtType: debe
e corresponder a un Elem
mentType definido
d
en el
e Pattern.
Multiple: puede ha
aber varios elementos de este tip
po, es decirr, corresponde a un
elemento
o de una colección. "Añadir / Elimin
nar" accione
es menú con
ntextual se generará
automáticamente en el editor de árbol.
Optional: El elemen
nto es opcional (si es trrue, no se crrea de forma predeterm
minada, y
puede se
er eliminado)). Los eleme
entos marcados como múltiples
m
son siempre opc
cionales.
Nodo
o Action
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 92 -
PAT
TTERN WW
WETAPA
Defin
ne una acció
ón personalizada
eleme
entos del ty
ype actual.


(en el
e menú de contexto)
que puede ser ejecutado sobre
Name: El
E nombre de
e la acción presentado en el contexto del menú.
Class: La
L clase para
a ejecutar la
a acción, que
e deben estar presentes
s el Helper A
Assembly
e implem
mentar la inte
erfaz IPatte
ernEditorCu
ustomAction
n
WWE
EtapaInstance.xml
Es el archivo qu
ue construye
e la instancia del pattern WWEtapa
a, el desarrrollo de este
e archivo
enza con la inclusion del nodo Root
comie
<Pat
ttern xmlns=
="http://sch
hemas.genexus
s.com/Patter
rns/Instance
eSpecificati
ion/v1.0" Na
ame="Work
With"
" Version="1.0" RootElem
ment="instan
nce" RootTyp
pe="Instance
e">
A con
ntinuacion se
e inserta el nodo
n
<Elemen
ntTypes> </
/ElementType
es> esta parrte es el cuerpo de la
instancia del patttern y dentrro de este cuerpo
c
se in
nsertan los distintos
d
tipo
os de elementos que
ndo los nodo
os <ElementT
Type> </EllementType>
> cada uno de estos
contrruiran el patttern, utilizan
crea el objeto y estos son in
nvocados pa
ara ir formando la estru
uctura dentro del mismo
o archivo
instance.
Elem
mentType Instance
I
co
ontiene los atributos
a
del pattern los mismos que
e son visualizados en
una grilla
g
en el Panel
P
de Gen
neXus, hace
e referencia a la transac
ccion y un nodo Level que
q
es el
que d
desplegara todos
t
los demás elemen
ntos. A estos
s elementos se los defin
ne bajo la sin
ntaxis de
<Chil
ldElement ></ChildElemen
nt>
="Instance" Caption="In
nstancia Wor
rk With" Icon=""
<ElementType Name=
e">
ChildrenOrdered="False
<Attributes>
Attribute Nam
me="generate
eForSmartDev
vices" Type=
="bool" DefaultValue="fa
alse"
<A
Description=" "/>
Attribute Nam
me="updateTr
ransaction" Type="enum{Do not update;Only rule
es and
<A
events;Apply WW Style;
;Create defa
ault}" Categ
gory="Genera
al" DefaultV
Value="Only rules
r
and events" />
Attribute Nam
me="afterIns
sert" Type="
"enum{<de
efault>;R
Return to Cal
ller;Go
<A
to View;Go to Selectio
on}" Categor
ry="Navigati
ion" Default
tValue="<default>"
" />
Attribute Nam
me="afterUpd
date" Type="
"enum{<de
efault>;R
Return to Cal
ller;Go
<A
to View;Go to Selectio
on}" Categor
ry="Navigati
ion" Default
tValue="<default>"
" />
Attribute Nam
me="afterDel
lete" Type="
"enum{<de
efault>;R
Return to Cal
ller;Go
<A
to Selection}" Categor
ry="Navigati
ion" Default
tValue="<default>" />
</Attributes>
ts>
<ChildrenElement
saction" Ele
ementType="T
Transaction" Multiple="f
false"
<ChildElement Name="trans
Optional="false" />
l" ElementTy
ype="Level" Multiple="true"
<ChildElement Name="level
false" />
CanModifyCollection="f
nts>
</ChildrenElemen
mentType>
</Elem
El cód
digo plasmado denota la
a manera en la que se crrea los elementos principales de la
instancia.
digo se ve re
eflejado dentro del TreeV
View de la siguiente form
ma.
El cód
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 93 -
PAT
TTERN WW
WETAPA
chilldElement
atribuutos
Imagen 2.4.1.1 Atribu
utos y ChildElm
ments de la insttancia del Patttern
ateTransacttion genera un Web Forrm por defecto para tod
das las trans
sacciones
El atrributo Upda
usada
as en la insttancia indica
a si se modiificará la TR
RN asociada en GX cuando se conso
oliden los
objettos en GX.
Estos
s cambios so
on:




Aplicar ell Theme al fo
orm de la TR
RN
Asociar lo
os Web Com
mponents Hea
ader y Foote
er al Web forrm de la TRN
N
Modificarr o Agregar la regla parm dependiendo de la co
onfiguración que se reallice en el
Pattern.
Agregar el evento After
A
TRN co
on el código
o necesario para invocar al Controller de la
TRN.
L
Los atributos
s After Dellete, AfterI
Insert, Afte
erUpdate, realizan
r
una
a acción des
spués de
h
hacer una de
e estas opera
aciones usan
ndo un valor de un archivo de config
guración
C
ChildElemen
nt transaction invoca al
a ElementTy
ype Transacttion
C
ChildElemen
nt level invo
oca al Eleme
entType Leve
el.
Nombre de
e la TRN>)
Transaction (<N
q
se está trabajando
t
.
Indica cual es la TRN con la que
<Elem
mentType Nam
me="Transacti
ion" Caption
n="Transacti
ion ({0})" CaptionParam
C
meters="trans
saction"
Icon=
="icons\tran
nsaction.ico"
">
<Attributes>
ute Name="tra
ansaction" Type="refere
T
ence(Transac
ction)"
<Attribu
ription="Tra
ansaction Nam
me." NotNull
l="true" />
Descr
</Attribut
tes>
<ChildrenElements />
e>
</ElementType
Elem
mentType Transaction define los atributos
a
na
ame que esttablece el no
ombre del elemento,
e
captio
on que es el
e nombre q
que se mues
stra en el TreeView y el
e captionParrameter que
e son los
parám
metros conffigurables y están defin
nidos como atributos (<Attributes
(
></Attributes>) del
Elemento.
el (<Nombr
re de la TRN
N>)
Leve
Se u
usan los Level para ag
gregar niveles para de
esplegar objjetos y cua
alquier otro tipo de
inform
mación.
<Elem
mentType Nam
me="Level" Ca
aption="Leve
el ({0})" Ca
aptionParame
eters="name" KeyAttribut
te="id"
Icon=
="icons\level.ico" Child
drenOrdered=
="False">
<Attributes>
ibute Name="
"id" Type="string" NotNu
ull="true" Visible="fal
V
lse" />
<Attri
<Attribu
ute Name="nam
me" Type="st
tring" Descr
ription="Lev
vel Name." NotNull="true
N
e" />
<Attribu
ute Name="des
scription" Type="string
T
g" Descripti
ion="Level Description."
D
" />
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 94 -
PAT
TTERN WW
WETAPA
</Attribut
tes>
<ChildrenElements>
<ChildElement Name="
"description
nAttribute" ElementType
e="DescriptionAttribute"
"
iple="false" Optional="t
true" />
Multi
"selection" ElementType
e="Selection
n" Multiple=
="false"
<ChildElement Name="
onal="true" />
Optio
"view" Eleme
entType="Vie
ew" Multiple
e="false" Op
ptional="true
e" />
<ChildElement Name="
nElements>
</Children
</Element
tType>
Este elemento también
t
deffine los atributos configurables en
n la opción propiedade
es, y los
v
en la siguiente imagen.
ChildElement se visulizan
Imagen 2.4.1.2
2
Elementtos principaless que forma el Pattern WWE
Etapa
1. ChildEllement Des
scriptionAtttribute
<ElementType Name="Des
scriptionAtt
tribute" Cap
ption="Descr
riptionAttribute ({0})"
tribute" Ico
on="icons\de
esc_att.ico"
">
CaptionParameters="att
<Attributes>
Attribute Nam
me="attribut
te" Type="re
eference(Att
tribute)" />
<A
Attribute Nam
me="descript
tion" Type="
"string" />
<A
</Attributes>
ts />
<ChildrenElement
>
<Initialization>
onFrom Type=
="Attribute"
" ReferenceP
Property= "attribute"
<Initializatio
iption=Descr
ription"/>
PropertyValues="descri
Initializati
ion>
</I
</ElementType>
Toma por d
defecto el prrimer atributto no clave de
d la tabla base.
b
Este attributo se utiliza para
generarlo como
c
un link
k al View de la Transacciión.
El atributo debe ser de
e tipo edit, ya
y que los links solamen
nte pueden generarse
g
so
obre este
tipo de cam
mpos. No es
s posible porr ejemplo, qu
ue el atributto esté defin
nido como un
n combo,
también to
oma el campo description
n del atributto.
Estas propiedades se visualizan
v
en
n la ventana de propieda
ades de Gene
eXus.
ection
2. ChildEllement Sele
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 95 -
PAT
TTERN WW
WETAPA
<Eleme
entType Name
e="Selection
n" Caption="S
Selection ({
{0})"
CaptionParameters="des
scription" Icon="icons\
I
\webpanel.ic
co">
<Attributes>
Attribute Nam
me="caption"
" Type="stri
ing" />
<A
Attribute Nam
me="descript
tion" Type="
"string" Des
scription="Description."
" />
<A
Attribute Nam
me="page" Ty
ype="enum{&l
lt;default&g
gt;;<unlimited>;*}
}"
<A
DefaultValue="<defa
ault>" />
>
Attribute Nam
me="isMain" Type="bool"
" DefaultVal
lue="false" />
<A
Attribute Nam
me="masterPa
age" Type="e
enum{<def
fault>;<none>;*
*}"
<A
DefaultValue="<defa
ault>" />
>
</Attributes>
ts>
<ChildrenElement
s" ElementTy
ype="Modes" Multiple="false"
<ChildElement Name="modes
Optional="false" />
ibutes" Elem
mentType="At
ttributes" Multiple="fal
M
lse"
<ChildElement Name="attri
Optional="false" />
meters" Elem
mentType="Pa
arameters" Multiple="fal
M
lse"
<ChildElement Name="param
Optional="true" />
rs" ElementT
Type="Orders
s" Multiple="false"
<ChildElement Name="order
Optional="true" />
er" ElementT
Type="Filter
r" Multiple="false"
<ChildElement Name="filte
Optional="true" />
ons" Element
tType="Actio
ons" Multiple="false"
<ChildElement Name="actio
Optional="true" />
nts>
</ChildrenElemen
mentType>
</Elem
El atributo
o caption muestra
m
el tíítulo que ap
parece como
o subtítulo en
e los formu
ulario por
defecto tom
ma la descrip
pción de la transacción.
t
El atributo IsMain sirv
ve para establecer como Main a la ap
plicación.
El atributo Page indica
a el número de filas que puede mosttrarse en la grilla.
El atributo MasterPag
ge lista los Master
M
Page que
q
se pued
de aplicar a toda
t
la aplica
ación.
Este eleme
ento Selection es un We
ebPanel, y contiene a los
s siguientes ChildElemen
nt
Imagen
n 2.4.1.3 Child
d Elements y prropiedades dell objeto Selectiion

C
ChildElemen
nt Modes:
<Eleme
entType Name
e="Modes" Caption="Ins: {0}, Upd: {1},
{
Del: {2
2}, Dis: {3}"
Captio
onParameters
s="Insert;Update;Delete;
;Display"
Icon="
"icons\modes
s.ico">
<Attributes
s>
<Attribut
te Name="Insert" Type="e
enum{true;fa
alse;default
t}"
iption="Inse
ert Mode." DefaultValue=
="default" />
/
Descri
<Attribut
te Name="Upd
date" Type="e
enum{true;fa
alse;default
t}"
iption="Upda
ate Mode." DefaultValue=
="default" />
/
Descri
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 96 -
PAT
TTERN WW
WETAPA
<Attribut
te Name="Delete" Type="e
enum{true;fa
alse;default
t}"
iption="Dele
ete Mode." DefaultValue=
="default" />
/
Descri
<Attribut
te Name="Display" Type="
"enum{true;f
false;defaul
lt}"
iption="Disp
play Mode." DefaultValue
e="true" />
Descri
<Attribut
te Name="Export" Type="e
enum{true;fa
alse;default
t}"
iption="Expo
ort mode." DefaultValue=
="true" />
Descri
<Attribut
te Name="InsertCondition
n" Type="cod
de(Expressio
ons)"
ory="Securit
ty" />
Catego
<Attribut
te Name="Upd
dateCondition
n" Type="cod
de(Expressio
ons)"
ory="Securit
ty" />
Catego
<Attribut
te Name="DeleteCondition
n" Type="cod
de(Expressio
ons)"
ory="Securit
ty" />
Catego
<Attribut
te Name="DisplayConditio
on" Type="co
ode(Expressi
ions)"
ory="Securit
ty"/>
Catego
<Attribut
te Name="ExportCondition
n" Type="cod
de(Expressio
ons)"
ory="Securit
ty" />
Catego
</Attribute
es>
<ChildrenEl
lements />
lementType>
</El
Los atributos
a
son
n los modos que se habilitan en el web
w
panel. Por
P defecto están habilittados los
modo
os, Insert, Update
U
y Delete, los modos
m
Upda
ate y Delete
e se generan cada uno
o en una
colum
mna de la grilla, los mod
dos Insert y Export
E
se ge
eneran fuera
a de la grilla.
Los m
modos InserrtCondition
n, ExportCondition, Up
pdateContio
on, DeleteC
Condition, evalúan si
el usu
uario puede desplegar dicha
d
operación sobre la grilla, si la condición es
s vacía la acción está
dispo
onible para el
e usuario

ElementTy
ype Attribu
utes: Es un Level que de
espliega todo
os los atributos de la tra
ansacción
a través de
e un ChildEle
ement, los cuales tienen como parám
metro Multiple el valor true.
<E
ElementType Name="Attributes" Capti
ion="Attribu
utes"
Icon="
"icons\attri
ibutes.ico" ChildrenOrde
ered="True">
>
<Attributes
s />
<ChildrenEl
lements>
<ChildEle
ement Name="attribute" ElementType=
E
="Attribute"
" Multiple="
"true" />
<ChildEle
ement Name="variable" El
lementType="
"Variable" Multiple="tr
M
rue" />
</ChildrenE
Elements>
<
</ElementTyp
pe>

ElementTy
ype Atributte
<Ele
ementType Na
ame="Attribu
ute" Caption
n="{0}" Capt
tionParameter
rs="attribut
te"
KeyAttri
ibute="attri
ibute" Icon=
="icons\attr
ribute.ico">
>
<A
Attributes>
<Attribute Name="attri
ibute" Type=
="reference(Attribute)"
tion="Attrib
bute." NotNu
ull="true" />
/
Descript
<Attribute Name="descr
ription" Typ
pe="string" Description=
="Attribute
tion." />
descript
<Attribute Name="autol
link" Type="
"bool" Categ
gory="Link"
tion="Automa
atically gen
nerate links
s to other pattern
p
insta
ances for
Descript
descript
tion attribu
utes and sup
pertypes." DefaultValue
D
e="true" />
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 97 -
PAT
TTERN WW
WETAPA
<Attribute Name="visib
ble" Type="b
bool" Catego
ory="Form"
tion="Attrib
bute is visi
ible (if fal
lse, in grid
ds the column
n will be hi
idden,
Descript
and in tabular
t
tabs
s the attrib
bute will be
e invisible)." DefaultVa
alue="true" />
<Attribute Name="theme
eClass" Type
e="custom(Th
hemeClass)" Category="Fo
C
orm"
tion="Theme class for the
t
attribut
te." PrettyN
Name="Class" />
Descript
<Attribute Name="forma
at" Type="en
num{<defa
ault>;Text
t;HTML;Raw
xt with mean
ningful spac
ces}" Catego
ory="Form" Description="
D
"HTML format
t for
HTML;Tex
the attr
ribute." Def
faultValue="
"<default
t>" />
</
/Attributes>
>
ChildrenElem
ments>
<C
<ChildEleme
ent Name="li
ink" Element
tType="Link" Multiple="f
false"
l="true" />
Optional
</
/ChildrenEle
ements>
Initializati
ion>
<I
<Initializa
ationFrom Ty
ype="Attribu
ute" Referen
nceProperty="
"attribute"
yValues="des
scription=De
escription" />
Property
</
/Initializat
tion>
</El
lementType>
So
on los atribu
utos que se mostrarán en la grilla. En particula
ar para esto
os atributos existe la
prropiedad Au
utolink para
a crear link
ks automátiicos (a Vie
ews, identifiicados mediante su
De
escriptionAtttribute) en los atributos
s en que sea
a posible. Lo
os links se agregan si Au
utolink =
true y si no ha
ay un link de
efinido manu
ualmente por el usuario.
o
o
o
o
o
o

Atttibute: es el nombre del atributo
Auttolink: Autom
máticamente
e genera link
ks a otros Pa
attern
Cla
ass: es el tem
ma para el atributo
a
Description: to
oma la descripción del attributo
Forrmat: Forma
ato para el atributo por defecto
d
es HTML, puede ser texto en
ntre
otrros
Vis
sible: Indica si el atributo
o estará presente en la grilla
g
o será ocultado, se
e puede
esc
coger si será
á visible o no
o.
utos que se utilizarán para
p
ordenarr la grilla. Si se elige más de un
Orders: Son los atribu
ara el Orderr se generarrá en un com
mbo con tod
dos los órde
ers seleccionados. En
atributo pa
las propied
dades del atrributo es posible indicarr si el orden se tomará en
e forma asc
cendente
o descende
ente con el atributo
a
asce
ending.
Se puede cambiar el atributo
a
por el que se quiere
q
orden
nar con a tra
aves de la propiedad
p
attribute.
<ElementType Name=
="Orders" Ca
aption="Orde
ers" Icon="i
icons\orders.ico">
<Attributes />
ts>
<ChildrenElement
r" ElementTy
ype="Order" Multiple="true" />
<ChildElement Name="order
</ChildrenElements>
<ElementType>
="Order" Cap
ption="Order
r ({0})" Cap
ptionParameters="name"
<ElementType Name=
con="icons\o
order.ico">
KeyAttribute="name" Ic
<Attributes>
Attribute Nam
me="name" Ty
ype="string"
" Descriptio
on="Name of the Order, for
f
user
<A
selection." NotNull="t
true" />
</Attributes>
ts>
<ChildrenElement
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 98 -
PAT
TTERN WW
WETAPA
<ChildElement Name="attri
ibute" Eleme
entType="Ord
derAttribute" Multiple="
"true"
/>
nts>
</ChildrenElemen
mentType>
</Elem
derAttribute
e" Caption="
"{0}" Captio
onParameters="attribute"
"
<ElementType Name="Ord
te" Icon="ic
cons\attribu
ute.ico">
KeyAttribute="attribut
<Attributes>
Attribute Nam
me="attribut
te" Type="re
eference(Att
tribute)" Category="Orde
er
<A
Attribute" Description
n="Attribute
e." NotNull=
="true" />
Attribute Nam
me="descript
tion" Type="
"string" Cat
tegory="Order Attribute"
"
<A
Description="Descripti
ion." />
Attribute Nam
me="ascendin
ng" Type="bo
ool" Categor
ry="Order Attribute"
<A
Description="Ascending
g Order." De
efaultValue=
="true" />
</Attributes>
ts />
<ChildrenElement
>
<Initialization>
onFrom Type=
="Attribute"
" ReferenceP
Property="attribute"
<Initializatio
iption=Descr
ription" />
PropertyValues="descri
n>
</Initialization
mentType>
</Elem

Filter:
L estructurra del Filter se compone de distinttos elemento
La
os ya que comienza
c
definiendo sus propied
dades y med
diante los Ch
hilElements, FilterAttributes y Conditions
forma su estructura.
e
Esta seccio
on pertenece
e a las cond
diciones que
e se utilizan
n cuando se hace un filttro de la
informacion en las grilllas.
<Ele
ementType Na
ame="Filter"
" Caption="F
Filter" Icon
n="icons\filt
ter.ico">
<A
Attributes />
/
ChildrenElem
ments>
<C
<ChildEleme
ent Name="at
ttributes" ElementType=
E
="FilterAttri
ibutes"
e="false" Op
ptional="fal
lse" />
Multiple
<ChildEleme
ent Name="co
onditions" ElementType=
E
="Conditions"
" Multiple="
"false"
l="false" />
>
Optional
</
/ChildrenEle
ements>
</El
lementType>
<Element
tType Name="
"FilterAttri
ibute" Capti
ion="{0}" Ca
aptionParamet
ters="name"
KeyAttri
ibute="name"
" Icon="icon
ns\attribute
e.ico">
Attributes>
<A
" Type="code
e(Expression
ns)" Descript
tion="Attrib
bute or
<Attribute Name="name"
e to be ente
ered by the user and us
sed in the conditions."
c
NotNull="tr
rue" />
variable
<Attribute Name="descr
ription" Typ
pe="string" Description=
="Descriptio
on." />
in" Type="re
eference(Dom
main)" />
<Attribute Name="domai
ult" Type="s
string" Cate
egory="Values
s"
<Attribute Name="defau
tion="Defaul
lt value. Mu
ust be an ex
xpression of
f the same ty
ype of the
Descript
attribut
te/variable.
." />
<Attribute Name="allVa
alue" Type="
"bool" Categ
gory="Values"
" Descriptio
on="Add
' option in ComboBox. (Use
(
only wh
hen the attr
ribute is a ComboBox)."
C
an 'all'
DefaultV
Value="false
e" PrettyNam
me="All" />
<Attribute Name="promp
pt" Type="re
eference(Web
bPanel)" Cate
egory="Value
es"
tion="Prompt
t object use
ed to get th
he possible values for this
t
filter
Descript
attribut
te." />
</
/Attributes>
>
<C
ChildrenElem
ments />
</El
lementType>
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 99 -
PAT
TTERN WW
WETAPA
ute
El filter attribu
on:
configurables so
toma el nombre
e del atribu
uto para se
er visualizad
do, sus parametros
Name: Es
E la expres
sion que ing
gresa el usu
uario mediante la que se filtran la
as tuplas
coniciden
ntes.
Domain:: dominio de
e la variable, su uso solo
o es con varia
ables.
Default: debe ser un
na expresion
n del mismo tipo del atrib
buto.
allValue: es usado unicamente
u
c
cuando
el atributo es un ComboBox..
do para obte
ener los posibles valores
s para el filtrro.
Prompt: Objeto usad
Imagen 2.44.1.4 Propiedades del objeto Filter
<ElementType
<
e Name="Cond
ditions" Cap
ption="Conditions"
Icon=
="icons\cond
ditions.ico"
">
<Attribute
es />
<ChildrenE
Elements>
<ChildEl
lement Name=
="condition"
" ElementTyp
pe="Condition
n" Multiple=
="true"
/>
</Children
nElements>
</ElementTyp
<
pe>
<ElementType
<
e Name="Cond
dition" Capt
tion="{0}" CaptionParame
C
eters="value
e"
KeyAt
ttribute="va
alue" Icon="
"icons\condi
ition.ico">
<Attribute
es>
<Attribu
ute Name="va
alue" Type="
"code(Condit
tions)" Descr
ription="Fil
lter
ition." NotN
Null="true" />
Condi
</Attribut
tes>
<ChildrenE
Elements />
</ElementTyp
<
pe>
Cu
uando se agrega
a
un nuevo atrib
buto a los filtros (con
n la opción Select Atttributes),
au
utomáticame
ente es posib
ble generar la condición por el mism
mo. Para esto
o aparece un
n diálogo
qu
ue pregunta si se desea agregar la condición
c
por el atributo seleccionado.
3. Level View
V
<Element
tType Name="
"View" Capti
ion="Vista ({
{0})" Captio
onParameters
s="descripti
ion"
I
Icon="icons\
\webpanel.ic
co">
<Attri
ibutes>
<Att
tribute Name
e="caption" Type="code(E
Expressions)
)" />
<Att
tribute Name
e="descripti
ion" Type="st
tring" Descr
ription="Des
scription." />
<Att
tribute Name
e="backToSel
lection" Type
e="bool" Def
faultValue="
"true" />
<Att
tribute Name
e="masterPag
ge" Type="enu
um{<defau
ult>;<
;none>;*}
}" />
<Attribut
te Name="use
eAsSearchViewer" Type="b
bool" Defaul
ltValue="tru
ue" />
</Attr
ributes>
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 100 -
PAT
TTERN WW
WETAPA
<Child
drenElements
s>
<Chi
ildElement Name="parame
N
eters" Elemen
ntType="Para
ameters" Mul
ltiple="fals
se"
O
Optional="fa
alse" />
<Chi
ildElement Name="fixedD
N
Data" Element
tType="Fixed
dData" Multi
iple="false"
"
O
Optional="tr
rue" />
<Chi
ildElement Name="tabs"
N
ElementType=
="Tabs" Mult
tiple="false
e" Optional=
="false"
/
/>
<
</ChildrenEl
lements>
<
</ElementTyp
pe>
Imagen 3.1 Elementoss del Objeto Viista
Es el ob
bjeto que se
s invoca cuando se presiona
p
el link del De
escriptionAt
ttribute.
Cuando se
s genera el WWEtapa de
d una Trans
sacción, auto
omáticamen
nte se genera
a el View
para
cada
tabla
subordinad
da
a
la
tabla
p
principal.
Para generar los View
ws se toman
n todas las tablas 1? N directamente
d
e relacionadas con la
s por el
ee los siguie
entes atribu
utos que pu
ueden ser configurable
c
tabla principal pose
usuario.
q
aparece en el formulario debe ser una expresión por lo
o general
Caption:: subtitulo que
es la descripción del atributo.
BackToS
Selection: Idica si el Vie
ew tiene un link a la pag
gina Selectio
on, por defecto toma
el valor true.
MasterP
Page: indica el Objeto MasterPage
M
que es usad
do en el web panel, porr defecto
usa uno definido
d
en el
e archivo de
e configuraciión.
En el View
w se genera
an varios Tab
bs, cada uno
o con la inforrmación de cada
c
tabla. Cada
C
Tab
tiene uno
o o más Web
b Components para las tablas relacio
onadas.
earhViewerr: Establece el objeto Search para asociarla co
on la transac
cción por
UseAsSe
defecto establece
e
el valor
v
true.
Dentro de los Tabs, para
p
cada attributo que representa
r
la
a tabla, se genera
g
el link al View
de esa ta
abla relacionada con el objeto
o
Selecttion.
En la esquina superrior derecha del View, se genera un
u link que permite eje
ecutar el
WWEtapa
a del objeto que se está visualizando
o.
uientes ChildElement:
El View tiene los sigu
metros con lo
os que se lllama al View
w, por defecto siempre
e crea un
Parametters: Parám
parámetrro con el Id de
d la transac
cción.
<ElementType Name=
="Parameters
s" Caption="
"Parameters"
" Icon= "icons\
parameters.ico">
<Attributes />
ts>
<ChildrenElement
meter" Eleme
entType="Par
rameter" Multiple="true"
" />
<ChildElement Name="param
nts>
</ChildrenElemen
mentType>
</Elem
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 101 -
PAT
TTERN WW
WETAPA
<ElementType Name="Pa
arameter" Ca
aption="{0}"
" CaptionPar
rameters="name"
con="icons\p
parameter.ic
co">
KeyAttribute="name" Ic
<Attributes>
Attribute Nam
me="name" Ty
ype="code(Ex
xpressions)"
" NotNull="true" />
<A
<A
Attribute Nam
me="domain" Type="refer
rence(Domain
n)" />
<A
Attribute Nam
me="null" Ty
ype="bool" DefaultValue
D
e="true" PrettyName="Nul
llValue"
/>
</Attributes>
ts />
<ChildrenElement
mentType>
</Elem
Los atribu
utos del Pará
ámetro indic
can el nombrre del parám
metro.
El atribu
uto null si es
e establecid
do en false el
e valor del parámetro
p
no puede cam
mbiar en
el insert (ejemplo si insertas una
a ciudad en un Pais, paiisId no camb
biar cuando llamas a
cción ciudad
d).
la transac
Fixer Da
ata: Es el dato que se mostrará en
n la parte fijja del objeto, por ejem
mplo si se
está ejec
cutando el V
View de una
a persona, es
e el nombrre de la perrsona. Generalmente
coincide con
c
el DescrriptionAttribu
ute, es decirr el primer ca
ampo no clave de la tran
nsacción.
<ElementType Name=
="FixedData"
" Caption="F
Fixed Data" Icon="icons\fixedData.i
ico">
<Attributes />
ts>
<ChildrenElement
ibutes" Elem
mentType="At
ttributes" Multiple="fal
M
lse"
<ChildElement Name="attri
Optional="false" />
nts>
</ChildrenElemen
mentType>.
</Elem
Es el cód
digo con el que se cre
ea el FixedD
Data y aparrtir de este invoca a elementos
descritos anteriormente como el Attributes.
Tabs: So
on todos los datos que se visualizarrán en el Vie
ew de un ob
bjeto. Por de
efecto se
genera un Tab para todos los da
atos planos de la Transacción (Tab General), y uno por
el subordina
ado. También se genera
a un Tab para cada Transacción relacionada
cada nive
con la principal.
</ElementType>
="Tabs" Capt
tion="Tabs" Icon="icons
s\tabs.ico">
<ElementType Name=
<Attributes />
ts>
<ChildrenElement
e="Tab" Mult
tiple="true" />
<ChildElement Name="tab" ElementType
nts>
</ChildrenElemen
mentType>
</Elem
<ElementType Name=
="Tab" Capti
ion="Tab ({0
0})" Caption
nParameters="name"
con="icons\w
webpanel.ico
o">
KeyAttribute="code" Ic
<Attributes>
Attribute Nam
me="name" Ty
ype="string"
" Descriptio
on="Literal to appear in
nside
<A
the Tab." PrettyName="
"Caption" />
>
Attribute Nam
me="code" Ty
ype="string"
" Descriptio
on="Internal name. Must be
<A
unique." NotNull="true
e" />
Attribute Nam
me="descript
tion" Type="
"string" Des
scription="Tab descripti
ion." />
<A
<A
Attribute Nam
me="wcname" Type="strin
ng" Category
y="Component"
Description="Component
t Name." Pre
ettyName="Co
omponentName
e" NotNull="true" />
Attribute Nam
me="page" Ty
ype="enum{&l
lt;default&g
gt;;<unlimited>;*}
}"
<A
Category="Component" Description=
D
="numero de registros por
p
pagina (only for Gri
id
"<default
t>" />
type)." DefaultValue="
Attribute Nam
me="type" Ty
ype="enum{Gr
rid;Tabular;UserDefined}"
<A
Category="Component" Description=
D
="Type of co
omponent" De
efaultValue="Grid" />
Attribute Nam
me="conditio
on" Type="st
tring" Descr
ription="Condicion para
<A
determinar si el tab sera
s
present
tado." />
</Attributes>
ts>
<ChildrenElement
meters" Elem
mentType="Pa
arameters" Multiple="fal
M
lse"
<ChildElement Name="param
Optional="true" />
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 102 -
PAT
TTERN WW
WETAPA
<ChildElement Name="trans
saction" Ele
ementType="T
Transaction" Multiple="f
false"
Optional="true" />
s" ElementTy
ype="Modes" Multiple="false"
<ChildElement Name="modes
Optional="true" />
ibutes" Elem
mentType="At
ttributes" Multiple="fal
M
lse"
<ChildElement Name="attri
Optional="true" />
rs" ElementT
Type="Orders
s" Multiple="false"
<ChildElement Name="order
Optional="true" />
er" ElementT
Type="Filter
r" Multiple="false"
<ChildElement Name="filte
Optional="true" />
ons" Element
tType="Actio
ons" Multiple="false"
<ChildElement Name="actio
Optional="true" />
nts>
</ChildrenElemen
Los ElementTyp
pe que se inv
vocan son:
a
que
e están defin
nidos en la transacción.
t
Attibutes: los atributes son todos los atributos
d acciones
s las cuales son
s
ingresad
das en la grillla del View y estas son Update y
Acttions: crea dos
Dele
ete. El elemento Action está definido
o con el sigu
uiente código
o:
<ElementType Name=
="Actions" Caption="Act
C
tions" Icon=
="icons\actions.ico">
<Attributes />
ts>
<ChildrenElement
on" ElementT
Type="Action
n" Multiple="true" />
<ChildElement Name="actio
nts>
</ChildrenElemen
mentType>
</Elem
De e
esta manera
a es como se
s genera la instancia y la creación de los objetos
o
autom
mática al mo
omento de aplicar el Patttern a una transacción.
de
e manera
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 103 -
PAT
TTERN WW
WETAPA
2
2.4.2
Settiings file
Este esquema lle
eva el nomb
bre del Patte
ern seguido de la palab
bra settings con extensión XML,
s configura cada uno de
d los nodos
s que apare
ecerán en ell Pattern setttings de
dentrro de este se
Gene
eXus y sus correspondie
c
entes valore
es. Las pro
opiedades ge
enerales qu
ue se aplicaran para
todas
s las instancias son configuradas den
ntro de este archivo.
De la
a misma forma que el archivo Instance.xml está confo
ormado por el root node y los
eleme
entTypes do
onde cada un
no de ellos tendrán
t
defin
nidos sus atributos y ch
hildElements
s si asi lo
requiere.
Este archivo se puede
p
visua
alizar en form
ma de TreeV
View en Gen
neXus en la sección Pre
eferences
dentrro Knowledge Base Navigator.
<ElementType Name="Co
onfig" Capti
ion="WW Conf
figuracion" ChildrenOrd
dered="Defaul
lt">
<Attributes />
<ChildrenElements>
me="Template
e" ElementTy
ype="Templat
te" Multiple="false"
<ChildElement Nam
ptional="false" />
Op
me="Objects"
" ElementTyp
pe="Objects"
" Multiple="false"
<ChildElement Nam
ptional="false" />
Op
me="Theme" ElementType=
E
="Theme" Mul
ltiple="false" Optional=
="false"
<ChildElement Nam
>
/>
me="Labels" ElementType
e="Labels" Multiple="fa
M
lse"
<ChildElement Nam
ptional="false" />
Op
me="Grid" El
lementType="
"Grid" Multi
iple="false" Optional="f
false"
<ChildElement Nam
>
/>
me="MasterPa
ages" Elemen
ntType="Mast
terPages" Multiple="fals
se"
<ChildElement Nam
ptional="false" />
Op
me="Standard
dActions" El
lementType="
"StandardActions"
<ChildElement Nam
ultiple="false" Optional
l="false" />
>
Mu
me="Context"
" ElementTyp
pe="Context"
" Multiple="false"
<ChildElement Nam
ptional="false" />
Op
me="Security
y" ElementTy
ype="Securit
ty" Multiple="false"
<ChildElement Nam
ptional="false" />
Op
drenElements>
>
</Child
</ElementType>
El código mos
strado visua
aliza la estru
uctura principal del Patttern Configu
uration y los
s objetos
qu
ue el archivo
o WWEtapaIn
nstance.xml tomara.
I
Imagen
4.2.2.11 Vista del Patttern Configurration File
EllementType
e Template:
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 104 -
PAT
TTERN WW
WETAPA
Es
sta sección aplica
a
funciones que son
n tomadas en
n los Templa
ates y entre ellas una de
e las más
im
mportantes es
e UpdateTransaction, dependiendo
d
o del template se pued
de agregar el
e código
qu
ue invoque a clases que contengan la estructura
a que será en
ncajada en la transacció
ón.
<ElementType Name="Te
emplate" Cap
ption="Templ
late" Icon="
"icons\template.ico"
hildrenOrdered="Default"
">
Ch
<Attributes>
"UpdateTrans
saction" Typ
pe="enum{Do not update;Only rules and
a
<Attribute Name="
vents;Apply WW Style;Cre
eate default
t}" Descript
tion="Defaul
lt "Upd
date
ev
Tr
ransaction&q
quot; value for
f
instance
es." Default
tValue="Only
y rules and events" />
<Attribute Name="
"SelectionIs
sMain" Type=
="bool" Desc
cription="Default "
;Is
ain" value for Sele
ection nodes
s." DefaultV
Value="false
e" />
Ma
<Attribute Name="
"TabsForPara
allelTransac
ctions" Type
e="bool" Description="Ad
dd
abular tabs to the view for paralle
el transactr
rions." Defa
aultValue="false"
ta
Pr
rettyName="Tabs for para
allel transa
actions " />
>
<Attribute Name="
"UseTransact
tionContext"
" Type="bool
l" Category="Navigation"
"
efaultValue="true" />
De
<Attribute Name="
"AfterInsert
t" Type="enu
um{Return to
o Caller;Go to View;Go to
t
election}" Category="Nav
vigation" De
escription="
"Default act
tion perform
med after ins
serting
Se
a record." DefaultValue="
"Return to Caller"
C
/>
"AfterUpdate
e" Type="enu
um{Return to
o Caller;Go to View;Go to
t
<Attribute Name="
election}" Category="Nav
vigation" De
efaultValue=
="Return to Caller" />
Se
<Attribute Name="
"AfterDelete
e" Type="enu
um{Return to
o Caller;Go to Selection
n}"
ategory="Nav
vigation" Def
faultValue="
"Return to Caller"
C
/>
Ca
<Attribute Name="
"FixVariable
eLoadCode" Type="bool"
T
Advanced"."
Category="A
efaultValue="true" />
De
</Attributes>
<ChildrenElements />
/
</
/ElementType>
Los a
atributos AfterInsert,
A
, AfterUpda
ate, AfterDelete ejecu
utan una ac
cción luego de
d haber
realiz
zado una de dichas operraciones.
ansactionCo
ontext: afe
ecta a la se
ección de eventos
e
de la transacc
ción esta
Atributo UseTra
ucción retorn
na al objeto Selection.
instru
Elem
mentType Objects
<ElementType Name="Ob
bjects" Capt
tion="Object
ts" Icon="ic
cons\objects.ico"
hildrenOrdered="Default"
">
Ch
<Attributes>
"View" Type=
="string" De
efaultValue=
="View<Object>" />
>
<Attribute Name="
"Selection" Type="strin
ng" DefaultV
Value="TC<Object>"
" />
<Attribute Name="
"Controller"
" Type="stri
ing" Default
tValue=
<Attribute Name="
Controller<Object>
;" />
"C
"Tabular" Ty
ype="string"
" DefaultVal
lue="<Object>Gener
ral" />
<Attribute Name="
"Export" Typ
pe="string" DefaultValu
ue="Export<Object>
;" />
<Attribute Name="
</Attributes>
/
<ChildrenElements />
</ElementType>
El
El
El
El
atributo
atributo
atributo
atributo
Vie
ew establece
e el nombre al objeto vis
sta del Pattern.
Selection estab
blece el nom
mbre el Panell de manteniimiento de la
a transacción.
bular estable
ece el nombre para el ob
bjeto genera
al Tab.
Tab
Exp
port establec
ce el nombre
e para el pro
ocedimiento Export.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 105 -
PAT
TTERN WW
WETAPA
EllementType
e Theme
a Parte Them
me hace refe
erencia el Th
heme que se
e aplicara al Pattern, en
n esta parte
e se pude
La
es
scoger las partes
p
que conforman
c
a todo el te
ema e irlos aplicando a cada partte de los
ob
bjetos. En el atributo Th
heme en el parámetro T
Type se configura el tem
ma por defe
ecto si es
qu
ue el tema ya
y está incluiido en Genex
xus.
<ElementType Name="Th
heme" Captio
on="Theme" Icon="icons\
I
\theme.ico"
hildrenOrdered="Default"
">
Ch
<Attributes>
"Theme" Type
e="reference
e(Theme)" De
escription="Name of the Theme
<Attribute Name="
bject. If not specified,
, the Knowle
edge Base de
efault theme
e will be used." />
ob
"SetObjectTh
heme" Type="
"bool" Descr
ription="Set the specifi
ied
<Attribute Name="
heme as the selected the
eme for ever
ry generated
d object (if
f false, the default mod
del
th
th
heme will be used)." Def
faultValue="
"false" />
"Button" Typ
pe="custom(T
ThemeClass)"
" Category="Theme Classe
es"
<Attribute Name="
escription="" DefaultVal
lue="ActionB
Buttons" />
De
"PlainText" Type="custo
om(ThemeClas
ss)" Category="Theme
<Attribute Name="
</Attributes>
/
<ChildrenElements />
</ElementType>
EllementType
e Labels
La
a seccion de Labels agregan los titulos a los obje
etos generad
dos.
<ElementType Name="La
abels" Capti
ion="Labels"
" Icon="icon
ns\textblock
k.ico"
hildrenOrdered="Default"
">
Ch
<Attributes>
"GeneralTab"
" Type="stri
ing" Descrip
ption="" DefaultValue="G
General"
<Attribute Name="
>
/>
<Attribute Name="
"WWEtapaTitl
le" Type="st
tring" Descr
ription=""
efaultValue="Trabajar Co
on <Objec
ct>" />
De
<Attribute Name="
"ViewDescrip
ption" Type=
="string" Ca
ategory="Default Instanc
ce"
escription="Format strin
ng for View Description
n." DefaultV
Value="<Object>
De
In
nformation" />
<Attribute Name="
"OrderedBy" Type="strin
ng" Descript
tion="" DefaultValue="Or
rdered
y" />
by
<Attribute Name="
"AllInCombo"
" Type="stri
ing" Descrip
ption="Caption used for the All
ption in com
mbos." Defaul
ltValue="GX_
_AllItems" />
/
op
<Attribute Name="
"PreviousTab
b" Type="str
ring" Descri
iption="Tooltip to appea
ar in
he previous tab button" DefaultValu
ue="Previous
s Tab" />
th
<Attribute Name="
"NextTab" Ty
ype="string"
" Descriptio
on="Tooltip to appear in
n the
ext tab button" DefaultV
Value="Next Tab" />
ne
<Attribute Name="
"RecordNotFo
ound" Type="
"string" Des
scription="Text used on Views
hen the requested record
d is not fou
und in the database."
d
D
DefaultValue
t found"
="Record not
wh
/>
>
</Attributes>
/
<ChildrenElements />
</ElementType>
WWE
EtapaTitle agrega
a
el no
ombre título en el formu
ulario, concatena un textto con el nombre del
objetto. En el ejem
mplo se mue
estra el WWE
EtapaTitle Mantenimientto Tipo Serviicios.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 106 -
PAT
TTERN WW
WETAPA
Imagen 4..2.2.2 Titulo en
n el objeto Seleection
View
wDescription:
concate
ena el nombrre del objeto
o con el texto
o Informatio
on.
AllIn
nCombo: esta opción es
s usada para todos los co
ombos.
evious Tab:: son Tooltip
p text que aparece
a
cuando se acerrca el mouse
e por los
Nextt Tab y Pre
boton
nes next y previous.
Reco
ordNotFoun
nd: Mensaje que aparec
ce cuando no
n es enconttrada un reg
gistro en la base de
datos
s.
Elem
mentType Grid
<ElementType Name="Gr
rid" Caption
n="Grid" Ico
on="icons\gr
rid.ico"
hildrenOrdered="Default"
">
Ch
<Attributes>
"BackColorSt
tyle" Type="
"string" Des
scription="" DefaultValu
ue="3"
<Attribute Name="
>
/>
"CellSpacing
g" Type="int
t" Descripti
ion="" DefaultValue="2" />
<Attribute Name="
"CellPadding
g" Type="int
t" Descripti
ion="" DefaultValue="5" />
<Attribute Name="
"Page" Type=
="string" De
escription="
"filas por pagina en la
<Attribute Name="
rilla." DefaultValue="Pa
age.Rows" />
>
gr
"SaveGridSta
ate" Type="b
bool" Descri
iption="Remember current
t page,
<Attribute Name="
ilters and selected orde
er in select
tion objects
s." DefaultV
Value="true" />
fi
"CustomRende
er" Type="cu
ustom(GridCu
ustomRender)" Descriptio
on="Use
<Attribute Name="
r rendering grids. Appl
lies to all selection and grid tab
a custom user control for
bjects." />
ob
</Attributes>
/
<ChildrenElements />
</ElementType>
Es
ste ElemtTyp
pe Grid conttiene la estru
uctura HTML
L de una tab
bla por medio de los atributos se
de
efinen los va
alores necesa
arios como son
s
los valorres de CellSp
pacing, CellP
Padding.
Ce
ellSpacing establece el spacio entre
e celdas.
Ce
ellPadding establece el espacio inte
erno de las celdas.
c
El atributo Pa
age indica ell numero de filas que ap
parece en en
n la tabla po
or defecto vie
ene dado
el valor Page..Rows que son
s
11 filas por pagina. Se puede in
ngresar un numero ente
ero en el
va
alor por defe
ecto.
aveGridState indica si los ordenamientos de
e la página actual y filtro
os serán gua
ardados o
Sa
no
o para el objjeto Selection
En
nableDisablePaging
abilitados cu
uando la
indica si los botones de página son desha
co
orrespondien
nte acción no
o está habilittada.
Es
stos atributo
os se ven refflejados en la
a grilla de la siguiente fo
orma:
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 107 -
PAT
TTERN WW
WETAPA
Cellpaadding
CellSppacing
Imaggen 4.2.2.3 Prropiedades de la tabla del ob
bjeto Selection
Elem
mentType MasterPages
M
s
atributos muestras una lista de los MasterPage
M
d
disponibles para
p
que pue
edan ser apliicados al
Los a
objetto Selection, Transaction
n y View por defecto.
<Elem
mentType Nam
me="MasterPag
ges" Caption
n="MasterPag
ges" Icon="i
icons\webpan
nel.ico"
Child
drenOrdered=
="Default">
<Attributes>
ute Name="Sel
lection" Typ
pe="referenc
ce(MasterPag
ge)" Descrip
ption="Master
r page
<Attribu
ct name for selection we
ebpanels." DefaultValue
D
e="" />
objec
ute Name="Tra
ansaction" Type="refere
T
ence(MasterP
Page)" Descr
ription="Mast
ter page
<Attribu
ct name for transaction webforms." DefaultValu
ue="" />
objec
ute Name="Vie
ew" Type="re
eference(Web
bPanel)" Des
scription="M
Master page object
o
<Attribu
efaultValue=
="AppMasterP
Page" />
name for view webpanels." De
tes>
</Attribut
<ChildrenElements />
</ElementType>
Ele
ementType
e StandardS
Selection
So
on todas las acciones qu
ue existen co
omo son Ins
sert, Update, Delete, dis
splay, Exportt, Search
y estan definid
das como Ch
hildElements
s.
pto la accion Export hace
en referencia
a al ElementT
Type Action.
Y todos excep
<Element
tType Name="
"StandardAct
tions" Captio
on="Standard
d Actions"
I
Icon="icons\
\action.ico"
" ChildrenOr
rdered="Defau
ult">
<Attri
ibutes>
<Att
tribute Name
e="DisabledA
Appearance" Type="enum{D
T
Disabled;Hid
dden}"
P
PrettyName="
"Disabled Ac
ctions" Desc
cription="Whe
ether action
ns that are disabled du
ue to a
c
custom secur
rity check are
a
shown as disabled or
r not shown at all."
D
DefaultValue
e="Disabled"
" />
</Attr
ributes>
<Child
drenElements
s>
<Chi
ildElement Name="Insert
N
t" ElementTyp
pe="Action" Multiple="f
false"
O
Optional="fa
alse" />
<Chi
ildElement Name="Update
N
e" ElementTyp
pe="Action" Multiple="f
false"
O
Optional="fa
alse" />
<Chi
ildElement Name="Delete
N
e" ElementTyp
pe="Action" Multiple="f
false"
O
Optional="fa
alse" />
<Chi
ildElement Name="Displa
N
ay" ElementTy
ype="Action"
" Multiple="
"false"
O
Optional="fa
alse" />
<Chi
ildElement Name="Export
N
t" ElementTyp
pe="ExportAc
ction" Multi
iple="false"
"
O
Optional="fa
alse" />
<Chi
ildElement Name="Search
N
h" ElementTyp
pe="Action" Multiple="f
false"
O
Optional="fa
alse"/>
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 108 -
PAT
TTERN WW
WETAPA
</Chil
ldrenElement
ts>
EllementType
e Action
To
odos los atributos indica
an la aparien
ncia que tom
mara el boton
n que es agrregado al formulario,
y la accion que realizara cuando
c
el us
suario presione sobre el.
El atributo Ca
aption indica
a que utiliza
ara un subttitulo si el boton
b
no tie
ene ninguna
a imagen
an
nidada.
<ElementType Name=
="Action" Ca
aption="{0}"
" CaptionPar
rameters="[ElementName]"
"
o" ChildrenO
Ordered="Def
fault">
Icon="icons\action.ico
<Attributes>
Attribute Nam
me="Caption"
" Type="stri
ing" />
<A
Attribute Nam
me="Tooltip"
" Type="stri
ing"/>
<A
Attribute Nam
me="DefaultM
Mode" Type="
"bool" Prett
tyName="Enabled by Defau
ult"
<A
DefaultValue="true" />
>
Attribute Nam
me="DefaultC
Condition" Type="code(E
T
Events)" />
<A
Attribute Nam
me="Image" Type="refere
T
ence(Image)"
" Category="Style"
<A
Description="Image to be used for
r the action
n." />
Attribute Nam
me="Disabled
dImage" Type
e="reference
e(Image)" Category="Styl
le"
<A
Description="Image to be used whe
en the actio
on is disabl
led." />
Attribute Nam
me="ButtonCl
lass" Type="
"custom(Them
meClass)" Category="Styl
le"
<A
</Attributes>
ts />
<ChildrenElement
mentType>
</Elem
Elem
mentType Co
ontext
mplementa el manejo del
d context, por defecto, la impleme
entación inc
cluye una
Esta propiedad im
a &Context basada en la estructurra Context SDT y el procedimient
p
to y un
variable llamada
edimiento lla
amado LoadContext que
e es invocad
do en el eve
ento Start de
d cada Web
b Pannel,
proce
esta característic
ca es usada
a para guard
dar informac
ción sobre el
e usuario qu
ue está cone
ectado en
el sis
stema, espec
cíficamente para
p
la autenticación de
el usuario. La
a estructura Context SD
DT puede
ser m
modificada de
e acuerdo a la necesidad
d de cada orrganización.
<ElementType Name=
="Context" Caption="Con
C
ntext" Icon=
="icons\variable.ico"
ult">
ChildrenOrdered="Defau
<Attributes />
ts>
<ChildrenElement
extVariable"
" ElementTyp
pe="ContextV
Variable"
<ChildElement Name="Conte
nal="true" />
/
Multiple="true" Option
nts>
</ChildrenElemen
mentType>
</Elem
="ContextVar
riable" Capt
tion="{0}" CaptionParam
C
meters="Name"
"
<ElementType Name=
ico" Childre
enOrdered="D
Default" Key
yAttribute="Name">
Icon="icons\variable.i
<Attributes>
Attribute Nam
me="Name" Ty
ype="string"
" Descriptio
on="Variable name" />
<A
<A
Attribute Nam
me="Type" Ty
ype="referen
nce(SDT;Doma
ain;Attribute)"
Description="Name of the
t
domain, variable, or
o SDT on wh
hich the variable is bas
sed." />
Attribute Nam
me="LoadProc
cedure" Type
e="reference
e(Procedure)"
<A
Description="Procedure
e used to lo
oad the vari
iable from the
t
context." />
Attribute Nam
me="UseIniti
ialValue" Ty
ype="bool" DefaultValue
D
<A
="true" />
</Attributes>
ts />
<ChildrenElement
mentType>
</Elem
El atrributo LoadP
Procedure comienza
c
inv
vocando al procedimient
p
to LoadContext
El atrributo UseIn
nitialValue Usa el valorr inicial para iniciar la variable de contexto
Elem
mentType Se
ecurity
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 109 -
PAT
TTERN WW
WETAPA
<ElementType Name="Sec
curity" Capt
tion="Securi
ity" Icon="i
icons\security.ico"
ult">
ChildrenOrdered="Defau
<Attributes>
Attribute Nam
me="Enabled"
" Type="bool
l" DefaultVa
alue="true" />
<A
Attribute Nam
me="Check" T
Type="refere
ence(Procedu
ure)" Description="Proce
edure
<A
used to check whether access to the
t
current object is authorized.
a
If blank, no
o check
>
will be performed." />
Attribute Nam
me="NotAutho
orized" Type
e="reference
e(WebPanel)" Description
n="web
<A
panel a ser llamado si
i el usuario
o no esta au
utorizado" />
/
</Attributes>
ts>
<ChildrenElement
meters" Elem
mentType="Pa
arameters" Multiple="fal
M
lse"
<ChildElement Name="Param
Optional="false" />
nts>
</ChildrenElemen
mentType>
</Elem
="Parameters
s" Caption="
"Parameters"
" Icon="icons\parameters
s.ico"
<ElementType Name=
ult">
ChildrenOrdered="Defau
<Attributes />
ts>
<ChildrenElement
meter" Eleme
entType="Par
rameter" Multiple="true"
"
<ChildElement Name="Param
Optional="false" />
nts>
</ChildrenElemen
mentType>
</Elem
="Parameter"
" Caption="{
{0}" Caption
nParameters="Name"
<ElementType Name=
.ico" Childr
renOrdered="
"Default" Ke
eyAttribute="Name">
Icon="icons\parameter.
<Attributes>
Attribute Nam
me="Name" Ty
ype="string"
" Descriptio
on="Parameter name" />
<A
</Attributes>
ts />
<ChildrenElement
mentType>
</Elem
La pa
arte de seguridad verific
ca si el usuarrio está auto
orizado para realizar el mantenimien
m
nto sobre
las transacciones
s y llama al
a Web Panel NotAutho
orized en ca
aso de que el usuario no esté
a mantenim
miento de las transac
cciones a través del atributo
autorrizado para acceder al
NotA
Authorized. La plantilla
as están con
nfiguradas para que los objetos verrifiquen si el
e Pattern
tiene activado la
a opción de
e seguridad en caso de
e no tenerlo no se ap
plicaría el có
ódigo de
verificación de se
eguridad en los objetos.
2.5. Pattern Tem
mplates (.d
dkt)
vos compue
estos, gene
eran una salida con procesamiento
Los Templates son archiv
ucciones. Dic
chas instrucc
ciones proce
esadas están
n desarrollad
das en lenguaje C#.
instru
de
Templates (..dkt) genera
an la estructtura de los Patterns,
P
estos archivos
s son los encargados
Los T
de in
nsertar el có
ódigo y la forma
f
de los objetos co
omo WebPannels, grillas, insertar acciones,
a
orden
namientos, y toda la lógica que el Pa
attern implementara sob
bre la transa
acción.
Los P
Patterns está
án basados en Template
es (archivos
s dkt). Esto es que en base
b
a las in
nstancias
generadas, a la aplicación de ciertos archivos de
e configurac
ción y a cie
ertos Templates, se
generan los archivos XPZ que
e se podrán consolidar en
e GX para generar
g
más
s objetos GX.
s archivos to
oman el arch
hivo XML ge
enerado por el Pattern, y los archiv
vos de config
guración,
Estos
para generar el xpz
x que luego se consolidará en GX.
Template me
ezclan código C# con el
e lenguaje KMW que se
e utiliza en GX, de esa forma el
Los T
texto
o de salida que se produc
ce (XML corrrespondiente
e al XPZ) tie
ene código copiado
c
direc
ctamente
desde
e el Templatte y código XML generado por las se
entencias C#
#.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 110 -
PAT
TTERN WW
WETAPA
Los T
Templates so
on usados pa
ara generar el contenido
o por defecto
o de una KBO
ObjectPart re
ecibe por
lo me
enos dos parrámetros, la KBObjectPa
art misma, y la KBObjec
ct al que corresponde la parte. El
Temp
plate inicial declara
d
estas
s dos propie
edades usand
do la directiv
va <%@ Pro
operty %>.
Por d
defecto todos
s los Templa
ate reciben los elemento
os que se se
eleccionan lo
os element attribute,
a
si no
o están hech
has especific
caciones en el Elementt Attribute, el elementt root es el que sea
recibido en la Tem
mplate.
La prropiedad de la instancia es recibida como
c
una instancia gené
érica del Pattern.
Las p
plantillas tien
nen sus dire
ectivas entre
e los delimittadores (<%
%@ and %>) el código C# está
encerrrado bajo los delimita
adores (<% and %>), los resultados pueden
n incluir exp
presiones
delim
mitadas con (<%= and %>)
cua
ales serán copiados
c
como resultad
dos en el tie
empo de
generación
El resultado deb
be ser un fragmento de
e XML que encaje
e
con la exportaciión para un formato
bjectPart.
KBOb
2.5.1.
Directiv
vas
directivas so
on utilizadas
s por los Tem
mplates parra indicar las
s clases y/o
o archivos que están
Las d
incluiidos en cada plantilla, para agrega
ar código C#
C e ir form
mando la es
structura we
eb de los
eleme
entos.
ectiva de Plantillas
Dire
P
Es el encabeza
ado que se implementa en todas las plantillas
s,
propiedades del Template.
define de forma general las

Templatte Languaje
e. Indica el lenguaje bajjo el que esttá construido
o el Templatte

TargetLa
anguage. (lenguaje del
d
código generado),, y una brreve descrip
pción del
Template
e.
Descripttion. Para a
agregar una descripción de una plantilla

<%@ T
Template Lan
nguage="C#" TargetLangua
T
age="GX" Des
scription=" " %>
Direc
ctiva Impor
rt
Esta
a directiva agrega
a
una declaración empleada en
e C# o una
a declaración
n de importe
e para el
código del Tem
mplate. A lo
o largo con el
e assembly necesita inv
vocar clases C#. El Nam
mespace
ra de espac
cios de nom
mbres. En el
e que se encuentran
indica que importara una estructur
incluidas las cla
ases C#
amespace="P
PC.Patterns
s.WWEtapa" %>
<%@ Import Na
ctiva Assem
mbly
Direc
dos si se
Esta
a directiva indica al Template los procesos ex
xternos que pueden ser referenciad
quie
ere usar clases
c
.NET, XML, se ne
ecesitara refferenciar el ¿System.X
Xml? assemb
bly.
El
asse
embly debe existir en el
e Global Ass
sembly Cach
he en el dire
ectorio en donde está alojado
a
el
Tem
mplate.
<%@ A
Assembly Nam
me="PC.Patter
rns.WWEtapa"
" %>
Cab
be mencionar que las refferencias al System,
S
Sys
stem.Data, System.Draw
S
wing, System
m.Design
y Sy
ystem.Windo
ow.Forms so
on incluidas automáticam
mente.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 111 -
PAT
TTERN WW
WETAPA
Direc
ctiva Prope
erty
Imp
porta librería
as que propo
orcionan los objetos de GeneXus
G
con
n los que se van a traba
ajar en el
Tem
mplate, y dentro de esta
as se encuen
ntra información sobre la
as instancias
s del Patrón que han
sido
o generadas en GeneXus
s para ser us
sadas como parámetros por el Temp
plate, los parámetros
que
e este necesiita son el name y el Type.
<%@ P
Property Nam
me="Object" Type="Artech
T
h.Architectu
ure.Common.O
Objects.KBOb
bject" %>
Direc
ctiva Subte
emplate
Para aplicar el mismo
m
fragm
mento del Template en v
varios lugare
es, entonces
s para esto se
s puede
plate e invo
ocarlo. El uso del subtem
mplate se de
escribe en do
os procesos:
crearr un subtemp
1. P
Primero se debe declararlo y en la cabecera del template principal
S
SubTempla
ate
se usa
la directiva
<%@ S
SubTemplate Name="GridAt
ttributes" Name="GridAt
N
ttributes.dk
kt" MergePro
operties="Fal
lse" %>
El pa
arámetro Name determina el nombre lógico del
d subtemplate. Mientras el parám
metro File
indica
a el filename
e del Templa
ate actual Ell parámetro booleano MergeProperties es establecido en
son asignadas automáticam
“True
e”, todas la
as propieda
ades del Te
emplate padre
mente al
subte
emplate si tie
ene declarad
do las propie
edades con el
e mismo nombre.
2. L
La invocación del subtem
mplate mediante la direc
ctiva CallSubTemplate
<%@ C
CallSubTemplate GridAttr
ributes Attr
ributesList=
="attributes
sList" Delet
teMode="true"
" %>
Esta directiva re
equiere el nombre
n
lógic
co del subte
emplate y los valores para ponerllos a las
propiedades del subtemplate
s
e.
2.5.2.
Code Tags.
T
Los C
Code Tags son
s
usados para incluirr código C#
# en el cuerrpo del Tem
mplate <% a
and %>,
estos
s Tags son usados
u
para cualquier cantidad
c
de código. A partir
p
de estte código se
e realizan
instancias a las clases
c
C# pa
ara obtener los objetos, atributos ettc., que conttienen la info
ormación
saria para in
nteractuar co
on los objeto
os de GeneXus
neces
<%
ected overri
ide bool ConvertAfterR
C
Read(Pattern
nInstance
prote
Versi
ion fromVersion, Version
n toVersion)
)
{
verted = fal
lse;
bool conv
i
instance,
Xm
mlDocument
rawData,
if (fromV
Version < ne
ew Version(0, 5) && toVe
ersion >= ne
ew Version(0
0, 5))
{
Assig
gnLevelIds(in
nstance);
converted = true;
;
}
%>
Los c
comentarios se hacen con los tags y dos signos de
d (-) para abrir y cerra
ar el comenttario.
<%--
comentario --%>
Para la generac
ción los Templates im
mportan libre
erías (.Dll) y lo realiz
za con la siguiente
descrripción:
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 112 -
PAT
TTERN WW
WETAPA
En e
el caso del Pattern WWEtapa
W
un
no de los primeros Templates
T
en
e ejecutars
se es el
Selec
ctionWebForm.dkt
2.5.3.
Objeto Selection
El objjeto Selectio
on es el princ
cipal Panel de
d toda trans
sacción, en este
e
objeto se
s listan los
registtros, se pueden filtrar lo
os datos de acuerdo a un criterio, y se invoca a la transacción en
sus d
diferentes mo
odos.
2.5.3.1.
GridWebF
Form.dkt
E
Este Template construye
e la forma Web
W
del objetto Selection,, la forma de
e funcionamiento es
c
creando una
a instancia de
el archivo WWEtapaSett
W
ting.xml, el cual
c
se usa para
p
insertarr partes
d
del Theme en
e la estructu
ura Web del objeto.
P
Por esa razó
ón comienza realizando la instancia del
d archivo, asignándole
e a dicha insttancia el
m
modelo.
W
WWEtapaSetti
ings setting
gs = Instanc
ce.Settings;
S
Su inicio de ejecución se lo realiza creando objjetos (instan
nciando) las clases Cons
stants.cs,
W
WebFormScrript.cs, SearrchButton.cs
s, declarando
o el uso dell Namespace
e WWEtapaIInstance,
e
el mismo qu
ue se encue
entra distrib
buido en dos clases con
n el nombre
e WWEtapaIInstance.
C
Clases que están
e
incluidas en el mis
smo paquete
e Templates.
A
Además indica que utiliizara la libre
ería PC.Patte
erns.WWEta
apa, el mism
mo es invoca
ado cada
v
vez que aplic
camos un Pa
attern a una transacción
n.
E
El GridwebFo
orm.dkt crea
a el Web Fo
orm del objeto Selection obteniendo
o la Descripc
ción de la
IInstancia, la misma que se crea con
n el nombre de
d la transac
cción.
<%= WebForm.T
TextBlock("T
Title Text",
, "", GridOb
bject.Description) %>
E
Este código pertenece a la línea 34 del
d Template
e.
S
Si se quisie
era agregar otro tipo de
e mensaje o añadir má
ás texto en el título de
el objeto
S
Selection se deberá tratar a este objjeto como un String y adjuntarle el texto necesa
ario.
G
GridObject.De
escription+”
”texto”.
L
La siguiente
e parte del WebForm
W
es la de los Fiiltros, por de
efecto el Patttern toma el
e primer
a
atributo no clave
c
con el que se realiza los filtros
s sobre la griilla.
L
Lo que hace
e en esta se
ección la plantilla es obttener todos los filtros establecidos para esa
ttransacción y los va inse
ertando en el
e WebForm.
L
La forma de obtener los filtros estab
blecidos para
a la instancia
a es con el siguiente
s
cód
digo.
F
Foreach (Filt
terAttribute
eElement fil
lterVar in GridObject.F
G
ilter.Attrib
butes)
D
Dentro de es
ste bucle se debe inserttar todo el có
ódigo tanto HTML y C# para poder hacer las
rrespectivas validaciones
v
s.
D
Dentro de un
na columna <TD> se en
ncuentra la línea que se inserta como descripción para el
ffiltro.
<%= WebForm.T
TextBlock("F
Filter Text"
" + filterVa
ar. Name,
escription) %>
filterVar. De
settings.Them
me.PlainText
t,
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 113 -
PAT
TTERN WW
WETAPA
A continuación se inserta la variable
e por la que se hace realiza el filtrado de registro
os
d
dentro de ottra columna en la línea 110
1
del Template.
<%= WebForm. Variable (f
filterVar.Na
ame) %>
E
En una nuev
va Fila de tab
bla se agregan los boton
nes de Exporrt y el de Ins
sert pero parra poder
h
hacer esta in
nserción la plantilla
p
veriffica que entrre las acciones este habiilitada la de Export e
IInsert.
If (GridObjec
ct.Actions.E
Export != nu
ull && !Gene
erateForSmartDevices){
ct.Actions.E
Export.ToHtm
ml() %>
<%= GridObjec
}
ct.Actions.I
Insert != nu
ull && !Gene
erateForSmartDevices){
If (GridObjec
<%= GridO
Object.Actio
ons.Insert.ToHtml () %>
}
L
La sección siguiente es
s la de la grilla de registtros, en esta
a grilla es en
n donde se muestran
m
llos registros
s que están
n almacenad
dos en la ba
ase de dato
os, la plantilla en si no
o maneja
d
directamente
e esta grilla, la inserc
ción de estta se lo realiza directa
amente en la clase
W
WebFormScrript.cs. Prim
mero busca todas las acciones que
e tiene el Pattern,
P
y los agrega
d
dotándolos de una colu
umna para cada
c
acción. Si se tuviera más ac
cciones agre
egadas al
P
Pattern aquí se insertarrían sin ning
gún inconve
eniente. Estta operación
n se encuenttra en la
llínea 219 de
el Template.
F
Foreach (Acti
ionElement inGridAction
i
n in GridObject.Actions.GridActions
s) {
tion.ToHtml(
() %>
<%= inGridAct
}
A continuaciión se inserttan las los registros
r
recuperados de
e la base de
e Datos pero
o primero
rrecupera lo
os atributos de la tra
ansacción
y nuevame
ente con el
e uso de la Clase
W
WebFormScrript agrega las columnas
s en la grilla.
foreach (IAtt
tributesItem
m gridItem in
i GridObjec
ct.Attributes){
cript.GridCo
olumn(gridIt
tem) %>
<%= WebFormSc
}
L
La imagen muestra
m
la fo
orma en la que queda formado el Panel Web
Imagen 4.2.2.4 Web
b Panel De Man
ntenimiento (o
objeto Selection
n)
S
Se debe ten
ner en cuentta que ese archivo
a
camb
bia su estruc
ctura cuando hayamos realizado
a
alguna modiificación en el proyecto C# del Patte
ern, en el ca
aso de únicamente maniipular las
p
plantillas no es necesario volver a generar el pro
oyecto.
2.5.3.2.
ables.dkt
GridVaria
C
Como su no
ombre lo ind
dica este Te
emplate se encarga de agregar la sección varriables al
E
Elemento Se
election.
E
En GeneXus existen ade
emás de los tipos de dattos de cualquier lenguaje de programación o
B
Base de Dattos existen datos
d
propio
os de GeneXus, así tamb
bién existen dominios qu
ue son la
d
declaración de un nombre y el tipo de datos,, y a este lo
o podemos utilizar en múltiples
o
objetos y trransacciones
s, es por eso
o que la declaración de
e variables difiere
d
de ac
cuerdo al
ttipo de datos que se vay
yan a utilizarr.
E
Este Templa
ate obtiene los criterios de filtrado de la grilla,, y los decla
ara como variable, la
fforma de rea
alizar esta definición se la hace con la siguiente expresión.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 114 -
PAT
TTERN WW
WETAPA
<% foreach (P
ParameterEle
ement parame
eter in Grid
dObject.Parameters)
s.BasedOnAtt
tribute(para
ameter.Name, parameter.Name) %>
<%= Variables
<% }%>
{%>
L
La forma de obtener esttos parámetrros se indica
a dentro del Foreach.
L
Las variables que extienden
e
de un attributo se declaran con la expresión
e
V
Variables.Ba
asedOnAttrib
bute, y recibe como parámetros el
e nombre de la varia
able y el
n
nombre del atributo, al que GeneXu
us se encarg
ga de verific
car si existe una transac
cción que
c
contenga ese atributo.
S
Si se necesiita crear variables que deriven de otras funciones es con
n la palabra
a extend,
p
pasando com
mo parámettros el nomb
bre de la va
ariable, un valor
v
nulo y la función a la que
p
pertenece.
<%= Variables
s.Extended("
"Session", null,
n
"WebSe
ession") %>
s.Extended("
"HTTPRequest
t", null, "H
HttpRequest") %>
<%= Variables
O
Otro tipo de
d variables
s son las que
q
derivan se usan para
p
obtene
er un tipo de dato
e
estructurado
o. La manerra de declarar este tipo de variable
es es sencilla, se usa la
a palabra
rreservada Sd
dt y se pasan el nombre
e de la variab
ble y el objeto Sdt.
<%= Variables
s.Sdt("TrnCo
ontext", "Tr
ransactionCo
ontext") %>
s.Sdt("TrnCo
ontextAtt", "Transactio
onContext.Attribute") %>
>
<%= Variables
L
Las variable
es básicas co
omo son las
s de tipo numérico, varc
char, carácter, boolean,, etc., se
d
declaran con
n la palabra reservada Basic,
B
interna
amente decla
arando el no
ombre, un pa
arámetro
n
nulo, el tipo de dato la longitud del mismo y un parámetro que
q
indica si es de tipo colección
s
si lo es se pa
asa el parám
metro true ca
aso contrario
o es necesarrio escribir el valor null.
<%= Variables
s.Basic("NUM
MVAL", null,
, eDBType.NU
UMERIC, 9, 0, false) %>
L
La Variable NUMVAL es
e usada para obtener el valor para la cla
ave primaria
a de las
ttransaccione
es del módulo de segurid
dad.
<%= Variables
s.Basic("Cod
digoRol", nu
ull, eDBType
e.NUMERIC, 4, 0, false) %>
L
La variable CodigoRol
C
es
s usada para
a recibir den
ntro de la re
eglas el códig
go del Rol que
q
tiene
a
asignado el Objeto con el
e usuario qu
ue ha ingresado al sistem
ma.
E
El objeto Se
election recib
be como parámetros el usuario perro por aspec
ctos de segu
uridad es
n
necesario que
q
esta va
ariable se envié como
o una clave encriptad
da. Para re
ealizar la
e
encriptación se utilizan dos
d
variables de tipo Va
archar la una
a con longitu
ud de 64 y es
e la que
c
contiene el nombre
n
del usuario,
u
y la
a otra de una
a longitud de
e 32 caracte
eres que es necesaria
n
p
para poder realizar
r
la en
ncriptación o des encripttación.
<%= Variables
s.Basic("usE
Encrypt1", null,
n
eDBTyp
pe.VARCHAR, 64) %>
s.Basic("usE
Encrypt2", null,
n
eDBTyp
pe.VARCHAR, 32) %>
<%= Variables
L
La validación
n de permis
sos se realiza
a listando la
as acciones y se almace
enan en una variable
p
por cada acc
ción.
foreach (Acti
ionElement action
a
in Gr
ridObject.Ac
ctions){
String va
arName = "Pe
ermit" + action.Name;%>
efineVariabl
le() %>
<%= action.De
s.Basic(varN
Name, null, eDBType.Boo
olean) %> }
<%= Variables
E
El foreach obtiene
o
las acciones,
a
el atributo va
arName conc
catena la pa
alabra Perm
mit con el
n
nombre de la variable, y estas son agregadas
a
co
omo variable
es tipo Boole
ean.
2.5.3.3.
GridRules.dkt.
L
La sección de la reglas
s únicamente agrega una
u
línea all objeto Selection la que es la
rrecepción de
e variables para la valid
dación del usuario
u
y el rol, en esta
a plantilla esta es la
ú
única línea de
d código qu
ue se agrega.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 115 -
PAT
TTERN WW
WETAPA
p
parm(&usEncr
rypt1, in:&u
usEncrypt2, in:&CodigoRo
ol);
2.5.3.4.
GridCondittions.dkt
E
El Template recibe la in
nstancia de la transacción y revisa
a si existen criterios de
e filtrado,
lluego por ca
ada uno reco
orre las cond
diciones esta
ablecidas para realizar lo
os filtros en la grilla,
p
para finalme
ente agregarr en la secció
ón de Condittions median
nte el parámetro Value.
i
if (GridObje
ect.Filter != null){
f
foreach (Con
nditionEleme
ent filterCo
ondition in
%>
<
<%= filterCo
ondition.Val
lue.TrimEnd(';') %>;
<
<%
}
}
2.5.3.5.
GridOb
bject.Filter
r.Conditions
s){
G
GridEvents.
.dkt
E
EL Template
e GridEvents
s es la parte más extens
sa del Objeto
o Selection debido
d
a que
e aquí es
e
en donde se
e aloja la lóg
gica del Web Pannel, parra realizar ciiertas funcio
ones de valid
dación de
a
acciones es necesario obtener una lista con las
s acciones que se puede
en o no form
mar parte
d
del Web Pa
annel. Para ellos crea una lista de
d tipo de dato ActionElement en
e donde
a
almacenaran
n las accione
es para poste
eriormente ser
s utilizadas
s.
List<ActionE
Element> sta
andaloneActi
ionsWithSecu
urityCheck = new List<Ac
ctionElement
t>();
E
Esta lista ob
btiene las acc
ciones que no
n están inclluidas en la Grilla y son las acciones
s Insert y
E
Export.
foreach (Acti
ionElement action
a
in Gr
ridObject.Ac
ctions.Stand
daloneActions
s){
if
f (action.Co
ondition != String.Empt
ty)
stand
daloneActions
sWithSecurit
tyCheck.Add (action);
}
E
Event Startt: El evento Start es el primero que
e se ejecuta
a cuando se abre el Web
b Pannel,
p
propiamente
e con el cód
digo de Gen
neXus fuera
a de los tag
g <%%> se in
nserta el código que
o
obtiene el Sd
dt que contie
ene el usuarrio y el que tiene
t
asignad
do.
E
En la segunda línea almacena
a
nuevamente el nombre del usuario pero hac
ciendo la
o
operación de des encriptación, en la línea 3 almacena el Rol del Us
suario el cu
ual es un
n
número que
e el Web Pannel Selectiion recibe como parámetro, nueva
amente alm
macena el
u
usuario y ro
ol en el Sdt,, invoca al procedimien
nto IsAuthorrizedWWE ell cual verific
ca que el
u
usuario este
e registrado
o y el rol de este se
ea correcto en caso de
d no haber alguna
c
coincidencia la variable &IsAuthorize
ed recibirá un
u valor false
e e inmediattamente mos
strara un
W
Web Pannel con el mens
saje de no Autorizado.
LoadContext.C
Call(&Contex
xt)
&Context.
.User = Decr
rypt64(&usEn
ncrypt1, &usE
Encrypt2)
&Context.
.Rol = &Codi
igoRol
setContex
xt(&Context)
IsAuthori
ized.Call(&P
Pgmname.toLower(), &IsAu
uthorized)
orized)
(not &IsAutho
NotAu
uthorized.Ca
all(&PgmName)
Endif
If
E
El siguiente elemento Es
stablece el número
n
de filas que se mostraran
m
en la grilla, este
e
valor
llo toma del archivo WW
WEtapaInstan
nce, del cual podemos modificar
m
el valor o incluso para
d
directamente
e en el Temp
plate se podrá asignar un
u nuevo núm
mero.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 116 -
PAT
TTERN WW
WETAPA
<%= Constants
s.GridName %>.Rows
%
= <%
%= GridObjec
ct.Page %>
E
Es necesario
o que se inic
cialicen los botones
b
de la
as acciones y agrega el código de ellos, este
c
código proviiene del proyecto C#. La plantilla obtiene esas instruccion
nes, la obten
nción del
d
de estas se hace con la
a tercera líne
ea, las anterriores valida
an que de ex
xistan las ac
cciones y
p
posteriormente verifican
n que no esté
é vacío el attributo que contiene
c
el có
ódigo.
foreach (Acti
ionElement action
a
in Gr
ridObject.Ac
ctions.GridA
Actions){
nitializatio
onCode() != String.Empt
ty){
if (action.In
Indent(actio
on.Initializ
zationCode(), 1) %>
Indentation.I
}
%>
<%=
<%
}
E
El Evento sttart obtiene la descripció
ón del objeto Selection para que es
ste se visuallice en la
p
parte superior de web Pa
annel.
if (GridObjec
ct is Select
tionElement){
string fo
ormCaption = ((SelectionElement)Gri
idObject).Ca
aption;
if (formC
Caption == "")
"
fo
ormCaption = "'" + ((Se
electionElem
ment)GridObject).Descrip
ption + "'";
;
%>
tion = <%= formCaption
f
%>
Form.Capt
<%
}
F
Finalmente el
e evento Sttart invoca a las subruttinas para verificación
v
de
d permisos sobre la
ttransacción, cargar el estado
e
de la grilla.
L
La Sub Ru
utina CheckSecurityForrActions ve
erifica si las variable
es &PermitIInsert y
&
&PermitExpo
ort tienen el valor true, en caso de no
n tenerlo se
e bloquean los botones de
d Insert
y Export.
<% foreach (A
ActionElemen
nt action in
n standalone
eActionsWithSecurityChec
ck)
{%>
ion.Indent (action.Enab
(
bleDisableCo
ode(), 1) %>
<%= Indentati
<%}%>
L
La verificació
ón de permisos Insert y Export se realiza
r
por medio
m
de la lista
l
de accio
ones que
s
se declararo
on en el iniciio del Templlate y por ca
ada una de ellas invoca al código re
espectivo
q
que lo obtiene directam
mente de la clase
c
ActionElement, la línea Indentation.Inden
nt agrega
e
el código en
n la bandeja de Eventos
s del Web Pa
annel, la ins
stancia action.EnableDisa
ableCode
rrecupera el las
l líneas de
e código que serán inserttadas.
E
Event Grid.L
Load, este ev
vento se dec
clara obtenie
endo el valo
or Grid, desd
de una consttante que
s
se encuentra
a definida en
n la clase Co
onstants.
Event <%= Con
nstants.Grid
dName %>.Loa
ad
D
Dentro de una colección
n obtiene las
s acciones y por cada un
na de ellas agrega
a
el có
ódigo que
iinvoca a la Transacción con el mod
do pasando como parám
metro el mo
odo y el prim
mary Key
p
pertenecientte al registtro desde el
e cual se llama
l
a la Transacción
n, Para aña
adir más
p
parámetros o cambiarr alguno de
e ellos se puede modificar esta línea en la clase
A
ActionEleme
ent en el méttodo SetStan
ndardParameters.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 117 -
PAT
TTERN WW
WETAPA
<%= Indentati
ion.Indent(a
action.Enabl
leDisableCod
de(), 1) %>
E
Esta sentenc
cia se encuentra en la lín
nea número 313 de la plantilla.
L
La acción Views se manipula de otra
a forma disttinta a las de
emás accion
nes y por eso
o esta se
e
encuentra en una Temp
plate distinto
o, debido a que
q
esta no invoca a la Transacción
n, invoca
d
directamente
e al objeto View.
V
E
El evento qu
ue llama a la
a Transacción
n en modo Insert se obttiene de la clase Variable
eElement
e
en el método
o VariableLo
oadCode. Y en
e este méto
odo directam
mente se pue
ede realizar variantes
v
e
en la forma de llamar a la transacció
ón y/o parám
metros que se
s pasan.
foreach (Ac
ctionElement action in GridObject.A
G
Actions.Stan
ndaloneActio
ons)
{
if (actio
on.Event() != String.Em
mpty)
{%>
on.Event() %>
%
<%= actio
<%
}
}
S
Sub Rutina Permission
ns
E
Esta Sub rutina cumple la función de recopilarr los permiso
os que tiene
e el usuario sobre el
o
objeto La misma
m
se enc
cuentra implementada e
en todos los
s objetos qu
ue necesitan verificar
llos permisos
s del usuario conectado
o. La forma de trabajarr es invocan
ndo al proce
edimiento
P
PermisosV al
a que pasa los paráme
etros, nomb
bre del obje
eto, el usuarrio, el rol, recibe
r
un
v
valor Boolea
an verificando si el usuario es admin
n o no y un sdt
s con los permisos,
p
en
n caso de
q
que el usuarrio se admin
n se activan todos los permisos sob
bre el objeto
o, y en el caso de no
s
serlo se des
sactivan todo
os los permiisos y entra a verificar los permisos
s recorriendo el Sdt,
e
en esta partte utiliza las variables &P
Permit conca
atenadas con
n el nombre
e de la acción
n, busca
s
si el atributo
o Premiso es
s igual al nombre de la acción
a
enton
nces valor de
e la variable
e &Permit
c
concatenada
a con el nom
mbre de la acción
a
tomara el valor del atributo
o Autorizado
o del Sdt
q
que únicame
ente almacen
na el valor True.
T
Sub 'Permissi
ions'
PermisosV
V.Call(&Pgmn
name,&Contex
xt.User,&Cont
text.Rol,&Is
sAdmin,&Perm
ms)
If &IsAdm
min
<%
ionElement action
a
in Gr
ridObject.Ac
ctions){
foreach (Acti
%>
%= action.Na
ame %> = Tru
ue
&Permit<%
<%}%>
iews = True
&PermitVi
Else
<%
(
ent action in GridObject
t.Actions)
foreach (ActionEleme
{
%>
%= action.Na
ame %> = False
&Permit<%
<%
%
}%>
iews = False
e
&PermitVi
For &Perm
msItem in &P
Perms
Do
o Case
<%
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 118 -
PAT
TTERN WW
WETAPA
foreach (Acti
ionElement action
a
in Gr
ridObject.Ac
ctions)
{
%>
rmsItem.Perm
miso = !'<%=
= action.Name
e %>'
Case &Per
ction.Name %>
% = &PermsI
Item.Autoriz
zado
&Permit<%= ac
<% } %>
tem.Permiso=
= !'Views'
Case &PermsIt
&PermitVi
iews = &Perm
msItem.Autor
rizado
EndCase
EndFor
E
EndI
If
EndSub
2.5.4.
SubLinkAttributes
s.dkt
ple la funció
ón de invoca
ar al elemento View (V
VistaTransaction), como parámetro envía el
Cump
prima
ary key dell registro seleccionado el código que se ins
serta se enc
cuentra en la clase
LinkE
Element, en el atributo LinkExpressio
L
on.
<%= item.Name
e %>.Link = <%= item.Li
ink.LinkExpr
ression %>
2.5.5.
Objeto View
El ob
bjeto View es
e el que pre
esenta la información del
d registro seleccionado
o, su uso se
e lo hace
mediante el botó
ón Display, únicamente
ú
Permite visu
ualizar la infformación y no da lugarr a hacer
n tipo de ope
eración sobrre esa inform
mación. La es
structura de
e Templates que usa parra formar
algún
su we
eb Pannel y toda su lógic
ca es similarr a la de los demás objetos.
2.5.5.1.
ViewWeb
bForm.dkt
A
Al igual que el elemento
o Selection este
e
Template es usado para constrruir el Web Panel
P
del
o
objeto View..
P
Primero se debe
d
obtene
er la informa
ación de la instancia a la que perte
enece este objeto
o
ya
q
que a partir de esta se ira recupera
ando los dattos necesarios para la construcción
c
del Web
P
Pannel.
WWEtapaIn
nstance wwIn
nstance = WW
WEtapaInstanc
ce.Load(Inst
tance);
WWEtapaSe
ettings sett
tings = wwIn
nstance.Setti
ings;
ViewEleme
ent view = wwInstance.G
w
GetElement<Vi
iewElement>(
(Element);
Selection
nElement sel
lection = view.Parent.Se
election;
D
Debido a qu
ue el Objeto
o View deriva de un niv
vel más deta
allado la forma de recuperar las
de tratar
p
partes y la información del mismo tiene un grrado mayor de dificultad la forma d
d
dicha inform
mación.
E
En la tercerra line se muestra
m
la fo
orma de obttener el Objjeto View de
e la instanc
cia, en la
c
cuarta línea se obtiene el objeto selección qu
ue está rela
acionado. El
E Objeto Vie
ew se va
fformando ag
gregando priimero el nom
mbre del objeto con el có
ódigo que se
e detalla.
<
<%= WebForm.
.TextBlock("
"ViewTitle", "" , view.D
Description)
) %>
E
El link hacia
a el elementto Selection se agrega obteniendo directamentte la descrip
pción del
o
objeto, debid
do a que al inicio se obtuvo la inforrmación de la instancia de
d la transac
cción a la
q
que pertenece.
<
<%= WebForm.
.TextBlock("
"ViewAll", settings.Them
me.TextToLin
nk, selectio
on.Descripti
ion) %>
E
Estas dos primeras
p
partes se enc
cuentran de
efinidas denttro de una tabla y pe
ertenecen
p
precisamentte a la prime
era fila de dic
cha tabla.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 119 -
PAT
TTERN WW
WETAPA
L
La siguiente parte de la tabla consis
ste en agregar la descrip
pción del reg
gistro selecciionado. Y
s
se comienza
a obteniendo
o la descripción del atribu
uto que va ser
s presentado en la cab
becera de
lla tabla.
<
<%=
WebFor
rm.TextBlock
k("FixText"
f
fixedAtt.Des
scription) %>
%
+
fixedA
Att.Attribute.Name,
se
ettings.Them
me.Label,
Y la línea más
m
importan
nte es la pre
esentación del
d registro seleccionado
s
o mediante el
e primer
a
atributo no clave.
c
<
<%= WebForm.
.Attribute(f
fixedAtt.Att
tribute.Name)
) %>
2.5.5.2.
ViewRule
es.dkt
L
La parte de las Rules en
n el objeto View
V
como en
n los demás
s objetos obttiene datos mediante
m
lla instancia de la trans
sacción, nue
evamente se
e utiliza el mismo
m
códig
go que se encuentra
e
iimplementad
do en los demás objetos
s para obtener la instanc
cia y en este
e caso el obje
eto view,
lla parte pro
opia de la Regla la ob
btiene de la
a clase Parrameter Elem
ment en el método
R
RuleForView
w, en dicho método
m
se encuentra
e
de
efinido un atributo
a
para
ameter, este
e método
ttoma la clav
ve primaria de
d la transac
cción concate
enándola con
n la variable
e &TabCode.
<%= v
view.Paramet
ters.RuleForV
View() %>
2.5.5.3.
ViewVariables.dkt
T
Todos los ob
bjetos Web Pannels, Trransactions, WebCompon
nents deben
n tener varia
ables que
s
sirven para la descripció
ón de cada uno
u
de ellos,, por tal mottivo cuentan
n con una pla
antilla en
lla que se en
ncuentran definidas cierrtas variable
es que son invocadas por
p
todos los
s objetos
q
que requiera
an contar con las variablles.
E
En la definic
ción de varia
ables nuevam
mente neces
sitamos obte
ener la instan
ncia y el objjeto View
q
que se está creando.
A partir de
e la obtención de esta
a informació
ón se procede a invo
ocar a las variables
S
SubStandard
d.
<
<%@ CallSubT
Template Sub
bStandardVar
riables Setti
ings='wwInst
tance.Settin
ngs' %>
V
Variables &T
Tabs, &Tab, hacen referencia al SD
DT TabOptio
ons, en dond
de se almac
cenan los
d
distintos tab
bs que tienen
n relación co
on la transac
cción y luego
o serán carga
ados como liinks.
<%= Varia
ables.Sdt("T
Tabs", "TabO
Options") %>
<%= Varia
ables.Sdt("T
Tab", "TabOp
ptions.TabOpt
tionsItem") %>
L
Los Tabs so
on objetos WebCompon
nent, cuyo nombre se forma con los nombres de la
ttransacción Maestro con
n la Detalle y terminan co
on el Texto WC.
W
L
Las Variables &usEncryp
pt1 y &usEnc
crypt2 son utilizadas en la invocación al objeto selection,
s
y
ya que el ob
bjeto Selectio
on necesaria
amente recib
be el usuario y el rol.
<%= Varia
ables.Basic(
("usEncrypt1", null, eDB
BType.VARCHA
AR, 64) %>
<%= Varia
ables.Basic(
("usEncrypt2", null, eDB
BType.VARCHA
AR, 32) %>
E
En esta plan
ntilla también
n se declaran las variables provenie
entes de la trransacción, y esta es
u
utilizada parra la invocac
ción a los tab
bs.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 120 -
PAT
TTERN WW
WETAPA
foreach (ParameterEl
(
lement param
meter in view
w.Parameters
s)
{%>
ables.BasedO
OnAttribute(parameter.Na
ame, paramet
ter.Name) %>
>
<%= Varia
<%}
2.5.5.4.
ViewEven
nts.dkt
A través de la instancia
a el objeto View,
V
y la propiedad Se
ettings la pla
antilla invoca al SDT
&
&Context pa
ara obtener el
e Usuario y el rol, y el usuario en código
c
encriptado es usa
ado en la
iinvocación al
a objeto Sele
ection.
E
El evento Start
S
da inic
cio obtenien
ndo la variable &Contex
xt que conttiene el nom
mbre del
u
usuario y el, debido a que
q
este mis
smo código se utilizara en muchos objetos el código
c
se
e
encuentra en
n el Templatte SubLoadC
Context.
<
<%@ CallSubT
Template Sub
bLoadContext
t Settings='settings' In
ndentLevel='
'1' IndentLe
evelChar=
'
'"\t"' %>
P
Para recuperar el nomb
bre del objetto selection al que invocara el obje
eto View se utiliza el
s
siguiente cód
digo.
if (view.
.BackToSelec
ction && view.Parent.Sel
lection != null){
n
%>
>
ViewAll.L
Link = <%= view.Parent
t.Selection.
.ObjectName %><%= sd %>.Link(&usE
%
Encrypt1,
&usEncryp
pt2, &Contex
xt.Rol)
<
<%}
E
El if compru
ueba que la vista tenga
a un objeto Selección, y la siguien
nte línea obtiene el
n
nombre del objeto selec
ction y le ag
grega los pa
arámetros en
ncriptados co
onjuntamente con el
R
Rol.
U
Una vez que
e se llama al objeto View
w de un registro se com
mpara si es que
q
el registtro existe
e
en caso de que
q
exista se
e llama al ob
bjeto Tabbed
dView al que
e se le pasa la
l estructura
a de Tabs
a
almacenados
s que tiene la
l transacció
ón.
I
If (&Exists)
)
D
Do 'LoadTabs
s'
T
TabbedView.O
Object = <%=
= Constants.TabbedViewNa
ame %>.Creat
te(&Tabs, &T
TabCode)
E
Endif
L
La subrutina
a LoadTabs, es la que se
s agrega el código parra la inclusió
ón de los Ta
abs en la
e
estructura que almacena
a los Tabs.
foreach (TabElement
(
tab in view
w.Tabs)
{ %>
&Tab = new()
.Code = "<%=
= tab.Code %>"
&Tab.
&Tab.
.Description
n = "<%= tab
b.Name %>"
&Tab.WebC
Component = <%= tab.Wcn
name %>.Link(
(<%= View.Pa
arameters. ListWithVari
L
iables ()
%>)
k
&Tab.Link
&
&Tab.Code)
=
<%=
Ob
bject.Name
%>.Link(<%=
=
view.Parameters.ListW
WithVariable
es()
%>,
&Tabs.Add
d(&Tab)
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 121 -
PAT
TTERN WW
WETAPA
<
<%}%>
E
En el Foreac
ch lista todo
os los Tabs que
q
pertenec
cen al Objetto View, o dicho de otra
a manera
llista las tran
nsacciones de
etalle de la transacción.
t
Los Tabs ha
acen son los objetos WC
C.
E
El TabCode es el nomb
bre de la transacción, el Tab.Desc
cription es la descripció
ón de la
ttransacción, el TabWebc
component es el Objeto
o WC que se
e agrega al Tab, al que
e le pasa
c
como parám
metro el Prim
mary Key del registro me
ediante el cual se haga la invocació
ón a este
o
objeto. El ta
ab.Link alma
acena la URL
L del objeto View.
V
2.5.5.5.
ViewCond
ditions.dkt
L
La condición
n la obtiene
e de la clas
se Paramete
erElement en
e el método WhereCon
ndition y
p
posteriormente agrega la condición validando qu
ue el atributto condition no sea nulo..
s
string condi
ition = view
w.Parameters.WhereCondit
tion();
<
<%= view.Par
rameters.Whe
ereCondition
n() %>;
2.5.6.
Objeto General.
ebComponen
nt General está construid
do por los Te
emplates TabTabular. Se
S visualiza una
u
El We
tabla que muesttra toda la in
nformación de
d un registrro y forma la
a tabla con lo
os atributos y la
ada atributo. Esta tabla presenta
p
enllaces que inv
vocan a la trransacción en los
descrripción de ca
modo
os, update o delete.
2.5.6.1.
TabTabullarWebForm
m.dkt
P
Para la cons
strucción del Web Form del objeto General el template
t
comienza crea
ando una
rreferencia de
d la Instan
ncia de la transacción
t
y obteniend
do las prop
piedades del archivo
S
Settings, y la informació
ón del Tab General.
WWEtapaIn
nstance wwIn
nstance = WW
WEtapaInstanc
ce.Load(Inst
tance);
WWEtapaSe
ettings sett
tings = wwIn
nstance.Setti
ings;
TabElemen
nt tab = wwIn
nstance.GetE
Element<TabE
Element>(Ele
ement)
L
La forma de
e construir la tabla se hace media
ante la sentencia foreac
ch, para obttener los
a
atributos de la transacción.
f
foreach (IAt
ttributesIte
em item in tab.Attribute
t
es)
L
La siguiente
e tarea es as
signar la descripción de
e cada atribu
uto en una columna
c
de la tabla,
m
mediante la descripción de los ítems
s.
<
<gxTextBlock
k id="TextBl
lock<%= item
m.Id %>" Capt
tion="<%= it
tem.Descript
tion %>" />
E
En una nuev
va columna agrega los atributos pe
ero hacienda
a uso de la clase
c
WebFo
ormScript
e
en el método
o Item que es
e el que obttiene el atrib
buto.
<
<%= WebFormS
Script.Item(
(item) %>
L
La agregació
ón de los bottones se hac
ce obteniend
do las acciones que tenga el objeto.
Foreach (ActionEleme
(
ent action in tab.Action
ns)
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 122 -
PAT
TTERN WW
WETAPA
L
La inserción
n de los botones
b
se realiza me
ediante el método toHtml() de la clase
A
ActionEleme
ent.
<%= actio
on.ToHtml() %>
2.5.6.2.
TabTabullarRules.dk
kt
L
La sección de las reglas el elemento
o general rec
cibe el Prima
ary key del registro selec
ccionado.
C
Con el uso de
d la instanc
cia obtenemo
os el elemen
nto tab, adem
más se obtie
ene el eleme
ento View
d
del cual el Tab general se
s deriva.
L
La regla se obtiene
o
direc
ctamente en
n la clase ParameterElem
ment en el método
m
Rule,, y este a
s
su vez invoc
ca a otro mé
étodo Rule que
q
recibe tres
t
parámetros y arma la cadena que
q
va a
s
ser devuelta
a a la plantilla.
WWEtapaIn
nstance wwIn
nstance = WW
WEtapaInstanc
ce.Load(Inst
tance);
TabElemen
nt tab = wwI
Instance.GetElement<TabE
Element>(Ele
ement);
ViewEleme
ent view = tab.Parent;%
t
>
<%= view.
.Parameters.Rule() %>
2.5.6.3.
TabTabullarVariables.dkt
L
Las variable
es del objeto
o general se
e declaran de
d igual form
ma que en los demás objetos
o
y
m
muchas de ellas
e
son las mismas.
L
Las variables
s para los pa
arámetros se obtienen de
d la clase ParameterEle
P
ement y el código
c
es
iigual a como
o se ha descrito en los demás objeto
os.
<
<% foreach (ParameterEl
(
lement param
meter in tab.
.Parameters)
)
{%>
<%= Varia
ables.BasedO
OnAttribute(parameter.Na
ame, paramet
ter.Name) %>
>
L
Las variables
s que se usa
an para el co
ontrol de seg
guridad es &Context,
&
la variable Ses
sión sirve
p
para almace
enar tempora
almente el estado
e
del o
objeto esta parte
p
es rea
alizada con el
e uso de
S
SDT, median
nte las variables TrnContext, TrnCon
ntextAtt.
2.5.6.4.
dkt
TabTabullarEvents.d
L
La parte de los eventos obtiene el objeto
o
wwIns
stance declarado de la misma
m
mane
era de las
d
demás planttillas, y el ob
bjeto Tab de la clase Tab
bElement.
E
En el evento
o Start se re
ecupera la es
structura Co
ontext, en es
ste caso no se utiliza en
n ninguna
o
operación, pero
p
si se qu
uisiera por ejemplo
e
asignar niveles de seguridad muchos detallados
datos.
y cada objetto tenga asig
gnado la parrte de seguridad se utiliz
zaría esta estructura de d
E
El Evento Lo
oad es declarrado pero no
o tiene incide
encia en este
e objeto.
L
Los siguienttes eventos son los qu
ue se disparran cuando se presiona
a en los bottones de
a
actualizar y eliminar, pa
ara esto recu
upera las ac
cciones del tab llama al método Event de la
c
clase ActionElement, qu
ue es la que
e contiene el
e código para llamar a la transacciión en el
m
modo Insertt y delete, pasando
p
com
mo parámetrro el primary
y key y el modo
m
en el que
q
se la
lllama.
<
<%
foreac
ch (ActionEl
lement actio
on in tab.Act
tions)
{
f (action.Ev
vent() != St
tring.Empty)
If
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 123 -
PAT
TTERN WW
WETAPA
{%
%>
<
<%= action.E
Event() %>
<
<%
}
}
2.5.7.
Objeto tab wc
ponent que se forma cuando
c
existe una relación maestrro detalle entre
e
dos
Es ell Web comp
trans
sacciones, es
ste objeto prácticament
p
te es el mism
mo objeto Selection es
s por eso qu
ue en las
planttillas se invo
oca a las plantillas Grid, para el caso
o específico de ETAPA EP,
E fueron ne
ecesarios
hacerr algunos ca
ambios para
a ello se cre
earon nueva
as plantillas
s en donde están realiz
zados los
camb
bios, en la descripción de las plantillas se nomb
brara los cam
mbios realiza
ados en las plantillas
Grid, debido a qu
ue el resto de código es prácticamen
nte el mismo
o.
En to
odas las plan
ntillas de este
e objeto se obtiene
o
la in
nstancia, y el objeto TabElement y enseguida
se prrocede a realizar la invocación de la plantilla qu
ue genera el código para
a formar el o
objeto en
toda su integridad.
WWEtapaIn
nstance wwIn
nstance = WW
WEtapaInstanc
ce.Load(Inst
tance);
TabElemen
nt tab = wwI
Instance.GetElement<TabE
Element>(Ele
ement);
2.5.7.1.
TabGridW
Webform.dk
kt
E
Este plantilla
a invoca a la plantilla GridWebform
G
m pasando como
c
parám
metros la ins
stancia el
ttipo de obje
eto que se va a construiir, en este caso
c
se invoca a la plan
ntilla con la siguiente
llínea de código.
<
<%@ CallSubT
Template Gri
idWebForm In
nstance='wwIn
nstance' Gri
idObject='ta
ab' %>
L
La plantilla GridWebForm
G
m verifica si es que el objeto
o
contie
ene una descripción y co
omprara,
e
esto lo hace
e para agreg
gar la prime
era fila de la tabla, en
n el objeto WC no se agrega
a
la
p
primera fila. Esta parte de
d código es
stá escrita en
n las líneas 29 hasta la 39.
if (GridO
Object.Descr
ription != String.Empty)
){
%><TR>
<TD class
s="<%= setti
ings.Theme.Subtitle %>" >
<%= WebFo
orm.TextBloc
ck("Title Text", "", Gri
idObject.Des
scription) %>
%
</TD>
</TR>
<% }
2.5.7.2.
TabGridR
Rules.dkt
L
La parte de las reglas invoca a la plantilla GrridRulesTG.d
dkt y dentro
o de este ag
grega los
p
parámetros para el objeto WC.
if (GridO
Object.Filte
er != null){
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 124 -
PAT
TTERN WW
WETAPA
IBaseColl
lection<Filt
terAttributeElement>
filterProm
mpts
=
GridObjec
ct.Filter.At
ttributes.FindAll
(delegate
(Fil
lterAttribut
teElement
filterAtt
tribute) { return
r
(filterAttribute.
.Prompt != null);
n
});
if (filte
erPrompts.Co
ount > 0)
{%>
<%
(
ibuteElement filterAttri
ibute in fil
lterPrompts)
)
foreach (FilterAttri
{
%>
%= filterAtt
tribute.Prom
mpt.Name %>, <%= filterA
Attribute.Va
ariableName %>);
prompt(<%
<%
}
}
}
E
En esta secc
ción intervien
ne la clase Filter
F
Atribute
e en la que obtiene
o
el attributo Varia
ableName
p
para agrega
ar la regla a su vez este atributto se encue
entra implem
mentado en la clase
V
VariableElem
ment dentro del método
o variableLoa
adCode que
e es el que devuelve la línea de
c
código de la regla.
2.5.7.3.
Conditions.d
dkt
TabGridC
E
Esta plantilla
a invoca al Template
T
GrridConditions
sTG.dkt el cual es una réplica
r
de la
a plantilla
g
gridConditions.dkt que se
s ha detalla
ado en la parrte del objeto Selection.
2.5.7.4.
TabGridV
Variables.dk
kt
L
La parte de
e las variab
bles del objeto WC implementa la
as mismas variables
v
de
el objeto
S
Selection es
s así que es
ste directam
mente vuelve
e a invocar al Template
e GridVariab
blesWC y
a
agrega las mismas
m
varia
ables que tie
ene el objeto
o Selection.
2.5.7.5.
TabGridE
Events.dkt
L
La parte de
e los eventtos es quizá
á la más crítica
c
dentrro del objetto tab WC
C y para
iimplementarr esta parte
e se hizo una
u
réplica del templatte GridEvents, y se la nombro
G
GridEventsTG.dkt, debid
do a que es
ste es un objeto que administra
a
a una transa
acción es
n
necesario qu
ue este obje
eto sea trata
ado como ell objeto Sele
ection, en el evento Sta
art , este
o
objeto pued
de obtener la estructura
a de contex
xto es por eso
e
que úniicamente ca
arga esta
v
variable, y utiliza
u
la plan
ntilla SubCheckSecurity que proporc
ciona el códiigo necesario para la
v
validación de
e seguridad..
<
<%@ CallSubT
Template Sub
bLoadContext
t Settings='
'settings' IndentLevel=
I
='1' IndentL
LevelChar
=
='"\t"' %>
<
<%@
Call
lSubTemplate
e
SubChec
ckSecurity
I
IndentLevelC
Char ='"\t"' %>
Settings='settings'
IndentL
Level='1'
D
Dentro del evento
e
start,, se invocan a las subruttinas que proveen la fun
ncionalidad rrequerida
y cuando se trata del Ta
ab WC, no se implementta la subrutiina LoadGrid
dState, en re
elación al
ttemplate Gid
dEvents. Es lo único que
e cambia.
2.5.8.
SubSta
andardVaria
ables.dkt
e definidas variables
v
que
e son necesarias para el
e uso de casi todos los objetos.
La plantilla tiene
Las d
dos primera
as son utiliz
zadas en la
a parte de seguridad. Las dos últimas variables son
utiliza
adas en la presentación de mensa
ajes y derivan de una estructura de
d datos SD
DT, si es
neces
sario agrega
ar más varia
ables que va
ayan a ser utilizadas en todos los objetos que
e crea el
patró
ón sería conveniente ha
acerlo en esta plantilla y no en las
s plantillas de
d variables de cada
objetto.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 125 -
PAT
TTERN WW
WETAPA
<%=
<%=
<%=
<%=
<%=
2.5.9.
Varia
ables.Basic(
("IsAuthorized", null, eDBType.Bool
e
lean) %>
Varia
ables.Basic(
("PermitView
ws", null, eD
DBType.Boole
ean) %>
Setti
ings.Context
t.DefineVariables() %>
Varia
ables.Sdt("m
messages", "Messages") %>
%
Varia
ables.Sdt("m
message", "M
Messages.Mess
sage") %>
Proced
dimiento Mo
odInit
El prrocedimiento
o ModInit, tiene por ob
bjetivo escribir en un procedimient
p
to el nombrre de los
objettos Selection
n y la descrip
pción los cua
ales se van a almacenarr en la tabla
a SMO del m
módulo de
segurridad. Cada vez que el
e usuario in
ngrese al sistema
s
este
e procedimie
ento se rec
correrá y
almacenara los nombres
n
de los objetos si
s estos no están almace
enados en la tabla.
2.5.9.1.
Variables.dk
kt
ModInitV
<%= Varia
ables.Basic(
("modsCount", null, eDBT
Type.NUMERIC
C, 8, 0, fal
lse) %>
<%= Varia
ables.Basic(
("NUMVAL", null,
n
eDBType
e.NUMERIC, 9,
9 0, false)
) %>
<%= Varia
ables.Basic(
("NUMCOD",nu
ull, eDBType.
.CHARACTER, 3) %>
ables.BasedO
OnAttribute("
"Accion", "A
Accion") %>
<%=
Varia
Varia
ables.BasedO
OnAttribute("
"abreviatura
a", "abrevia
atura") %>
<%=
Varia
ables.BasedO
OnDomain("Obj
jNombre", "O
ObjectName")
) %>
Varia
ables.BasedO
OnDomain("Obj
jDescripcion
n", "ObjectN
Name") %>
%=
<%
%=
<%
L
La variable modsCountt se usa pa
ara empezarr a recorrerr el procedimiento y hacer
h
las
iinserciones en
e la tabla.
L
Las variables NUMVAL y NUMCOD se
s utilizan pa
ara obtener la clave prim
maria para las tablas
d
de seguridad
d ya que no
o se obtiene el correcto funcionamiento con la función auttonumber
d
de GeneXus
s, el SIGEC
COM de ET
TAPA actualmente utiliiza esta función para obtener
a
automáticam
mente los Priimary Keys de
d todas las tablas.
L
Las variable
es Acción y Abreviatura son usadas
s para ingre
esar las acciiones en la tabla de
a
acciones. Las acciones son
s
Insert, Update,
U
Expo
ort, Views, Display,
D
Delete.
2.5.9.2.
ModInitP
Procedure.d
dkt
E
El procedimiento siemprre comienza tratando de ingresar las
s acciones en
n la tabla
L
La declaración de las ac
cciones se realiza
r
manu
ualmente co
on la siguien
nte línea de código y
ttermina invo
ocando a la sub
s
rutina NewPermissio
on.
&
&Accion=!"In
nsert" &abre
eviatura=!"Ins" Do 'NewP
Permission'
S
Sub ‘NewPerm
mission’
E
Esta subrutin
na compara
a si la acción
n está ya en la tabla en caso
c
de no estarlo
e
la ing
gresa.
S
Sub 'NewPerm
mission'
for each
cion=&Accion
n
where Acc
When none
e
New
ccion = &Acc
cion
Ac
ab
breviatura= &abreviatur
ra
Endnew
endfor
E
EndSub
L
La parte de la obtención
n de las insttancias aplic
cadas en la base de con
nocimiento se
s realiza
m
mediante el código Patte
ernInstace,
la primera parte
e es contarr las instan
ncias del
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 126 -
PAT
TTERN WW
WETAPA
P
Pattern, esto
o se observ
va en el com
mando Forea
ach, luego compara
c
que
e existan los
s objetos
S
Selection y el
e número en
n una variab
ble.
foreach (PatternIns
stance inst
tance in PatternInsta
ance.GetInst
tances(Objec
ct.Model,
apaPattern.D
Definition, PatternInsta
P
ance.OpenOpt
tions.SkipUp
pdate))
WWEta
if
f (level.Se
election != null && l
level.Select
tion.Paramet
ters.Count == 0 &&
Ob
bject.Model.
.Objects.Get
tKey(ObjClas
ss.WebPanel,
level.Se
election.Obj
jectName)
!=
= null)
{
Count + 1;
modsCount = modsC
}
A continuación asigna es
se valor a la variable &m
modsCount del
d procedimiento.
I
If &modsCoun
nt <> <%= mo
odsCount %>
C
Con el mism
mo código qu
ue cuenta la
as instancias
s recorre nue
evamente ell for each y esta vez
a
agrega el có
ódigo de obttención de nombre y descripción y la
l invocación
n a la subrutina New
M
Module.
&ObjNombr
re= !"<%= level.Select
l
tion.ObjectNa
ame.ToLower(
() %>" &Obj
jDescripcion
n = "<%=
level.Sel
lection.Desc
cription %>" Do 'NewModu
ule'
S
Sub NewMod
dule, esta subrutina ing
gresa los nombres de lo
os objetos Selection juntto con la
d
descripción en la tabla SMO del módulo de se
eguridad, prrimero obtiene el código
o para el
p
primary key
y, compara si el objeto
o existe en la tabla en
n caso de no
n existir procede a
iinsertarlo.
Sub 'NewM
Module'
VAL=0
&NUMV
&NUMCOD=
="OBT"
for each
oNombre=&ObjNombre
where smo
when none
e
New
.Call(&NUMVA
AL,&NUMCOD)
PNumera.
smoId=&NU
UMVAL
smoNombre
e = &ObjNomb
bre
smoDescri
ipcion=&ObjD
Descripcion
tipos='Ob
bjeto'
EndNew
Endfor
EndSub
2.5.10. SubChe
eckSecurity
y.dkt
Las p
plantillas sub
bCheckSecurrity y subChe
eckSecurityT
Trn, establec
cen el código
o para la verificación
de se
eguridad, en el caso del SubCheckSe
ecurityTrn, es
e exclusiva para la transacción, la seguridad
s
en el sistema em
mpieza en el objeto Selection, pero
o si llegase a darse el caso
c
de que se logre
esar la trans
sacción sin haberlo hec
cho mediantte las invoc
caciones del objeto Selection el
ingre
usuarrio podrá hacer cualq
quier tipo de variante
e sobre lo
os registros, para evitar este
incon
nveniente se
e debería ta
ambién asig
gnar los permisos que tiene el ob
bjeto Selecttion a la
Trans
sacción, enttonces deb
beríamos ing
gresar en el
e sistema el nombre y descripció
ón de la
trans
sacción en la
a tabla SMO
O y asignarle
e los permis
sos según el
e rol, pero esta
e
tarea s
se vuelve
repettitiva y conffusa, pero se
s tendría más
m
segurid
dad en el sistema, la solución
s
es hacer la
trans
sacción tome
e los permisos del objeto Selectio
on de cada transacción
n, para realizar esta
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 127 -
PAT
TTERN WW
WETAPA
opera
ación es se debió asociar al nombrre de la transacción con el texto ‘ttc’ en el inicio de la
variable Pgmnam
me. Y verifica
ar los permis
sos que tiene
e el usuario sobre el objeto Selection y estos
narles a la transacción.
asign
<%=
security.C
CheckName
%>.Call('t
tc'+&<%=
rityCustomPa
arams %>&IsAu
uthorized).
secur
P
ProgramNameV
Variable
%
%>.toLower()
),
<%=
2.5.11. Permis
sos.dkt
misos tambié
én es única para el uso de la trans
sacción, si esta
e
es ingre
esada de
La plantilla Perm
algun
na forma se verifica los permisos a las accione
es que tiene el usuario, en la transacción la
verificación de pe
ermisos bloq
quea los botones, el cód
digo de la pla
antilla es igu
ual al de la subrutina
s
missions del objeto
o
Selecttion, pero co
on las varian
ntes para el bloqueo
b
de los botones.
Perm
Esta subrutina pa
arte verifican
ndo si el usu
uario no es admin,
a
si lo es, le asigna todos los permisos
si no
o lo es le qu
uita todos lo
os privilegio
os y recorre la estructu
ura de permisos devueltta por el
proce
edimiento Pe
ermisosV y va desbloqu
ueando las opciones
o
de acuerdo a los permisos que se
vayan
n encontran
ndo, finalmente verifica los valores sobre las variables
v
de permisos y si estas
están
n en estado false
f
se pro
oceden a bloq
quear los bo
otones.
Permi
isosV.Call('tc'+&Pgmname
e.toLower(),
,&Context.Us
ser,&Context
t.Rol,&IsAdm
min,&Perms)
If &IsAdm
min
&P
PermitInsert
t=True
&P
PermitDelete
e=True
&P
PermitUpdate
e=True
&P
PermitDispla
ay=True
El
lse
&P
PermitInsert
t=False
&P
PermitUpdate
e=False
&P
PermitDelete
e=False
&P
PermitDispla
ay= False
For &Perm
msItem in &P
Perms
Do Case
Case &Per
rmsItem.Perm
miso = 'Inser
rt'
&PermitIn
nsert = True
Case &Per
rmsItem.Perm
miso = 'Updat
te'
&PermitUp
pdate = True
Case &Per
rmsItem.Perm
miso = 'Delet
te'
&PermitDe
elete = True
Case &Per
rmsItem.Perm
miso = 'Displ
lay'
&PermitDi
isplay= True
EndCase
ndFor
En
if
f (&Mode = '
'INS' and &P
PermitInsert
t = False)
btn_enter2.Visibl
le=False
e=False
btn_enter.Visible
ndIf
en
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 128 -
PAT
TTERN WW
WETAPA
if
f (&Mode = '
'UPD' and &P
PermitUpdate
e= False)
btn_enter2.Visibl
le=False
e=False
btn_enter.Visible
ndIf
en
if
f (&Mode = '
'DEL' and &P
PermitDelete
e=False)
btn_enter2.Visibl
le=False
e=False
btn_enter.Visible
ndIf
en
if
f (&Mode = '
'DSP' and &P
PermitDispla
ay=False)
re
eturn
en
ndIf
EndIf
2.5.12. Proced
dimiento Lis
stPrograms
s
ocedimiento ListProgram
ms cumple la
a función de escribir el nombre
n
y la descripción de todos
El pro
los objetos Selec
ction en un procedimien
nto y cuando
o un usuario
o ingresa al sistema este
e verifica
e cada uno de los ob
bjetos tenga
a o no perm
miso, para almacenarlo
o en una
que el usuario en
estructura SDT que será devuelta cuando
o se invoque
e a este proc
cedimiento
2.5.12.1.
ListProgrramsVariab
bles.dkt
L
La estructurra de datos que recopillara los obje
etos selectio
on se llama ProgramNa
ames, las
v
variables name y description son el nombre y la
a descripción
n del objeto selection la
a variable
llink guarda la referencia
a del objeto Selection us
sEncrypt1 y usEncrypt2 son la varia
ables que
e
encriptan la información
n del usuario.
<%=
<%=
<%=
<%=
<%=
<%=
<%=
Varia
ables.Sdt("P
ProgramNames", "ProgramN
Names") %>
Varia
ables.Sdt("P
ProgramName", "ProgramNa
ames.Program
mName") %>
Varia
ables.BasedO
OnDomain("na
ame", "Object
tName") %>
Varia
ables.BasedO
OnDomain("description", "ObjectName
e") %>
Varia
ables.BasedO
OnDomain("link", "URLStr
ring") %>
Varia
ables.Basic(
("usEncrypt1", null, eDB
BType.VARCHA
AR, 64) %>
Varia
ables.Basic(
("usEncrypt2", null, eDB
BType.VARCHA
AR, 32) %>
2.5.12.2.
ListProgrramsProced
dure.dkt
E
Este plantilla escribe en
e el proced
dimiento ListPrograms el
e de cada instancia en
n la que
rrecopila los atributos principales
p
d objeto Selection
del
S
y agrega
a
el lin
nk a ese ob
bjeto, se
o
obtiene una lista con las
s instancias que
q
existen en la base de
d conocimie
ento.
L
List<WWEtapa
aInstance> allInstances
a
= WWEtapaCa
ache.AllInst
tances(Objec
ct.Model);
allInstan
nces.Sort(de
elegate (WWEtapaInstance
e instance1,
, WWEtapaIns
stance insta
ance2) {
re
eturn instan
nce1.Name.Co
ompareTo(ins
stance2.Name);
R
Recorriendo las instanc
cias, se lleg
ga al objeto
o Selection,, y se obtie
enen el nombre, la
d
descripción y se asigna al atributo link el nomb
bre del objeto y las varia
ables que se
e pasaran
a
al objeto Selection como
o parámetros
s, y se invoc
ca a la subru
utina AddPro
ogram.
f
foreach (WWE
EtapaInstanc
ce wwInstanc
ce in allInst
tances)
fo
oreach (Leve
elElement le
evel in wwIn
nstance.Levels)
if (level.Selecti
ion != null &&
level.Sel
lection.Parameters.Count
t
==
0
O
Object.Model
l.Objects.Ge
etKey(ObjCla
ass.WebPanel,
, level.Sele
ection.Objec
ctName) != null)
n
&&
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 129 -
PAT
TTERN WW
WETAPA
&
&name = !"<%
%= level.Sel
lection.Obje
ectName %>"
&descr
ription
= "<%= level
l.Selection.Description
n %>"
&link = <%=
l
level.Select
tion.ObjectN
Name %>.Link
k(&usEncrypt1
1, &usEncryp
pt2, &Contex
xt.Rol)
D
Do 'AddProgr
ram'
L
La subrutina
a AddProgra
am verifica que el rol del objeto sea igual a
al rol del usuario
u
y
d
devuelve la variable IsAuthorized, si el valor es true se almacena la
l información en la
e
estructura SDT.
S
S
Sub 'AddProg
gram'
&IsAuthor
rized = True
e
IsAuthori
ized.Call(&n
name, &IsAuthorized)
If (&IsAu
uthorized)
&P
ProgramName = new Progr
ramNames.Pro
ogramName()
&P
ProgramName.
. Name = &de
escription
&P
ProgramName.
. Descriptio
on = &name
&P
ProgramName.
. Link = &li
ink
&P
ProgramNames
s. Add(&Prog
gramName)
Endif
E
EndSub
2.6. C
Configuración de obje
etos que serán afectad
dos por los Templates
s.
Los patterns
p
está
án construidos con much
hos objetos generados en
e GeneXus los cuales pueden
p
o
no ser modificados en un Template, para obten
ner este arc
chivo XML se debe ha
acer una
os construidos en una K
KB, se gene
era un archivo xpz el cual se lo
exportación de los elemento
debe descomprim
mir y ahí se
s encuentrra el archiv
vo XML que
e contiene los objetos con sus
respe
ectivos atributos, variables, reglas, dominios, a partir de es
ste archivo podemos se
eleccionar
los ob
bjetos que queremos
q
qu
ue se genere
en la primera
a vez que ap
plicamos un Pattern
P
en una KB.
Recalcamos que cuando se va a agrega
ar cierta fun
ncionalidad (código, varriables, reglas) a un
o de un temp
plate se deb
be hacer refe
erencia en la
a parte del objeto
o
al que
e se va a
objetto por medio
modificar.
<Obje
ect parent="Security" gu
uid="257a508
85-6bad-45d2
2-9695-13ddc
ce13f791" na
ame="modInit"
"
descr
ription="mod
d Init">
<Part type="528d1c06-a
a9c2-420d-bd
d35-21dca83f
f12ff">
ties>
<Propert
<Property>
me>Defaults</
/Name>
<Nam
<Value>WWEtapa:(
(global)Temp
plates\modIn
nitProcedure
e.dkt</Value>
perty>
</Prop
</Proper
rties>
</Part>
ties>
<Propert
<Property>
me>Defaults</
/Name>
<Nam
<Value>WWEtapa:(
(global)Temp
plates\modIn
nitVariables
s.dkt</Value>
perty>
</Prop
</Proper
rties>
</Part>
<
</Object>
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 130 -
PAT
TTERN WW
WETAPA
La prrimera propie
edad invoca al template que escribe
e el código de
el procedimiiento.
La se
egunda propiiedad invoca
a al template
e que crea la
as variables para el procedimiento.
2.7. Editar el có
ódigo por defecto
d
del Instance file
El pro
oyecto desarrrollado en el
e Lenguaje C#
C provee lo
os componen
ntes y objeto
os necesario
os para el
mane
ejo de los Pa
atterns.
El Pro
oyecto se Ba
asa en la definición de un
u Namespac
ce principal y es en don
nde se aloja la mayor
cantid
dad de códig
go.
El pro
oyecto en C#
# contiene una
u
clase es
specífica que
e interactúa directamente con la tran
nsacción.
La de
eclaración de
e variables difiere
d
de la forma
f
en la que se decla
aran en los Templates.
T
Cada vez que se haga un cam
mbio sobre este
e
código, es necesariio volver a generar
g
la lib
brería del
Patte
ern (PC.Patte
erns.WWEtap
pa.dll), la cu
ual está ubica
ada en el dirrectorio.
C:\Pro
ogram Files (x
x86)\Artech\G
GeneXus\Gene
eXusXEv1PlatfformSDK\Pattterns\WWEtap
pa\Source\obj\Release
La
definición
de
va
ariables
s
se
realiza
con
el
uso
de
la
librería
ch.Genexus
s.Common.Variable la cual dispensa los tipos de datos que soporta Ge
eneXus.
Artec
2.7.1.
Clase WWEtapaUp
W
pdateTrans
saction
Esta clase tiene como
c
objetiv
vo actualizarr a la transac
cción cuando
o esta sea affectada por el
Patte
ern, los camb
bios que sufrre la transac
cción, son bá
ásicamente la asignación
n de reglas, creación
de ev
ventos, creac
ción de varia
ables.
2.7.1.1.
Variables
s
L
La declaraciión de varia
ables en la transacción
n se hace en
e un métod
do que recibe como
p
parámetros una instanciia del archivo WWEtapaS
Setting, y la instancia de
e la Transacc
ción.
p
private stat
tic void Upd
dateVariable
es(WWEtapaSet
ttings setti
ings, Transa
action trans
saction)
C
Como regla general parra la declara
ación de variables se debe declara un atributo
o de tipo
V
Variable en donde
d
se pasa como parrámetros la transacción,, y el nombre
e de la varia
able.
V
Variable var
r = AddVaria
able(transac
ction, "IsAut
thorized");
Y a continua
ación se le as
signa un tipo
o de dato a la
l variable.
Boolean
Variable var = AddVa
ariable(transaction, "Is
sAuthorized"
");
Type != eDBT
Type.Boolean)
if (var.T
va
ar.Type = eD
DBType.Boole
ean;
Varchar
Variable
e uEc1 = Add
dVariable(transaction, "
"usEncrypt1"
");
if (uEc
c1.Type != eDBType.VARC
e
HAR)
{
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 131 -
PAT
TTERN WW
WETAPA
uE
Ec1.Type = eDBType.VARC
e
HAR;
uEc1.Length
u
= 64;
}
Characte
er
Variable uEc1 = AddV
Variable(transaction, "u
usEncrypt1")
);
c1.Type != eDBType.CHAR
e
RACTER)
if (uEc
{
Ec1.Type = eDBType.CHAR
e
RACTER;
uE
uEc1.Length
u
= 64;
}
L
Las variables
s que deriva
an de Estructturas de Dattos SDT, o de
d funciones propias de GeneXus
c
como WebSession se de
eclaran pasa
ando como parámetros la transacciión, el nomb
bre de la
v
variable y el Tipo del cua
al deriva
AddVariab
bleWithType(
(transaction, "TrnContex
xt", "Trans
sactionConte
ext" );
AddVariab
bleWithType(
(transaction, "PermsItem
m", "Permiso
os.PermisosI
Item");
Las variables
s que derivan de un atributo se dec
claran mane
era diferente
e. Y en el
A
método AddBasedOn
Variable,
priva
ate
static
c
void
AddBasedOnV
Variable(Tra
ansaction
Trans
sactionAttribute baseAtt
tribute) {
transaction
n,
string
name,
Variable var = AddVa
ariable(transaction, nam
me);
AttributeBas
sedOn != baseAttribute)
if (var.A
var.Attri
ibuteBasedOn
n = baseAttr
ribute;
}
E
En la secciion de variiables de la transacció
ón se crearon las variables, usE
Encrypt1,
u
usEncrypt2, PermitUpda
ate, PermitDe
elete, PermittView, PermitInsert, Perrms y Permsitem.
2.7.1.2.
Rules
L
La actualizacion de las reglas es una
u
parte en
e la que no
o se realizo
o ningun cam
mbio, un
a
atributo nec
cesario en esta
e
seccion
n es el Rule
es que es de
d tipo Strin
ngBuilder, y es este
a
atributo sob
bre el cual se
s agrega el código que
e se aloja en
e la seccion de las rules de la
ttransacción.
S
Si es el caso
oq ue unicam
mente se agrega un textto se utiliza la funcion rules.Append
d, cuando
s
se va a obte
ener un atrib
buto de la transacción se
s utiliza la funcion rules.AppendFo
ormat, la
c
cual establec
ce al atributo que contie
ene la inform
macion de la parte que se
e va a agreg
gar.
foreach (Tr
ransactionAtt
tribute trnA
Att in trans
saction.Stru
ucture.Root.PrimaryKey)
rules.App
pendFormat("
", in:&{0}", trnAtt.Name
e);
E
El código que
q
esta alojado en los
l
parentesis agrega la variable
e primaryKe
ey de la
ttransacción.
F
Finalmente el
e método in
nvoca al método AppendRules que crrea el bloque
e de la regla
as.
AppendRul
les(transact
tion, rules.ToString());
;
2.7.1.3.
Events
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 132 -
PAT
TTERN WW
WETAPA
E
El meto que
e afecta a los eventos es el Upda
ate Events, a traves de
e llamado s a otros
m
métodos gen
nera el códig
go que está alojado en la
a parte de lo
os eventos de la transacción.
private sta
atic void UpdateEvents
U
(WWEtapaInst
tance instance, WWEtap
paSettings s
settings,
Transaction
n transaction
n)
Event AfterTransactio
on
E
El eventos AfterTransa
action decla
ara una atrributo eventCodeAfterT
Trn que es de tipo
S
StringBuilder, mediante el cual tom
ma todas las lineas de có
ódigo que se
eran agregad
das en el
b
bloque del evento.
e
private
static
void
d
UpdateEv
ventAfterTrn
n(WWEtapaInstance
n, BasicParse
er parser)
transaction
inst
tance,
Tra
ansaction
eventCodeAf
fterTrn.Appen
ndLine("If (&Mode
(
= Trn
nMode.Delete
e and not
&TrnContext
t.CallerOnDel
lete)");
C
Con la siguie
ente sentenc
cia se invoca
a al objeto se
election de la transaccion.
eventCode
eAfterTrn.Ap
ppendLine(String.Format(
("\t{0}.Call
l()",
emergency
yRedirection
n.ObjectName, emergencyR
Redirection.
.Parameters.
.List()));
F
Finalmente la variable eventCodeAftterTrn pasa al método Update
U
code Event el cua
al agrega
e
el bloque de
el evento en la transacc
ción, este método crea el
e inicio del evento y el final del
m
mismo (Even
nt, EndEvent)
UpdateEve
entCode(pars
ser, new string[] { "Aft
ter", "Trn" },
eventCode
eAfterTrn.To
oString());
E
Event Startt
private static
s
void UpdateEventStart(WWEtap
paInstance instance,
i
WW
WEtapaSettin
ngs
settings,
, Transactio
on transaction, BasicPar
rser parser)
)
E
El evento Sttart fue el qu
ue mas cambios genera en la transa
acción, dentro de este evento
e
se
h
hace llamadas a las plantillas de se
eguridad y de
d permisos,, su forma de
d elaborar el
e código
d
de los eventtos es simila
ar al del Afte
erTransacctio
on, declara un atributo de tipo Strin
ngBuilder
p
para poder ir recolctand
do sentencia
as, este atributo se llam
ma eventCod
deStart, mediante el
q
que utilizamos la funcion
n Append, AppendLine como
c
en el evento AfterT
Transaction.
P
Para inserttar el cód
digo
prov
veniente de
e un Tem
mplate se invoca al método
A
AppendTemp
plateOutput,, pasando como
c
parám
metros el no
ombre del template y el
e objeto
p
parámeters. Cabe mencionar que no
o se debe ag
gregar la exttencion de lo
os Templates
s.
if (sett
tings.Securi
ity.Enabled)
{
A
AppendTempla
ateOutput(ev
ventCodeStar
rt, "SubCheckSecurityTrn
n", paramete
ers);
Ap
ppendTemplat
teOutput(eve
entCodeStart
t, "Permisos", parameter
rs);
}
A
Al final este invoca nuev
vamente al método UpdateEventCo
ode que es el
e que se en
ncarga de
e
etablecer el bloque del evento.
e
UpdateEve
entCode(pars
ser, new string[] { "Sta
art" }, even
ntCodeStart.
.ToString());
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 133 -
PAT
TTERN WW
WETAPA
M
Método App
pendTempllateOutput
E
Este método
o recibe el no
ombre de la plantilla y enseguida
e
la completa co
on la extens
sion de la
m
misma , a co
ontinuacion crea el Path en donde se
e encuentra la plantilla y conjuntam
mente con
ttodos los parametros ne
ecesarios crrea un atribu
uto output, que
q
es el qu
ue implanta el código
e
en el evento
o.
private static
s
void AppendTemplateOutput(St
tringBuilder
r stringBuil
lder, string
g
templateN
Name, Genera
ator.GeneratorParameters
s parameters
s)
E
En la Clase WWEtapaUp
W
pdateTransac
ction estos son
s
los méto
odos en los que
q
más inte
ervencion
p
por parte de
el usuario qu
ue trabaje co
on los Patterrns existe. Las
L
demás métodos
m
no varían
v
en
n
nada y sirve
en la conform
mación total de la transacción.
2.7.2.
Clase ActionEleme
A
ent
endiendo de las necesida
ades de la organización
o
n puede dars
se el caso que las trans
sacciones
Depe
reciban algún tip
po de dato co
omo paráme
etros de entrada y este se establezc
ca por están
ndar para
todas
s las transac
cciones, el prroblema radica en que no
n se pueden
n manipular las reglas ni eventos
de la
a transacción, una vez que esta sea
s
afectada
a por el Patttern, enton
nces necesariamente
deberíamos modificar los mé
étodos en la
a clase WWE
EtapaTransactionUpdate
er, pero de la misma
era los obje
etos que in
nvocan a la
a transacció
ón deberían pasar los parámetros
s que la
mane
trans
sacción recib
be. Entonces
s el primer objeto
o
que in
nvoca a la trransacción es
e el objeto Selection
y com
mo habíamos
s visto en la plantilla res
spectiva esta
a o implementaba directamente la sentencia
s
con la que se llamaba a la transac
cción, dicha
a sentencia se encuen
ntra en el método
a clase Actio
onElement, mediante
m
el objeto
o
AddParameter ag
grega las
SetSttandardParameters de la
sente
encias que se
e necesiten, por defecto
o el valor que se agrega es el modo en el que se
e llama a
la tra
ansacción. Es
sa parte no se
s debería cambiar.
c
AddParameter(" ");
2.7.3.
Clase ParameterE
P
Element
En esta clase po
odemos manipular el método
m
Rule
eforView que obteniend
do una insta
ancia del
Método concaten
nate, obtiene
e el código para la asignación de la regla
r
al obje
eto View. Me
ediante la
decla
aracion de un
n atributo de
e tipo String
gBuilder, este toma la va
ariable prima
aryKey y la devuelve
al mé
étodo el cuall la invoco.
StringBui
ilder sb = new
n
StringBu
uilder(100);
fo
or (int i = 0; i < Coun
nt; i++)
{
mPrefix);
sb.Append(item
b.Append(useV
Variables? Variables.Va
V
ariableName(
(this[i].Nam
me) :
sb
th
his[i].Name);
;
if (i < Count
C
- 1)
sb
b.Append(", ");
}
Nuev
vamente en el método R
RuleforView,, a través del atributo parameter se
s puede as
signar las
variables necesarrias para arm
mar la regla..
2.8.
Módulo de
d Seguridad
El m
módulo de seguridad para
p
la valid
dación de objetos
o
y us
suarios está
á dotado co
on varias
validaciones e interacciones
s con la base
e de datos que
q
devuelve
en informació
ón a los obje
etos.
esta sección se describirrá las partes
s más importtantes en la validación de
d los usuarios.
En e
Pro
ocedimiento
o IsAuthorizedWWE este
e
procediimiento se encarga
e
de hacer la verificación
del usuario y el
e objeto de
esde el cual el usuario hace la pettición de ing
greso. Devuelve una
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 134 -
PAT
TTERN WW
WETAPA
variiable boolea
ana que iden
ntifica si el usuario solicitante está
á autorizado
o sobre el objeto.
o
El
usuario se carga desde el SDT
S
Context..
Pro
ocedimiento
o PermisosV este proce
edimiento re
ecibe las varriables con el
e nombre de
el objeto,
el u
usuario y el código de rol, y veriffica los permisos que tiene el objjeto para es
se rol, y
dev
vuelve una variable que indica si el usuario
u
solicitante es adm
min o no, y cuando el us
suario no
es a
admin recopila en el SDT
T permisos los permisos que tiene asignado el objeto
o
para ese
e rol.
Pro
ocedimiento
o ListProgrrams el procedimiento
o ListProgram
ms es usado
o para recopilar en el
SDT
T ProgramNa
ames todos los objetos a los que pue
ede accederr el usuario solicitante.
s
&name = !"TCProced
dencias"
&descrip
ption = "Ma
antenimient
to Proceden
ncias"
&link = TCProceden
ncias.Link(
()
Do 'AddP
Program'
SetConte
ext(&Contex
xt)
Sub 'Add
dProgram'
&IsAutho
orized = Tr
rue
IsAuthor
rized.Call(
(&name, &Is
sAuthorized
d)
If (&IsA
Authorized)
)
&ProgramNam
me = new Pr
rogramNames.ProgramNa
ame()
&ProgramNam
me.Name = &descriptio
on
&ProgramNam
me.Description = &nam
me
&ProgramNam
me.Link = &link
&ProgramNam
mes.Add(&Pr
rogramName)
Endif
EndSub
SMOColection es un data provider, es
ste objeto presenta una estructura ideal para el
e manejo
SDT recursiv
vos, este objjeto fue el adecuado parra armar el árbol
á
con los
s sistemas módulos
m
y
de S
obje
etos, la ta
abla SMO contiene to
odos los a
atributos ne
ecesarios pa
ara armar el SDT
Tree
eNodeCollec
ction.
TreeNode
eCollection
n
where sm
moId>0
where ti
ipos = 'Sis
stema' or tipos
t
='Mod
dulo' or ti
ipos = 'Obj
jeto'
where sm
moIdPadre= &smoIdPadr
re or (&smo
oIdPadre=0 and smoIdP
Padre.IsNul
ll() )
{
Id = str
r(smoId)
Name = smoNombre
s
Link = smoLink
s
//Use th
he Tree Nod
de Click ev
vent now
Nodes = SMOColecti
ion.udp(smo
oId)
}
Hom
me: Es el Web
W
Pannel principal que
e se visualiz
zara cada ve
ez que se in
ngrese al sis
stema, la
partte más impo
ortantes de este
e
objeto es
e la de los eventos.
e
Eve
ent Load enc
cripta el usuario y el password y co
onjuntamente con el cód
digo del rol invoca al
Tree
e View de ob
bjetos.
Event Lo
oad
if not &Context.Us
&
ser.IsEmpty
y()
&Usua
arioEncrypt
t1 = getenc
cryptionKey
y()
&Usua
arioEncrypt
t = encrypt
t64(&Usuari
io,&Usuario
oEncrypt1)
&Pass
sWEncrypt = getencryp
ptionKey()
&Pass
sW1Encrypt = encrypt6
64(&Passwor
rd,&PassWEn
ncrypt)
TreeView.Call(&UsuarioEncrypt, &UsuarioEn
ncrypt1, &P
PassW1Encry
ypt,
&PassWEn
ncrypt, &Us
suarioRol)
endif
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 135 -
PAT
TTERN WW
WETAPA
EndEvent
t
Eve
ent Enter: este
e
evento verifica que los datos de
el usuario se
ean los corre
ectos, busca
a la fecha
de caducidad del rol, alm
macena las variables en
e el SDT Context, mediante
m
el uso del
procedimiento setContext.
s
Event En
nter
&usrX = ''
&session
n.Destroy()
)
for each
h
where usNam
me = &Usuar
rio
for each
where
e activo = True
if (F
FechaInicio
o <= &Today
y and Fecha
aFIn >= &To
oday) or (u
usName
= 'admin
n')
&realPsw
w = Decrypt
t64(usEncry
ypt1,usEncr
rypt2)
if &Real
lPsw = &Pas
ssword
&u
usrX = usNa
ame
&U
UsuarioRol=
= rolId
endif
endif
f
endfor
endfor
if &usrX
X <> ''
&Context.User = trim(&usrX)
&Context.Rol = &Usuar
rioRol
&Context.Password=trim(&Passwor
rd)
SetContext(&Context)
else
e
msg('Usuar
rio/Passwor
rd Inválido
o.')
endi
if
EndEvent
t
We
eb Pannel TreeView:
T
e
este
panel re
ecibe el usuario, el pass
sword y el rol
r los des encripta y
los almacena en
e el SDT Context,
C
y a continuació
ón procede a cargar ell árbol en el
e evento
tree
eview1.Node
eClicked.
Event St
tart
&Con
ntext.User = Decrypt6
64(&Usuario
o1Encrypt, &UsuarioEn
ncrypt)
&Context
t.Rol = &Us
suarioRol
&Context
t.Password = Decrypt6
64( &PassWe
encrypt1, &PassWEncry
&
ypt)
SetConte
ext(&Contex
xt)
&treeNod
deCollectio
onData = SM
MOColection
n.udp(0)
EndEvent
t
Event tr
reeview1.No
odeClicked
&smoNomb
bre = &sele
ectedTreeNo
ode.Name
EndEvent
t
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 136 -
ANE
EXO
M UAL DE
MANU
D USUAR
U
RIO
D
DEL
P
PAT
ANEXO E
A
MIGRA
ACIÓ
ÓN DE
EL MODEL
LO WEB
W
DE
EL SIIGECOM
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
MIGR
RACIÓ
ÓN DE
EL MO
ODEL
LO WE
EB DE
EL
SI
IGECO
OM
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 138 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
Historia
al de Revisio
R
nes
Fech
ha
Versión
De
escripción
n
Autor
28/0
07/2011
1.1
1
De
etalle del proceso
p
de conversión
n
de
e la base de conocimiento de
el
SIGECOM.
Patricio Cuenca
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 139 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
T
Tabla
de Con
ntenido
os
1.INTROD
DUCCIÓN ................................................................................. 141 1..1. Prop
pósito .....................................................................................................................141 1..2. Alcan
nce del Document
D
to .....................................................................................141 1..3. Defin
niciones, acrónimo
os y abre
eviaturas ....................
.
.............................141 1..4. Referencias ................................................................................................................141 1..5. Visió
ón Genera
al del Doc
cumento ......................................................................141 1..6. Supo
osiciones y Depend
dencias........................................................................141 2.M
MIGRAC
CIÓN DE
EL MOD
DELO WE
EB DEL SISTEM
MA DE
GES
STIÓN COMER
RCIAL DE LA EM
MPRESA
A MUNIC
CIPAL
ETA
APA EP.. .................................................................................................... 142 2..1 Análisis de los objetos
s a ser migrados
m
...................................................142 2..2 Defin
nición de objetos a ser mig
grados .......................................................142 2..3 Corre
ección de
e errores en GeneX
Xus x ev1
1 ...............................................146 2..4 Errorres porqu
ue no se generan
g
l
las
clases
s CS. ......................................146 2..5 Refin
namiento
o de funciones..............................................................................149 2..6 Camb
bios pasa
ando a SQ
QL Serverr 2008 R2
2 ...............................................151 2..7 ERRO
OR con Ge
eneXus X Evolutio
on1 U5. .....................................................151 3.A
APLICAC
CIÓN DEL PATTERN ........................................................ 151 3..1 Corre
ección de
e errores ....................
.
.....................................................................152 CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 140 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
3. INTRODUCC
CIÓN
3.1. Propósito
Describir el proceso de migración
D
m
de
el modelo Web del Sistem
ma de Gestión comercia
al de
lla empresa municipal
m
ET
TAPA EP.
3.2.
Alcance del Docum
mento
D
Detallar el proceso
p
de an
nálisis de ob
bjeto a ser migrados,
m
el proceso de m
migración,
c
cambios en la KB, y cam
mbios en los objetos después de ser migrados. Y la aplicació
ón del
P
as transaccio
ones seleccio
onadas.
Pattern en la
3.3.
Definicio
ones, acrón
nimos y abr
reviaturas
3.4.
Referenc
cias
http://www22.gxtechnical.com
m/portal/hgxpp001.aspx?15,10,533,O,S,0,PAG;CON
NC;53;1;D;244200;1;PAG;,
http://ealmeeida.blogspot.com
m/2008/07/migrando-de-genexus--90-genexus-x.httml
3.5.
Visión General
G
del Documento
o
Proporcionar la docu
umentación que
q
sirva como guía parra posteriore
es conversion
nes
E
e los distinttos Sistemas
en
s de ETAPA EP.
desde GeneXus 9 a GeneXus X Evolution1
3.6.
pendencias
s
Suposiciiones y Dep
La empresa Etapa Ep., provee
erá la base de conocim
miento con el modelo a ser
migrado
o.
ción a los errores
e
que se presente
en será la documentaci
d
go en
ón del códig
La soluc
donde se
e encuentra la inconsiste
encia y/o la eliminación de código.
esolverán lo errores en el
e SIGECOM que no teng
gan que ver con la Conve
ersión
No se re
a la vers
sión Evolutio
on.
ebas serán realizadas con
c
el perso
onal de Etap
pa ya que ellos
e
son los que
Las prue
conocen el funcionam
miento del sistema.
s
Los cam
mbios en el Pattern que tengan
t
que ver
v a cambio
o de funcion
nalidad no es
starán
contemp
plados en el proyecto de
e tesis.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 141 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
MIGRACIÓN
N DEL MODE
ELO WEB DEL
D
SISTEM
MA DE GESTIÓN COMER
RCIAL DE L
LA
4. M
E
EMPRESA MUNICIPAL
M
ETAPA EP.
2
2.1
Análisis de los objetos
o
a ser
s
migrado
os
En
n primera instancia el
e proyecto
o planteaba
a la migra
ación de
varios mó
ódulos
pe
ertenecientes a distintos
s sistemas que conforma
an el SIGECO
OM. Debido a la problem
mática
qu
ue se iba a generar
g
al separar
s
los módulos,
m
y por
p la poca o casi nula funcionalidad que
se
e iba a tene
er del sistema se plan
nteó migrar todo el mo
odelo Web del SIGECO
OM, la
ap
plicación del Pattern se realizara
r
a lo
os módulos que presenten mayor niivel de nece
esidad
po
or parte de la Empresa
2
2.2
Defin
nición de objetos a se
er migrados
s
Muchos sistem
mas nuevos que se están
n desarrollan
ndo en ETAP
PA son construidos en en
ntorno
W
Web, debido a esto es ne
ecesario inte
egrarlos al SIGECOM
S
po
or eso se op
ptó migrar to
odo el
modelo Web del
d SIGECOM
M.
d todo el modelo
m
consis
ste en conve
ertir la KB de la versión 9.0 a
El proceso de migración de
la X Ev1, la
a corrección de errores en la gene
eración se realizaran
r
a todo el sistema,
mientras que la refinación
n de módulo
os se harán a los definid
dos por el personal de E
ETAPA
EP
P.
1.
Respald
do de la KB, es necesarrio contar co
on una copia
a de todo ell directorio de
d del
sistema
a. Este proce
eso es muy importante ya que se presenta
p
un error al trattar de
abrir la KB en Genexus X Ev1,, indicando que no se puede
p
abrir el directorio
o si es
que no existe una copia
c
de la misma.
m
2.
Limpiar la KB. Este proceso ha
ace referenc
cia a la eliminación de los modelos que
q
no
n a migrar y los arc
chivos, los modelos que
q
fueron eliminados
s son
se van
SIGECO
OM_Catalogo
o, SIGECOM
M_PrePro, SIGECOM_Pre
eProWin, SIIGECOM_Pro
oWeb,
SIGECO
OM_Win, SIG
GECOMWeb_
_Prod. Y todo
os los archivos con exten
nsión ari.
EL
L siguiente paso
p
es verifficar los obje
etos que teng
gan errores en la KB Original, realiz
zando
un
na nueva especificación y generació
ón de toda la
a kb. En es
ste punto se
e detalla el listado
de
e los objetos que fuero
on modificad
dos y/o elim
minados de la
l KB original. Debido a que
prresentaban errores
e
y no permitían la
a compilación de la KB.
E
objeto mostraba un error en la actualizac
ción de la ta
abla, por
ORBTIPIN. Este
co
omentó la lín
nea que hacíía referencia a ese atribu
uto ORBTIPIN = &ORBTIIPIN
e
eso
se
CTORBA. Nuevamente
N
e el error se
e generaba en
e la actualización de la
a tabla y en
n este
AC
prrocedimiento
o se comentó
ó la línea 10 ORBTIPIN = &ORBTIPIIN
nto APAjustt. El error co
onsistía en que
q
únicame
ente se había
a creado el objeto
o
Prrocedimien
pe
ero no tenía ninguna fun
nción y era necesario
n
qu
ue exista un panel la solu
ución fue eliminar
el procedimien
nto, existen muchos pro
ocedimientos
s con este errror y se los elimino.
nto BorraMi. Como en el procedimiento anterio
or genero el mismo prob
blema
Prrocedimien
y se eliminó este
e
objeto.
Prrocedimien
nto CamNom
m1. Se pro
oducía un error en la variable
v
&CliCod y el prroceso
qu
ue se siguió fue comenta
ar la línea 6 &CliCod = CNTCLI.
C
nto Cantone
es. Generab
ba un error en
e un bucle for
f each, el error
e
se generaba
Prrocedimien
en
n la línea 2 WHERE CAN
NTONPRVCO
OD = &XCAN
NTONPRVCO
OD, en este procedimien
nto se
co
omentó todo el código.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 142 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
Prrocedimien
nto Comparra. Se comentaron las líneas 43 y 44
&N
N1=CONCAT
T(&N1, '"', '')), y el for ea
ach de la línea 55 a la 61.
&N
N1='"'+&GXP
PZON,
Prrocedimien
nto CPYDOC
C. Generaba
a un error en
n el tipo de datos
d
de la variable
v
WsE
Ebiling
y el procediimiento a seguir fue eliminar la variable y comenta
ar la línea 317
strResultado
o=&WsEBiling.ProcesarDocumentoTrributario(&sttrXML).
&s
Prrocedimien
nto DETLLAMADAS. Ell error se prrodujo debid
do a que la variable srv tenía
un
n tipo de datto erróneo, se
s eliminó la
a variable srv y se come
entaron las lííneas 1 &Tellefono
y 57 &srv.s
sendMail('ETA
APA EP-Detalle de LLamadas pgue
errer@etapa
a.net.ec', &c
cliema
,'','ESTADO DE CUENTA-D
DETALLE DE LLAMADAS ',&mesg).
nto GesOrde
en. El error se producía
a en el where del for each debido a ese
Prrocedimien
inconveniente
e se comentó
ó todo el cód
digo.
nto GRabarI
Instalacion
n. El error se
e producía en
e la actualiz
zación de la tabla
Prrocedimien
a través de la
as variables, se comenttaron las lín
neas 94, 96,, 97, 98, 99
9, 100, 101,, 109,
11
19, 121, 122
2, 123, 124, 125, 126.
nto GRDETA
A. Se elimin
nó el código existente en el source, el procedim
miento
Prrocedimien
ta
ambién se eliiminó.
Prrocedimien
nto HabWIffi. Producía
a un error en
e la asigna
ación de un valor al atributo
Va
allni, se com
mentó la línea
a 24.
nto IDsRedB
Ba. Se comentó el for each
e
de la lín
nea 1 a la 16
6.
Prrocedimien
Prrocedimien
nto INGINSM. Se come
entó todo el código del source
s
nto IngInsP
Pool. Se com
mentó la líne
ea 9 ModSerrie=&ModSerrie
Prrocedimien
nto IngModI
Ins. Se com
mentó la líne
ea 2 ModSerie=&ModSerrie
Prrocedimien
Prrocedimien
nto INGserM
Mod. Se com
mentó la líne
ea 2 ModSerrie=&ModSerrie
nto Ins4Tlff.
Prrocedimien
&IItlIdAux;
Se com
mentó la línea dos de las condiciones INSID
D >=
nto Internac
cionales. Se
S comentó todo
t
el códig
go.
Prrocedimien
Prrocedimien
nto Kardeud
das.
Se com
mentó la líne
ea 8 VALORG
GX = &Valorr.
Prrocedimien
nto Migconv
vRur. Produ
uce un error en la línea 378
3
y 379, se
s comentaro
on las
sig
guientes líne
eas:
&
&AUXdate = CONCAT (su
ubstr(&OCUF
FEC,7,2),sub
bstr(&OCUFE
EC,5,2), '/'),
&
&AUXdate = CONCAT (&A
AUXdate,sub
bstr(&OCUFE
EC,3,2),'/')
E
El if de la línea 397 también genera un error se
e procedió a comentar todo
t
el códig
go del
bloque if.
Prrocedimien
nto MigraPredios. Se comentó tod
do el código..
Prrocedimien
nto MiGRUB
BE. Se elim
minó y se de
ebe quitar la referencia en
e la línea 14
1 del
prrocedimiento
o MigGeneral.
Prrocedimien
nto MIGREN
NERAL. Se borró
b
la llam
mada al procedimiento Migrube
M
de la
a línea
14
4.
nto SWNSoA
Ac. Se agre
egaros valore
es numérico
os a los atrib
butos SOLNUE en
Prrocedimien
las líneas:
3 where SOLN
NUE = 0
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 143 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
L
La línea 24 SOLNUE
S
= 1,
uitaron las comillas
c
del número
n
1 PActNumSol.C
Call(&SolNum
m,1).
Línea 29 se qu
nto SWNSOREL se asignó un valor numérico al atributo SO
OLNUE de la
a línea
Prrocedimien
3 ya que tenía
a asignado un
u número en formato ch
har.
nto ObtTPro
oceso se com
mentó todo el
e for each de
d la línea 37
7
Prrocedimien
fo
or each ORDT
TIPID.
Prrocedimien
nto PagAntC
Convenios se comentarron las línea
as 4, 8, y el
e NEW de la
a línea
14
4 la 23.
nto Parejas se comentaron las línea
as 3 a la 11.
Prrocedimien
n los prrocedimienttos RDeiI
InstEdu, RACatastro
R
Inconsisten
ncias,
, RAPLstI
En
RD
DeuTlf, RA
APIncPasIn
nstalacione
es. Se co
omenta la línea 25 de las Rules
Errror_Handlerr('Maneja_Errror');
Prrocedimien
nto Tratel se
e comentó la
a línea 24, la
a línea 25, la
a línea 27, 28, 29 y la 30
0.
Re
eporte CarC
Clientes mostraba
m
el error
e
en las líneas 14 y 25 y el pro
oceso a segu
uir fue
co
omentar dich
has líneas de
e código &V
VAL_MENOS30 = CCMEN
NOS30 y
&V
VAL_TMENOS30 += CCM
MENOS30.
n error en las reglas es
s cual estab
ba ubicado en
e las
Trransacción FNMSRI. Contiene un
lín
neas 16 y 17
7, el proceso
o a seguir fue
e comentar las
l líneas.
errror('Tipo
de
Identifficación
lenght(ltrim(F
FNMCRP))<>
>10;
de
Identifficación
errror('Tipo
lenght(FNMCR
RP)<>13;
IN
NCORRECTA')
If
FNMTipCRP
=
'CED'
AND
IN
NCORRECTA')
If
FNMTipCRP
=
'RUC'
AND
Trransacción INFPAGO. Se comentó
ó la línea 11 de las regla
as
&T
TotalPago=S
SUM(ValorPa
ago);
n.
Trransacción Inspeccion
ag
gregó el rojo
o.
Se bajó a diseño, se
s cambió las propieda
ades del WC
C y se
e eliminó esta transacció
ón.
Trransacción INTAR4 Se
Trransacción Grupos. Se agregó en las reglas la
a línea siguie
ente
p
parm(in:&parrId, in:&Mod
de,in:TInsCo
od, in: SupGrruCed, in: DepID
D
);
En
n lugar del parm
p
que exiistía parm(&
&parId, &Mod
de);
Ad
demás se ag
gregaron las
s grillas al Web
W
Form co
on los mismo
os atributos de las grilla
as del
W
Win Form.
Trransacción TIMCHK. Se
S agregó en
n las reglas la siguiente línea.
p
parm(in:TIMIID, in: TIMFC
CH, in:TIMHOR );
o. Se comen
ntó la línea 4 de las rule
es.
Trransacción TipServicio
BloqNum = &b
bloqnum IF NOT Insert;
Trransaccion desGrp. Nos ubicam
mos en la parte de We
eb Form, en
n la pestaña
a edit
ha
acemos clic en
e Create De
efault.
sacción, nos
s ubicamos en la
Trransacción pruGRP. Abrimos el Web Form de la trans
pe
estaña edit seleccionam
mos créate de
efault.
oRIAEN. Se eliminó es
ste objeto.
Ho
GX
X190. Se comentó
c
las
s reglas, las condiciones
s y se elimin
nó la column
na DesZona de la
grrilla.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 144 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
W
Web Panel m
mCupos. Se eliminaron
n las column
nas de la grilla, solamen
nte se mantu
uvo la
co
olumna OP de la variable
e &op.
W
Web Panel GetDeudaCl
G
c
la líínea de la ru
ule.
iente. Se comentó
pa
arm(in:&iCed
dulaRUC, out:&DeudaCliiente);
W
Web Panel Mig5Intar.
M
En la grilla dejar
d
las colu
umnas.
Ca
ategoría, código tarifa, forma pago
o, valor Id, Descripción Tarifa, Id pago,
p
valor costo
ac
ctual.
W
Web Panel EnvCorreos.
E
. Generaba
a un error en
n la variable srv, se eliminó dicha va
ariable
y se comentó las líneas 18
8 y 19 de los
s eventos.
&s
srv.sendMaill('jguaman@
@etapa.net.e
ec',&correo,'','DETALLE DE
D AVISO DE
E PAGO',&me
esg)
&s
srv.sendMaill('pagos@eta
apa.net.ec',&
&correo,'','DETALLE DE AVISO
A
DE PA
AGO',&mesg
g).
W
Web Panel MordG.
M
Se eliminaron
e
de la grilla las columnas que tienen la palabra togo.
W
Web Panel MPareja.
co
olumnas Op y Estado.
Se
elimin
naron todas las column
nas de la grilla
g
exceptto las
W
Web Panel PruEmp.
P
La
a grilla únicamente que
edo con las columnas TR
Raced y TRa
anom,
las demás fue
eron eliminad
das.
DS
SKFACA Atttribute(s).. DIRLOCA is (are) deffined in tab
ble DSKFA1 but not in Data
view DSKFAA
A. Se elimina
aron las transacciones.
gCosV. Se eliminó.
e
Ell objeto Mig
Ell objeto Mig
gInta. Se e
eliminó.
Ell objeto Mig
graHo. Se eliminó.
e
Objeto OrdenPago. Se eliminó.
ChaUlt. Se comentó
c
tod
do el for de la
a línea 4 a la
a 30.
OrdPagBanC
Objeto SWIn
nsta. Se elimino
Ell objeto Títu
ulos. Se eliiminó.
Ell objeto Usu
uario. Se eliminó.
n la Tabla ApNvLector
A
res. Se cam
mbió el nomb
bre del índice
e IapnvLecto
ores por Iapn
nv1.
En
n la Tabla TRAAR7.
T
Se
e renombro el índice ITR
RAAR7 por IT
TRAR7.
En
Ha
aciendo los cambios
c
a to
odos los obje
etos mencionado se logró hacer una
a regeneraciión de
to
oda la KB en Genexus 9 y por ende se pudo abrrir la base de
e conocimien
nto en GeneXus X
Ev
v1.
A continuación
n de este prroceso se debieron arreg
glar los errorres que géne
ero la conve
ersión,
y algunos que
e no los tom
mo en cuenta
a el proceso de conversió
ón.
Imagen 2.2.1
2
Tareas a cumplirse
c
en el
e proceso de co
onversión.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 145 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
Imagen 2.2.2 Mensaaje de culminacción de la convversión.
2
2.3
Corre
ección de errores
e
en GeneXus
G
x ev1
W
WwIntDep. Se comentó todo el cód
digo de las conditions.
c
W
WmIngSup.. Se comenttaron las líne
eas 75 y 76.
&
&axlCod = nu
ullvalue( AxlCod )
c
call( TAxlT, &axlCod,
&
&Mo
ode )
T
También las líneas 54 y 62
6 y la 68
A
Además se co
omentaron las líneas 3 y 4 de las co
ondiciones.
B
Banzon1. Se comentó el call de la línea 8 &xCod
&
= AxlCod, la líne
ea 12 Call(T
TAxlT,
A
AxlCod, 'DSP
P') la línea 22 &xCod = NULLVALU
UE(AxlCod), la línea 2 de las rules y las
c
condiciones AxlDes
A
.LIKE
E. &xDes;
T
TRAAR6 para soluciona
ar este problema se tuv
vo que camb
biar los nombres a los ín
ndices
y
ya que debid
do a que esttá establecido para una longitud
l
de 6,
6 se duplica
aban con otrras.
T
TRAAR1 se cambió el nombre del ín
ndice ITRAAR
R
L
Los índices cambiados
c
fu
ueron, el ITR
RAAR101 por TRAR11, eID_XE00001
e
1 por IDXE0
01
E
En la conve
ersión a la versión Evo
olution no se
s copiaron los work panel
p
BanZo
on1, y
m
migSup, los cuales se co
omentaron las líneas de
etalladas con
n anteriorida
ad, se hizo un
u xpz
y se los carg
go correctam
mente en GXX
X EV1.
E
Ejecutar Re
ebiuld All
A
Al ejecutar el
e rebuil all se
s genera un
n error en la librería IBM.Data.DB2.iS
Series.dll'
e
error
CS0
0006:
No
se
pue
ede
encontrar
archivo
adatos
el
de
meta
''bin\IBM.Datta.DB2.iSerie
es.dll'.
e
error
CS0
0006:
No
se
pue
ede
encontrar
de
meta
adatos
archivo
el
''bin\GeneXus.Programs.Common.dlll'.
S
Solución
Files
C
Copiar la librería IBM.Data.DB2
2.iSeries.dll
C
en la dirección C:\Program
((x86)\Artech
h\GeneXus\G
GeneXusXEv
v1\gxnet\bin para aplica
aciones web y en C:\Pro
ogram
F
Files (x86)\A
Artech\Gene
eXus\GeneXu
usXEv1\gxne
etwin\bin para aplicacion
nes win, así como
e
en la carpeta
a bin del mo
odelo corresp
pondiente.
E
En la transa
acción TDB
BBORRAR. Se agregó la
a siguiente regla.
r
p
parm(in: DB
BLinea);
2
2.4
Errorres porque no se gene
eran las cla
ases CS.
========
=== PSWCalle
esPorNombre Compilation started
s
======
=====
gxexec "C:\Models\SIGE
ECOMX\SIGE
ECOM_ProWe
eb\web\bldapswcallespornom
mbre.cs" r:GxBaseB
Builder.dll -arg
g:csc="C:\Wind
dows\Microsoft.NET\Framework\v2.0.507
727\csc.exe"
No se pudo encontrar ell archivo
'C:\Modelss\SIGECOMX\\SIGECOM_P
ProWeb\web\bldapswcallesp
pornombre.cs''.
PSWCallesPorNombre Compilation
C
F
Failed
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 146 -
MIGRACIO
M
ON DEL MO
ODELO WEB
DE
EL SIGECO
OM
S
Se abrió el procedimien
nto PSWCalle
esPorNombre
e y se le hiz
zo un rebuild all y se ha
ace el
m
mismo paso para los sig
guientes obje
etos.
PSWDatR
RedTe
PswNueC
Cli
PSWPaise
es
PSWProfe
esiones
PSWProvincias
PSWVARIIOS
PSolRanA
AutImp
PSWAcDa
aRei
PSWGrbInstalacion
PSWGrInst
PSWInsCli
mail
PEnviarem
PSWAGEN
NDA
PSWBorra
aAgenda
PSWNuev
vaAgenda
PSWParejjas
PSWDaCliCod
PSWGrbS
Solicitud
PSWLectu
uraCliente
PSWNove
edades
PSWNSoA
Act
PSWNSoR
Rel
PSWUsua
ario
PSWVrfPa
ago
PSWVrfUs
suario
PSwOrden
nes
PCCOrden
PCCIngOrden
SOPA
PBANCAS
PBANCAC
COPA
PCCInstalacion
n
POrdCBan
PRNFVC2
2
PConBAN
NELE
PGBanEnt
d
PGCatOrd
PObtHisto
orico
PRecCata
astro
PIngCatastro
PObtFactura
PSWObtD
Deudas
PSwGFina
anciamientos
POrdReg
PGetDano
os
PGRutasM
Manazana
PSwDetLllamada
PswObtIn
ns
PPerReca
audacion
PObtDCampanas
mCC
PRecParm
PRecSolO
OrdT
PRecTipIn
nstalacion
PRecRepa
aradores
PregLlam
madaCC
PCallRepS
Sad
PCllSadNo
ura
PregLectu
PSADRep
porte
PRptSad
PNotS
SAD
PGetIdentificadorD
Deuda
Deuda
PGetD
PPago
oDeuda
PSolPa
ago
Pswprrurec
Pvaltrranusuario
PConffPago
PCrgD
DatCC
PActFa
acElectronica
PObtE
EstFacElec
PSetE
EmailFacElec
PGetM
MailFacElec
PGetU
URLFacElec
PVerP
Pago
PEstConexion
ermisos
PSwPe
RcRpttAvisos
RDocx
xLocal
RAudT
Transaccione
es
RdigV
Ver
TMatIns
Cantones
PSWC
Pcalles
PSWD
DatR1
PEnvia
aremail
PSWB
BorraAgenda
PSWN
NuevaAgenda
a
PPago
oDeuda
Ttmpffix
TETCL
LIT
TETSR
RI
TETSR
RIA
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 147 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
E
En algunos casos
c
se presentó el sigu
uiente error
“CS2001: No se encuen
ntra el archivo
o de código fue
ente pnumerac.cs”
E
Este error su
urge porque es necesario copiar la clase
c
pnumerac.cs en la carpeta en d
donde se
e
encuentran las demás cllases del pro
oyecto, al ha
acer esto se solucionan dichos
d
errore
es.
=========
== PSWNSoAcct Compilation started ======
=====
gxexec "C:\Models\SIGE
ECOMX\SIGE
ECOM_ProWe
eb\web\bldapswnsoact.cs" -r:GxBaseBuild
der.dll arg:csc="C
C:\Windows\M
Microsoft.NET\F
Framework\v2
2.0.50727\csc.exe"
Compiling apswnsoact...failed ( error code=1)
Compilado
or de Microsofft (R) Visual C#
# 2005 versi¢n 8.00.50727..4927
para Micro
osoft (R) Windows (R) 2005 Framework versi¢n
v
2.0.507
727
(C) Microssoft Corporatio
on 2001-2005. Reservados todos
t
los dere
echos.
apswnsoac
ct.cs(504,57): error CS0030
0: No se puede convertir el tipo 'string' en
n 'short'
PSWNSoA
Act Compilatio
on Failed
E
En la línea 29 del objjeto PSWNS
SoAct se en
ncuentra esttablecida la siguiente sentencia
s
P
PActNumSol.Call(&SolNu
um,’1’)
L
La solución a esto fue po
oner el nume
ero 1 sin los
s apostrofes.
=========
== TCnfCobrannza Compilatio
on started ====
=======
gxexec "C:\\Models\SIGEC
COMX\SIGECO
OM_ProWeb\w
web\bldtcnfcobrranza.cs" -r:GxB
BaseBuilder.dlll arg:csc="C:\Windows\Miccrosoft.NET\Fraamework\v2.0.50727\csc.exe""
h
.success
Compiling hsprioridades...
Compiling ttaresp...successs
h
Compiling hsrestricciones
...success
Compiling tplnrestriccion...success
h
Compiling hmconfmcab...
failed ( error coode=1)
Compiladorr de Microsoft (R)
( Visual C# 2005
2
versi¢n 8.00.50727.4927
para Microssoft (R) Window
ws (R) 2005 Frramework versi¢n 2.0.50727
(C) Microsooft Corporationn 2001-2005. Reeservados todoss los derechos.
e
CS0103: El
E nombre 'Modde' no existe en el contexto acttual
hmconfmcaab.cs(202,41): error
hmconfmcaab.cs(656,35): error
e
CS0103: El
E nombre 'Modde' no existe en el contexto acttual
hmconfmcaab.cs(1368,35): error CS0103: El nombre 'Moode' no existe en
n el contexto acctual
ess
h
Compiling hsvalttar...succ
Compiling hstaresp...succe
h
ess
TCnfCobraanza Compilatioon Failed
E
Este error se
e genera en el Web Pan
nel hmconfmcab, debido a que en lo
os eventos se
e trabaja
c
con una varriable &Modo
o, la solució
ón es cambiiar la variab
ble &Modo po
or &Mode y volver a
g
generar este
e objeto.
=========
== HwfConvennios Compilatio
on started ====
=======
gxexec "C:\\Models\SIGEC
COMX\SIGECO
OM_ProWeb\w
web\bldhwfconv
venios.cs" -r:GxxBaseBuilder.ddll arg:csc="C:\Windows\Miccrosoft.NET\Fraamework\v2.0.50727\csc.exe""
h
pos...failed ( errror code=1)
Compiling hwfpagarantici
Compiladorr de Microsoft (R)
( Visual C# 2005
2
versi¢n 8.00.50727.4927
para Microssoft (R) Window
ws (R) 2005 Frramework versi¢n 2.0.50727
(C) Microsooft Corporationn 2001-2005. Reeservados todoss los derechos.
error CS20001: No se encueentra el archivoo de c¢digo fuennte 'trsolid6.cs'
L
La solución es
e abrir el procedimiento
o PVenLin4 y comentar la línea 47, volver a gen
nerar ese
p
procedimiento y a contiinuación volver a generrar todos los
s objetos qu
ue presentab
ban error
d
debido a ese
e inconveniente.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 148 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
Generating to SIGECOM__ProWeb\web\ttvensri.cs
m
found for
f table 476 in model 4 [1th of
o 1 superordinaatated of table 725
7 [UdmId 4277]]
error: No mapping
Specifying TDBBORRAR
R (1314 of 1507
7).
N (0xc0000005) at address 0x089c2fdf.
error: Excepption ACCESS_VIOLATION
error: Dumpping Details to:: C:\Models\SIG
GECOMX\Rpt77AB7.tmp.dmpp
error: Excepption ACCESS_VIOLATION
N (0xc0000005) at address 0x089c2fdf.
error: Dumpping Details to:: C:\Models\SIG
GECOMX\Rpt88755.tmp.dmp
error: Referrencia a objeto no
n establecida como
c
instanciaa de un objeto.
S
Se eliminó la
a transacción TDBBORR
RAR y se comentó el forr each de las
s líneas 1 a la 10 del
p
procedimiento PRebVal, este for eac
ch corre las subrutinas
s
R
Recuperar_in
nstalacion y Actualiza
K
Kardex, y el
e for each de las líneas 7 a la 20 de
el procedimie
ento RDuTlf,, este for each corre
lla subrutina busca_insta
alacion.
P
PRedVal. Se
S comentó todo
t
el for each
e
de la prrimera línea hasta la 10.
R
RDeuTlf. Se
S comentó el
e forech de la línea 7 a la 20.
2
2.5
Refin
namiento de
d funciones
La
a primera función que se
s debe cam
mbiar en Gen
neXus X evo
olution1 es la
a función ud
df que se
uttilizaba en GeneXus 9 y en GeneXus x se llama udp.
La
a verificación
n de objetos
s que tengan
n implementtado la función udf se realiza con la
a utilidad
se
earch de Gen
neXus en donde muestra
a el listado de
d todos los objetos que traen imple
ementada
es
sta función.
Imaggen 2.5.1 Listado de Objetos con la función
n buscada
Hw
wFDomiciliiarias. El ca
ambio se rea
alizó en la lín
nea 150 &IVA = udf(PSa
acaValor,12)
Y en la línea 170
1
&ClaveFormat = udff(Pcformatea
arClave, &Cla
ave).
Pc
cUpdBfcrioT
Trabajo. El cambio se realizó en la
a línea 8.
&nnroBeneficiarioss = udf(PcgetNrroBeneficiariossTrabajo,IdConvenio, IdSectorr, IdTrabajo)
Ob
bjeto Gx0O6
62. Se cam
mbió la funció
ón en la línea
a 37 de los eventos
e
&C
CatClaveCatastral = udff(Pcformatea
arClave,&CattClaveCatasttral
Pc
cCalcUrbCuo
otas se camb
bió la línea 2 &IVA = udff(PSacaValorr,12)
Hw
wFInicio. Se
S realizó el cambio en la línea 46 &disid
&
= udf(PcgetWorkStation
n,&ip)
Hw
wfDatBene
eficiarios. La
a línea 136 &claveFormatt = udf(PcformaatearClave, &C
CatClaveCatastraal) y la 153
&cclaveFormat = udp(Pcformatea
u
arClave, &CatC
ClaveCatastral)
W
WsOrdenesP
Pago. Línea 60 &tieneD
Detalle = udf((PcNroOrdenPaagoConvenio, &OPAID)
&
la línea 80
&ttieneDetalle = udf(PcNroOrde
u
nPagoConvenio
o, &OPAID)
La
a línea 100 &tieneDetalle
&
= udf(PcNroOrd
denPagoConvennio, &OPAID)
Hw
wfPagarAn
nticipos. La línea 106 &disid
&
= udf(PcggetWorkStationn,&ip)
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 149 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
Hw
wfContrato
os. La línea 133 &IVA = udf(PSacaValo
u
or,12), la 176 &ClaveFormatt = udf(PcformatearClave,
&C
Clave)
Hw
wfUrbValorres. Línea 97
9 &ClaveForm
mat = udf(PcforrmatearClave, &CATCLAVE)
&
)
La
a línea 41 &IIVA = udf(PSaccaValor,12)
cCalcTotalA
APagar. La línea 3 &IVA
A = udf(PSacaV
Valor,12).
Pc
Hw
wfIngAntic
cipos. La lín
nea 348 &claaveFormat = udf(PcformatearC
Clave, &claveFoormat)
Hw
wFInAnInd
dividual. Línea 351 &claaveFormat = uddp(PcformatearrClave, &claveF
Format)
Pc
cGenKardex
x. Línea 2 &IVA
&
= udf(PS
SacaValor,12).
unción Hidd
den
Fu
De
e la misma manera que
e con el udf mediante bu
uscar listamos todos los
s objetos que tengan
la función hid
dden, esta función
f
es reemplazada
a por la pro
opiedad visible=0 la forma
f
de
uttilizarla es attributo.visiblle=0
Lo
os objetos qu
ue tienen im
mplementado
o dicha funció
ón se listan a continuaciión.
Gx0G82. la
a línea tres de las rule
es fue remp
plazada por las líneas que se mu
uestran a
HG
co
ontinuación.
//H
Hidden(CONNrro,SECNro);
CooNNro.Visible=
=0;
SE
ECNro.Visible=
=0;
HG
Gx031 la líínea 3 de la
a función Hiidden fue re
eemplazada por la func
ción Visible como se
muestra a con
ntinuación.
Hidden(CONNrro);
//H
CO
ONNro.Visible=
=0;
HG
Gx0NP1 lin
nea
//H
Hidden(CONNrro);
CO
ONNro.Visible=
=0;
3
Gx0NS2 lin
nea 3
HG
//H
Hidden(CONNrro,SECNro);
CO
ONNro.Visible=
=0;
SE
ECNro.Visible=
=0;
Gx082 linea
a3
GG
//H
Hidden(CONNrro,SECNro);
CO
ONNro.Visible=
=0;
SE
ECNro.Visible=
=0;
x08I1 linea 3
Gx
//H
Hidden(TRAID);
TR
RAID.Visible=00;
Gx0GX2 line
ea 3
GG
//H
Hidden(CONNrro,SECNro);
CO
ONNro.Visible=
=0;
SE
ECNro.Visible=
=0;
Gx0NQ2 linea 3
HG
//H
Hidden(CONNrro,SECNro);
CO
ONNro.Visible=
=0;
SE
ECNro.Visible=
=0;
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 150 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
2
2.6
Cambios pasando a SQL Server 2008
8 R2
En
n la transacción tmorde
eta en los ev
ventos se crreó una sub
btina con el nombre llam
mar y se
co
olocó el siguiente bloqu
ue de sente
encias y es
s invocada al final del evento sta
art. Las
se
entencias de
e la subrutin
na fueron extraídas dell evento sta
art puesto a que dentro
o de ese
ev
vento se gen
neraban erro
ores en la ge
eneración del programa en
e c#.
Su
ub 'llamar
r'
&mora='N'
=0
&valor=
&FacPen
n=0
&confid
d='SALCONA
AGUA'
&confid
d2='SALCON
NAGUA'
PRecMor
raClientes
s.Call(&in
nstalacion
n,&confid,&confid2,&meses,&m
mora,
&valor,&FacPen)
&TOTAGU
U=&valor
ndSub
En
tap
pvalorformulario.cs(886,15): error
e
CS0103: El nombre 'GX
XCursor' no exiiste en el conte
exto actual
tap
pvalorformulario.cs(886,44): error
e
CS0103: El nombre 'GX
XCursor' no exiiste en el conte
exto actual
La
a transacción
n TapValor formulario se comentó el if de la línea 15 a la
a 18 problem
ma con el
cu
ursor.
La
a transacción
n tapFormu
ulario
Ca
ase de la líne
ea 15 a la 20
0.
pres
sentaba el m
mismo error del cursor y se comen
ntó el Do
a transacción
n tmordeta se comentó
ó el código de
el evento listar de la líne
ea 58 a la 64
4.
La
En
n la transacc
ción TBDClientes se co
omentó el có
ódigo del ev
vento buscarr de la línea 36 a la
51
1.
apnovedad se comentó
ó el cursor de
e la línea 15
5 a la 17.
Trransacción ta
El procedimien
nto PingOrd
dins se com
mentó todo el código, ese
e procedimie
ento lo usan los work
pa
anels y gene
era un error en el ambie
ente web.
2
2.7
ERRO
OR con Gen
neXus X Evo
olution1 U5
5.
De
ebido al cam
mbio al upg
grade 5 de GeneXus X Ev1, se prroduce un error
e
muy particular
p
cu
uando se trabaja con .NE
ET y DB2, el error se ge
enera al mom
mento de co
onectarse con
n la base
de
e datos desd
de la aplicación para reallizar alguna operación.
La
a solución a este inconv
veniente se encuentra
e
en
n el archivo Web.config. En las cad
denas de
co
onexiones se
e encuentra
a una librerría LibraryList=,GX,*US
SRLIBL; reemplazar en todo el
do
ocumento el ,GX, por un
na coma ( , )
5. A
APLICACIÓN
N DEL PATT
TERN
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 151 -
MIGRACION DEL MODELO
M
W
WEB
D
DEL
SIGEC
COM
La
a aplicación del Pattern se
s realizó al sistema de configuració
ón en el mód
dulo de cobrranzas, el
Pa
attern se gen
neró correctamente crea
ando todos los objetos que
q
el Patterrn WWEtapa necesita
pa
ara su funcio
onamiento co
on la KB.
La
as primeras inconsistenc
cias que se generaron fueron
f
en lo
o referente a los nombre
es de los
bo
otones.
3..1 Corrección de errorres
La
a aplicación del
d Pattern en
e las transa
acciones produjo el siguiiente error,
sp
pc0001 Control/object 'B
Btn_enter' no
ot found/deffined. Is it on
n the form? (Source, Lin
ne: 56)
ebido a que el nombre de
d los botone
es están cam
mbiados, en ciertas transacciones es
ste botón
De
tie
ene el nomb
bre imgConfirmar, enton
nces la soluc
ción fue copiar la fila con
n los botone
es que se
crrea en Genex
xus x Evolution, (imagen
n)
o mismo hac
cer con los botones
b
de la
a parte baja de la transa
acción (imagen)
Lo
La
as transaccio
ones que suffrieron este cambio
c
fuero
on:
CnfCobranza
a, TCnfFacilPago, TCnffFacturacion,, TCnfTarEs
sp, TFrmPag
go, TPInRestriccion,
TC
TP
Prioridad, TT
TarEsp, TTFrmPag,
Ta
ambién en la
as transacciones TJerarrquia, TLinCa
aracteristicas, TLineas, TLinLink, TP
Producto,
TS
SubLineas, TTPrdCar,
T
TT
TProducto de
e la carpeta TrnsNucPrd
T
TC
Categoria, TP
Paquete, TTa
arifa, TTarRa
angos, TTCo
omponente, TTTarifa,
T
TV
Valor
ebido a que el Pattern en
e
la creac
ción de título
os en las grrillas y asign
nación de texto a las
De
va
ariables tom
ma la descripción de ca
ada objeto o atributo, entonces el
e siguiente paso es
re
enombrar cad
da uno de es
stos TextBlo
oc las columnas de las grillas.
g
n el sistema se aplicó un nuevo tem
ma llamado ETAPA2010,, para que lo
os cambios sobre
s
los
En
ob
bjetos tenga
an efecto es necesario volver a realizar
r
un rebiuld all de toda la base de
co
onocimiento.
Es
ste fue el procedimient
p
to que se realizó
r
en la migración
n del SIGEC
COM de la Empresa
Municipal ETA
APA EP. Y la
a aplicación del Pattern sobre distin
ntos módulo
os que confo
orman al
SIIGECOM.
Lo
os pasos deffinidos al prrincipio del documento
d
s deben seguir como regla
se
r
genera
al para la
migración, y dependiend
do del sistema que sea
a sometido a la conve
ersión se prroducirán
distintos errorres y el tiempo reducirá o aumentara.
CMM--N2/PLT03
Revis
sión 28/07/2
2011
- 152 -
ANE
EXO
MANU
UAL DE
D USUAR
U
RIO
DEL PATT
TERN
NW
ANEX
A
XO F
PL
LAN DE
D PR
RUEB
BAS
D
DEL
SISTEMA
W APA
WETA
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
PL
LAN DE PRU
UEBA
AS DEL
D L
SISTE
EMA
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
Histor
rial de Re
evisiones
Fech
ha
Versión
De
escripción
29/0
07/2011
1.1
1
Pla
an de p
pruebas
WW
WEtapa.
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
Autor
del
Pattern
n
Patricio Cuenca
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
T
Tabla
de Con
ntenido
os
1. INTRODUCC
CIÓN ........................................................................... 157 1..1. Prop
pósito .....................................................................................................................157 1..2. Alcan
nce del Document
D
to .....................................................................................157 1..3. Defin
niciones, acrónimo
os y abre
eviaturas ....................
.
.............................157 1..4. Visió
ón Genera
al del Doc
cumento ......................................................................157 1..5. Supo
osiciones y Depend
dencias........................................................................157 2. ESTRU
UCTURA DEL
D
PLAN
N DE PRUEBAS .......................................... 158 2.1
1. INTR
RODUCCIÓN ............................................................................... 158 2.2
2. ELEM
MENTO DE PRUEBA .................................................................. 158 2.3
3. CARA
ACTERÍST
TICAS A SER PROBADAS ........................................ 158 2.4
4. ACTIIVIDADES
S Y MÉTO
ODOS ........................................................... 158 2.5
5. CRIT
TERIOS DE
D ACEPT
TACIÓN ........................................................ 158 2.6
6. REQUERIMIE
ENTOS DE
E AMBIEN
NTE .............................................. 159 2.7
7. RESP
PONSABI
ILIDADES
S ................................................................... 159 2.8.. REPOR
RTES DEL
L PROBLEMA, ESCA
ALADA Y RESOLUC
CIÓN ............ 159 3. ESPEC
CIFICACIÓ
ÓN DE CA
ASOS DE P
PRUEBA ...................................... 159 4. RIESG
GOS ................................................................................................ 161 5. RESULLTADOS DE
D CASOS
S DE PRUE
EBA ............................................. 162 CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
1. INTRODUCC
CIÓN
El pllan de Prue
ebas para el Pattern WWEtapa. Se llevara a cabo un
na vez conc
cluida la
imple
ementación del Pattern, en sus disttintas etapa
as. Las prue
ebas se realizaran en base
b
a la
definición de requ
uerimientos planteados en el ERS.
pruebas se realizaran
r
en primera in
nstancia verrificando la construcción
n de los objetos que
Las p
intera
actuaran con
n la transacción que sea
a afectada por
p el Patterrn, y consisttirá en la verificación
de lo
os objetos y el código de cada un
no de ellos. Para poste
eriormente probar
p
el módulo de
segurridad.
1.1. Propósito
s capaz de generar el Web
W
Panel de mantenim
miento de la transacción,
t
El Patttern debe ser
mostrando en cada una de lo
os registros los
l botones de modificarr eliminar y visualizar.
v
erificara el co
orrecto funcionamiento de los objeto
os con las trransacciones
s. La creación
Se ve
corre
ecta del códig
go que invoc
ca a la transacción. En el
e aspecto de
e la segurida
ad se verifica
ara que
el ing
greso de los usuarios al sistema,
s
ya que deben tener
t
un esta
ado activo de su permisos, los
usuarrios podrán acceder a distintos módulos y objeto
os dependiendo de su pe
erfil, en cuanto a
perm
misos de accio
ones hace re
eferencia se verificara qu
ue el usuario
o únicamentte puede acc
ceder a la
trans
sacción en lo
os modos al que
q
este ten
nga privilegio
os (insert, de
elete, update)
1.2.
Alcance
e del Docum
mento
onamiento del Pattern y detectar los
s errores pos
sibles si existiesen, para tomar
Verifiicar el funcio
los co
orrectivos pe
ertinentes.
1.3.
Definiciiones, acrónimos y ab
breviaturas
1.4.
Visión General
G
dell Documentto
El do
ocumento de
d Plan de Pruebas se
e basara en
n los casos
s de uso del
d
documen
nto ERS,
espec
cíficamente se regirá al funcionamie
ento del módulo de seguridad, para
a la verificac
ción de la
generación de ob
bjetos del Pa
attern WWEttapa nos basaremos en los errores que se mue
estren en
la com
mpilación.
1.5.
Suposic
ciones y De
ependencias
s


Las pruebas
p
se realizaran
r
ún
nicamente en
e base a los
s requerimie
entos definid
dos en el
ERS.
No se
erá tomado como error o no cumpllimiento de los
l
requerim
mientos algun
na nueva
funció
ón que se qu
uiera agrega
ar al Pattern.
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
- 157 -
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
2. E
Estructura del
d Plan de Pruebas
2
2.1. Introdu
ucción
El sig
guiente es el Plan de Pruebas de
e Aceptación
n, que serv
virá para ve
erificar que se haya
cump
plido con los
s requerimientos solicitados por los usuarios, se
e supone que los requerrimientos
se en
ncuentran en
n el docume
ento ERS. La
as pruebas que se ejecu
utarán nos permitirán descubrir
d
los errrores existe
entes en la im
mplementación del softw
ware.
2
2.2. Elemen
nto de Prue
eba
Web Pannels de Mantenimien
M
nto de las tra
ansacciones.
Web Components
s en las relaciones maes
stro detalle.
Auten
nticación corrrecta de los
s usuarios en
n el sistema
Ingre
eso automático de los pa
aneles de ma
antenimiento
o en el sistem
ma
Creac
ción correcta
a del usuario
o Admin.
Funciionalidad del sistema
2
2.3. Caracte
erísticas a ser
s
probada
as
Las c
característica
as a ser pro
obadas en el Pattern so
on la generación correctta y completta de los
objettos, la funcio
onalidad correcta de los objetos, la validación de
d los usuarrios registrad
dos en el
sistem
ma.
2
2.4. Activida
ades y Méto
odos
ón de los objjetos creado
os se realizarra las prueba
as de:
Para la verificació
uario
Interfaces de usu
bas de datos
s
Prueb
Las p
pruebas en el
e sistema de
e seguridad se
s realizaran
n siguiendo las
l pruebas de:
Prueb
bas de datos
s
Prueb
bas de interffaces de usu
uario.
Finalm
mente será realizada la prueba de fu
uncionalidad
d.
2
2.5. Criterio
os de Aceptación
s
aprobad
da siempre y cuando se
e hayan crea
ado todos los
s objetos
La prrueba de las interfaces será
con la
a misma esttructura en la
as grillas y no
n presenten
n ninguna inconsistencia
a
y/o e
error en la ejjecución de la
l aplicación. Prioridad 1
Las p
pruebas de datos
d
serán aceptadas siempre y cuando
c
en lo
os paneles de
d mantenim
miento se
visua
alicen los reg
gistros alma
acenados en las tablas de
d la base de
d datos, si los nuevos registros
son a
almacenados
s sin generarr ninguna inc
consistencia. Prioridad 2
Las p
pruebas de funcionalida
ad serán rea
alizadas al momento
m
de
e ejecutar la
a aplicación, creando
nuevos usuarios,, verificando
o el bloqueo
o de funcion
nes, accedie
endo a las transaccione
t
es en los
ntos modos permitidos, y bloqueando el acceso a cuando el usuario no tenga el permiso
distin
para realizar la acción solicita
ada. Priorida
ad 2
Liste los criterios que se emp
plearan para determinar si la ejecuciión del plan de prueba estará
e
comp
pleta.
E
Clasifficación de Errores
Calificación
D
Definición
de
e gravedad
Definiición de prio
oridad
1
El error se vu
E
uelve crítico debido a qu
ue la
a
aplicación
no se generara y no será pos
sible
s ejecución
su
El erro
or debe correg
girse lo antes posible.
p
El errror bloquea el progreso
o de la
aplicac
ción.
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
- 158 -
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
2
El error causa problemas en
E
n los aspecto
os de
s
seguridad
y la funcionalidad
d del sistema.
El errror debe corregirse
c
lanzam
miento del pro
oducto.
an
ntes
del
2
2.6. Requerimientos de
e Ambiente
e
cribe las disttintas clases de herramie
entas utilizadas en la prueba del sisttema.
Esta sección desc
Software
e
S
Se han utiliza
ado las siguientes herram
mientas dura
ante la prueba:

Client Access: Se trata de la inte
erfaz para la administrac
ción de la Base de Datos DB2 por
medio de
e esta nos co
onectaremos
s para realiza
ar verificacio
ones en las tablas
t
y en lo
os
registros.

n el servidorr de aplicacio
ones web de
e Windows que es
Internet Information Services: en
q
se ejecutara la aplicación.
sobre la que
H
Hardware
Recu
ursos
Servidor de Base de
Datos
Computadorr
Cantidad
1
1
Desc
cripción
Servidor de base
S
b
de dato
os de
p
pruebas
C
Computador
robusto parra la
g
generación
d las
de
a
aplicaciones
onfiguracio
ones de Pru
uebas de am
mbiente
Co
N
Nombre de la
Configuraciión
C
IIIS
Desc
cripción
Config
guración
del Internet
inform
mation
Servic
ces para
aplicaciones
Web.
a configuración física
Implementtación de la
Crear un grupo de aplica
C
aciones con un
u nombre
c
cualquiera.
E
Escoger
el .N
Net Framewo
ork V2.0.50727
E modo de canalización
En
n administrad
da
s
seleccionar
la
a clásica
2
2.7. Responsabilidades
s
de las prueb
cio Cuenca responsable
r
bas del Patte
ern
Patric
Ing. X
Xavier Mejía
a Director de
el proyecto de la empresa.
2
2.8. Reporte
es del problema, escalada y reso
olución
errores prod
ducidos en la
a aplicación del
d Pattern y en el módu
ulo de seguridad serán
Los e
contrrolados antes
s de aplicars
se en el siste
ema debido a que el sisttema quedarra inservible si se
generan errores en
e los objeto
os creados por
p el Pattern
n.
3. E
Especificación de caso
os de prueba
Esta sección deta
alla las prue
ebas planead
das a utilizar para comp
probar el sistema y gara
antizar la
ecución de sus
s
objetivo
os con los que
q
fue dise
eñado. Para realizar esttas pruebas se debe
conse
llevarr a cabo las
s configurac
ciones neces
sarias en el entorno de
e prueba, ca
ada caso de
e prueba
puede requerir un conjunto de
d especifica
aciones deterrminadas.
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
- 159 -
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
Para cada caso de prueba pla
anteado llene una tabla como la presentada a co
ontinuación:
Caso de
Prueb
ba
Propó
ósito:
Nº
4.
Prerrrequisitos:
Pruebas
s de
Sistema sin errores.
Datos
s de Prueba::
ID
V
Variable
V
Valor
Resu
ultado Espera
ado
IR1
1
Creac
ción del usuarrio Admin
IR2
1
Creac
ción del Rol Ad
dministrador
IR3
0
Asign
nación del Rol Administrado
or
al Usu
uario Admin
IR4
U
Username
T
True
El sis
stema verifica
a si los datos
son
p
password
correctos,
s
si
lo
son
se
visualiza el web panel con los
ma módulos y objetos.
sistem
IR4
U
Username
F
False
El sis
stema muestrra un mensaje
de datos erróneos y vuelve a
p
password
arse el web pa
anel de Login
carga
Pasos
s:
1.
2.
3.
4.
Aplic
car el Pattern
Gene
erar la aplicac
ción
Ejecutar la aplicac
ción
Ingrreso del usuarrio admin a la aplicación
Notas
sy
Pregu
untas:
El sistem
ma verificara el nombre del usuario y la contraseña
c
y si
s pasa la aute
enticación se
visualizarán lo panales
s de mantenim
miento de toda
as las transac
cciones que ha
ayan sido
s el Pattern.
aplicadas
Caso de
Prueb
ba
Propó
ósito:
Nº
5.
Permiso
os de usuario
os
Verificar los permisos que tiene el usuario
u
con la finalidad de bloquear
b
las acciones
a
sobre
e
determin
nado objeto
Prerrrequisitos:
Usuario logueado en el
e sistema
Datos
s de Prueba::
ID
V
Variable
Valor
Res
sultado Esperado
PU1
I
IsAuthorized
T
Ingrresa al Objeto
o solicitado
PU2
I
Isauthorized
F
Visu
ualización
del
Panne
el
las
acciones
NotA
Authorized
PU3
I
IsAdmin
T
Hab
bilita
sobre
todas
el
ntenimiento
Man
panel
de
de
a
la
tran
nsaccion
PU4
I
IsAdmin
F
Bloq
quea todos lo
os botones de
el
panel de Manten
nimiento de la
nsacción.
tran
PU5
P
Permit(Accion
)
T
Hab
bilita el botón
n de la acción
ya sea Insert, Delete,
D
Views
s,
date, Export
Upd
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
- 160 -
P
PLAN
DE PRUEBAS
P
D
DEL SISTE
EMA
PU6
P
PermitDisplay
F
Reto
orna
al
panel
Man
ntenimiento
Pasos
s:
1.Selecciionar un objetto
2. Ingres
sar a la transa
acción en el modo
m
solicitado
o
Notas
sy
Pregu
untas:
Riesgos
4. R
Riesg
gos
Plan de
Conttingencia
Impa
acto
Patterrn WWEtapa
incom
mpleto
Utiliza
ar una Kb limp
pia es
decir que no haya sido
s
ada anteriormente
afecta
por ell Pattern
No se
e crearan todo
os los
objeto
os del Pattern
n
WWE
Etapa, el sistem
ma no
estará
á completo y
conte
endrá errores
Dupliccidad de Tabla
as,
atribu
utos e índices
Utilizzar una base de
d
datoss en la que
conte
enga una réplicca de
la basse de datos de
e
produ
ucción.
Se podrían mezcclar los
atribu
utos en las ta
ablas
existtentes,
No se generaran las
tabla
as de manera
a
corre
ecta.
No se generaran todos
los objetos
o
del Pa
attern
Se generara una
uencia con mucha
m
secu
difere
encia entre
núme
eros.
Dupliccidad en los
código
os para Prima
ary
Key
Estra
ategias de
Mitig
gación
CMM--N2/PLANT1
18
Revis
sión 29/07/2
2011
- 161 -
de
PLAN DE PRUEBAS DEL SISTEMA
A
5.
5 Resultados de casos de prrueba
ID CP
FECHA
Responsab
ble
ID DP
RESULTAD
DOS OBTENIDOS
CORR
RECTO
1
Patricio Cuencca
IR1
El sisstema creo correctam
mente el usuario admiin
SI[ x ]
NO[ ]
1
Patricio Cuencca
IR2
El sisstema creo correctam
mente el Rol administtrador
SI[ x ]
NO[ ]
1
Patricio Cuencca
IR3
La asignación de Rol a los usuarios se reealizan con SI[ x ]
o
existo
NO[ ]
1
Patricio Cuencca
IR4
El sisstema visualiza el web
w panel con el listado de los SI[ x ]
NO[ ]
SOLUC
CION
sistem
mas módulos y objeto
os
1
Patricio Cuencca
IR4
El sistema visualiza un mensaje de error y vuelve a SI[ x ]
ogin
cargaar el Web panel de Lo
NO[ ]
2
Patricio Cuencca
PU1
El siistema permite el ingreso al usuario
o al objeto
soliciitado
2
Patricio Cuencca
PU2
El sisstema visualiza el web
w panel con el men
nsaje de no SI[ x ]
autorizado sobre ese objetto
NO[ ]
2
Patricio Cuencca
PU3
El sisstema verifica que el
e usuario sea admin
n y habilita SI[ x ]
todoss los botones
NO[ ]
2
Patricio Cuencca
PU2
El sisstema bloquea todoss los botones si el ussuario no es SI[ x ]
NO[ ]
admin
n
2
Patricio Cuencca
PU3
El sistema verifica recu
upera los permisos del usuario SI[ x ]
sobree el objeto y habilitta las opciones a las uqe tiene
accesso
NO[ ]
2
Patricio Cuencca
PU2
El sisstema verifica que sii el usuario no tienee el permiso SI[ x ]
Dispaay retorna al web pan
nel de mantenimiento
o
NO[ ]
CMM-N2/PLANT1
C
18
Revisión
R
29/07/2011
- 162 -
C
CAPÍT
TULO
O IV
ANEXO
A
OD
PATTERN
N WW
WETA
APA
ANEXO
A
OG
M UAL DE
MANU
D USUAR
U
RIO
DEL PATTERN
N WW
WETA
APA
MANUAL DE US
SUARIO
MANUAL
L DE USUA
U
ARIO PATT
TERN
WWETA
APA
MANUAL DE US
SUARIO
de Con
T
Tabla
ntenido
os
1.A
APLICACIIÓN DEL PATTERN
N ................................................................... 166 2.C
CREACIÓN
N DE NUE
EVOS FILT
TROS EN EL WEB PANEL DE
D
MANTENIMIIENTO ........................................................................................... 167 3.M
MANUAL DEL
D
MÓD
DULO DE SEGURID
DAD ............................................. 168 MANUAL DE US
SUARIO
Aplicación del
d Pattern
6. A
El Pattern WW
E
WEtapa se aplicara
a
únic
camente a transacciones
s y la aplica
ación se pue
ede hacer
d dos forma
de
as.
La primera es
L
e haciendo clic derecho
o sobre la transacción,
t
ubicándose
e en la fila de Apply
P
Pattern
y esc
cogiendo el Pattern
P
WWE
Etapa.
La segunda forma
L
f
es abriendo la tra
ansacción, a continuació
ón se debe ubicar
u
en la barra de
componentes
s de la transacción en la pestaña Pattterns.
En la parte superior a
E
aparecerá una barra con
c
el listad
do de los patterns ex
xistentes,
seleccionar el
e Pattern WWEtapa
W
y a continuaciión marcar la opción Apply this Pa
attern on
save, a conttinuación se
e procede a guardar los cambios y el Patte
ern se aplicara a la
trransacción.
7. C
Creación de
e Campos de
e Ordenam
miento
Por defecto el
P
e Pattern inc
cluye un cam
mpo de orde
enamiento el cual es el atributo no clave de
la
a transacción
n pero si se requiere se puede agregar más cam
mpos el cua
al será visualizado en
la
a transacción
n en forma de
d combo bo
ox
E la instancia del Patterrn nos ubicam
En
mos en el nivel de Orderrs dentro del objeto Sele
ection
- 166 -
MANUAL DE US
SUARIO
Haciendo clic
H
c derecho no
os ubicamos
s en la opció
ón add y seleccionamos order, ense
eguida se
creara un nu
uevo nivel de order al que
q
se le tie
ene que asig
gnar un nom
mbre a travé
és de las
del elemento
p
propiedades
o
Acontinuacion
A
n se le debe asignar el atributo
a
H
Haciendo
clic
c derecho en el order nue
evo seleccionamos Add y Attribute
8. C
Creación de
e nuevos filttros en el Web
W
Panel d
de Manteniimiento
E Pattern WWEtapa porr defecto cre
El
ea un filtro en
e el objeto
o Selection, la forma de
e agregar
m
más
filtros se
e hace modificando la in
nstancia del Pattern en cada transa
acción en la parte de
fiilters del objjeto Selection
El primer pas
E
so es agrega
ar el atributo
o que será el
e filtro, haciendo clic de
erecho en la parte de
a
atributes
sele
eccionamos la opción Ad
dd y finalmen
nte Filter Atrribute/Variab
ble
- 167 -
MANUAL DE US
SUARIO
S creara un atributo sin ninguna descripción
Se
El siguiente paso es ir a las propied
E
dades de es
se atributo y editar el nombre
n
del atributo,
d
debe
ser el nombre de un atribu
uto existentte en la trransacción y luego ag
gregar la
d
descripción.
Automáticam
A
mente se crea
ara la variab
ble con el no
ombre del attributo, la cu
ual será utiliizada por
e filtro
el
E siguiente paso
El
p
es agre
egar las condiciones que
e se deben cumplir
c
para
a lograr el filtrado de
in
nformación
P
Primero
crea
amos una nueva
n
condic
ción haciend
do clic dere
echo en la parte de co
onditions,
seleccionamo
os la opción Add
A
y Condition.
Al igual que en
A
e los atribu
utos se crea una condició
ón sin ninguna descripción, el siguie
ente paso
e ir a las prropiedades de
es
d la condición y editar la propieda
ad Value las condiciones
s tendrán
u
una
nomenclatura similar a la siguien
nte, dependiiendo del tip
po de datos de
d los atributos.
A
ALimentoPrese
entacion like &ALimentoPres
&
sentacion whenn not &ALimenntoPresentacion.IsEmpty()
se visualizan
Por defecto en
P
e el Panel de
d mantenim
miento de la transacción
t
n todos los atributos,
a
se puede elim
minar estos c
campos u oc
cultarlos.
Para ocultar el atributo en
P
e las propie
edades se de
ebe modifica
ar el campo Visible
V
y pon
nerlo con
e valor False
el
e
9. M
Manual del Módulo de Seguridad
E la ejecución de la ap
En
plicación se abrirá
a
el pan
nel de Log in en la que
e se debe ingresar el
n
nombre
de us
suario y la contraseña
c
re
espectiva.
- 168 -
MANUAL DE US
SUARIO
A continuació
ón se visuallizara un árbol con los sistemas módulos
m
y ob
bjetos en los que se
in
ngresara.
E mantenimiento al mó
El
ódulo de seg
guridad se realizara de
e acuerdo a lo requerid
do por el
u
usuario.
Únicamente el usuario Admin
Ú
A
podrá
á ingresar al
a módulo de
e seguridad, los TextFie
eld de la
cabecera se utilizan
u
para filtrar por lo
os campos:
T
Todas
las transacciones tienen
t
la mis
sma estructu
ura física dell web panel de mantenim
miento
nuevo
acctualizar
eeliminar
Actualizar, Nuevo
A
N
y Eliminar son los tres mo
odos en los
s que se puede
p
invocar a las
trransacciones
s del módulo
o de seguridad
P
Para
ingresarr un nuevo usuario
u
se ha
ará clic en e
el botón +(nu
uevo) que se
e encuentra fuera de
la
a grilla. Y pa
ara modifica
ar o eliminarr un registro
o se utilizara
an los boton
nes pertenec
cientes a
cada registro
o.
T
Transacción
n Usuarios
El web panel de Usuarios
E
s tiene imple
ementado los
s siguientes filtros
N
Nombre
Real del usuario, el Departamento y el Username.
U
Cuando se invoca a la tra
C
ansacción en
n modo insert por prime
era vez al tra
atar de alma
acenar un
n
nuevo
usuariio mostrara un mensaje
e indicando que ya existe el registrro, entonces se debe
cancelar y nuevamente
n
volver a ingresar en
n modo Insert y ya se podrán h
hacer las
in
nserciones que
q
el usuario desee.
T
Transacción
n Roles
La transacció
L
ón roles tiene el Web Pa
anel Mantenimiento Role
es por el cua
al se debe acceder
a
a
e los diferen
en
ntes modos a la transacc
ción.
- 169 -
MANUAL DE US
SUARIO
Al igual que en
A
e la transacción de usu
uarios cuand
do se ingresa
a por primerra vez se de cancelar
y volver a ing
gresar nueva
amente.
T
Transacción
n Usuario R
Rol
El Web Pannel de man
E
ntenimiento de la tran
nsaccion se visualiza como
c
Mante
enimiento
U
UsuarioRol,
los filtros qu
ue se aplican
n en esta Web
W
Pannel son
s
el Atribu
uto Activo el
e cual se
u
utiliza
la T pa
ara verdaderro y F para Falso, Usuarrio que es ell username con
c
el que in
ngresa al
sistema y el Rol del usua
ario.
En la transac
E
cción Usuario Rol es en donde se ingresara la información
n sobre el es
stado del
u
usuario
activo o inactivo y la fecha de
d inicio y la
a fecha en la
a que finaliza
a el estado activo
a
de
e usuario con
ese
c
el rol asignado.
T
Transacción
n Acciones.
E
Esta transac
cción es ing
gresada porr medio del Web Pann
nel Mantenim
miento accio
ones, las
acciones más comunes Insert, Delete, Update
a
e, Views, Export,
E
Disp
play, son ingresadas
a
automáticam
mente al siste
ema y no es necesario in
ngresarlas nu
uevamente.
Esta transacc
E
ción no tiene un campo
o número co
omo clave primaria,
p
su clave prima
aria es el
n
nombre
de la
a acción.
- 170 -
MANUAL DE US
SUARIO
T
Transacción
n SMO
Esta transacc
E
ción almacen
na los sistem
mas módulos
s y objetos, en esta tra
ansacción lo
o primero
q
que
se debe realizar cuando se utiliz
za por prime
era vez es crrear los siste
emas y módu
ulos para
a continuació
ón modificarr los objetos
s que están
n ingresados
s, este Web Pannel con
ntiene los
fiiltros de Nom
mbre del ob
bjeto, el tipo
o de objeto (sistema, modulo,
m
objetto, tab) y el nombre
d objeto pa
del
adre
L modificacion de los ob
La
bjetos hara referencia
r
al sistema o modulo
m
al que pertenesca.
L tab que se
Los
s ingresen son
s
los objettos WC que son generad
dos por el pa
attern.
Cuando se haya creado la relación entre
C
e
sistem
ma módulos y objetos ell árbol se visualizara
d la siguientte forma.
de
- 171 -
MANUAL DE US
SUARIO
Transacción
T
n Objeto Ro
ol. Esta transacción cum
mple la funció
ón de asigna
ar un rol a un
u objeto
y asignarle lo
os permisos necesarios
El web panel de mantenimiento de esta
E
e
transacc
ción se visua
aliza como Mantenimient
M
to Objeto
R
Rol,
y permitte filtrar por el nombre del
d objeto y por el rol
En la transa
E
acción para
a ingresar un nuevo registro priimero se selecciona
s
u rol a
un
continuación el objeto al
a que se le
e asignara e
el rol y postterior a ese
e paso se procede a
seleccionar la
as acciones q
que van a se
er asignadas
s a ese objetto con el rol seleccionado
o.
A cada acción
n se le asign
nara un Identificador num
mérico.
- 172 -
CONCLUSIONES

Genexus X Ev1 muestra una gran versatilidad y robustez en el desarrollo
de aplicaciones informáticas y más aun sobre las aplicaciones en
ambiente WEB, Genexus X Ev1 es una herramienta CASE que
potencializa el funcionamiento de las aplicaciones, y minimiza en gran
cantidad el tiempo de desarrollo, automatizando al máximo la
construcción de paneles y objetos de interacción con la base de datos.

La empresa Municipal ETAPA EP. debido a su constane crecimiento, los
cambios sobre sus aplicaciones y la creación de nuevos sistemas, hace
que sea indispensable el uso de una herramienta CASE como lo es
GeneXus en sus departamentos de dasarrollo. El manejo oportuno de los
recursos y la atención al cliente se ha convertido en un reto para todas las
empresas, un reto que será imposible solventarlo sin el uso de sistemas
informáticos lo suficientemente robustos. Genexus a través de su lógica
de trabajo brinda el apoyo necesario para el desarrollo rápido de
aplicaciones, y así ETAPA EP., logre solventar sus necesidades
informáticas para el apoyo a sus operaciones como empresa pública.

Los Patterns son aplicaciones que potencializan la automatización de
GeneXus. El desarrollo de un sistema desde cero en Genexus EV 1, con
la aplicación de un pattern se reduce a tal punto que lo único que
debemos hacer es construir la transacción puesto que el pattern haría el
resto.

El desarrollo de patterns no es una tarea sencilla, requiere de un profundo
conocimiento de genexus y las librerías que proveen la informacion de la
KB. Además es necesario tener una buena habilidad para el manejo del
Lenguaje Visual C#, aparentemente el concepto de Patterns es una nueva
rama que se va expandiendo en el mundo de la informática.
RECOMENDACIONES

Para obtener una máxima automatización en la construcción de
aplicaciones informáticas con el uso de los patterns, es necesario que se
haga un análisis profundo sobre todas las operaciones comunes que se
pueden integrar al pattern ya que la construcción de este puede tomar
mucho tiempo, y si las necesidades varían en un lapso corto de tiempo el
Pattern puede quedar inservible, o simplemente el pattern no se acoplaría
a las verdaderas necesidades de la empresa.

La empresa ETAPA EP. aparte de integrar un módulo de seguridad al
pattern podría integrar servicios Web que le permitan comunicarce con
sistemas externos.

En lo que hace referencia al Sistema de Gestión Comercial, se debería
migrar en su totalidad a GeneXus Evo1. Ya que las nuevas aplicaciones
se están desarrollando en esta versión. Y funcionan como sistemas
externos del SIGECOM., y si se tratara de integrarlos los principales
inconvenientes que se generarán serán sobre los nombres de los atributos,
indices y tablas, dichos inconvenientes pueden llegar a ser muy molestos
ya que las soluciones son cambiar los nombres de las tablas, atributos y/o
índices lo cual puede conllevar a que se generen errores en la aplicación
y la otra es simplemente dejarlo como un sistema externo y no integrarlo
al SIGECOM, y esto empeorará si siguen aumentando el número de
sistemas y el tamaño de cada uno de ellos.

Además si se deseara migrar el sistema a una futura versión de GeneXus
el primer paso será convertirlo a Genexus Evo1.
BIBLIOGRAFÍA
 Artech
-
http://www.genexus.com/portal/hgxpp001.aspx?2,69,1102,O,S,0,MNU;E;241;1;MNU;,
http://www.genexus.com/portal/hgxpp001.aspx?2,69,1103,O,S,0,MNU;E;252;3;MNU;,173
412;P;94;167744;S

GeneXus
-
http://www.genexus.com/portal/hgxpp001.aspx?2,61,1006,O,S,0,MNU;E;226;1;236;2;MN
U;,
http://www.genexus.com/portal/hgxpp001.aspx?2,61,1022,O,S,0,MNU;E;250;3;MNU;,
-

-
GeneXus 9.0

-
GeneXus X Evolution
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,9,65,O,S,0,MNU;E;10;1;MNU;,
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,9,89
http://www.genexus.com/portal/hgxpp001.aspx?2,61,1085,O,S,0,MNU;E;248;4;MNU;,
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?GeneXus+X+Evolution+1+Overview
,
-
http://www.genexus.com/portal/hgxpp001.aspx?2,61,1006,O,S,0,MNU;E;226;1;236;2;MN
U;,
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Dynamism+between+Transaction+an
d+Pattern,

Patterns
-
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Dynamism+between+Transaction+an
d+Pattern

Microsoft Visual Studio 2008
-
http://msdn.microsoft.com/es-es/library/bb386063(v=VS.90).aspx#SP1

Microsoft .net framework
-
1http://msdn.microsoft.com/es-es/library/zw4w595w(v=VS.90).aspx

Fundamentos c#
-
http://msdn.microsoft.com/es-es/library/ms228632(v=vs.80).aspx

Aplicaciones y ejemplos
-
http://www.clikear.com/manuales/csharp/c32.aspx

Descripción del proceso de migración
-
http://ealmeida.blogspot.com/2008/07/migrando-de-genexus-90-genexus-x.html
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Converting+a+KB+From+GeneXus+
9.0+%28or+prior%29+To+GeneXus+X+%2F+X+Evolution+1,\ \
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Category%3AGeneXus+X+Compatib
ility+Section,
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Category%3AGeneXus+X+Evolution
+1+Compatibility+Section,
-

GeneXus x evo1 consideraciones generales
-
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Video%3AConversi%C3%B3n+de+
KBs+-+Curso+%22Actualizaci%C3%B3n+de+GeneXus+X%22,
Descargar