Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXXAB-SCI
IN
NTTE
ERRF
FAAZ
Z ES
STT
NND
DAAR
RDDE
E CO
ONNF
FIIG
GUUR
RAAC
CII
NN
INDICE
Eliminado: 8
ACCESO A F L E X A B - S C I .................................................................................................................. 7
Eliminado: 10
VE N TAN A PR I N CI P A L DEL S I S T E M A .............................................................................................. 9
Eliminado: 12
MEN DE O P C I O N E S ...................................................................................................................... 11
Eliminado: 18
BARRA DE H E R R A M I E N T A S ........................................................................................................... 17
Eliminado: 19
PERFILES D E C O N F I G U R A C I O N ..................................................................................................... 18
Eliminado: 19
M O D O C O N F I G ................................................................................................................................ 18
Eliminado: 22
M O D O A D M I N ................................................................................................................................. 21
Eliminado: 25
U S E R S .............................................................................................................................................. 23
Eliminado: 26
U S U A R I O S C R E A R Y E D I T A R .................................................................................................... 25
C R E A R U N U S U A R I O - V E N T A N A U S E R I N F O R M A T I O N ..................................................25 Eliminado: 26
E D I T A R U N U S U A R I O - P R O P I E D A D E S ..........................................................................29 Eliminado: 30
P R O P I E D A D E S D E L O S G R U P O S D E U S U A R I O S ..............................................................30
Eliminado: 31
A G R E G A R U N U S U A R I O E X I S T E N T E A U N G R U P O D E U S U A R I O S ....................................31
Eliminado: 32
S Y S T E M S .......................................................................................................................................... 33 Eliminado: 34
S I S T E M A S C R E A R Y E D I T A R ..................................................................................................... 34 Eliminado: 35
C R E A R U N S I S T E M A - V E N T A N A S Y S T E M I N F O R M A T I O N ...............................................34 Eliminado: 35
E D I T A R U N S I S T E M A - P R O P I E D A D E S ..........................................................................35 Eliminado: 36
A P L I C A C I O N E S C R E A R , E D I T A R Y B O R R A R .......................................................................... 36 Eliminado: 37
C R E A R U N A A P L I C A C I N V E N T A N A A P P L I C A T I O N I N F O R M A T I O N ...............................36 Eliminado: 37
E D I T A R U N A A P L I C A C I N - P R O P I E D A D E S ...................................................................40 Eliminado: 41
B O R R A R U N A A P L I C A C I N ...........................................................................................40
Eliminado: 41
E S P A C I O S - C R E A R , E D I T A R Y B O R R A R ................................................................................... 41 Eliminado: 42
C R E A R U N E S P A C I O V E N T A N A S P A C E ........................................................................41 Eliminado: 42
E D I T A R U N E S P A C I O - P R O P I E D A D E S .........................................................................42 Eliminado: 43
B O R R A R U N E S P A C I O ...................................................................................................42
Eliminado: 43
E L I M I N A R U N O B J E T O C R E A D O .................................................................................................. 43 Eliminado: 44
C L A S E S ............................................................................................................................................ 44 Eliminado: 45
Eliminado: 46
C L A S E S V I R T U A L E S ....................................................................................................................... 45
Eliminado: 46
C R E A R U N A C L A S E V I R T U A L ........................................................................................45
Eliminado: 46
P R O P I E D A D E S D E C L A S E S V I R T U A L E S ..........................................................................45
Solapa Class.................................................................................................................46 Eliminado: 47
Eliminado: 50
C L A S E S R E A L E S O R G A N I Z A C I N ( C O N F I G U R A C I N ) ......................................................... 49
Eliminado: 51
C R E A R U N A C L A S E .......................................................................................................50
Eliminado: 52
I C O N O S D E L A S C L A S E S ..............................................................................................51
P R O P I E D A D E S D E L A S C L A S E S R E A L E S E D I T A R U N A C L A S E .......................................52 Eliminado: 53
Solapa Class.................................................................................................................56 Eliminado: 57
Auditora de Objetos ...........................................................................................56 Eliminado: 57
Solapa Attributes..........................................................................................................57
Eliminado: 58
Editor de atributos ..............................................................................................59
Atributos de Tipo Relation ...................................................................................73 Eliminado: 60
Eliminado: 74
FlexABSCI: Manual de Configurador 2
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Atributos de Tipo Virtual......................................................................................81
Atributos de Tipo FileLink ....................................................................................84
Atributos de Tipo Filedown ..................................................................................87
Atributos de Tipo Visual.......................................................................................90
Solapa Flow .................................................................................................................93
Estados ..............................................................................................................94
Agregar un Estado ..............................................................................................96
Eliminar un Estado ..............................................................................................97
Auditora de Estados ...........................................................................................97
Agregar una Regla de Seguridad a un Estado .......................................................99
Agregar un mtodo al estado............................................................................. 100
Visualizacin y Orden de ejecucin de los mtodos ............................................. 107
Solapa Identity........................................................................................................... 109
IdObject........................................................................................................... 110
Solapa Help ............................................................................................................... 119
Solapa Report ............................................................................................................ 123
Solapa Includes.......................................................................................................... 129
Solapa Relations......................................................................................................... 132
Solapa Generate......................................................................................................... 136
Solapa Revisions ........................................................................................................ 153
Solapa Include Order.................................................................................................. 155
Orden de visualizacion de clases abstractas e includas........................................ 155
I M P O R T A R C L A S E S ..................................................................................................... 158
C L A S E S D E T I P O M O D U L O ......................................................................................................... 163
C L A S E S A B S T R A C T A S .................................................................................................................. 164
E DI T OR DE R E P O R T E S ................................................................................................................ 167
P A R A M E T R O S E N R E P O R T E S ...................................................................................................... 176
P A R A M E T R O S E N L A W U I .......................................................................................... 179
S C R I P T S E N R E P O R T E S ............................................................................................................... 180
C O M A N D O S B S I C O S .................................................................................................. 181
E J E M P L O D E U N S C R I P T ............................................................................................. 182
G R A F I C A R E N F L E X A B ................................................................................................................ 184
M A S I N F O R M A C I N .................................................................................................... 188
S U B R E P O R T E S ............................................................................................................................... 189
E D I T O R F Q L ................................................................................................................................. 190
P A N E L O B J E C T X M L .................................................................................................................... 199
P A N E L X Q L R E S U L T .................................................................................................................... 200
U T I L I Z A C I N D E X Q L E N L A S C O N S U L T A S S Q L D E F L E X A B ............................................. 207
V A R I A B L E S D E E N T O R N O ........................................................................................................... 213
E DI T OR DE M E T O D O S M E T H O D E D I T O R .............................................................................. 214
A C E R C A D E L O S N O M B R E S D E L O S M T O D O S P E R T E N E C I E N T E S A C L A S E S ................... 218
T I P O S D E M T O D O S .................................................................................................................... 220
O P E R A T I O N ............................................................................................................... 220
Modificar la Seguridad de un atributo ................................................................. 226
U P D A T E ..................................................................................................................... 230
Restricciones .................................................................................................... 230
FlexABSCI: Manual de Configurador 3
v62 207-SCI-SP (Configuracion).pdf
Consideraciones................................................................................................ 231
M S G ( M E S S A G E ) ....................................................................................................... 239
V A L I D A T E .................................................................................................................. 245
M A C R O ...................................................................................................................... 250
P R O G R A M .................................................................................................................. 255
M S E X C E L ................................................................................................................... 259
M S W O R D .................................................................................................................. 264
M S P R O J E C T ............................................................................................................... 272
E M A I L ....................................................................................................................... 278
Mensajes de Correo Electrnico a Celulares ....................................................... 281
Envo de eMails a un Grupo de Usuarios ............................................................. 282
R E P O R T ..................................................................................................................... 284
I N T E R P H A S E .............................................................................................................. 286
F I L E L I N K _ D O W N ....................................................................................................... 288
E DI T OR DE H E L P .......................................................................................................................... 290
E D I T O R H T M L ............................................................................................................................. 300
A C E R C A D E L A P L A N T I L L A D E E S T I L O O T E M P L A T E ............................................................ 300
A C E R C A D E L A G E N E R A C I N D E L A C L A S E ............................................................................ 300
I N S E R T A R U N A C O L U M N A ........................................................................................................... 301
I N S E R T A R U N A N U E V A F I L A ....................................................................................................... 302
I N S E R T A R U N A C E L D A ................................................................................................................. 303
C O M B I N A R C E L D A S ...................................................................................................................... 304
I N S E R T A R U N A I M A G E N .............................................................................................................. 306
F O R M A T O D E C E L D A S .................................................................................................................. 307
I N S E R T A R U N H I P E R V N C U L O ................................................................................................... 311
M O V E R C O N T R O L E S D E T I P O F E C H A ....................................................................................... 313
P R O P I E D A D E S D E L A T A B L A ....................................................................................................... 316
Qu es el HTML?.......................................................................................................................... 317
Permite que el desarrollador pueda configurar fcilmente nuevas aplicaciones, crear usuarios de
aplicaciones y las clases que se utilizarn en la aplicacin. Durante la creacin de clases se definen: los
atributos de la clase, su relacin con las dems, los mtodos de la clase, las validaciones y el formato que
tendr cada atributo en el formulario de carga o visualizacin de la clase. Estos formularios, que se generan
con el FlexAB-SCI, son configurables y se desarrollan en HTML, pudiendo el usuario modificar el template
bsico, que genera en forma automtica el sistema, a las necesidades de la aplicacin.
Es una herramienta para la creacin de aplicaciones sin programacin, con la flexibilidad de la teora
Orientada a Objetos, y utilizando robustas bases de datos relacionales (RDBM).
El desarrollador interacta solo con objetos, los datos y su estructura relacional son transparentes para el
configurador, no perdiendo tiempo en relaciones, ndices, tablas, etc. Esto hace que la creacin de
aplicaciones tenga una reduccin en su tiempo de desarrollo.
La utilizacin de Objetos (Clases) posibilita la reutilizacin de los mismos en otras aplicaciones, as como su
vinculacin a otras aplicaciones, compartiendo la informacin en toda la familia de sistemas desarrollados
en FlexAB de manera directa, sin interfaces o procesos intermedios.
gil construccin: Luego de crear las clases de acuerdo a la lgica de negocios, puede
comenzar a utilizar la aplicacin, ya que los paneles de carga y edicin de datos de los objetos, en
la FlexAB-SUI, heredan en forma automtica, las validaciones que se configuren en la FlexAB-SCI a
nivel de campos (como por ejemplo el rango de un campo, o su formato de ingreso).
Genera formularios HTML automticamente: Los formularios de alta y edicin de objetos que
utilizarn en la FlexAB SUI se generan automticamente en HTML y es posible configurar el
formato del mismo.
Validaciones por nica vez: Las validaciones se realizan en la clase por nica vez, luego son
heredadas por todos los objetos de la clase que se utilicen en la FlexAB SUI.
D
Diirriig
giid
doo aa
El componente de FlexAB, Standard Configurator Interface (Interfaz Estndar del Configurador - SCI),
est dirigida para el desarrollador de sistemas, la persona que configurar las clases, atributos,
mtodos.
C
Coon
noocciim
miieen
ntto
ossP
Prreevviio
oss
D
Dooccu
ummeen
nttaaccii
nnd
dee R
Reeffeerreen
ncciia
a
FlexAB-Gua Tecnolgica
Botn de acceso al UCI (conexin a los universos). El FlexAB UCI es la aplicacin donde se
configuran los universos a los cuales accede la mquina.
El botn Ok permite el acceso al sistema si el usuario, la contrasea y la aplicacin que ingres son datos
validos.
El botn Cancel deja sin efecto la operacin de acceso.
La ventana principal contiene: el Men de Opciones del mdulo Interfaz Estndar de Configuracin
FlexAB, la Barra de Herramientas, el combo de Edicin Rpida de clases, la Barra de Navegacin a
la izquierda de la pantalla, el Arbol de Navegacin , el Panel de Estado de los hijos del rbol, y el
Panel que muestra los Atributos de la Clase.
Arbol de Navegacin
Barra de Navegacin
El combo de Edicin Rpida de clases, despliega las clases existentes. Esto presenta una gran utilidad,
porque cuando se sabe cual es la clase con la que se quiere trabajar, eligiendo la clase desde este combo,
directamente se abre el formulario de edicin de clases, evitando la ocasional bsqueda de la clase en el
rbol.
El men est compuesto por seis opciones principales: Maintenance, Objects, Language Tools,
Reports y Help.
Men Maintenance
Export to XML: permite exportar la clase seleccionada a XML. Una vez obtenido el XML, se puede
modificar la clase, y luego incorporarla importando el archivo XML.
Import to XML: permite importar un XML de una clase.
User Export: permite exportar los usuarios del sistema. Al elegir esta opcin, aparecen listados en una
grilla todos los usuarios del sistema. Se deben seleccionar aquellos que se quieran exportar, y luego
presionando las teclas Ctrl + C , se copian al clipboard.
User Import: permite importar usuarios al sistema. Desde una planilla de Excel, se pueden copiar los
usuarios que se quieren ingresar al sistema.
Luego se indica en la ventana del importador, cuantos usuarios se quieren ingresar, y se pegan en la grilla.
Para completar la operacin presionar el botn Save .
Unlock Classes: permite desbloquear clases tomadas por usuarios. Si una clase est siendo
editada por un usuario, otro usuario podr tener acceso de slo lectura a la misma.
Unlock Objects: permite desbloquear objetos tomados por usuarios. Si un objeto est siendo
editado por un usuario, otro usuario podr tener acceso de slo lectura al mismo documento, debido
a que el objeto se bloquea y as de esta manera se mantiene la integridad del mismo.
Purge Auditory: permite depurar la base de datos de auditora, que contiene la auditora de los
objetos. (Ver Clases Reales,Solapa Class,Auditoria de Objetos)
Object Range: permite definir los rangos que tendrn los identificadores de los objetos en los diferentes
universos. Esta opcin es fundamental para poder mover objetos entre los universos sin que haya
conflictos con sus identificadores.
Quit: salir del sistema.
Men Objects
(1)
(2)
(1) Text Translations: Textos, palabras, que se encuentran en todas las ventanas de FlexAB-SUI,
Interfaz Estndar del Usuario, con sus respectivas traducciones. Haciendo doble clic sobre la celda de la
grilla, nos permite editar la celda y cargar el texto en el lenguaje seleccionado.
STRTRANSENG STRTRANSSPA
CHILDREN HIJOS
CHANGE &PASSWORD CAMBIAR &PASSWORD
&CLOSE APPLICATION &CERRAR APLICACIN
Figura 2.1: Traducciones Ingls-Espaol
(2) Messages Translations: Mensajes usados en el sistema, traducidos en los distintos lenguajes que se
pueden utilizar.
En esta ventana de Traducciones de Mensajes, tenemos un combo donde se listan los grupos, por ej.
Attributes, SQL, Help, etc. Al hacer clic, sobre un grupo, se listan los mensajes que corresponden al mismo.
Como se muestra en la Figura 3.2
Men Reports
Men Help
1 - New Object: Crea un nuevo objeto (clase, sistema, aplicacin, grupo de usuarios, usuario, etc.)
dependiendo del objeto seleccionado. Si estamos en el nodo USERS del rbol, solicitar ingresar un nuevo
Grupo de usuarios.
2 - Properties: Muestra las propiedades de objeto. Permite editarlo.
3 - Cut: permite cortar una clase estructural del rbol de de navegacin. Solo relaciones estructurales. Las
clases includas no se pueden cortar y pegar.
4 - Copy: permite copiar una clase. Puede copiar relaciones estructurales y de inclusin, pero al pegar,
pegar una relacin estructural. O sea, es posible copiar una clase includa, pero cuando se pegue dicha
clase ya no ser includa sino que ser una clase estructural en el destino.
5 - Paste: permite pegar una clase. Siempre pega relaciones estructurales. Como se refiri en los puntos 3
y 4.
6 - Delete: permite eliminar una clase.
7 - Method Editor: editor de mtodos. (Ver Method Editor)
Hay dos perfiles de configuracin en FlexAb-SCI: el Modo Config (configurador) y el Modo Admin
(administrador).
FlexAB-SCI utiliza una llave electrnica de hardware USB Hard Key, para manejar estos modos.
MODO CONFI G
En este modo el usuario puede operar la Interfaz Estndar de Configuracin (FlexAB-SCI) completa, sin
restricciones. Es el usuario con mayores privilegios de permisos. Necesita utilizar un USB Hard Key.
Es el usuario que tiene Control Total sobre el sistema
Para ingresar en este modo se debe marcar la casilla Connect HKey
Se visualizan todos los sistemas creados con la USB Hard Key actual, y los que se
crearon sin utilizar una USB Hard Key (annimos).
Nota: Cuando en modo Config, se edita una clase creada con otra llave, dicha clase solo se edita en forma
limitada, mostrando las mismas solapas que en modo Admin
El modo Admin NO REQUIERE USB Hard Key (llave), y tiene un limitado acceso de configuracin.
Trabajando en este modo, el usuario puede ver los sistemas que se hayan creado sin utilizar una llave.
El rbol de clases no ser visible. Se deber acceder a las clases desde el combo de Fast Edit y se
podrn editar en forma limitada. En dicho combo estarn visibles las clases de todos los sistemas.
No tiene visible el rbol de clases, por lo cual el acceso a una clase debe hacerse desde el combo de
Edicin rpida en la barra de Herramientas.
Licencia
En la licencia de FlexAB, se define si el producto podr o no ser utilizado usando una USB Hard Key. Por lo
que Ingresar a FlexAB en modo Config o Admin, tiene que ver con la licencia de FlexAB que se posea.
En la aplicacin File Server, men Licence, submen Info , en el item Application Types , se
encuentra esta informacin
USERS
usuario desde el icono New Object de la barra de herramientas o desde el men Object la opcin
New, una vez seleccionada la misma, se activa la ventana User Information que se muestra en la Figura
5.
User ID: identificador del usuario que se va a crear, con el cual el usuario ingresar al sistema.
Por ej: iniciales del usuario, alopez.
UserName: nombre del usuario que se va a registrar.
Password: clave con la que el usuario ingresar al sistema.
LoginTries: este campo indica la cantidad de intentos de acceso al sistema fallidos, luego de
pasada dicha cantidad, el usuario queda deshabilitado.
State: es el estado del usuario: Habilitado o Deshabilitado. Los usuarios deshabilitados no pueden
ingresar al sistema.
The password expires on: especifica la cantidad de das a los que vence el password. El valor 0
(cero) significa que no tiene vencimiento.
Email: a partir de la direccin de correo electrnico ingresada se puede enviar un e-mail al soporte
del sistema, informndole el error ocurrido en la aplicacin. Es la direccin de correo que le
aparece a la persona que da soporte, cuando recibe el informe de error.
Config SMTP
SMTP Server: el nombre de servidor de correo saliente
SMTP User: son los datos de usuario para ingresar al servidor SMTP
SMTP Password: es el password para ingresar al servidor SMTP
Port: puerto en el que trabaja el servidor SMTP. Generalmente es el 25
Security SSL: indicar si el servidor utiliza seguridad a travs del protocolo SSL
Authentication: indicar si el servidor requiere autenticacin
Al hacer clic en el botn ENVIAR EMAIL, automticamente se enva un email al soporte del sistema.
En todos los casos se enva un Screenshot de la pantalla ms el mensaje de error; solo si en la operacin
hay un objeto involucrado, adjunta el XML de la clase.
Config Level: presionando este botn podremos establecer el alcance que tendr el usuario para
configurar opciones dentro del FlexAB-SCI (configurador). Se visualizar la siguiente pantalla, que
detallaremos a continuacin.
Char. Min. Password: indica la cantidad mnima de caracteres que contendr el password del
usuario. Si es cero, no tiene lmite.
Para ver las propiedades de un usuario (para editar), seleccionarlo y presionar el icono Properties de
la barra de herramientas o desde el men Object la opcin Properties.
De esta manera, es posible modificar las opciones que se encuentran habilitadas en la ventana, por
ejemplo: el estado, los grupos, etc.
Grupos de usuarios
Para ver las propiedades de un grupo, seleccionarlo y presionar el icono Properties de la barra de
herramientas o desde el men Object la opcin Properties.
Al editarlo es posible modificar la descripcin del Grupo.
Luego de haber agregado el usuario a un grupo existente, nuestros grupos de usuarios se vern de la
siguiente manera:
Presionando Systems en la barra de navegacin, en la raz del rbol del FlexAB-SCI, encontramos
Systems. Dentro se organizan los sistemas y las aplicaciones que contienen. En nuestro ejemplo los
sistemas APPLIWARE, COM, EGP, y sus aplicaciones segn corresponda. En el ejemplo de la figura el
sistema APPLIWARE contiene las aplicaciones 1 y 2 (Figura 9).
Sistemas
System ID: ingresar el identificador interno del sistema. Ej: COM (Modulo Comercial).
Description: ingresar el nombre del nuevo sistema.
Support Mail: ingresar la cuenta de e-mail del soporte del sistema.
System Key: nmero de llave del sistema. El sistema y las aplicaciones correspondientes, solo
sern visibles si se encuentra presente una llave que contenga el System Key indicado. En caso de
ingresar al FlexAB-SCI con la opcin Connect Hkey destildada, est o no presente una llave, solo se
vern sistemas cuyo System Key sea 0 (cero). Estos sistemas con System Key = 0 (igual a cero)
son sistemas que han sido creados no habiendo una llave presente o habiendo ingresado al FlexAB-
SCI con la opcin Connect Hkey destildada.
Para ver las propiedades del sistema, seleccionar un sistema y presionar el icono Properties de la
barra de herramientas o desde el men Object la opcin Properties. Se edita el sistema y permite
cambiar los datos de descripcin, la cuenta de e-mail de soporte.
Luego seleccionar el sistema sobre el cual desea crear una nueva aplicacin y presionar el icono New
Object de la barra de herramientas o desde el men Object la opcin New.
Contiene el icono que se le asigna a la aplicacin. El de dicho icono es actuar como un elemento de
identificacin visual. Haciendo doble clic podremos seleccionar el icono deseado. Este icono debe ser de
16x16 pixeles y de 256 colores.
El panel Security:
Una vez creada la Aplicacin, se deben otorgar los permisos a los grupos de usuarios, para definir los tipos
de acceso que tendrn a la misma.
Para agregar una nueva regla de seguridad hacer clic en el botn Add .
Para eliminar la regla de seguridad hacer clic en el botn Remove .
Los permisos Deny, Last Version y Full Control no se pueden combinar con otros permisos.
idSpace: permite seleccionar los espacios a los cuales tendr acceso el grupo de usuarios definido.
Se visualizar una ventana como la siguiente
Desde aqu podremos seleccionar uno o todos los espacios. Haciendo doble clic sobre el espacio
seleccionado la ventana proceder a cerrarse.
Nota: Las aplicaciones de creadas dentro de un mismo sistema, tienen los mismos espacios.
Para ver las propiedades de una aplicacin, seleccionarla y presionar el icono Properties de la barra
de herramientas o desde el men Object la opcin Properties.
Al editar la aplicacin, es posible generar cambios en alguno de sus datos.
Si queremos eliminar una aplicacin, debemos seleccionarla y presionar el icono Delete de la barra de
herramientas o desde el men Object la opcin Delete.
Para crear un nuevo Espacio, seleccionar seleccionar un sistema y crear el nuevo espacio desde el icono
New Object de la barra de herramientas o desde el men Object la opcin New.
Si elegimos la opcin New Space generar un espacio nuevo en el sistema seleccionado. Se deben cargar
los campos idSpace (un valor hasta 255) y Description. Luego directamente se abrir el Editor de Clases
para cargar la primer clase.
En caso de querer agregar un espacio ya creado a un sistema en particular, se debe seleccionar la opcin
Existing Space. Aparece la ventana Space que se muestra en la figura 15 b.
Para ver las propiedades de un espacio, seleccionarlo y presionar el icono Properties de la barra de
herramientas o desde el men Object la opcin Properties.
Al editar el espacio, es posible cambiar la descripcin del mismo.
Para eliminar un espacio debemos primero eliminar cada una de las clases que tiene.
Si eliminamos todas las clases de un espacio, el mismo se borrar automticamente.
Para eliminar un item del rbol del FlexAB-SCI, seleccionarlo y presionar el icono Delete de la barra
de herramientas o desde el men Object la opcin Delete.
Antes de eliminar el tem de que se trate, el sistema le pedir la confirmacin de eliminacin.
Si se est por eliminar una clase el sistema le advertir con el siguiente mensaje de confirmacin, solo se
podrn eliminar clases si las mismas no contienen objetos cargados (instancias)
La primera opcin borra solo la relacin estructural entre la clase seleccionada y la clase padre del rbol de
clases.
La segunda opcin elimina la clase en s.
Virtuales: son clases que no pueden ser instanciadas. Una clase virtual es tipo de clase que
recupera datos desde otras clases. Su finalidad es ser utilizada como medio para obtener ciertos datos.
Sus objetos no pueden verse en el rbol estructural.
Reales: son las que permiten generar una instancia de un Objeto Real en una Aplicacin, la
relacin entre hijos y padres; puede verse en el rbol estructural.
Mdulos: una clase de este tipo, contiene Mtodos que son globales y pueden ser utilizados por
las dems clases. No pueden verse en el rbol estructural.
Abstractas: una clase de este tipo, puede ser utilizada por cualquier clase Real. El objetivo de
estas clases es reutilizar su funcionalidad.
Las clases virtuales, se alojan en la raz de VIRTUALS del Configurador de FlexAB y pertenecen a todo el
universo integrado, es decir a todos los sistemas.
Para acceder a VIRTUALS, se debe presionar el botn correspondiente en la Barra de Navegacin.
Por ejemplo en la figura podemos observar las clases virtuales: BORNEPADRES, CODCOMERCIAL,
comPrecioItem, CXN_BORNES, DOC_CAMPOS, DOC_TagsObj, docListado, docREVISION
Clase Virtual
1 Save Class: Graba la clase. Esta grabacin es un almacenamiento temporal mientras se est
desarrollando la clase. Esto es muy til para poder ir gradualmente desarrollando la clase.
2 Generate Class: Toma los cambios realizados en la clase, y los graba definitivamente. Es una
grabacin definitiva en la Base de Datos.
3 Edit Class: Para poner en modo edicin una clase. Esto bloquea la clase.
5 Restore Generated Version: Deshace el bloqueo de la clase. Deshace todo cambio que se haya
hecho sobre la clase, y la vuelve a la ltima versin generada.
6 Restore Class Version: Restaura la clase a la versin elegida de la misma. (Ver Clases Reales)
Solapa Class
Contiene las propiedades de la clase virtual (Ver Figura 17).
Class Name: ingresar el identificador nico de la clase. Ej: CLIENTLIST
ShortName: ingresar un identificador por aplicacin, compuesto obligatoriamente por cinco
caracteres que permitan al usuario reconocer las clases de cada aplicacin. Ej: (LCL)
Description: agregar un comentario descriptivo de la clase.
Virtual Data: en este campo se crea la consulta FQL que conformar los datos de la clase virtual.
Nota: El campo IdApplication es obligatorio. El FQL devuelve los registros que tengan
IdApplication=0 y los que tengan el nmero de la aplicacin actual.
Security Definitions: se definen los grupos de usuarios que tendrn acceso (Allowed) a la clase
virtual y los que no tendrn acceso (Restricted).
Al pedir el resultado de una clase virtual, si el usuario pertenece a un grupo que tiene acceso a la
clase virtual, obtendr los resultados; de lo contrario la clase virtual devuelve el recordset abierto,
pero vaco.
Dentro de los sistemas se organizan los espacios. Por ejemplo podemos visualizar dentro del sistema FIC,
los espacios: 150-DOCUMENTS, 151UPDATES, 152USERZONE, 153DEMOS y 154SUPPORT.
Dentro de los espacios se organizan las clases. Por ejemplo podemos visualizar dentro del espacio 150
DOCUMENTS las clases: DATASHEETS, HELPS, IMAGES, MANUALS, PRESENTATION, TRAINING.
Sistema
Espacio
Clase
En caso de que la clase que queremos crear no tenga una clase padre, nos posicionamos en el espacio
donde la queremos crear y realizamos los pasos mencionados anteriormente, con la diferencia que en este
caso, no solicita el tipo de relacin y se abre directamente la ventana Class Editor.
Las clases con este icono de color rojo, son clases que NUNCA FUERON GENERADAS. No son
visibles para el usuario final.
Las clases con este icono de color verde, son clases que estn GENERADAS PERO TUVIERON
CAMBIOS luego de la ltima generacin, por lo que no estn sincronizadas con la base de datos.
Las clases con este icono multicolor, son clases que estn GENERADAS y sincronizadas con la
base de datos. No tuvieron cambios desde su generacin. El usuario final, las ve con todas las
caractersticas tal cual estn en el configurador FlexAB-SCI.
Las clases con el icono de la flecha que apunta a la derecha, son clases INCLUIDAS.
Las clases con el icono que tiene el candado, son clases que estn BLOQUEADAS.
Las clases con el icono que tiene el tilde, son clases que estn BLOQUEADAS POR EL
USUARIO ACTUAL. O sea, que si Ud. ve en la pantalla, una clase con este icono, esa clase est
bloqueada por Ud.
Para editar una clase, es necesario seleccionarla y presionar el icono Properties de la barra de
herramientas o desde el men Object la opcin Properties.
Se activa la ventana del Editor de Clases que contiene la siguiente barra de herramientas
1 Save Class: Graba la clase. Esta grabacin es un almacenamiento temporal mientras se est
desarrollando la clase. Esto es muy til para poder ir gradualmente desarrollando la clase, por ejemplo
cuando hay que consultar dudas que pueden tardar das en tener respuesta. Los cambios realizados en la
clase, no sern vistos por el usuario final hasta que sea generada la clase (botn Generate Class). Al
grabar, se desbloquea solamente la clase, esto quiere decir, por ejemplo que si se est trabajando con un
mtodo, el mismo no ser desbloqueado.
2 Generate Class: Toma los cambios realizados en la clase, y los graba definitivamente. Es una
grabacin definitiva de los cambios realizados. El usuario final, ve la clase tal cual como fue generada. Al
ser generada una clase, se desbloquea la clase.
3 Edit Class: Para poner en modo edicin una clase. Esto bloquea la clase.
4 Undo Edit: Deshace el bloqueo de la clase. Deshace todo cambio que se haya hecho sobre la clase, y
la vuelve a la ltima versin grabada (no a la ltima generada).
5 Restore Generated Version: Deshace el bloqueo de la clase. Deshace todo cambio que se haya
hecho sobre la clase, y la vuelve a la ltima versin generada.
9 List the FQLs referencing this class: Lista de los FQL del universo que hacen referencia a la clase
(a tabla att o a la vista)
Al presionar el botn de Restore Class Version, se listan las versiones que existen de la clase. Cada
vez que la clase se genera, se realiza una versin.
El Editor de Clases, contiene adems las siguientes solapas: Class, Attributes, Flow, Identity, Help,
Report, Includes, Relations, Generate, Revisions e Include Order.
Class Name: campo en donde se especifica el identificador nico de la clase. Ej: TAREA
ShortName: campo en donde se especifica un identificador por aplicacin, compuesto por un
conjunto de caracteres que permiten que el usuario reconozca las clases de cada aplicacin. Ej: (TAR). Son
cinco caracteres obligatoriamente. Por convencin se utilizan tres letras entre parntesis.
Description: campo en el cual se agrega un comentario descriptivo de la clase.
Icon: contiene el icono que se le asigna a la clase. Al hacer doble clic sobre el cuadro se abre el
cuadro de dialogo para buscar el icono que desea adjuntar a la clase.
El icono de la clase tiene que tener 2 formatos: 16 x 16 de 256 colores y de 32 x 32 de 256 colores.
Audit Objects: indica si se realizar la auditora de los objetos de la clase.
Auditora de Objetos
Se debe tener en cuenta que si los objetos de una clase includa deben auditarse, la clase padre
tambin debe auditarse, de no ser as dar un error al querer auditar.
Adems hay que tener en cuenta que las clases includas no se auditan por s mismas. Solo se auditan
sus archivos filelink. Los valores de sus atributos se auditan en el xml del objeto padre. Por eso es que
debe auditarse la clase padre si se quiere auditar la includa.
Contiene los atributos de objeto de la clase. (Ver Figura 19). En el panel superior Common Attributes se
encuentran los atributos que estn siempre presentes para cualquier clase que se configure.
A estos atributos no se los puede remover, ni pueden agregarse nuevos.
Estos cuatro atributos de la clase, debido a la configuracion del List Column, son los que
detallar la Barra de Objeto de la Interfaz de Usuario (FlexAB SUI), tal cual vemos en la imagen
siguiente:
Para Editar un atributo Common: activar la pantalla de edicin haciendo doble clic sobre la fila
correspondiente en la grilla, de este modo, se activar la ventana correspondiente, que tiene solamente la
solapa Form (Figura 20).
Figura 20: Ventana de edicin de atributos Common de la clase seleccionada, solapa Attributes.
El panel Specific Attributes contiene los atributos especficos de la clase, los que define el usuario
configurador a la hora de la realizacin de un sistema (ver Figura 21).
Type: seleccionar el tipo de atributo, puede ser real, virtual, relation o visual.
- Real: se define este tipo de atributo cuando estamos dando de alta un atributo comn, que puede
llevar cualquier tipo de dato (integer, double, boolean, long, text, etc.). El valor de Data Type puede ser
cualquiera de los definidos.
- Virtual:. este tipo de atributo cambia de valor dependiendo de la informacin que se graba en otras
clases del Universo. (Ver Atributos de Tipo Virtual)
- Relation: se define este tipo de atributo cuando el mismo necesita traer un dato de otro atributo que
se encuentra en otra clase. (Ver Atributos de Tipo Relation)
- Visual: se define este tipo de atributo cuando es necesario que el usuario de la aplicacin, observe
alguna informacin dinmica, por ejemplo un saldo. Los atributos visuales, obtienen datos de otro lado
como por ejemplo de un clculo; no se almacenan en la base de datos. (Ver Atributos de Tipo Visual)
DataType: tipo de dato del atributo Ej.: boolean, integer, long, autonumber, single, double, char,
text, date, time, datetime, numtext, etc . Su determinante es el Type.
Cuando seleccionamos el Data Type NUMTEXT, se hace visible el combo Numeric Attribute que
contiene todos los atributos de tipo numrico que tiene definidos la clase.
Debemos seleccionar el atributo que deseamos sea traducido a letras.
Data: Hay determinados tipos de atributos, por ejemplo los atributos de tipo RELATION que
pueden poseer un FQL asociado. Se puede crear un FQL o tomar uno existente. Al presionar el botn SQL,
se activa el FQL Editor. (Ver FQL Editor).
Schema: Solo para atributos del tipo Relation. (Ver Atributos Relation)
Los items: CopyEnabled, ImportEnabled, allowsNulls y Unique, son propiedades del atributo que
pueden habilitarse con un tilde, o dejar deshabilitado.
CopyEnabled: si est tildado significa que cuando copiemos un objeto (a uno nuevo), el atributo
tendr el mismo valor que en el original. Si CopyEnabled est destildado, al copiar el objeto, el valor del
atributo estar en blanco.
Export-Import Enabled: si est tildado, significa que el valor de este atributo se puede importar y
exportar. De lo contrario no puede realizar ninguna de las dos operaciones.
Allows Null: si est en blanco, el atributo no acepta valor nulo.
Unique: el valor del atributo no se puede repetir en ningn objeto de la clase.
List Column es el orden de aparicin de los atributos en el panel de FlexAB-SUI. Como se puede
observar el atributo Descripcin de la clase Materiales-Inst, tiene asignado un List Column igual a 3, etc.
Esta propiedad List Column, tiene efecto sobre los atributos que se muestran en la Barra de Objeto, tal cual
se explic anteriormente.
Solapa Form: se encuentran los datos necesarios para dar formato al campo del atributo dentro del
formulario.
Si el tipo de dato del atributo es double, el Control Type puede ser: Number o Calculator
A modo de ejemplo, visualizamos el campo de tipo Calculator en la Interfaz Estndar de Usuario FlexAB-
SUI. Este campo despliega una calculadora. Los valores obtenidos del clculo, se cargan en la caja de
texto.
BOOLEAN CHECK
TEXT TEXT
DATE DATE
TIME TIME
NUMTEXT STRING
SI EL TIPO DE ATRIBUTO Y EL TIPO DE DATO ES: LOS TIPOS DE CONTROL DISPONIBLES SON:
SI EL DATATYPE ES CHAR Y ATTRIBTYPE ES VIRTUAL O STRING, LIST, NUMTEXT, FILELINK, FILEDOWN, COMBO,
REAL HYPERLINK
SI EL DATATYPE ES CHAR Y ATTRIBTYPE ES RELATION STRING, COMBO
Los tem Active, Visible, Limit To List son propiedades que tendr el atributo en el formulario. ej.
Activo, Visible. (tildar la que desee habilitar).
- Active: indica si el atributo va a estar activo en el formulario.
- Visible: indica si el atributo va a estar visible en el formulario.
- Limit To List: esta opcin limita los valores del combo, es decir, los nicos valores que podr
contener, son los correspondientes a esta lista cargada en la solapa Form.
Al estar tildado el check Limit to list indica que no se puede agregar ningn valor
diferente al combo, cosa que podra realizarse por ejemplo con un mtodo.
-
-
FlexABSCI: Manual de Configurador 66
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Valor a ingresar a la lista.
Lista que contiene los valores que aceptar el combo. Si est tildada la opcin Limit to
List, los valores de esta lista sern los nicos valores posibles.
Funcionamiento de la opcin Limit To List, en combinacin con la opcin ALLOWS NULL para un
control de tipo Combo
Limit To List
SI: Antes de guardar, verifica que el dato est en la lista
NO: Al guardar, no chequea el valor contra la lista
ALLOWS NULL
SI: Agrega a la lista de valores un NULL
NO: No agrega a la lista de valores el NULL
+
LIMIT TO LIST = SI + ALLOW NULLS = SI: La lista se forma por valores + nulo y se controla
que el valor ingresado est en la lista al guardar.
Al crear un objeto nuevo, se pone al atributo el
valor default (si tiene) o el nulo.
+
LIMIT TO LIST =SI + ALLOW NULLS = NO: La lista se forma por valores y no se agrega el
nulo. Al momento de guardar, se controla que el
valor pertenezca a la lista.
Al crear un objeto nuevo, se pone al atributo el
valor default o el primer valor de la lista.
+
LIMIT TO LIST = NO + ALLOW NULLS = SI: La lista se forma por valores + nulo y al momento
de guardar, no se verifica que el valor est en la
lista.
Al crear un objeto nuevo, se pone al atributo el
valor default o el nulo.
+
LIMIT TO LIST = NO + ALLOW NULLS = NO: La lista se forma por valores y no se agrega el
nulo. Adems, al momento de guardar, no se
controla que el valor pertenezca a la lista.
Al crear un objeto nuevo, se pone al atributo el
valor default o el primer valor de la lista.
Value: se activa nicamente en caso de seleccionar un Tipo de Control List o Combo, para llenar los
valores de la lista, entonces, para agregar un valor se hace clic en el botn Add, y para quitar valores,
hacer clic en el botn Remove.
Estos caracteres son los nicos que tienen efecto en el campo Mask de la configuracin del atributo.
Validate Rule: ingresar la regla de validacin que tendr el atributo en el formulario, solo si es
necesario. Es el campo en el cual se puede validar un atributo de una clase. Solo se permiten simples
reglas de validacin, para ingresar el contenido de una regla debemos tener en cuenta que no se podrn
utilizar cualquier smbolo, solo los siguientes. Se puede utilizar el operador & (AND).
1. =15
=PEPE
2. <>30
<>PEPE
<>30 & <>45
<>PEPE & <>JUAN
3. >15
>JUAN
>15 & <30
>JUAN & <PEPE
4. <30
<PEPE
>15 & <30
>JUAN & <PEPE
5. >=15
>=PEPE
>=15 & <=30
>=JUAN & <=PEPE
6. <=30
<=PEPE
FlexABSCI: Manual de Configurador 68
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
>=15 & <=30
>=JUAN & <=PEPE
7. BEGINS WITH PEPE
BEGINS WITH PEPE & ENDS WITH RULO
8. DOES NOT BEGIN WITH PEPE
9. ENDS WITH PEPE
10. DOES NOT END WITH CON PEPE
11. CONTAINS PEPE
CONTAINS PEPE & DOES NOT CONTAIN JUAN
12. DOES NOT CONTAIN PEPE
Default Value: ingresar el valor por defecto que tendr el atributo en el formulario, solo si es
necesario.
Format: podemos ingresar un formato que para dar a nuestro atributo. De acuerdo al tipo de
Dato, existen distintos formatos que el usuario puede utilizar:
Ejemplos de Formatos:
Los siguientes ejemplos los hemos realizado tomando como el valor de fecha al 1 de Enero de 2006.
Los valores en el campo formato se muestran de la forma en que deberan ser ingresados en el campo
Format
Formato Resultado
1-1-1 (el valor del ao 1 porque es el 1 da del ao)
d-m-y
dd-mm-yy 01-01-06
ddd-mm-yy Dom-01-06
Ejemplos de Formatos:
Los siguientes ejemplos los hemos realizado tomando como la hora 01:02:04. Los valores en el campo
formato se muestran de la forma en que deberan ser ingresados en el campo
Formato Resultado
hh:mm:ss 01:02:04
h:m:s 1:2:4
COMBO DROPDOWN
El control Combo DropDown , es un control que mostrar todos los valores que los objetos de la clase
tienen guardados en ese atributo.
Botn Add Option, para ingresar un nuevo valor al combo, distinto de los que contiene.
La idea de este control, es listar los valores ya guardados, y si no existe el valor que buscamos, poder
agregarlo. No es posible agregar un valor existente en el combo.
Ejemplo
Existen en nuestra aplicacin tres objetos donde el atributo Name (que usa el Combo DropDown),
contiene los valores John en uno, William en otro y Robert en el tercero de los objetos. Al crear el
cuarto objeto, el combo tendr cargados en su lista los valores John, William y Robert, tal cual se
muestra en la figura.
HIPERLINK
El control Hyperlink , permite navegar a la URL indicada, presionando Ctrl + Click sobre la casilla de texto
Nota: Es necesario que la URL ingresada contenga el prefijo de Protocolo de Transferencia de Hipertexto
http://
Solapa Message: (ver Figura 25) se ingresan los mensajes que aparecern en caso de no cumplirse con
las reglas de validacin del atributo. Estos mensajes pueden configurarse de acuerdo al idioma, es decir, si
el usuario tiene configurado su idioma en Portugus, los mensajes de error que veremos son aquellos que
figuran en Portugus.
Solapa Virtual: Esta solapa, aparece solamente cuando el atributo que se est editando es un atributo
de tipo Virtual. En la misma, se eligen las clases que tendr asociadas el atributo.
Solapa Extensions: Esta solapa, aparece solamente cuando el atributo que se est editando es un
atributo de tipo Filelink. En la misma, se indican las extensiones de los archivos que aceptar el filelink.
FlexABSCI: Manual de Configurador 72
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Para aceptar cualquier tipo de archivo, se debe indicar *.*
En ciertos casos es necesario crear un atributo de tipo RELATION, como por ejemplo cuando necesitamos
recuperar informacin que se encuentra en atributos de otras clases. Pensemos en una clase, que para un
determinado atributo necesita datos de otra clase. Para el ejemplo con el que nos encontramos trabajando,
la clase TAREAS tiene un atributo de tipo RELATION, denominado Responsable, mediante el cual
podemos obtener de la clase USUARIOS, los nombres de aquellas personas que pueden encargarse de
realizar la Tarea, y luego seleccionar una de ellas.
En este caso particular, debern ser usuarios que correspondan al grupo Developer
Para crear un atributo de tipo Relation, debemos especificar Type de tipo RELATION y Data Type de tipo
CHAR(250)
Estos atributos tienen la caracterstica de tener asociadas dos consultas SQL que nos permiten traer
informacin desde otros atributos en otras clases.
Segunda consulta: Data. Puede contener XQL, y es la que realiza la seleccin los datos.
Integrity Control: Integridad referencial con los objetos del universo. Si se utiliza una base de datos
externa, no se debe tildar la opcin, porque no se realiza el control.
Para agregar la primer consulta asociada al atributo de tipo Relation, se debe hacer clic sobre y se
abrir la ventana del Editor de FQL. Haciendo clic sobre el botn New se procede a crear la sentencia
FQL.
En esta ventana se encuentran los datos necesarios para construir la primer consulta FQL asociada.
Luego se debe completar las dems solapas del Editor para crear la sentencia FQL.
(Ver FQL Editor)
La primer consulta FQL a realizar correspondiente al campo Schema.
Donde el campo que estar visible al usuario (Ver la vista en FlexAB-SUI) ser el que se le asigna VALUE,
en nuestro caso el campo Nombre. Estos campos son obligatorios, y luego se podrn agregar ms
campos de la tabla en caso de necesitarlo.
En caso de referenciar una clase que se encuentre en otra aplicacin, el campo idApplication debe ser 0.
Por lo tanto con la referencia 0 se indica que la clase corresponde a otra aplicacin, tal como se indica en el
ejemplo siguiente
Para los atributos Relation, en la solapa FORM podemos setear el Control Type eligiendo un control de
tipo Combo donde se mostrar un listado de todos los valores obtenidos para el campo, o String, donde
accederemos a una tabla para seleccionar el valor que sea adecuado.
Nota: La potencia de un atributo relation con un control de tipo String, radica en que al realizar una
consulta, el filtrado de los datos lo realiza por cualquiera de los campos que presenta.
Valores que devuelve el campo con alias VALUE, en este caso classUSUARIOS.Nombre
La segunda consulta, correspondiente al campo Data, en caso de ser necesario puede contener XQL.
Ejemplo
SELECT idInternal, idApplication, atributo AS VALUE
FROM classNOMBRECLASE
WHERE Campo1= condicion1, CampoN= condicionN
Donde condicion puede ser una sentencia XQL, o valores comunes de seleccin.
Como podemos observar, en esta segunda consulta los datos pedidos son los mismos que en la primera,
porque para este ejemplo son suficientes.
Vista de los usuarios existentes con sus respectivos grupos de pertenencia en la Interfaz Estndar de
Usuario (FlexAB-SUI).
Como podemos observar en la Tarea que se encuentra en edicin, dentro del combo del atributo
Responsable, aparecen aquellos usuarios cuyo grupo es Developer.
En este caso ejemplificamos el campo Relation Responsable con un control de tipo Combo
Nota: En la tabla correspondiente a la clase que contiene a los atributos de tipo relation (attTareas en
este caso) por cada uno de estos atributos se crea un campo. Este campo contiene el IdInternal del objeto
al que apunta el atributo Relation. En el caso del ejemplo, se crearon dos nuevos campos en la tabla
attTareas: ID RESPONSABLE e ID VERSION.
(Para mayor detalle ver la Guia Tecnolgica de FlexAB, 101-TEG-SP (Guia Tecnologica).pdf)
Este tipo de atributo est asociado a otras clases. Este atributo cambia de valor dependiendo de la
informacin que se graba en otras clases del Universo, en las clases asociadas.
Cuando un objeto de estas clases asociadas se graba, se produce el cambio en el atributo virtual.
Cada clase asociada, puede actualizar todos los objetos de la clase que posee el atributo virtual, o
solamente el objeto correspondiente al IdInternal del atributo relation que posee esta clase asociada.
Si en la columna Virtual Attribute se indica un determinado atributo (debe ser de tipo Relation), ese
atributo posee internamente la informacin del objeto cuyo atributo virtual se debe actualizar. Esto es as,
porque el atributo de la clase asociada, por ser de tipo Relation, tiene esta cualidad.
El valor del atributo virtual queda guardado en la base de datos, pero es el resultado de un clculo.
Este valor Virtual, hace que el formulario de edicin contenga una solapa ms llamada Virtual desde
donde se eligen las clases asociadas al atributo virtual (Virtual Class), y los atributos Relation (Virtual
Attribute).
Clase asociada
FlexABSCI: Manual de Configurador 81
v62 207-SCI-SP (Configuracion).pdf
Atributo Relation de la clase elegida.
Nota 1: Los atributos virtuales no disparan eventos, por lo que no podrn utilizarse por ejemplo en un
evento FieldChange para utilizar mtodos.
Nota 2: El FQL del atributo virtual, debe contener obligatoriamente los campos IdInternal y Value, y no
puede contener expresiones XQL.
Ejemplo
Debemos crear entonces en la clase CLIENTE un atributo virtual, y debemos asociar la clase VENTA y un
atributo Relation de la misma.
Creamos en la clase CLIENTE, un atributo virtual llamado CantComprada, que informar la cantidad total
de mercadera comprada por el cliente.
El FQL devuelve la suma de las ventas agrupadas por cliente. El sistema se encarga de filtrar por el cliente
correspondiente, ya que cuenta con su IdInternal (campo ID Cliente) generado por el atributo Relation
CodCliente en la clase VENTA.
En la clase VENTA, creamos un atributo Relation llamado CodCliente, donde indica el cliente al cual se
realiza la venta.
Cuando un objeto de la clase VENTA se grabe, el cliente elegido en el campo CodCliente tendr un
cambio en su atributo CantComprada, sumando la cantidad de mercadera de la venta actual.
En este caso se debe indicar en la columna Virtual Class la clase VENTA, y en la columna
Virtual Attribute, el atributo CodCliente.
Un atributo de tipo FileLink, permite incorporar un archivo al objeto. Este archivo, se guardar junto con el
objeto, y el usuario podr acceder a dicho archivo, solamente desde el sistema a travs del objeto.
El archivo ser removido de su ubicacin original, y se enviar al FileServer.
A este tipo de atributo, se le puede indicar que tipos de archivo puede aceptar.
Por ejemplo si se trata de un atributo destinado a contener informes, se le puede indicar que solamente
acepte archivos que posean la extensin .doc.
Quitar extensin
Desde la Interfaz de Usuario FlexAB-SUI, el funcionamiento del atributo es sencillo. Se debe presionar el
botn Browse y ste desplegar una pantalla de Windows que permitir seleccionar el archivo que se desea
incorporar.
A continuacin, se visualiza el aspecto del atributo en el formulario de Edicin de Objetos (FlexAB-SUI)
Despliega la ventana para subir un archivo al atributo. Nos advierte el sistema, que el archivo
ser removido de su ubicacin y ser enviado al servidor como en la Figura 31
Inmediatamente de presionar el botn Browse, se despliega un cartel que advierte que el archivo
seleccionado ser quitado de su ubicacin original y enviado al servidor (FileServer). Si se est trabajando
desde la WUI (Web User Interface), el archivo no se quita de su ubicacin original.
Luego, se despliega la pantalla de Windows para ubicar el archivo deseado. En el caso de haber indicado
extensiones de archivos que se permiten para el atributo, se mostrarn solo los archivos con dichas
extensiones.
De esta manera, cuando el objeto se grabe, el archivo contenido en el atributo FileLink ser subido al
FileServer.
Luego, si queremos trabajar con l, simplemente haciendo clic sobre el botn Open, se abrir y podremos
utilizarlo.
Con este mecanismo, lo que estamos haciendo es bajar una copia del archivo original que se encuentra en
el FileServer, a nuestro directorio temporal.
Despus de trabajar y de realizar los cambios correspondientes, se debe grabar el archivo, y luego grabar
el objeto. De esta manera, se tomarn los cambios realizados, y se subir al FileServer el archivo con las
nuevas modificaciones.
En el caso de grabar el archivo y no grabar el objeto, quedar en el directorio temporal un archivo con los
datos grabados, pero el archivo contenido en el atributo del objeto (el original que est en el servidor), no
tendr los cambios, debido a que no se sube al FileServer el archivo modificado, al no haberse grabado el
objeto.
Nota: La segunda vez que se graba un objeto que tiene uno o varios atributos FileLink, el sistema busca
en el directorio temporal, archivos que pudieran tener igual nombre pero distinta extensin que el del
archivo contenido en el FileLink (con la nomenclatura que le impone el sistema). Si encuentra archivos que
cumplan esa condicin, sern subidos al FileServer junto con el archivo original.
En ciertos casos es necesario enviar hacia otro sector de la empresa, o algn otro lugar, los archivos de
informacin que tiene nuestra aplicacin (ver Atributos FileLink). Debido a que los mismos se encuentran
resguardados por el FileServer, no podemos acceder directamente a ellos. La manera de obtenerlos es a
travs de un atributo FileDown. Dicho atributo, trabaja por medio de una consulta FQL, que obtiene los
archivos que se le indiquen. Luego el usuario, ve presentados en una lista dichos archivos y selecciona los
que necesita.
Nota: Estos archivos, pueden estar revisionados o no estarlo. En versiones anteriores del producto, era
necesario que estuvieran revisionados.
Figura 33: Ventana presentada al usuario para elegir los archivos del FileDown
Cada vez que se grabe el objeto que contiene al atributo FileDown y se hayan seleccionado archivos
dentro del atributo, se crear un archivo ZIP (comprimido) conteniendo los archivos elegidos.
De esta manera, el usuario podr grabar los archivos y transportarlos, enviarlos por email, o darles el uso
que sea necesario.
SELECT classdocumento.idInternal,
classdocumento.idApplication,
'' as VERSION,
'Archivo' as IdAttribute,
REPLACE(classdocumento.NomReal,'.','_') + '
(' + RTRIM(classdocumento.Descripcion) + ')' AS VALUE
FROM classdocumento
INNER JOIN class_OBJECTfather1
ON classdocumento.idInternal = class_OBJECTfather1.idChild
INNER JOIN class_OBJECTfather1 class_OBJECTfather1_1
ON class_OBJECTfather1.idFather = class_OBJECTfather1_1.idChild
Los atributos visuales, se cargan desde un mtodo Operation; muestran por ejemplo el resultado de un
clculo.
Este tipo de atributo, solo tiene un valor asignado, en el XML del objeto.
Estos atributos se manejan a travs de mtodos. Por lo tanto, los valores se le asignan por mtodos. Un
mtodo Operation asociado a un evento cualquiera, puede cargarle algn valor al atributo.
Es muy comn en la prctica, mostrar al usuario un atributo visual, y antes de la grabacin del objeto, en el
evento BeforeSave de la clase, por medio de un mtodo asignar el valor de dicho atributo a un atributo
comn y de esa forma grabarlo en la base de datos.
El valor de un atributo visual, es asignado por medio de un mtodo, no desde el Editor de Atributos
Todas las validaciones tienen la misma mecnica en FlexAB-SCI. El panel Error Messages es el indicador
de los errores de cada carga de datos.
Cuando se detecta algn error de carga o dato faltante, se despliega el panel de Error Messages.
Este panel contiene cada uno de los errores detectados, y haciendo clic sobre el error correspondiente, nos
sita sobre el campo que presenta el error que puede estar dentro de otra solapa.
Estados
Reglas de Seguridad
Mtodos
Botn que despliega panel All Method donde se visualizan todos los mtodos de la clase (Ver
Visualizacin y Orden de Ejecucin de los Mtodos)
Nota: Las Reglas de Seguridad y los Mtodos definidos para el estado INITIAL, se aplican para
todos los estados. INITIAL funciona como un estado comodn. Esto significa que todo lo
definido en INITIAL se ejecutar en cada estado existente.
El estado INITIAL no puede ser eliminado.
Quien configure tambin tiene la posibilidad de establecer un estado inicial para la clase, diferente a
INITIAL.
En este caso, el estado definido por el configurador, ser el que tome por defecto el objeto cuando sea
nuevo. Si se quiere dar Seguridad o Mtodos para cuando se crea el objeto, esta es la forma de hacerlo.
Para realizar esta configuracin del estado inicial, se debe ir a la solapa Attributes, y dentro del panel
Common Attributes, ingresar al atributo IdState.
En el campo Default Value se debe ingresar el estado en el cual se quiere que los objetos de la clase se
encuentren cuando se crean.
Este estado no puede tener hermanos. Cuando se muestran las opciones para elegir el
prximo estado del objeto, se muestran hijos del estado actual, por lo que un estado a su nivel,
no sera nunca visible.
Este estado no puede tener una transicin a s mismo. No es posible que uno de los
prximos estados del objeto, sea ste.
Para agregar un estado se debe hacer clic con botn derecho sobre el estado padre, opcin New State y
se agregan los estados. Para remover un estado, se debe hacer clic con botn derecho sobre el estado,
opcin Remove.
Se pueden agregar los diferentes estados por los que se desea que pase el objeto, los estados se
encadenan. En este ejemplo, el primer estado que tiene el objeto es INITIAL (por defecto). De ah puede
pasar al estado A FUTURO, ALGUN DIA, PENDIENTE y VER. As tambin del estado ALGUN DIA
puede pasar al estado PENDIENTE, y de ste a los estados CANCELADA, EN PROCESO y VER. As
con el resto de los estados.
Si hay uno o ms estados definidos, cada vez que se edite el objeto y se grabe, obligar a elegir un estado
de los que hay definidos como siguiente al estado actual.
Por ejemplo, un objeto tiene definido el estado ABIERTO. Tiene tambin definidos como estados
siguientes a ABIERTO los estados REVISADO y A REVISAR
INITIAL
-ABIERTO
-REVISADO
-A REVISAR
En este ejemplo, la primera vez que ingrese a editar el objeto, el mismo va a tener el estado INITIAL por
ser nuevo. Cuando quiera grabar el objeto, el estado que va a grabar es ABIERTO, porque el sistema
obliga a grabarlo en el estado siguiente al actual.
Cuando ingrese a editar el objeto nuevamente y grabe nuevos cambios, va a solicitar grabar uno de los dos
estados siguientes, REVISADO o A REVISAR. Y as sucesivamente para los estados que tuviera definido
el objeto.
Supongamos el caso en el que se ingresa a la edicin del objeto, el estado que tiene es ABIERTO y
queremos que quede en ese estado. La opcin para esto es que el estado ABIERTO tenga como hijo en
su configuracin al mismo estado ABIERTO
INITIAL
-ABIERTO
-REVISADO
-A REVISAR
-ABIERTO
Nota: Si el objeto no tuviera definidos ms estados siguientes al actual, el objeto no podr modificarse
ms.
Si un estado B es hijo de otro estado A , A no podr ser eliminado sin eliminar B, si B no tiene un segundo
estado padre, ya que no pueden quedar estados huerfanos.
Si un estado tiene configurados seguridad y/o mtodos, cuando quede el ltimo representante de este
estado en el rbol, se va a tener que borrar todo lo que tiene configurado para que se permita borrar el
estado.
Auditora de Estados
ALL Se realiza la auditora cada vez que el objeto pasa por el estado. Se crea un
registro diferente cada vez en la tabla de auditora (staNombreClase).
FIRST Se realiza la auditora nicamente la primera vez que se entra al estado.
LAST Se realiza la auditora de la ltima vez que se entra al estado. Se va actualizando el
mismo registro, de manera que quede solamente el dato de la ltima vez.
NONE No se realiza auditora. Si un estado tena configurado que realice auditora, y se
modifica para que ya no lo haga, la auditora hecha no se elimina.
Estado
Tipo de Auditoria
Si se tilda la opcin de Audit. Prev., se audita tambin el estado previo que tena el objeto.
La Auditora de Estados es til solamente para el usuario configurador. Este usuario puede acceder a la
misma a travs de las tablas que intervienen, que se detallan a continuacin junto con sus campos
Si alguna transicin de estado posee auditoria, al generar la clase se crea una tabla con el nombre
compuesto sta + NombreClase
staNombreClase
o IdInternal
o IdUser campo correspondiente al Usuario
o DateAudit campo correspondiente a la fecha de auditoria
o idState campo correspondiente al estado actual
o idPrevState campo correspondiente al estado anterior
Para agregar una regla de seguridad a un estado, debemos seleccionar el estado y luego presionar el botn
Add Security .
Una vez que se haya creado la nueva regla, podemos establecer los parmetros de la misma. Por ejemplo
podemos definir que en el objeto que pertenece a la clase Tarea, cuando se encuentre en el estado A
Futuro, solo tengan control total sobre el objeto, los Administradores del Sistema.
Para ello, primero hacemos clic sobre la columna Access, y aparece la ventana de Access Type Selection,
donde elegimos el tipo de acceso requerido. Por defecto aparece tildado DENY (denegado) y el resto
deshabilitados. Quitando el tilde de DENY se habilitan el resto de los accesos.
(Ver Aplicaciones-Crear,Editar y Borrar Access Type)
En el caso de haber definido un Tipo de Acceso Read, no se podr crear un objeto para la clase Tarea,
no se podr editarlo, etc.
De acuerdo a estos campos (Access, Class Father, Attribute, Group, Application, User Group) se define el
tipo de acceso. El tipo de acceso va a depender de estos filtros configurados, dependiendo del estado en
que se encuentre la clase, de la Clase Padre (Class Father), del atributo (Attribute), del grupo a que
pertenece la clase (Group), de acuerdo a la Application definida, y al User Group definido.
Nota: el permiso Last Version solo admite ser filtrado por UserGroup
Para agregar un mtodo a un estado, debemos seleccionar el estado y luego presionar el botn Add
Method .
Crear el nuevo mtodo en la fila que se agrega en la grilla, haciendo clic sobre la celda Method Id
1) Event
Seleccionar el evento por medio del cual se ejecutar el mtodo de la clase. La lista desplegable muestra
los eventos.
- Revisin: el mtodo se ejecutar cuando una revisin pase a estado New, a excepcin de cuando
se crea el objeto, que no corre el mtodo.
- USERevent: seleccionar para utilizar campo User Event
- Lock: el mtodo se ejecutar cuando se bloquea un objeto.
- UNLock: el mtodo se ejecutar cuando se desbloquea un objeto.
- Packing: el mtodo se ejecutar cuando se empaqueta un objeto.
- PackingRestore: el mtodo se ejecutar cuando se desempaqueta un objeto.
FlexABSCI: Manual de Configurador 102
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
- BeforeOpenFile: el mtodo se ejecutar antes de abrir un archivo.
- AfterOpenFile: el mtodo se ejecutar despus de abrir un archivo.
- StateChange: el mtodo se ejecutar al cambiar un estado.
2) User Event
Es un evento que define el usuario. Para ello, debe seleccionar en la columna Event, la opcin USERevent
y luego definir en la columna User Event el nombre del evento. Dicho evento, ser lanzado desde la
FlexAB-SUI (Interfaz de Usuario de FlexAB). Seleccionando el objeto y haciendo clic con el botn derecho,
se despliega un men contextual con la lista de eventos de usuarios definidos. Para lanzar el evento, hacer
clic sobre el mismo.
En este caso, la idea es seleccionar en la FlexAB-SUI una lista de objetos, y aplicarles a todos el mtodo.
La accin que se realiza es poner cada objeto en edicin, ejecutarle el mtodo y guardarlo. Si uno de los
objetos estuviera bloqueado, no se ejecutar el mtodo para ese objeto.
El resultado de esta accin ser, que todos los objetos seleccionados pasarn a tener en su atributo Estado,
el valor Cerrado (Close).
3) Method Id
Activa la ventana del Editor de Mtodos (Method Editor) que permite la creacin y modificacin de los
mtodos. (Ver Editor de Mtodos)
4) Order
Se utiliza para agrupar los mtodos antes y despus de algn proceso importante del evento.
1- Mtodos PRE de REVISION, pensados para afectar el XML ANTES de bajar los Filelinks del objeto y
cualquier otra modificacin .
2- Mtodos POST de REVISION, pensados para afectar el XML DESPUES de bajar los Filelinks del
objeto y cualquier otra modificacin, justo antes de zippear y subir al File Server.
El caso 1 es utilizado por ejemplo para alterar valores dentro del XML, con mtodos OPE, que luego se
podr utilizar por los mtodos POST. O bien, en casos como cuando se intenta subir un archivo junto con la
revisin. (Caso en el que necesita alterar el FileLink del XML, antes de que el proceso de revisionado
detectara los nombres de archivo).
FlexABSCI: Manual de Configurador 104
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Un ejemplo del caso 2 es el revisionado de un documento, donde se bajan del FileServer todos los FileLinks
del objeto, y luego se modifican con mtodos de EXCEL, WORD, etc.
Existe un Objeto que posee el atributo Titulo en el XML, y tiene el valor Factura
Se corre en Order PRE un mtodo Operation que cambia el Titulo a Remito
Un proceso trae los datos de FQL para el contenido del reporte.
Se corre en Order POST el mtodo para mostrar el Reporte.
El Titulo en el Reporte dir Remito
5) ClassFather
Seleccionar la clase padre.
6) Attribute: si nuestro mtodo tiene el evento FieldChange, es necesario en este punto asociar el
atributo que deber cambiar para que se ejecute el mtodo.
8) System: seleccionar de la lista el sistema para el cual funcionar el mtodo. Mediante este campo
determinamos cual ser el sistema en el que se ejecutar el mtodo, tambin se puede definir el valor *
(asterisco), lo cual indica que ste mtodo ser utilizado en todos los sistemas.
9) Application: seleccionar de la lista, la aplicacin para la cual funcionar el mtodo . Mediante este
campo determinamos cual ser la aplicacin en la que se ejecutar el mtodo, tambin se puede definir el
valor 0, lo cual indica que ste mtodo ser utilizado por todas las aplicaciones
Los campos Class Father, Attribute, Group, System, Application son filtros, el mtodo se ejecutar
de acuerdo a lo definido en estos campos.
En el ejemplo siguiente, colocamos el mtodo 213 (Method Id = 213) en el estado ALGUN DIA. Para ello,
hacemos clic con botn derecho sobre el mtodo, arrastramos la fila hasta que se seleccione el estado
ALGUN DIA y soltamos.
Utilizando la funcionalidad del Drag and Drop (arrastrar y soltar), podemos en esta grilla definir el orden de
ejecucin de los mtodos.
Por ejemplo si tenemos tres eventos FieldChange, podemos definir cual de los tres se ejecutar primero.
Debemos SELECCIONAR LA FILA DE LA GRILLA (en este caso la fila 9) que se quiere desplazar a otra
ubicacin. Hacer clic sobre la fila elegida y arrastrarla hasta la posicin elegida. Luego soltar el botn del
mouse y quedar el mtodo ordenado en la posicin definida.
Se administran las propiedades de las claves (IdObject) de los objetos de la clase, y los grupos asociados
que tiene la clase.
Nota : En los prrafos siguientes se utilizarn indistintamente los trminos clave, IdObject y Object ID para
hacer referencia al atributo IdObject.
Esta solapa contiene: el cuadro de texto IdObject Sample y los paneles Naming Rules (panel superior)
y Group (panel inferior)
El cuadro de texto IdObject Sample, nos ejemplifica como se va creando el IdObject de la clase, segn
las opciones que se vayan eligiendo en el panel Naming Rules
IdObject
Este panel contiene las propiedades para generar las claves de los objetos de la clase.
Como se mencion anteriormente, la clave del objeto, el IdObject, es un identificador nico dentro de la
aplicacin.
El idObject, se forma de acuerdo a lo que se configura en este panel, como tambin en el panel Group
(Prefix y Postfix).
Las propiedades que se configuran en este panel son filtros que se usan para generar la clave del objeto.
En el caso de elegir una opcin * (asterisco), estamos indicando que es para todas, sin filtrar por alguna en
particular.
TAG AutoKey: esta propiedad permite autogenerar la clave del objeto, en caso de no
utilizarla, se utiliza el valor ingresado en el Tag para integrar la clave (idObject). Para no utilizar
Autokey, elegir la opcin NO
NumFather: genera un nmero de identificacin, nico dentro del padre. El atributo Tag
es el que contiene dicho nmero.
Ejemplo : padre A con cinco hijos, van a tener los nmeros 1, 2, 3, 4, 5
padre B con cuatro hijos, van a tener los nmeros 1, 2, 3, 4
Date: se utiliza para autogenerar la clave del objeto en formato fecha. El atributo Tag del objeto
ser quien contenga la fecha actual
FlexABSCI: Manual de Configurador 110
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
DateTime: utiliza para autogenerar la clave del objeto en un formato fecha y hora. El atributo Tag
del objeto ser el que contenga la fecha y hora actual
Time: se utiliza para autogenerar la clave del objeto en un formato hora. El atributo Tag del objeto
ser el que contenga la hora actual
Nota: cuando se trata de una clase incluida, el Tag debe autogenerarse, porque de otra
manera, como el Tag no es visible al usuario, quedara nulo y no se guardara.
Father Key: esta propiedad permite agregar al IdObject del objeto, un atributo del objeto
padre.
Father Ahead: esta propiedad permite agregar en la parte de adelante el Father Attribute.
Father Attribute: en caso de agregar la Father Key (atributo del objeto padre) se debe
seleccionar el atributo del padre que desea. Estos atributos pueden ser: el Tag, idObject y
idInternal.
Father Separator: permite seleccionar de la lista el caracter que ser delimitador entre el
Father Attribute y Tag del objeto.
Father Level: se utiliza para seleccionar el nivel de padre al que se refiere. Por ejemplo: 1 es
padre, 2 es abuelo, 3 es bisabuelo, etc.
Class Father: filtra por la clase padre. En caso de ingresar un * (asterisco) significa que la
configuracin ser para todas las clases padres
Group: filtra por grupo. En caso de ingresar un * (asterisco) significa que la configuracin ser
para todos los grupos
System: filtra por sistema. En caso de ingresar un * (asterisco) significa que la configuracin
ser para todos los sistemas
Application: filtra por aplicacin. En caso de ingresar un 0 (cero) significa que la configuracin
ser para todas las aplicaciones
Entonces, la clave IdObject se formar de la siguiente manera segn las opciones seleccionadas y
teniendo en cuenta en cada caso que se incorpora en todos los casos el ShortName (NNN): el identificador
por aplicacin de tres letras. Podr encontrarlo en la solapa Class.
Nota: Cuando nos referimos a TAG Autokey nos referimos a cualquiera de las opciones posibles de TAG
Autokey: NUMUNIC, NUMFATHER, DATE, DATETIME, TIME.
Figura 44: Ventana de edicin de clases. Solapa Identity, Panel Naming Rules
Para el idObject de esta clase, se definen las propiedades que se pueden observar en la figura superior:
TAG AutoKey = NO
Father Key
Father Ahead
FlexABSCI: Manual de Configurador 114
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Father Separator = /
Father Level = 1
Al no estar seleccionada la opcin TAG AutoKey, no se va a autogenerar la clave del objeto, por lo tanto se
usar el TAG.
La opcin Father Key permite agregar al idObject, el idObject (clave del objeto) del padre. Al seleccionar
Father Key, se debe seleccionar el atributo que se desea del padre (Father Attribute), en este caso
idObject.
La opcin Father Ahead coloca el atributo seleccionado del padre en la parte delantera.
La opcin Father Level = 1 indica que tomar los datos del padre inmediato en la jerarqua.
Ejemplo 1 de idObject
Para el idObject de esta clase, se definen las propiedades que se pueden observar en la figura superior:
TAG AutoKey = NO
Father Key
Father Ahead
En este caso, el IdObject se forma solo con el TAG y el ShortName del Objeto.
Ejemplo 2 de idObject
El panel Group (inferior) contiene los grupos asociados que tiene la clase. Se pueden agregar grupos a la
clase con el botn Add Group . Al hacer clic en el botn Add Group se habilita una fila para
completar los campos necesarios, que se detallan a continuacin:
IdGroup: ingresar el identificador del Grupo.
Por Ejemplo:
En la figura podemos observar que la clase que se est creando, especficamente con el CLASS NAME:
USUARIO tiene tres grupos creados:
- Interno
- Externo
- Invitado
Al dar de alta objetos de la clase USUARIO en el FlexAB-SUI de acuerdo a los grupos definidos en el
FlexAB-SCI, podremos seleccionar a que grupo va a pertenecer el objeto creado, especficamente para este
ejemplo, al dar de alta un USUARIO, podemos seleccionar a que grupo pertenece: Interno, Externo,
Invitado.
Figura 46: Seleccin del grupo en el editor de objetos de la Interfaz Estndar FlexAB-SUI.
Nota:
- el grupo puede tener un lmite, un rango de inicio y final, por ejemplo al ingresar Start Range igual
1 y End Range igual 10, en este caso solo podramos agregar diez objetos de la clase por ese grupo.
- Adems este rango es utilizado para manejar la forma de enumerar los objetos que se crean, por
ejemplo si estoy dando de alta un objeto chequera, limitar que el nmero de la chequera sea del 1 al 100,
del 20 al 50, etc.
mask: a partir de la opcin de configurar grupos tambin podemos desde un grupo considerar
ciertos aspectos del Tag del objeto. Para tal motivo utilizaremos las mscaras. Es decir cuando definimos
un grupo le colocamos una mscara, entonces el objeto que pertenezca a ese grupo tendr un Tag acorde
con el formato de la mscara que hemos ingresado.
Ejemplo:
Al dar de alta un objeto desde el FlexAB-SUI, en la seccin (Object Definition) Definicin de Objeto,
podemos seleccionar a que grupo va a pertenecer el objeto que se est creando de la clase USUARIO.
Como podemos observar esta clase tiene varios grupos, en este caso el uso de la mscara sera til si
queremos validar que al seleccionar un grupo, solo podamos ingresar en el Tag, caracteres alfanumricos o
solo caracteres numricos, o definir una mscara de acuerdo a lo establecido en la Tabla 21(a).
Se define en el FlexAB-SCI que al seleccionar el Grupo Externo, en el campo Tag, solo permita ingresar 5
caracteres alfanumricos
Como vemos en la figura siguiente, el Tag tiene solamente 5 caracteres debido a la mscara definida para
el Grupo Externo.
Figura 49: Tag con 5 caracteres segn la definicin de la mscara del grupo
En esta solapa se asigna la ayuda a la clase. Para agregar una ayuda ir al botn Add Help , una vez
hecho un clic se agrega una fila en la cual podemos ingresar los datos detallados a continuacin. Para
IdHelp: ingresar una nueva ayuda. Haciendo clic en el botn que aparece en el extremo
derecho del campo, pasamos a la ventana del Editor de Help (Help Editor), desde donde se cargar
la ayuda correspondiente .
(Ver Editor de Help)
Subject: ingresar el texto, que corresponde al ttulo principal que aparecer en la ventana del help
Class Father: seleccionar el identificador de la clase padre, indica que este help solo aparecer
cuando se solicite ayuda de la clase si y solo si la clase padre de la clase de la cual se solicita ayuda, es la
correspondiente a este campo. Ej. USUARIO
State: identificador del estado, indica que este help solo aparecer cuando se solicite ayuda de la
clase si y solo si el estado de la clase de la cual se solicita ayuda, es la correspondiente a este campo. (Ej:
INITIAL, PENDIENTE, etc.).
Group: seleccionar el identificador del grupo, indica que este help solo aparecer cuando se solicite
ayuda de la clase Si y solo Si el Group de la clase de la cual se solicita ayuda, es la correspondiente a este
campo; por ejemplo, esta ayuda aparecer si el objeto pertenece al grupo Externas.
Dependiendo de lo que se defina en estos cuatro campos de la solapa Help, se proporciona la ayuda en el
FlexAB-SUI.
En esta solapa se podr definir como se administrarn los reportes pertenecientes a la clase.
Permite generar reportes de la clase. Con el botn Add Report se genera un nuevo reporte de la
Agregar reporte
Quitar reporte
Para la creacin de un nuevo reporte, luego de agregar uno nuevo con el botn Add Report, debemos
llenar los campos correspondientes.
Para ello, debemos hacer clic en el botn New Report , y luego clic en el icono de los campos de
la consulta FQL .
Debajo de este icono, en el panel Fields, se listarn los campos que devuelve la consulta FQL. Con
estos campos trabajaremos en la confeccin del reporte desde la solapa Design.
En la solapa Design, se crea el reporte, ubicando los campos en las secciones correspondientes, dando
formato a los mismos, etc.
En la solapa Preview, se muestra la vista preliminar del reporte con el resultado de su ejecucin.
FlexABSCI: Manual de Configurador 124
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Figura 57: Editor de Reportes, solapa Design
Vista preliminar del reporte con los datos devueltos, en la solapa Preview.
4) En el campo Class Father debemos seleccionar la clase padre que debe tener la clase actual para
que se ejecute el reporte. Para indicar la opcin Todos (para cualquier clase padre)
seleccionamos el asterisco (*).
5) En el campo State debemos seleccionar el Estado para que se ejecute el reporte.
6) En el campo Group debemos seleccionar el Grupo en el que debe estar el objeto para que se
ejecute el reporte.
7) En el campo System debemos seleccionar el Sistema donde se ejecutar el reporte.
8) En el campo Application debemos seleccionar la Aplicacin. Para indicar la opcin Todas (para
todas las aplicaciones) seleccionamos la opcin 0 (ALL)
uno solo) queremos ver, y al hacer clic sobre el botn Preview de la barra de herramientas, tenemos
la opcin de visualizar el reporte en distintos formatos tal cual lo muestra la figura siguiente
Figura 61: Seleccin del formato de salida del Reporte desde FlexAB-SUI
Muestra las clases en las que est includa la clase activa. La relacin de inclusin es aquella que
verifica que sus componentes no pueden existir fuera del objeto compuesto (objeto padre). Por ello la clase
includa, no tiene existencia por s misma, sino que es accesoria a su clase contenedora. A una clase
includa, no se la puede acceder directamente, esto solamente lo puede hacer su clase padre. Su principal
caracterstica es que cualquier objeto componente est completamente encapsulado, en el sentido de que
su estado slo puede ser alterado por eventos locales, adecuadamente coordinados con los eventos
proporcionados por la interfaz de la agregacin. En consecuencia, si tenemos una agregacin inclusiva, los
objetos componentes slo podrn ser accedidos a travs del objeto compuesto.
Las clases includas no aparecen en el rbol de la Interfaz de Usuario (FlexAB-SUI).
Para generar relaciones de inclusin con otras clases, hacemos clic en el botn 1 Add Relation con lo
cual se genera una nueva relacin de la clase y se pueden quitar con el botn 2 Remove Relation .
- 1. Class Father: seleccionar de la lista desplegable la clase padre en la que se desea incluir a la
clase actual.
- 2. Type: seleccionar de la lista el tipo de relacin, puede ser 1-1 o 1-N. En la relacin 1-1, la clase
padre solo podr contener una clase includa. En la 1-N la clase padre puede tener varias. Tambien aparece
como opcin, ABS, que es para una clase abstracta. (Ver Clases Abstractas)
FlexABSCI: Manual de Configurador 129
v62 207-SCI-SP (Configuracion).pdf
- 3. Minimun Ammount: cantidad de incluidos por defecto que contendr el formulario (editor de
objetos)
- 4. Increment: valor por defecto que mostrar la casilla de agregar incluido
- 5. View Ammount: Cantidad de incluidos que se mostrarn juntos. Si se supera esta cantidad, se
podr desplazar entre los incluidos con una barra de avance y retroceso.
- 6. Allow New: Permite que se puedan agregar includos al objeto padre, poniendo visible el botn
en el editor de objetos
- 7. Allow Delete: Permite que el includo se pueda borrar, poniendo visible el botn Delete en el
editor de objetos.
Nota: una clase includa, puede configurarse como clase padre en una relacin estructural sin que
haya restricciones desde la configuracin. Pero esto sera un error conceptual, dado que las clases
estructurales hijas de la includa no seran visibles y no podran operarse.
Una clase includa puede contener otras clases includas, pero no puede contenerse a si misma como
includa.
Ejemplo:
la clase includa Mesa, puede tener includa a la clase Pata y a la clase Tornillo, pero no puede
tener includa a la clase Mesa.
En esta casilla aparece el valor definido en el campo Increment. En el ejemplo es 1. Esto significa,
que al agregar includos presionando el botn , lo har en esa cantidad. El usuario final puede modificar
esta cantidad a mano, para ingresar la cantidad que necesite
Botn de agregar includos. Solo est visible si el campo Allow New est tildado
Dos objetos COPY includos: INC(1) e INC(2). En el campo Minimun Ammount, se indica la
cantidad de incluidos (en este caso objetos COPY) que aparecen por defecto al crear el objeto.
Botn Delete, para borrar el includo. Solo est visible si el campo Allow Delete est tildado. De lo
contrario no podr borrarse el includo.
Includos visibles
Permite generar relaciones estructurales, relaciones entre la clase actual y la clase padre. Con el botn Add
Relation se genera una nueva relacin estructural y se pueden quitar con el botn Remove
Relation .
Agregar relacin
Quitar relacin
Type: seleccionar de la lista el tipo de relacin. Esta puede ser: Object, Link, Import Link, All Link y
All.
Object: relacin con su padre, es decir, el lugar donde fue creado el objeto de la clase.
En un mismo espacio, una clase no puede tener ms de un tipo de relacin con su clase padre.
Existe solo una relacin Object de la clase con su clase padre en todas las aplicaciones.
Una clase REAL puede participar en ms de una Relacin Estructural (relation type = Object),
o sea que puede tener ms de una clase padre. Por ejemplo la clase Cable puede ser hija de
la clase Tablero y tambin de la clase Consola.
Existe solo una relacin Object por aplicacin, del objeto con su objeto padre.
El resto de las relaciones que pudieran tener ambos son de tipo Link y van en espacios
diferentes.
Import Link: acceso directo pero desde otra aplicacin, es decir, el objeto original se
encuentra en otra aplicacin.
Name: ingresar el nombre de la relacin, es un string para el anlisis del sistema. Por ej: ES UN,
HIJO DE, ESTA EN, etc.
Ejemplo:
En este ejemplo estamos configurando la clase Tarea. Una de las propiedades que definimos en la solapa
Relations es la clase Padre (Class Father). En este caso observamos que la clase Tarea participa en ms
de una relacin estructural, con distintas clases padre.
Observamos tambin los nombres de algunas relaciones (ESTA EN, PERTENECE A, etc.).
Como se puede observar en el siguiente ejemplo, la clase Tarea tiene relacin estructural de tipo Object
con USUARIO en el espacio 100 y una relacin de tipo Link con USUARIO en el espacio 103. Tambin tiene
una relacin de tipo Object con SUBCARPETA en el espacio 101, y una relacin de tipo Object con
DOCUMENTO en el espacio 101.
Group Father: seleccionar el grupo al que debe pertenecer el objeto padre para poder generar la
relacin. En caso de que hubiera objetos dentro de un padre con un determinado grupo vlido para la
relacin, y luego el grupo del mismo cambiara a un grupo no vlido para la relacin estructural, los objetos
hijos creados quedarn, pero no se podrn crear nuevos, debido justamente al filtro establecido.
Father State: seleccionar el estado al que debe pertenecer el objeto padre para poder generar la
relacin. En caso de que hubiera objetos dentro de un padre con un determinado estado vlido para la
relacin, y luego el estado del mismo cambiara a un estado no vlido para la relacin estructural, los
objetos hijos creados quedarn, pero no se podrn crear nuevos, debido al filtro establecido
Esta solapa es la encargada de la configuracin del formulario de Edicin de Objetos. Este es un formulario
HTML, y desde aqu, se realizan operaciones como por ejemplo la de darle formato a los campos, texto e
imgenes que este contenga.
Figura 70: La solapa Generate permite modificar el formulario de edicin de objetos de la clase.
Componentes de la solapa
Estos paneles permiten controlar la manera en que se visualiza el formulario de edicin de los objetos para
el usuario final.
Este panel contendr una serie de constantes de la forma {[V o L]_[identificador]}. Estas marcas permiten
al configurador de la aplicacin FlexAB, conocer e incrustar en cualquier lugar del formulario los distintos
atributos y variables que estn disponibles para el usuario.
Inicialmente (cuando la clase es nueva o si el formulario est en blanco) este panel contiene todas las
marcas disponibles para insertar. Estas son:
Supongamos una clase VIVIENDA que contenga los atributos AMBIENTES y SUPERFICIE, la lista de marcas
de la clase y su valor en tiempo de ejecucin de la aplicacin FlexAB sera la siguiente:
Atributos Common:
-{L_IDOBJECT}: el subject del identificador nico automtico del objeto para la aplicacin.
-{V_IDOBJECT}: el valor del identificador nico del objeto. Este valor siempre es un string.
-{L_TAG}: el subject del identificador de objeto para el usuario.
-{V_TAG}: el valor del identificador para el usuario respetando el tipo de control configurado.
-{L_IDSTATE}: el subject del atributo estado del objeto.
-{V_IDSTATE}: la lista de posibles estados respetando el tipo de control configurado.
-{L_IDGROUP}: el subject del atributo grupo del objeto.
-{V_IDGROUP}: la lista de posibles grupos respetando el tipo de control configurado.
Atributos especficos:
-{L_AMBIENTES}: el subject configurado y traducido para el atributo ambientes.
-{V_AMBIENTES}: el control configurado para ingreso de valores para el atributo ambientes.
-{L_SUPERFICIE}: el subject configurado y traducido para el atributo superficie.
-{V_SUPERFICIE}: el control configurado para ingreso de valores para el atributo superficie.
Marcas adicionales de FlexAB:
-{V_ACTUALSTATE}: el estado actual en que se encuentra el objeto. Siempre es un string.
-{V_IDCLASS}: el identificador del tipo de objeto que se est editando. Siempre es un string.
-{V_CLASSDESCRIPTION}: La descripcin de usuario, traducida, para el tipo de objeto editado.
-{V_INFOREVISION}: Si est disponible el revisionado para el tipo de objeto, la versin en que
se encuentra.
-{L_IDOBJECTFATHER}: El subject traducido del identificador del objeto padre del editado, para
la aplicacin
-{V_IDOBJECTFATHER}: El valor del identificador del objeto padre para la aplicacin. Siempre
es un string.
-{L_IDCLASSFATHER}: El subject del tipo de objeto correspondiente al objeto padre.
-{V_OBJECTNUMBER}: Si el tipo de objeto es incluido 1-N, es un nmero indicador secuencial
que identifica al objeto dentro de la lista.
-{V_SELECTOR}: Si el tipo de objeto es incluido 1-N, es un checkbox que permite seleccionar el
objeto para realizar operaciones como por ejemplo eliminar una lista de objetos.
Para poder insertar una marca en el formulario de objeto, bastar con arrastrarla con el botn derecho del
Mouse al panel del formulario. Ntese que por motivos de exactitud y la naturaleza de la invisibilidad de
varios elementos de HTML, la marca se incrustar en la ltima posicin donde se hubiera ubicado el cursor
en el formulario, para asegurar que la marca aparece dentro del rea que el usuario deseaba. (Muchas
veces, existen tablas o reas transparentes en las pginas web que dificultan saber con exactitud donde se
ingresa el contenido al hacer un drag & drop).
Tambin es importante mencionar que las marcas pueden seleccionarse de a varias y ser arrastradas en
conjunto. All se incrustarn una junto a la otra en el lugar donde estuviera posicionado el cursor. Para
resumir el procedimiento para incrustar correctamente una marca es:
1 Ubicar el cursor en el lugar donde queremos insertar la marca en el formulario
2 Seleccionar con el botn izquierdo del Mouse la/las marca/s que se quiere incrustar
3- Arrastrar con el botn derecho al rea de edicin HTML y soltar el botn. El resultado se muestra
en la figura 71.
Este panel permite seleccionar opciones que afectan al formulario en su conjunto. Las opciones disponibles
hasta el momento de redactar este documento son:
-Default form: Crea un formulario predeterminado para la clase que se est editando en FlexAB
SCI. El formulario predeterminado contendr todos los atributos que estn configurados como visibles en la
clase, incluyendo los atributos common. Si la clase es incluida 1-N tambin incluir las marcas de control
OBJECTNUMBER y SELECTOR. El formulario queda disponible para ser personalizado en el panel de edicin
HTML. Cabe destacar que los formularios predeterminados de FlexAB utilizan la plantilla css oeGeneral.css
que se encuentra en el tempPack.zip que se distribuye con los archivos ejecutables de FlexAB. Si se quiere
utilizar otra plantilla debe editarse el formulario en modo avanzado, y hacer la inclusin de la misma. (Ver
Modificar el estilo CSS del formulario en modo avanzado al final de este documento.)
-Advanced HTML: Este selector activa una solapa dentro del rea de edicin HTML que permite al
configurador de FlexAB SCI visualizar el cdigo HTML que compone al formulario. Se recomienda que solo
usuarios expertos en HTML utilicen esta opcin ya que permite modificar por completo el HTML con alcance
a scripts de JavaScript y VBScript que se ejecutan en el formulario del usuario final.
Al activar este selector, aparece la solapa de diseo/cdigo en el rea inferior como se ve en la
Figura 73. Comentario [E1]: Poner
referencia cruzada
A continuacin detallamos un caso prctico de modificacin de formulario que aplica los conceptos
mencionados hasta aqu.
Para poder realizar esta actividad necesitaremos los siguientes requisitos: Con formato: Justificado
-FlexAB SCI y FlexAB SUI con una aplicacin y al menos 1 clase configurada con una clase incluida 1-N (En
este ejemplo llamada TESTINC)
-Un editor de texto como el bloc de notas de Microsoft Windows (en el ejemplo se utiliza Ultraedit por
conveniencia del resalte de colores que ofrece para CSS.)
-Manual de referencia de HTML 4 y CSS 3 (Puede leerse como orientacin bsica la documentacin de
FlexAB ofrecida sobre estos temas al final de este documento.)
Para comenzar, plantearemos el resultado que se quiere lograr. Si bien el formulario predeterminado de Con formato: Justificado
clase es visualmente claro y sencillo, no siempre se adapta de la mejor manera a funcin que cumple. En
una clase 1-N es probable que la prioridad sea en algunos casos ahorrar espacio en pantalla. Para ello,
cambiaremos la manera en que se muestran los atributos de la clase, y en vez de configurarlos uno debajo
del otro, lo haremos uno junto al otro, en forma horizontal, en una sola lnea.
Originalmente, FlexAB SCI propone organizar los atributos en una tabla de 2 columnas, ubicando en la
primera columna el nombre de usuario del atributo, y en la segunda, el control para administrar su valor.
En la cabecera de la tabla ubica el tipo de objeto y la descripcin del mismo.
A fines de lograr el resultado propuesto anteriormente, crearemos una nueva tabla con un formato algo
distinto. Comenzaremos con posicionarnos debajo de la tabla original y crear una nueva tabla de 2 filas por
5 columnas, que es la cantidad adecuada para el tipo de objeto TESTINC con el que estamos
ejemplificando.
Figura: La pantalla de insercin de tablas del editor HTML de FlexAB SCI Comentario [E2]: Insertar
ttulo referencia
Por default, la herramienta de creacin de tabla propone un 75% del ancho disponible para la misma. Es Con formato: Justificado
decir, que la tabla intentar ocupar las partes del lugar en el cual est ubicada, si no est dentro de
ningn div, otra tabla, o algn otro elemento, ser el 75% del ancho total de la pgina. Si se quiere que la
tabla crezca para ocupar la totalidad del espacio disponible, ajustar este valor a 100%, y si se quiere el
mnimo posible, dejarlo sin especificar.
En la primera fila, marcaremos las 5 columnas, y usaremos la funcin Merge Cells del editor HTML de
FlexAB para unificarlas en una sola celda, que utilizaremos para el ttulo de cada objeto. Luego, en cada
una de las celdas de abajo, ubicaremos las marcas de los atributos y de funcionalidad, movindolas desde
la tabla original o bien de la lista de marcas si no estaban insertadas. Adicionalmente, nos posicionamos en
la primera fila para el ttulo, y con la funcin de botn derecho Table Cell Properties le asignamos un
fondo color verde. Para finalizar, marcaremos la tabla original, y la eliminamos del formulario.
Figura: El formulario de edicin, organizado en una tabla de 2x5. Comentario [E3]: Insertar
ttulo referencia
Cmo se ha explicado en este documento, hay muchas maneras de modificar el CSS que se aplica a los Con formato: Justificado
formularios de objetos de FlexAB. Una de ellas es modificar directamente el archivo oeGeneral.css que
viene incluido en el archivo tempPack.zip que se distribuye con los ejecutables de FlexAB. Este archivo
ZIP, contiene todos los archivos auxiliares de edicin predeterminados de FlexAB.
Para asegurarnos de que hemos hecho las cosas bien, abrimos en FlexAB SUI la aplicacin configurada, y Con formato: Justificado
editamos o creamos un objeto nuevo del tipo modificado, para visualizar el formulario. Nota: Esto tambin
puede realizarse desde el panel de vista previa de FlexAB SCI en la solapa Generate.
Figura: El formulario de edicin modificado, a punto de agregar ms objetos. Comentario [E6]: Insertar
ttulo referencia
Si agregamos algunos incluidos para probar la visualizacin, veremos que ahora los objetos ocupan un Con formato: Justificado
espacio notablemente menor. Ahora bien, como hemos reducido espacios, puede que sean necesarios unos
retoques adicionales de CSS para hacer ms clara la visibilidad de los objetos.
Figura: Trabajando con los formularios modificados de objetos incluidos. Comentario [E7]: Insetar ttulo
referencia
Para hacer algunos retoques menores, volvemos a modificar el archivo oeGeneral.css y recurrimos a Con formato: Justificado
funciones de CSS 3. En este caso en particular modificaremos el color y la fuente de las primeras 2
columnas de la tabla, para poder hacer ms claro el nmero de objeto y el selector de objeto.
En primera instancia recurrimos a la pseudos clase CSS first-child, que aplicada al tag TD, referenciar la
primer celda. Luego, a partir de ah, agregando +td podremos referenciar la segunda columna, tercera,
etc. Para remarcar entonces el nmero de objeto, le agregamos a la primera celda un color de fondo y
fuente en negrita.
Figura: Agregando estilo para la primera columna de cualquier tabla Comentario [E8]: Insertar
Ttulo referencia
Si regresamos a FlexAB SUI a ver como se refleja el resultado del cambio realizado en la plantilla, Con formato: Justificado
observaremos que nuestro cambio tambin ha modificado la celda del ttulo, por ser esta tambin la
primera columna de la primera fila de la tabla. Si no deseramos este efecto, podramos evitarlo fcilmente
dejando una columna vaca en la fila del ttulo, poniendo el ttulo fuera de la tabla, o bien sencillamente
asignando una clase CSS al ttulo o a la primer columna y aplicndole estilo especficamente.
Figura: El formulario de objeto con estilo aplicado en la primer columna Comentario [E9]: Insertar
Ttulo Referencia
Si la conveniencia del caso fuera solo resaltar la fuente del ttulo y el nmero de objeto, y resaltar solo el Con formato: Justificado
selector de objeto para que sea ms fcil para el usuario visualizar donde debe hacer clic para operar con
los objetos incluidos, lo podramos hacer sencillo con la funcionalidad +td mencionada anteriormente
Figura: Aplicando estilo a la primera y segunda columnas de una tabla con +td Comentario [E10]: Insertar
Ttulo referencia
Nuevamente, editamos o creamos un objeto de la clase que se est modificando para comprobar los Con formato: Justificado
cambios. Vemos que al no tener un estilo asignado para el fondo, el formulario respeta el color asignado
mediante HTML inicialmente desde el editor HTML de FlexAB SCI. Adicionalmente notar que s se aplica la
fuente en negrita y el tamao a estos elementos, y que tambin se aplica el color de fondo asignado
mediante CSS a la segunda columna donde se ubica el selector de objeto.
Figura: El formulario de objeto modificado con distintos resaltes y fuentes. Comentario [E11]: Insertar
ttulo referencia
Paso 4: Aprovechar el espacio an ms
Hay muchos casos en los que el ttulo o tipo de objeto no es necesario para una clase incluida 1-N. Es un Con formato: Justificado
dato que estamos repitiendo por cada objeto y que ocupa una lnea en pantalla. En este ltimo paso
quitaremos el ttulo y moveremos el selector de objeto a la primera columna para minimizar el CSS
necesario para la esttica del mismo.
Abrimos FlexAB SCI y editamos la clase. Nos movemos a la solapa Generate nuevamente para modificar
el formulario de objeto. Nos posicionamos en la primera fila de la tabla que contiene el ttulo y con botn
derecho Delete Row quitamos la fila dejando una nica fila que contiene las etiquetas de la clase.
Para terminar el trabajo aqu, intercambiamos de posicin las marcas del selector de objeto y del nmero
de objeto. Este cambio solo es ilustrativo y no siempre ser mejor que estn en este orden, aunque se
debe tener en cuenta que el nmero de objeto es un dato creciente de dgitos, y el selector es de ancho
fijo, es decir, cuando el nmero de objeto alcance decenas o centenas, su columna crecer a menos que
se le especifique un ancho fijo desde el editor HTML o bien desde la plantilla CSS asociada.
Figura: Quitando el ttulo y reorganizando las marcas en la solapa Generate. Comentario [E12]: Insertar
titulo referencia
Para finalizar los cambios, modificamos el archivo oeGeneral.css para agregar un color de fondo Con formato: Justificado
apropiado a la primera columna, y la fuente apropiada para que se visualice claramente el nmero de
objeto.
Para la primera columna cambiaremos el color de fondo utilizando el atributo CSS background-color, y
para la segunda utilizaremos font-weight y font-size.
Nota: estos atributos aceptan valores en varios formatos, por lo que es conveniente tener el manual de
referencia de CSS a mano al utilizarlos. En este ejemplo se utiliza el ingreso de color mediante parejas
hexadecimales de RGB (#RRGGBB), nombres de peso de fuente y pxeles respectivamente. Comentario [E13]: Esto con la
Tambin se debe tener en cuenta que las clases de CSS se combinan, y por tanto en este ejemplo se herramienta no ser necesario.
Debe permitir seleccionar los
aplicar a todas las celdas el formato especificado para el tag TD, y luego el formato especificado colores visualmente
especficamente para la primera y la segunda columna.
Figura: Aplicando color y ajustes de fuente al formulario de objeto Comentario [E14]: Insertar
ttulo referencia
Con formato: Centrado
Solapa Revisions
En esta solapa se define la nomenclatura, el ordenamiento, y si la revisin ser vista por la empresa y el
exterior, o solo por la empresa (interna).
Tambin se definen los permisos de los grupos de usuarios para operar sobre la ejecucin, el chequeo y la
aprobacin del revisionado.
Cdigo que se quiere mostrar en los documentos indicativo de la revisin. En general es una letra o
un nmero, o la combinacin de ambos
En este panel, se otorgan o quitan los permisos de Ejecucin de la revisin, a los grupos de usuarios.
Se debe elegir del cuadro desplegable, el grupo al que se le otorga el permiso.
En este panel, se otorgan o quitan los permisos de Chequeo de la revisin, a los grupos de usuarios.
Se debe elegir del cuadro desplegable, el grupo al que se le otorga el permiso.
En este panel, se otorgan o quitan los permisos de Aprobacin de la revisin, a los grupos de
usuarios. Se debe elegir del cuadro desplegable, el grupo al que se le otorga el permiso.
En esta solapa se configura el orden de visualizacin en el Editor de Objetos, de las clases abstractas e
includas que tuviera la clase.
2. Ordenamiento Configurable
Para los puntos a, b y c es posible definir (si hay varias clases) cual aparece primero y cual
despus.
Por ejemplo, si existe la clase padre A con la clase B (incluida 1-N) y la clase C (incluida 1-N), se
puede definir para el punto c, si aparecen primero los objetos de la clase B o los de la clase C.
Ahora bien, si la clase A adems de B y C, tuviera incluida una clase D (relacin 1-1), siempre va a
aparecer D antes que B y C.
Si adems tuviera una clase includa E (relacion 1-1), sera posible definir cual aparece primero
entre D o E y luego entre B y C, pero nunca una 1-N podr aparecer antes que una 1-1.
Las clases Abstractas se muestran siempre pegadas al objeto que las incluye, por ende, van antes
de las includas 1-1. (Ver Nota)
Explicado esto, es necesario aclarar que el orden de ejecucin de los mtodos, se configura en su
solapa correspondiente de la clase correspondiente. Adems el orden de guardado de los objetos
corresponde a como estn ordenados en el XML ms que en el editor que se use(esto normalmente
coincide si se usa desde la FlexAB-SUI o la FlexAB-WUI, pero por ejemplo desde un VBA es posible
que se desorganice el XML, y en ese caso, se respeta ese orden, el del XML).
Resumen
FlexABSCI: Manual de Configurador 155
v62 207-SCI-SP (Configuracion).pdf
1. Primero se muestran las clases abstractas
2. Luego se muestran las clases incluidas 1-1
3. Luego se muestran las clases incluidas 1-N
4. El orden de guardado est en el XML. Si se utilizan nuestros editores (SUI o WUI),
siempre este orden de guardado coincide con el mostrado en el editor.
Las pantallas siguientes muestran la configuracin del orden dentro de cada categora
El orden de las clases puede ser cambiado mediante drag & drop de las filas de las grillas
La Importacin de una clase no contiene las clases Includas. Solo es importada la CLASE y los elementos
que utiliza la misma (Mtodos, Reportes, FQL y Helps). Esto es debido a que la clase en su configuracin,
contiene la informacin de sus padres pero no de sus hijos.
Para realizar la importacin, se debe ingresar al men Maintenance, opcin Import from XML
Se abre el cuadro de dilogo que solicita ubicar el archivo .XML (correspondiente a la CLASE) que se desea
importar. En la figura corresponde a la clase Requirement
Si el usuario elige la opcin de tomar las relaciones que trae el XML de la clase y ninguna de las
relaciones son vlidas para el universo destino, la clase ser importada, pero no figurar en el
rbol de clases. En este caso para incorporar relaciones a la clase, se debe acceder al combo de Fast Edit y
editar la clase.
Si alguna de las relaciones es vlida, esa ser visible en el rbol de clases. Sera por ejemplo el caso de una
clase que en su origen figura como hija de las clases A y B pero en la base de datos destino no existe la
clase B. Solamente aparecer en el rbol de clases como hija de A
Nota : Las relaciones que una clase tiene definidas, se pueden visualizar en la solapa Relations del Editor
de Clases, tal como se muestra a continuacin
FlexABSCI: Manual de Configurador 159
v62 207-SCI-SP (Configuracion).pdf
Una clase informa las relaciones con sus padres, no con sus hijos, por lo que al importar, el
archivo .XML de la clase contar con la informacin correspondiente a sus padres, no a los hijos que
pudiera tener relacionados.
Se debe tener en cuenta que si una clase a importar posee por ejemplo un FQL llamado "Listado
Clientes" el cual devuelve los clientes activos, y el universo adonde importaremos la clase
tiene tambin un FQL llamado "Listado Clientes" que a diferencia del anterior devuelve TODOS los
clientes, este ultimo FQL ser bloqueado, y luego al generarse la clase ser reemplazado por el de la clase
importada.
Una clase de tipo Mdulo, es aquella que contiene Mtodos que son globales y pueden ser utilizados por
las dems clases.
En la versin actual, el Mdulo SHAREDMETHODS contiene los mtodos globales que existen en el
sistema. No es posible crear otra clase de tipo Mdulo.
Para insertar, modificar o eliminar mtodos de este Mdulo, debemos ingresar al Editor de Mtodos desde
la Barra de Herramientas de FlexAB-SCI
De esta forma se despliega el Editor de Mtodos, que contiene al Mdulo SHAREDMETHODS y a los
mtodos que lo integran
En el ejemplo siguiente se tiene una clase Real llamada PUPIL que posee una clase ABSTRACTA llamada
PERSON. Esta clase ABSTRACTA puede ser reutilizada por cualquier clase que necesite atributos
referentes a una persona tales como los que posee la clase.
Como se puede observar en la figura, el icono de la Clase Abstracta es igual al de la Clase Incluida.
En la solapa Includes de la Clase Abstracta, se debe informar el Class Father y el Type. En este caso la
clase padre ser PUPIL
ABS es el Type para indicar que se trata de una Clase Abstracta.
Los datos de una clase abstracta se graban en una tabla con el nombre compuesto
att + NombreClaseAbstracta
En este caso, los datos que contengan las clases ABSTRACTAS PERSON que se utilicen, se guardarn en
la tabla attPERSON
Como se mencion anteriormente, una clase ABSTRACTA no tiene IdInternal propio, toma el IdInternal de
su clase padre.
Estas clases cuando son utilizadas, no generan entrada en la tabla OBJECT.
Nota: Cuando se trabaja desde una clase de tipo Mdulo, los Mtodos, FQLs y Reportes, al estar en
edicin y ejecutar el comando Guardar, quedan almacenados definitivamente.
Ejemplo: si se est realizando un Reporte dentro de un mtodo y se guarda, el Reporte queda almacenado
aunque se cancele la edicin del mtodo.
Cuando se trabaja desde el Editor de Clases, esto es diferente. Los cambios quedan almacenados
definitivamente al Generar la clase. El Editor de Help trabaja nicamente en este ltimo modo.
La Barra de Herramientas del Editor de Reportes est formada por los siguientes iconos
Haciendo clic sobre el botn en el extremo derecho de la celda del campo Report, directamente
accedemos al Editor de Reportes.
Para ello, debemos hacer clic en el botn New Report , y luego clic en el icono de los campos de
la consulta FQL .
Debajo de este icono, en el panel Fields, se listarn los campos que devuelve la consulta FQL. Con
estos campos trabajaremos en la confeccin del reporte desde la solapa Design.
En la solapa Design, se crea el reporte, ubicando los campos en las secciones correspondientes, dando
formato a los mismos, etc.
En la solapa Preview, se muestra la vista preliminar del reporte con el resultado de su ejecucin.
NOTA: Tambin podemos acceder a un reporte ya creado, haciendo clic en el botn Search
(Buscar).
Barra de Menues
FlexABSCI: Manual de Configurador 171
v62 207-SCI-SP (Configuracion).pdf
La opcin Save to File, graba el reporte a disco.
La opcin Load from File, permite utilizar como plantilla un reporte ya existente.
La opcin Test Object nos permite seleccionar un objeto para poder probar el reporte
Esta ventana se utiliza desde distintas partes del sistema, y su fin es proveer un objeto de
prueba para la operacin que se est tratando de realizar.
FlexABSCI: Manual de Configurador 172
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Es posible tambin, cargar desde disco el XML de un objeto, y utilizarlo como objeto de
prueba.
La opcin View XML activa la ventana XML Viewer, donde vemos el XML correspondiente a la
clase:
Nota: las ventanas del Test Object y del XML Viewer, son ampliamente utilizadas en distintos lugares del
sistema.
Luego desde la Interfaz de Usuario (FlexAB-SUI), al seleccionar el objeto de la clase que tiene definido el
reporte (en este caso CLIENTE) podemos elegir cual de los reportes que existen para la clase (en esta caso
uno solo) queremos ver, y al hacer clic sobre el botn Preview de la barra de herramientas, tenemos
la opcin de visualizar el reporte en distintos formatos tal cual lo muestra la figura siguiente
Nota:
La WUI no soporta el paso de parmetros para reportes. (Ver Parmetros en la WUI)
La manera de agregar un parmetro a un reporte es a partir de la consulta FQL, la cual debe tener la
siguiente instruccin
Donde
1- indica que si se ingresa el carcter % se tomarn todos los valores del campo DESCRIPCION
2- 0 indica que se trata de un tipo de dato string
3- % es el valor que se tomar por defecto si no se ingresan datos
Y adems
Figura 90: Seleccin del formato de salida del Reporte desde FlexAB-SUI
Aparece la ventana de Parameters donde se debe ingresar el filtro que se requiere. En este caso se
pedir visualizar las Tareas cuya Importancia sea Urgente
P ARAMETROS EN LA WUI
La WUI no soporta el paso de parmetros para reportes.
Esta funcionalidad se logra de otra manera. Se crea una clase, cuyos atributos van a ser los valores que
tome el reporte como parmetros.
TOT=CDBL(rpt.Sections("PageFooter").Controls("txtMENPTtotal").text)
NUEVO=cdbl(rpt.Sections("Detail").Controls("txtMENPT").text)
rpt.Sections("PageFooter").Controls("txtMENPTtotal").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("PageFooter").Controls("txtMENPTtota1").text = FormatNumber(TOT + NUEVO,2)
IF vFORN=1 THEN
TOT=CDBL(rpt.Sections("PageFooter").Controls("totF1").text)
NUEVO=cdbl(rpt.fields("PrecoTF1"))
rpt.Sections("PageFooter").Controls("totF1").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("Detail").Controls("txtPrecoForn1").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center; font-weight: bold; color:
rgb(0,0,255);"
ELSE
rpt.Sections("Detail").Controls("txtPrecoForn1").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center;"
END IF
IF vFORN=2 THEN
TOT=CDBL(rpt.Sections("PageFooter").Controls("totF2").text)
NUEVO=cdbl(rpt.fields("PrecoTF2"))
rpt.Sections("PageFooter").Controls("totF2").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("Detail").Controls("txtPrecoForn2").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center; font-weight: bold; color:
rgb(0,0,255);"
ELSE
rpt.Sections("Detail").Controls("txtPrecoForn2").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center;"
END IF
IF vFORN=3 THEN
FlexABSCI: Manual de Configurador 182
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
TOT=CDBL(rpt.Sections("PageFooter").Controls("totF3").text)
NUEVO=cdbl(rpt.fields("PrecoTF3"))
rpt.Sections("PageFooter").Controls("totF3").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("Detail").Controls("txtPrecoForn3").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center; font-weight: bold; color:
rgb(0,0,255);"
ELSE
rpt.Sections("Detail").Controls("txtPrecoForn3").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center;"
END IF
IF vFORN=4 THEN
TOT=CDBL(rpt.Sections("PageFooter").Controls("totF4").text)
NUEVO=cdbl(rpt.fields("PrecoTF4"))
rpt.Sections("PageFooter").Controls("totF4").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("Detail").Controls("txtPrecoForn4").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center; font-weight: bold; color:
rgb(0,0,255);"
ELSE
rpt.Sections("Detail").Controls("txtPrecoForn4").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center;"
END IF
IF vFORN=5 THEN
TOT=CDBL(rpt.Sections("PageFooter").Controls("totF5").text)
NUEVO=cdbl(rpt.fields("PrecoTF5"))
rpt.Sections("PageFooter").Controls("totF5").text = FormatNumber(TOT + NUEVO,2)
rpt.Sections("Detail").Controls("txtPrecoForn5").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center; font-weight: bold; color:
rgb(0,0,255);"
ELSE
rpt.Sections("Detail").Controls("txtPrecoForn5").Style="font-size: 7pt; font-family:
'Tahoma'; ddo-char-set: 1; text-align: center;"
END IF
IF cdbl(rpt.fields("PrecoForn1"))=0 THEN
rpt.Sections("Detail").Controls("txtPrecoForn1").text = ""
rpt.Sections("Detail").Controls("txtPrecoTF1").text = ""
END IF
IF cdbl(rpt.fields("PrecoForn2"))=0 THEN
rpt.Sections("Detail").Controls("txtPrecoForn2").text = ""
rpt.Sections("Detail").Controls("txtPrecoTF2").text = ""
END IF
IF cdbl(rpt.fields("PrecoForn3"))=0 THEN
rpt.Sections("Detail").Controls("txtPrecoForn3").text = ""
rpt.Sections("Detail").Controls("txtPrecoTF3").text = ""
END IF
IF cdbl(rpt.fields("PrecoForn4"))=0 THEN
rpt.Sections("Detail").Controls("txtPrecoForn4").text = ""
rpt.Sections("Detail").Controls("txtPrecoTF4").text = ""
END IF
IF cdbl(rpt.fields("PrecoForn5"))=0 THEN
rpt.Sections("Detail").Controls("txtPrecoForn5").text = ""
rpt.Sections("Detail").Controls("txtPrecoTF5").text = ""
END IF
IF cdbl(rpt.Sections("PageFooter").Controls("preTF1").text) = 0 THEN
rpt.Sections("PageFooter").Controls("preTF1").text=""
rpt.Sections("PageFooter").Controls("prTF1").text=""
END IF
IF cdbl(rpt.Sections("PageFooter").Controls("preTF2").text) = 0 THEN
rpt.Sections("PageFooter").Controls("preTF2").text=""
rpt.Sections("PageFooter").Controls("prTF2").text=""
END IF
IF cdbl(rpt.Sections("PageFooter").Controls("preTF3").text) = 0 THEN
rpt.Sections("PageFooter").Controls("preTF3").text=""
rpt.Sections("PageFooter").Controls("prTF3").text=""
END IF
IF cdbl(rpt.Sections("PageFooter").Controls("preTF4").text) = 0 THEN
rpt.Sections("PageFooter").Controls("preTF4").text=""
rpt.Sections("PageFooter").Controls("prTF4").text=""
END IF
IF cdbl(rpt.Sections("PageFooter").Controls("preTF5").text) = 0 THEN
rpt.Sections("PageFooter").Controls("preTF5").text=""
rpt.Sections("PageFooter").Controls("prTF5").text=""
END IF
End Sub
En el siguiente ejemplo, es utilizado el componente ms comn de grficos que van a encontrar en una
mquina, el Microsoft Chart.
El procedimiento de ejemplo crea un sencillo grfico ilustrativo de la cantidad de objetos por clase. El
mismo puede utilizarse en cualquier base de datos de FlexAB, y servir como gua a la hora de graficar en
un reporte.
etc... 74 registros
El siguiente paso es abrir el editor de reportes, opcin Nuevo, y en la toolbar de la izquierda est el icono
para insertar un control ActiveX (una pinza y un martillo cruzados con puntos suspensivos)
Al hacer clic se abre una lista y se debe buscar el "Microsoft Chart Control". El ejemplo es con la versin 6.0
del control, con otra versin puede ser ligeramente distinto el VBScript, pero la idea general es la misma.
La seccin ReportFooter por default no est visible. Para que aparezca, hacer clic con botn derecho,
opcin Insert, "Report Header/Footer" antes de seleccionar el grfico.
Hacer clic en el botn de script en la toolbar (el de la hojita blanca con el engranaje)
Esto es una suerte de seteo inicial que se le hace al grfico, indicando el tipo de grfico de lnea (3) y
asignando los campos "rows" al mximo del eje X y "cols" cantidad de lneas a dibujar.
El resto es "pararse" en el primer valor de la primer lnea (que luego iremos ploteando en la seccin Detail
del reporte), poner el ttulo, el tipo de letra del mismo, y el locationType es la posicion relativa del mismo
(1 es top)
Como breve resea indicaremos que variando de 0 a 8 el chartType en la 2da lnea pueden cambiar el
grfico a barras, lineas, barras 3d, superficie, etc. El configurador debe ver las opciones que brinda este
control.
Para terminar, se debe seleccionar el objeto "Detail" , evento "OnBeforePrint" y agregar:
Sub OnBeforePrint
rpt.sections("reportFooter").controls("MSChart1").rowLabel = rpt.fields("idClass")
rpt.sections("reportFooter").controls("MSChart1").data = rpt.fields("cantidad")
If rpt.sections("reportFooter").controls("MSChart1").row < rpt.fields("rows") Then
rpt.sections("reportFooter").controls("MSChart1").row =
rpt.sections("reportFooter").controls("MSChart1").row + 1
End If
End Sub
-rowLabel es la etiqueta que acompaa al valor, en este caso el idClass para saber a que corresponde
cada cantidad
-data es el valor que va a parar al eje Y para la posicin actual en el eje X.
Por ltimo, la posicin actual se modifica avanzando de a 1, alterando la propiedad .row.
Hay un IF que controla que no se sobrepase el lmite puesto como mximo, de lo contrario veremos un
error de out of range.
http://www.vb123.com/Toolshed/99_vbchart/vbchart1.htm
http://www.winscripter.com/WSH/COM/61.aspx
http://www.internetsecurityzone.com/Parents/?_26101.MSChart.ocx
Para utilizar esta funcionalidad, es necesario crear dos reportes. Los mismos se crean y disean de la
misma forma que los reportes normales, no hay diferencias en ello. No obstante, deberemos indicar en el
reporte que ser el hijo, que va a actuar como subreporte; eso lo haremos tildando la casilla Act as
subreport que se encuentra situada la derecha de la caja de texto donde se ingresa el nombre del reporte.
(Figura 1)
Figura 1
Nota: Act as subreport es excluyente, eso significa que dada una configuracin los reportes sern
siempre subreportes o no lo sern nunca, no se pueden usar de ambas maneras. Sin embargo es posible
cambiar la configuracin para convertir un reporte en subreporte y viceversa.
Luego, iremos al reporte padre y utilizando la herramienta subreporte (Figura 2), ubicada en la barra
de herramientas lateral del editor, junto a las otros elementos de diseo, se agrega en la seccin donde se
desee que aparezca el subreporte una caja que contendr el reporte hijo.
Figura 2
Tras ubicar el subreporte en el area donde queremos que se vea, seleccionamos el contenedor, y en el
panel de propiedades, veremos una llamada ReportName, all pondremos el nombre del reporte hijo.
Guardamos el reporte, y generamos la clase. Con los cambios aplicados, al ejecutar el reporte padre
con cualquiera de los mecanismos existentes para generarlos, se incrustar en el mismo el hijo.
Nota: Al definir que un reporte actua como subreporte, el mismo no ser listado como una opcin para
los usuarios, aunque ser visible en los editores de clases, mtodos y reportes mientras se configuren.
Nota: Cuando se trabaja desde una clase de tipo Mdulo, los Mtodos, FQLs y Reportes, al estar en
edicin y ejecutar el comando Guardar, quedan almacenados definitivamente.
Ejemplo: si se est realizando un Reporte dentro de un mtodo y se guarda, el Reporte queda almacenado
aunque se cancele la edicin del mtodo.
Cuando se trabaja desde el Editor de Clases, esto es diferente. Los cambios quedan almacenados
definitivamente al Generar la clase. El Editor de Help trabaja nicamente en este ltimo modo.
Para esto, FlexAB provee un lenguaje que combina caractersticas del lenguaje SQL con el lenguaje XQL,
denominado FlexAB Query Language (FQL).
El Editor FQL o FQL Editor, puede ser utilizado desde diferentes lugares del FlexAB-SCI. Por ejemplo al
crear un mtodo, o cuando se crea un reporte. (Ver Clases Reales, Solapa Report, campo Data)
La barra de herramientas del FQL Editor, est formada por los siguientes iconos
Panel para elegir las clases de la consulta, haciendo clic sobre la clase correspondiente.
Panel que mostrar las clases elegidas con sus correspondientes atributos y sus relaciones
Grilla donde irn apareciendo los campos seleccionados para ver en la consulta. Tambin aqu se
definen los criterios de seleccin, ordenamiento, etc.
En el panel superior de la derecha, nos encontramos con un rbol que muestra las tablas/vistas existentes.
Haciendo clic sobre la tabla/s o vista/s elegida, despliega en el panel central, una pequea ventana con los
atributos de la tabla/vista.
Dependiendo de los atributos que se quieran mostrar en la consulta, se tilda la casilla correspondiente al
atributo.
Debajo de este panel, aparece una grilla donde podemos realizar el filtrado de los datos, el ordenamiento
de los mismos, etc.
Por ejemplo, para establecer un criterio de seleccin, se escribe directamente la condicin sobre la columna
Criteria.
Se abre la ventana con los atributos de la tabla/vista donde cliceamos sobre los check box de los
campos que deseamos mostrar
Tambin es posible ingresar texto manualmente. Para ingresar una tabulacin, se deben presionar las
teclas Ctrl + Tab.
En el panel central podemos generar las relaciones (JOIN) por medio de las cuales queremos vincular las
diferentes tablas/vistas.
Esto es muy sencillo de hacer (Drag and Drop), ya que hay que ubicarse con el puntero del mouse sobre el
atributo origen, presionar botn izquierdo, mantener presionado, arrastrar hasta el atributo destino de la
relacin, y soltar.
Tambin se pueden editar los JOIN generados, haciendo clic con botn derecho sobre la lnea de relacin.
Eligiendo la opcin Edit, se puede acceder a la ventana de Link Properties, como podemos ver en la
figura que sigue
Haciendo clic con botn derecho sobre la lnea de link (relacin), con la opcin Edit podemos
editar las propiedades de la misma.
En el panel inferior se van generando los JOIN correspondientes a las relaciones generadas
grficamente.
Haciendo clic sobre cualquiera de ellos, los dems paneles toman la informacin de la sentencia elegida.
Esto se puede ver en la figura a continuacin
La utilizacin de una aplicacin FlexAB supone que en todo momento se tiene un objeto en edicin, sobre
el cual se est operando. Toda la informacin respecto de este objeto se mantiene en memoria mediante
una estructura XML.
La estructura de un documento XML que encapsula la informacin de un objeto FlexAB, se compone de las
siguientes partes
Como se puede observar en la Figura 98, existen dos paneles (Object XML y Xql Result) un campo
XQL que puede tambin editarse a mano, un combo Function de donde seleccionar las funciones
disponibles en XQL, y una caja de texto no editable donde se compone la sentencia XQL.
Para comprender el significado de los distintos renglones del panel, descomponemos a continuacin un
sector del mismo.
Ejemplo
Como se puede observar, los atributos del nodo IDINTERNAL aparecen con sus respectivos valores.
Como se ha especificado anteriormente, para obtener valores del XML debemos acceder a los mismos
recorriendo su estructura.
Ejemplo
Se tiene la siguiente consulta FQL, por medio de la cual se obtiene el CUIT y el Telefono de los clientes
SELECT classCLIENTE.CUIT,
classCLIENTE.Telefono
FROM classCLIENTE
Lo que se desea es obtener dichos datos pero solamente para el cliente actual, el cliente con el que se est
operando y cuyo XML es el que est en memoria actualmente. El cliente actual, es un dato que se
encuentra en el XML del objeto cliente, en el valor del nodo IDINTERNAL. Se debe pasar esa informacin al
FQL para que acte como filtro.
Lo haremos creando una sentencia XQL de la siguiente manera
En la caja de texto, se completa automticamente la ruta de acceso a la estructura del valor del nodo
VALUE
El paso siguiente es copiar el resultado de la caja de texto e incluirlo en la sentencia FQL (en el panel FQL
Editor) tal como se muestra a continuacin
SELECT classCLIENTE.CUIT,
classCLIENTE.Telefono
FROM classCLIENTE
WHERE classCLIENTE.idInternal =
'XQL:FIRST(//OBJECT/ATTRIBUTES/IDINTERNAL/VALUE)'
Como se mencion anteriormente es posible ingresar una sentencia XQL en la caja de texto, y presionando
el Botn de Ejecucin, se obtiene el resultado de la misma en el Panel XQL Result. La figura a continuacin
ilustra el ejemplo
Solapa Results
Presionando la tecla F5 se ejecuta la sentencia FQL y el resultado devuelto por la misma se puede observar
en la solapa Results
Grabacin de la consulta
Al grabar, se realizan una serie de validaciones. Si algo est incorrecto, se despliega un panel de Error
Messages en la parte inferior de la ventana. En l se indican los errores por los cuales no se pudo grabar.
En el ejemplo siguiente, el mensaje que nos muestra es Name: Null value not allowed. Haciendo clic
sobre esta lnea de detalle del error, el foco va hacia el control que tiene el error, aunque est en otra
solapa.
Para este ejemplo el error est en la casilla de texto Name de la solapa Info, que est vaca.
Panel de Error
Men File:
Men Query:
Men Preferences:
Options: Abre la ventana de propiedades del control del Editor de FQL. No disponible para algunas
versiones de FlexAB.
FlexABSCI: Manual de Configurador 205
v62 207-SCI-SP (Configuracion).pdf
Figura 102: Ventana de propiedades del Editor FQL
Con los XQL podemos obtener los valores desde el XML que conforma el objeto sobre el cual estamos
trabajando.
Los XQL que devuelvan una lista de valores, deben utilizarse junto con las funciones provistas
por XQL.
Nota: SIEMPRE, tanto los XQL como las VAR deben ir OBLIGATORIAMENTE entre comillas simples.
Los datos tipo string, tendrn comillas simples porque el sistema se encarga de administrarlas.
Funciones de XQL
Para los siguientes ejemplos se toma un objeto de la clase DATABASE que contiene tres objetos de la
clase HISTORIA includos. Este objeto ser utilizado para retornar los valores de las consultas.
Ejemplo
//IDINTERNAL/VALUE
Retorna el valor de idInternal que posee el XML del objeto. Segn el caso, debe utilizarse con la funcin
correspondiente
ATTRIBUTES/IDINTERNAL/VALUE
Retorna el valor del idInternal del objeto que est en el XML, en este caso solo del objeto raiz y no de
sus objetos includos.
//DESCRIPCION/VALUE
Retorna el valor de DESCRIPCION que posee el XML del objeto. Segn el caso, debe utilizarse con la
funcin correspondiente. (Ver //IDINTERNAL/VALUE)
//OBJECTINCLUDE/OBJECT[@idCLASS=CLASENOMBRE']/ATTRIBUTES/IDINTERNAL/
VALUE
Sentencia:SELECT
'XQL:ALL(//OBJECTINCLUDE/OBJECT[@idCLASS='HISTORIA']/ATTRIBUTES/IDINTERNAL/VA
LUE)'
Devuelve todos los IDINTERNAL de los objetos de la clase HISTORIA que estn includos en el XML del
objeto
Resultado: 120020100000002, 120020100000003, 120020100000004
Sentencia: SELECT
'XQL:FIRST(//OBJECTINCLUDE/OBJECT[@idCLASS='HISTORIA']/ATTRIBUTES/IDINTERNAL/
VALUE)'
Devuelve el IDINTERNAL del primer objeto de la clase HISTORIA que est includo en el XML del objeto
Resultado: 120020100000002
ATTRIBUTES/NN/LISTVALUES/VALUE
Retorna la lista de todos los valores del atributo NN. En este caso para listar todos los valores posibles debe
tratarse de un atributo de tipo COMBO o LIST, los cuales enumeran una lista de valores.
Para este ejemplo, se tiene una clase TAREAS la cual posee un atributo llamado Importancia que es de
tipo Combo y que tiene cargados la lista de valores que muestra la figura
Vista del sector del XML del objeto de la clase TAREAS donde est el atributo Importancia
//VALUE[@idInternal=119990100000004]
FlexABSCI: Manual de Configurador 211
v62 207-SCI-SP (Configuracion).pdf
Sentencia: SELECT 'XQL:(//VALUE[@idInternal=119990100000004] )'
Devuelve el valor de texto que representa al idInternal 119990100000004 para un atributo tipo
RELATION
Resultado: 'Gerardo Diaz'
//OBJECT/OBJECTINCLUDE/OBJECT[@idCLASS='MAQUETA']/ATTRIBUTES/COLOR/VA
LUE
Caso planteado: Dentro de la clase A, estn incluidas las clases Detalle, Maqueta y Ubicacion. Todas
estas clases tienen un atributo llamado color.
Como se referencia por ejemplo, al atributo color de la clase incluida Maqueta?
Sentencia: SELECT
'XQL:FIRST(//OBJECT/OBJECTINCLUDE/OBJECT[@idCLASS='MAQUETA']/ATTRIBUTES/COLO
R/VALUE)'
Tenemos diferentes variables de las cuales podemos obtener datos, la utilizacin es de la siguiente manera:
VAR:NOMBREVARIABLE
IDAPPLICATION
Identificador numrico de la aplicacin actual
Sentencia: SELECT 'VAR:IDAPPLICATION'
Resultado: 3
IDUSER
Identificador de usuario actual
Sentencia: SELECT 'VAR:IDUSER'
Resultado: 'alopez'
IDSYSTEM
Identificador de sistema actual
Sentencia: SELECT 'VAR:IDSYSTEM'
Resultado: 'COM'
IDSESSION
Identificador de sesin actual
IDLANG
Identificador de lenguaje activo
Sentencia: SELECT 'VAR:IDLANG'
Resultado: 'SPA'
IDAPPLICATIONDESCRIPTION
Descripcin de la aplicacin actual
Sentencia: SELECT 'VAR:IDAPPLICATIONDESCRIPTION'
Resultado: 'Ventas'
IDSYSTEMDESCRIPTION
Descripcin del sistema actual
IDSPACE
Identificador el espacio de trabajo actual
TEMPDIR
Identificador el directorio de trabajo temporal
Sentencia: SELECT 'VAR:TEMPDIR'
Resultado: 'D:\Appliware\FlexAB\temp\'
Nota: Para la ejecucin de los mtodos de FlexAB es necesario tener instalado Microsoft Office 2000 o
superior. Para la ejecucin de mtodos de tipo Project, es necesario tener instalado Microsoft Project 2000
o superior.
Nota: Cuando se trabaja desde una clase de tipo Mdulo, los Mtodos, FQLs y Reportes, al estar en
edicin y ejecutar el comando Guardar, quedan almacenados definitivamente.
Ejemplo: si se est realizando un Reporte dentro de un mtodo y se guarda, el Reporte queda almacenado
aunque se cancele la edicin del mtodo.
Cuando se trabaja desde el Editor de Clases, esto es diferente. Los cambios quedan almacenados
definitivamente al Generar la clase. El Editor de Help trabaja nicamente en este ltimo modo.
Los mtodos son aquellas funciones que permite efectuar el objeto, y que nos rinden algn tipo de
servicio durante el transcurso del programa. Determinan a su vez como va a responder el objeto cuando
recibe un mensaje.
Un mtodo es un programa asociado a un objeto (o a una clase de objetos), cuya ejecucin se
desencadena mediante un "mensaje". De esta forma el objeto se activa y responde al evento segn lo
determinado en el mtodo.
Existen mtodos que son GLOBALES y mtodos que son propios de cada clase. Los mtodos GLOBALES
pueden ser utilizados por las clases, pero no pueden ser modificados desde las mismas. Deben modificarse
directamente desde el Editor de Mtodos.
Estos mtodos GLOBALES se encuentran contenidos en el mdulo SHAREDMETHODS.
Para ingresar al Editor de Mtodos, debemos presionar el botn correspondiente al mismo en la Barra
de Herramientas de FlexAB-SCI. De esta forma accedemos al Editor de Mtodos para trabajar
nicamente con Mtodos globales (contenidos en Mdulos).
A los Mtodos pertenecientes a las clases se accede desde el Editor de Clases.
La barra de herramientas del Editor de Mtodos, est formada por los siguientes iconos
Desde un mdulo indica que el mtodo est siendo utilizado por una clase. Desde una clase
indica que la clase utiliza en un lugar al mtodo.
Desde un mdulo indica que el mtodo est siendo utilizado por varias clases. Desde una clase
indica que la clase est utilizando el mtodo en varias situaciones.
La ventana del Editor de Mtodos, contiene dos sectores. Un sector con la grilla que contiene los
mtodos del mdulo SHAREDMETHODS, y otro sector con la descripcin del mtodo seleccionado de
la grilla.
El mdulo SHAREDMETHODS es aquel que contiene los mtodos que son globales. Esto significa que
pueden ser utilizados por todas las clases, pero solamente modificados desde el Editor de Mtodos. Una
clase tambin puede utilizar mtodos que sean privados. Estos mtodos, son propios de la clase y no
pueden ser utilizados por otra clase, y se accede a los mismos desde el Editor de Clases.
El sector contiene dos partes. La parte superior corresponde al mdulo al cual pertenecen todos
los mtodos listados en la grilla.
Cuando se edita una clase, en el combo tambin aparece la clase. Y si se selecciona la clase se listan los
mtodos de la misma. Cuando se edita una clase, no se pueden editar los mtodos pertenecientes a
mdulos, solo es posible seleccionarlos.
El sector , contiene dos sectores. Un sector superior con informacin comn para todos los
mtodos, y un sector inferior , con la informacin particular referente al tipo de mtodo (Type) que se
est utilizando.
Seccin superior
Seccin inferior
- Internal: cuando el mtodo slo puede ser ejecutado desde la clase (privado).
- External: cuando el mtodo puede ser ejecutado desde afuera (pblico).
- All: puede ser ejecutado de modo interno y externo.
Type: seleccionar el tipo de mtodo de la lista. De acuerdo al tipo de mtodo se activan los campos
correspondientes en la seccin inferior. Cada tipo de mtodo tiene un icono que lo identifica.
Seccin inferior
Esta seccin es diferente para cada tipo de mtodo, dependiendo de las caractersticas del mismo.
Los mtodos se definen por estado. Dependiendo del estado en que se encuentra el objeto, se ejecutan los
mtodos correspondientes a ese estado.
Podrian haber varios mtodos definidos para el evento UserEvent con el mismo nombre en un estado.
Desde la interfaz de usuario, al hacer clic con botn derecho sobre el objeto, el usuario solo vera el
nombre del mtodo una vez, pero en caso de ejecutarlo, estaria disparndolos a todos.
De esta manera, se ejecutan todos los mtodos respetando el orden que tienen en el estado. (Tambin
entran en juego los mtodos definidos en el estado INITIAL) . Por lo tanto el orden de ejecucin de los
mtodos es el que aparece en la solapa All Methods de la Solapa Flow, en el editor de la clase.
La excepcin a esta regla, son los mtodos UPDATE. Estos son los primeros en ejecutarse, y luego sigue el
resto.
(Ver Clases Reales, Solapa Flow, Visualizacin y Orden de Ejecucin de los mtodos)
Lista de los mtodos que tiene la clase, y el orden de ejecucin de los mismos.
OPERATI ON
Mtodo para realizar operaciones. Este mtodo genera un cambio de valor del XML activo. Lo que
hace es, mediante una consulta SQL, traer las n columnas del resultado, y la columna correspondiente
(indicada por Fql Field) la copia en el atributo deseado.
Data Source: Los mtodos deben poseer un FQL asociado. Se puede crear un FQL o levantar uno
existente. Al presionar el botn SQL, se activa la ventana del Editor FQL (Ver Editor FQL).
Object: referencia dentro del XML al objeto en s (OBJECT), a los objetos includos (INCLUDE),
al padre del objeto (FATHER), a la clase abstracta que contenga el objeto (ABSTRACT) , y al primer valor
que encuentre en el XML del objeto (ABSOLUTE VALUE)
Attribute: nombre del atributo al que se asignar el resultado devuelto por la consulta FQL. Este
atributo es en relacin valor elegido en campo Object.
FlexABSCI: Manual de Configurador 220
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Si en columna Object se selecciona OBJECT, la columna Attribute muestra un combo con la lista de
atributos del objeto en s
Fql Field: como el resultado del FQL tiene n columnas, se especifica cual es la columna que se
desea copiar como valor correspondiente al campo de la columna Attribute.
Por ejemplo, en la siguiente consulta tenemos siete campos en la proyeccin
SELECT FlexABTST.dbo.classBUG.idApplication,
FlexABTST.dbo.classBUG.idObject,
FlexABTST.dbo.classBUG.tag,
FlexABTST.dbo.classBUG.idState,
FlexABTST.dbo.classBUG.Title,
FlexABTST.dbo.classBUG.[ID Area],
FlexABTST.dbo.classBUG.Area
FROM FlexABTST.dbo.classBUG
La columna Fql Field, contiene un combo con los siete campos que la consulta contiene, de los cuales se
debe seleccionar el campo que sea necesario.
Type: indica si la consulta FQL, devolver un valor (VALUE) , devolver una lista de valores
(LISTVALUE) o se aplicar sobre el nivel de seguridad del atributo (SECURITY). Ver ejemplo de seguridad
del atributo.
If its Empty: Significa que solo se ejecutar cuando el atributo no contenga un valor, o sea
siempre que est en blanco.
FlexABSCI: Manual de Configurador 221
v62 207-SCI-SP (Configuracion).pdf
Allows Null: indica si acepta valores nulos
Constant : Si existe un valor en esta columna, se tomar el mismo en vez del valor devuelto por el
FQL. En este caso no es necesario ingresar una consulta FQL. Si la columna Constant est en blanco, se
exigir una consulta FQL. El valor de la columna es cualquiera que el usuario defina.
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Operation.
El caso prctico es querer asignar un nmero de identificacin (Tag) a la nueva Tarea que se carga en el
sistema.
Este nmero debe ser el siguiente al mayor existente en los objetos de dicha clase.
El resultado que obtendremos, ser que el objeto que se guarda, obtendr su Tag por medio de un
mtodo, sin que el usuario lo deba ingresar.
Como vemos en la siguiente figura, el mtodo definido se ejecutar en el estado INITIAL del objeto.
Entonces en nuestra clase TAREA definimos el mtodo 133 y su evento disparador ser BeforeSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data Source, haciendo clic en el botn SQL accederemos al Editor FQL, donde crearemos la
consulta FQL asociada al mtodo que nos devolver el valor que necesitamos para el Tag.
SELECT NroSiguiente
FROM (SELECT CONVERT(CHAR(6),(MAX(CONVERT(INTEGER,TAG))+1)) AS NroSiguiente
FROM OBJECT
WHERE IDCLASS IN('TAREA') )
TABLA
Nuestro mtodo tiene como funcin modificar el atributo Tag, por lo tanto debemos ingresar el
identificador del atributo a modificar.
Para poder modificar un atributo, debemos llegar a l, atravesando la jerarqua que XML asigna a un
atributo para poder llegar al dato. Como Tag, es un atributo, debemos indicar en los ATRIBUTOS (indicado
como ATTRIBUTE), el atributo Tag .
FlexABSCI: Manual de Configurador 223
v62 207-SCI-SP (Configuracion).pdf
Object = OBJECT
o Significa que el atributo corresponde al objeto (no a su padre o sus includos)
Attribute = TAG
o Significa que el valor modificar el atributo TAG
Fql Field =1
o Significa que tomar el valor de la columna 1 del resultado de la consulta
Type = VALUE
o Significa que devolver solo un valor (y no una lista de valores)
If its empty = SI
o Significa que solo se ejecutar cuando el atributo no contenga un valor .
Allows Null = SI
o Significa que permitir valores nulos
EJEMPLO 2:
En este ejemplo definiremos otro mtodo de tipo Operation.
El caso prctico es que tenemos un atributo con un tipo de control combo, donde al elegir una de las
opciones, se carga a travs del mtodo otro atributo tambin de tipo combo con las opciones
correspondientes a lo elegido en el primero.
En el caso presentado, se presume una clase de tipo FACTURA donde se elige en el primer atributo la
Forma de Pago, y dependiendo de la elegida, la consulta FQL carga en otro atributo llamado TIPO las
opciones correspondientes a la Forma de Pago elegida.
El resultado que obtendremos, ser que para cada opcin elegida en el primer combo, se desplegarn una
serie de opciones en el segundo.
Entonces en nuestra clase FACTURA definimos un mtodo cuyo evento disparador ser FieldChange (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data Source, haciendo clic en el botn SQL accederemos al Editor FQL, donde crearemos la
consulta FQL asociada al mtodo que nos devolver el valor que necesitamos para llenar el combo del
atributo TIPO.
Como podemos observar arriba, esta consulta devolver un solo campo y en algunos casos es posible que
devuelva mltiples valores, por eso en Type elegimos la opcin LISTVALUE .
Object = OBJECT
o Significa que el atributo corresponde al objeto (no a su padre o sus includos)
Attribute = TIPO
o Significa que el valor/es se cargar en el campo TIPO
Fql Field =1
o Significa que tomar el valor de la columna 1 del resultado de la consulta
Type = LISTVALUE
o Significa que devolver una lista de valores
If its empty = NO
o Significa que se ejecutar siempre
Allows Null = SI
o Significa que permitir valores nulos
EJEMPLO 3:
En este ejemplo definiremos otro mtodo de tipo Operation que modifique la seguridad de un atributo.
El caso prctico es la realizacin de la carga de Pedidos de una empresa. Por cada artculo que integra el
Pedido, se crea un objeto includo de la clase PEDITEM. Al editar los objetos de la clase PEDITEM, el Precio
Unitario de los articulos solamamente permitiremos que sea modificado por los usuarios pertenecientes al
grupo Administradores.
Definimos entonces en el estado INITIAL (para que corra en todos los estados) de la clase PEDITEM un
mtodo que se ejecutar en el evento Edit, con las caractersticas que se indican en las figuras siguientes
Restricciones
Cuando la clase tiene mtodos update, en el estado INITIAL no pueden existir
mtodos
En el estado al que pasar el objeto, solo puede haber mtodos Update
No se puede definir en SHAREDMETHODS; siempre este mtodo debe pertenecer
a una clase
Es un mtodo pblico, por lo cual est visible para otras clases
Este mtodo solamente puede ser invocado por eventos onMessage y UserEvent
Cuando es por UserEvent, se ejecuta solo el mtodo update que corresponde al
objeto que dispara el UserEvent. Este mtodo conoce el IdInternal del objeto que
lo est disparando
Cuando es por OnMessage, puede ser para una lista de objetos. Por lo tanto se
ejecutan los mtodos Update de cada uno de los objetos de la lista
No se puede modificar el IdObject de los objetos
Estado al que pasar el objeto. Este estado solamente puede contener mtodos de tipo Update,
ningn otro. Esto se debe a que no tiene el XML del objeto para ejecutar cualquier otro mtodo. En Initial
tampoco puede haber mtodos que no sean Update.
Al tildar esta opcin, los objetos sern actualizados en conjunto, de una sola vez. De lo contrario, se
realizarn actualizaciones individuales por cada objeto.
Ejemplo: Tenemos el caso de querer asignar a una serie de comprobantes, la numeracin correspondiente
a cada uno. Esa numeracin, ser la del mximo nmero asignado al tipo de comprobante, ms uno.
En el caso de tener tildada la opcin, se aplicar el nmero devuelto por la consulta SQL (por ejemplo 212)
a todos los objetos que existieran en la lista. Entonces todos los comprobantes de la lista se actualizaran
con el nmero 212. En caso contrario, sin tildar la opcin, se lo har uno por uno. Se pondr el nmero
correspondiente al primer objeto, luego se ejecutar otra vez el mtodo para el segundo objeto con el
nmero del ltimo objeto asignado ms uno , y as sucesivamente. De esta forma el primer comprobante
tendr el nmero 212, el segundo 213, el tercero 214, etc.
Al tildar esta opcin, se indica que se actualicen los atributos virtuales que dependan de la grabacin
del objeto sobre el cual corre el mtodo. Al actualizar un objeto que estuviera referenciado en otro de otra
clase (por medio de un atributo relation) y esta ltima clase tuviese un atributo virtual que se modifica con
la grabacin del objeto relacionado, solo se realizar esto si se tilda la opcin.
Consideraciones
Seleccin por Estado
La ejecucin de un mtodo Update, es posible dividirla en dos partes:
durante la primera etapa se cambia el estado de los objeto/s que sern afectados
durante la segunda etapa se realiza la modificacin indicada en el mtodo sobre dichos
objeto/s
Cuando la sentencia SQL del mtodo, tiene una seleccion por estado (en el WHERE existe una
condicin que filtra por el estado del objeto), luego de la ejecucin del mtodo la interfaz de
usuario puede informar que no se devuelven registros.
La causa ms probable de esto, es que solo se haya realizado la primera etapa de la ejecucin. Al
querer realizar la etapa siguiente, la consulta SQL intenta traer los mismos objetos pero no lo
consigue, ya que el estado les ha sido cambiado.
En este ejemplo a travs de un evento UserEvent, se dispara un mtodo Update que pone la fecha de
cierre a una conciliacin bancaria, en caso que no posea dicha fecha.
Esta conciliacin, es un objeto.
Se define en la clase Conciliacion, en el evento UserEvent, un mtodo cuyo nombre ser Conciliar
Periodo.
Este evento est definido para cuando el objeto tenga el estado Iniciada.
Estado para el cual se define el mtodo. En este caso para el estado Iniciada.
Consulta SQL que devuelve el objeto u objetos sobre los cuales se aplicarn los cambios, y los valores
que se aplicarn. Debe contener obligatoriamente el campo IdInternal.
Numero de campo que devuelve la consulta SQL, y que modificar al atributo. Ej. 1, 2, 3, etc.
El campo 3 que devuelve la consulta SQL del punto 5 anterior (fechaCierre) ser el nuevo valor del
atributo.
Como resultado de la configuracin realizada, vemos en la FlexAB SUI, la forma de ejecutar el mtodo
Mtodo Update definido. Haciendo clic sobre el mismo se dispara la actualizacin de la fecha.
Dado que los eventos UserEvent se pueden ejecutar para varios objetos seleccionados, este mtodo tiene
la ventaja de poder actualizar muchos objetos rpidamente, como se ejemplifica a continuacin
En la versin actual, la nica restriccin, es que los mtodos invocados sean de tipo UPDATE.
FQL que devuelve una lista de objetos para los cuales se invocar el mtodo. Se debe indicar el
IdInternal y el IdClass
En el caso presentado, se presumen una clase SEGUIMIENTO y una clase TAREA (padre de la anterior).
La finalidad del mtodo es que luego de la grabacin de un objeto SEGUIMIENTO, si el mismo est
100% completo, se invoque a un mtodo UPDATE de la clase TAREA (que es la clase padre de
SEGUIMIENTO).
El mtodo invocado en TAREA, se llama Cambiar Estado, y es disparado por el evento OnMessage, en
cualquier estado de la tarea (INITIAL).
Los eventos OnMessage, capturan los mtodos Message que se ejecutan para la clase.
El nombre del mtodo Message que invocar al mtodo Update de la tarea es Cierra las Tareas
Sentencia FQL que indica el o los objetos que se sern los alcanzados por el mtodo Update de la
clase destino. Se indica el IdInternal de estos objetos (en este ejemplo el padre del objeto actual) y la clase
a la que pertenecen. Adems aqu est indicado que el campo PORCCOMPLETADO=100 en los objetos.
Nota: Los objetos alcanzados por el mtodo, surgirn de la interseccin de los devueltos en este SQL y el
SQL del mtodo UPDATE invocado.
El evento que captura al mtodo Message enviado desde el objeto Seguimiento es OnMessage
El nombre del mtodo Update que cambiar el estado de la tarea es Cambio Estado
En este caso, al ejecutarse el mtodo Update, para responder a un Message, de toda la lista que presenta
el actual FQL, los cambios se harn sobre los objetos que resulten de la interseccin del FQL del mtodo
Message con este FQL.
Aqu se trae la lista de objetos que sean padres de objetos de la clase SEGUIMIENTO
Estado al que pasar el objeto cuando se corra el mtodo. (Ver Mtodo Update)
y Sin valores porque en este caso el mtodo solo cambiar el estado del objeto, cosa indicada
en el punto 2 (Next State).
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Validate.
El caso prctico es que tenemos un atributo llamado Numero de Factura y queremos controlar que al
grabar la factura, el campo no est vaco.
El resultado que obtendremos, ser que si la validacin no se cumple, el objeto no podr guardarse.
Entonces en nuestra clase FACTURA definimos un mtodo cuyo evento disparador ser BeforeSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data Source, haciendo clic en el botn SQL accederemos al Editor FQL, donde crearemos la
consulta FQL asociada al mtodo que nos devolver el valor que necesitamos para realizar la validacin.
EJEMPLO 2:
En este ejemplo definiremos otro mtodo de tipo Validate.
El caso prctico es que tenemos un atributo llamado Codigo de Cliente y queremos controlar que al
grabar una factura, el cliente ya existiera en el sistema anteriormente.
El resultado que obtendremos, ser que si la validacin no se cumple, el objeto no podr guardarse.
Entonces en nuestra clase FACTURA definimos un mtodo cuyo evento disparador ser BeforeSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data Source, haciendo clic en el botn SQL accederemos al Editor FQL, donde crearemos la
consulta FQL asociada al mtodo que nos devolver el valor que necesitamos para realizar la validacin.
Como podemos observar, el nombre de la consulta es (MET)ExisteCliente y es la siguiente:
SELECT classCLIENTE.Codigo
FROM classCLIENTE
WHERE classCLIENTE.Codigo = 'XQL:FIRST(//OBJECT/ATTRIBUTES/CODCLIENTE/VALUE)'
Entonces el mtodo, realizar la consulta buscando un cliente con el CodCliente indicado. Si la cantidad de
registros que devuelve la misma es mayor a 0 (cero), indica que el cliente existe.
Data Source: consulta FQL, que se utiliza para obtener los parmetros requeridos en las
funciones que utiliza la Macro.
Nombre: actualOBJECTToXML
Descripcin: Copia el XML del objeto actual , al XML auxiliar
Parmetros: --
Nombre: actualXMLtoOBJECT
Descripcin: Copia el XML auxiliar, al XML del objeto actual
Parmetros: --
Nombre: OBJECTlock
Descripcin: Bloquea un objeto cualquiera
Parmetros: idInternal
Nombre: OBJECTunlock
Descripcin: Desbloquea un objeto
Parmetros: idInternal
Nombre: objectErase
Descripcin: Elimina un objeto
Parmetros: idInternal, idFather
Nombre: objectRevision
Descripcin: Crea una revisin de un objeto
Parmetros: idInternal, idFather, Version, Description, datemake, ExecutedBy, CheckedBy,
ApprovedBy
Nombre: OBJECTpacking
Descripcin: Crea un paquete
Parmetros: idInternal
Nombre: OBJECTpackingUp
Descripcin: Restaura el paquete indicado con ruta completa Ej: C:\paquete.zip
Parmetros: Filename
Nombre: OBJECTtoXMLatt
Descripcin: Trae el XML de un objeto existente al XML auxiliar
Parmetros: idInternal, idFather
Nombre: OBJECTtoXMLnew
Descripcin: Traer el XML de un objeto nuevo al XML auxiliar
Parmetros: idClass, idFather
Nombre: OBJECTtoXMLcopy
Descripcin: Trae una copia de un objeto existente al XML auxiliar
Parmetros: idInternal, idFather
Nombre: SpaceChange
Descripcin: Cambia el espacio actual
Parmetro: NewIdSpace
Nombre: XMLtoOBJECT
Descripcin: Guarda el XML auxiliar como un objeto. Si existe el objeto lo pisa, sin lo crea.
Parmetros: --
Nombre: XMLtoXMLadd
Descripcin: Agrega un objeto incluido al XML auxiliar
FlexABSCI: Manual de Configurador 251
v62 207-SCI-SP (Configuracion).pdf
Parmetros: idCLASS, idFather
Nombre: XMLtoXMLdel
Descripcin: Elimina objeto incluido del XML auxiliar
Parmetros: idInternal
Nombre: XMLtoXMLchgFather
Descripcin: Cambia un padre de un objeto. El cambio lo hace sobre el XML auxiliar
Parmetros: idOldFather, idNewFather
Nombre: XMLtoXMLnewLink
Descripcin: Crea un nuevo Link a un objeto. Lo hace sobre el XML auxiliar
Parmetros: idNewFather, idnewSpace
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Macro.
Se trata de un NewLink.
El caso prctico es querer que al crear un CLIENTE, automticamente se cree en otro espacio de trabajo un
Link al CLIENTE creado. Esto se nos hace necesario para poder ingresar en este nuevo espacio de trabajo,
la documentacin de las operaciones con el CLIENTE.
El espacio donde se crea el CLIENTE es el 201 (llamado REAL), y el espacio donde se quiere crear el Link
es el 202 (llamado DOCUMENTACION).
El resultado que obtendremos, ser que al grabar el nuevo CLIENTE, automticamente se crear un Link al
mismo en el espacio DOCUMENTACION .
Entonces en nuestra clase CLIENTE definimos un mtodo cuyo evento disparador ser BeforeSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Program.
El caso prctico es querer ejecutar un programa externo al momento de poner el objeto en Edicin.
El resultado que obtendremos, ser la ejecucin del programa externo cuando el objeto se ponga en
edicin.
Entonces en nuestra clase FACTURA definimos un mtodo cuyo evento disparador ser Edit (Ver Solapa
Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
Entonces el mtodo, al momento en que el objeto FACTURA se ponga en Edicin, ejecutar el programa.
A modo ilustrativo, en la pantalla siguiente se imprimen en la pantalla del programa ejecutado, los
parmetros pasados desde el mtodo.
Figura 120: Vista del programa externo con los parmetros recibidos
EJEMPLO 2:
En este ejemplo definiremos otro mtodo de tipo Program.
El caso prctico es querer ejecutar un programa externo de procesamiento por lotes(.bat) al momento
imprimir el objeto. Dicho programa se utiliza en este caso para copiar archivos.
El resultado que obtendremos, ser la ejecucin del programa externo cuando el objeto se imprima.
Entonces en nuestra clase FACTURA definimos un mtodo cuyo evento disparador ser Print (Ver Solapa
Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
Source Filename: determina el nombre del archivo origen, con qu nombre se abrir el archivo
para trabajar. Si por ejemplo indicamos SELECT Liquidaciones.xls, tomar un archivo origen llamado
Liquidaciones.xls, que por defecto debe encontrarse en el directorio temporal
(.../Appliware/FlexAB/temp/Liquidaciones.xls) (Ver Source Filename en Metodo Word)
Target Filename: determina el nombre del archivo destino, con qu nombre ser guardado el
archivo.
Edit file after finish: abre el archivo despus de la ejecucin del mtodo
Nota: Cuando configuramos un evento Revision y trabajamos sobre un atributo FileLink, el checkbox de
Edit File Alter Finish, debe estar destildado. De lo contrario se abre el archivo en pleno proceso y se
produce un error en el revisionado.
Data Source: permite n consultas FQL asociadas. Data Source es el nombre de las consultas
Por ejemplo:
- (MET)TraeClientes
- (MET)FacturacionCliente
Cada una de estas consultas asociadas, tendr sus propios parmetros en el panel inferior Excel. Por
ejemplo, el resultado de la primer consulta, se cargar a partir de la fila 11 (Row) desde la columna 1
(Column) en una hoja llamada FACTURACION; el resultado de la segunda a partir de la fila 12 desde la
columna 2 en una hoja llamada INSTALACIONES, y as sucesivamente. Tambin podran varias consultas
cargarse en la misma hoja. (Ver Ejemplo 1)
Action Type: define si en la planilla Excel, los datos van a ser insertados o copiados.
o Copy copia desde la fila indicada, sobrescribiendo las restantes.
o Insert inserta las filas a partir de donde se le indique, pero desplaza las que hubiera
ms abajo, en caso de que hubiera.
Create Field Number: se utiliza conjuntamente con Create Sheet. Es un valor numrico que
representa el nmero de columna devuelto en el FQL del Data Source. Por ejemplo, tenemos la siguiente
consulta FQL
SELECT Nombre, Direccion FROM classPersonal
Si en el campo Create Field Number indicamos que tome la columna 1, crear una hoja en la planilla
llamada Pedro Ramirez, otra llamada Luis Altamirano y as sucesivamente, ya que son los valores
correspondientes a la columna 1.
En la hoja llamada Pedro Ramirez, pondr los datos del registro correspondiente, o sea Pedro Ramirez,
Nogoy 1574, en la hoja llamada Luis Altamirano pondr los datos Luis Altamirano, Suipacha 46 y as
sucesivamente por cada hoja creada.
Model Hide: oculta la hoja de trabajo en la planilla despus que se realice la insercin o copia.
Invert: invierte los datos que vuelca en la planilla. Por ejemplo, si se indica que tiene que dejar los
datos a partir de la fila 11 (Row = 11), el sistema volcar el registro nmero 1 en la fila 11, el nmero 2 en
la fila 12, el nmero 3 en la fila nmero 13 y as sucesivamente. Si se tilda la casilla Invert, volcar el
registro nmero 1 en la fila 11, el nmero 2 en la fila 10, el nmero 3 en la fila 9 y as sucesivamente.
EJEMPLO 1:
En este ejemplo definiremos un caso tomando como referencia los datos de la imagen anterior.
El caso prctico es tener un archivo de MSEXCEL llamado Liquidaciones.xls, que acta como plantilla. En
dicha plantilla, tenemos un ttulo Listado de clientes activos y dos encabezados de columna: Razon
Social y Telfono, referentes a los datos de clientes.
La funcionalidad en este caso, consiste en que despus de grabar un objeto de tipo CLIENTE, se ejecute
el mtodo y llene la plantilla con la Razon Social y los Telefonos de los clientes, en la hoja llamada
FACTURACION.
Entonces en nuestra clase CLIENTE definimos un mtodo cuyo evento disparador ser AfterSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
Como podemos observar, el Data Source (MET)TraeClientes, tiene definidos en la solapa inferior Excel
los parmetros a los que hacemos referencia para nuestro ejemplo. Tambin se observa que existe otro
Data Source llamado (MET)FacturacionCliente cuyos parmetros no estn visibles, porque el mismo no
est seleccionado en la grilla. Este (MET)FacturacionCliente podra ejecutar una accin parecida a la de
nuestro ejemplo y tendra sus parmetros propios.
Uno de los errores ms comunes que suceden durante la ejecucin del mtodo es el de Permiso
Denegado, que sucede porque la aplicacin MSExcel se encuentra ejecutndose.
MSWORD
Permite abrir un archivo Word y cargarle el contenido con los datos que se le indiquen.
FlexABSCI: Manual de Configurador 264
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Figura 129: Mtodo Word
Source Filename: determina el nombre del archivo origen, con qu nombre se abrir el archivo
para trabajar.
Cuando se quiere ejecutar el mtodo sobre un archivo contenido en un atributo FileLink del objeto, la
consulta del Source Filename debe ser de la siguiente manera (ver Nota)
Donde Archivo.Doc corresponde a un atributo de tipo FileLink llamado Archivo, y que es el que
contiene al documento.
Si el nombre del atributo FileLink que contiene el documento fuera por ejemplo Informe, la consulta
debera ser de la siguiente manera
El campo Target Filename en este caso en que trabajamos con un FileLink, es igual que el Source
Filename.
Si el objeto tuviera ms de un atributo FileLink y se quisiera modificar varios de ellos, se debera hacer un
mtodo por cada uno de los atributos FileLink sobre los que quisiera actuar, indicando en el Source
Filename y en el Target Filename el nombre correspondiente.
Nota: Existe una regla de nomenclatura con la cual el FileLink es bajado al temporal desde el FileServer y
luego vuelto a subir.
Si el mtodo se quisiera ejecutar sobre un archivo que no est dentro de un atributo FileLink, debe
indicarse de la siguiente manera:
El mtodo tomar el archivo Liquidaciones.doc en la ruta por defecto de la carpeta temporal de trabajo
(.../Appliware/FlexAB/temp/Liquidaciones.doc), lo usar como plantilla, y crear un archivo llamado
Vacantes.doc donde estar el resultado de la aplicacin del mtodo. Siempre el directorio de trabajo ser
el de la carpeta temporal.
Target Filename: determina el nombre del archivo destino, con qu nombre ser guardado el
archivo.
Edit file after finish: abre el archivo despus de la ejecucin del mtodo
Nota: Cuando configuramos un evento Revision y trabajamos sobre un atributo FileLink, el checkbox de
Edit File Alter Finish, debe estar destildado. De lo contrario se abre el archivo en pleno proceso y se
produce un error en el revisionado.
Por ejemplo:
-(MET)TraeRevisiones
Cada una de estas consultas asociadas, tendr sus propias etiquetas en el panel inferior Word a las que
llenar con datos.
Fql Field: la consulta SQL puede devolver n nmero de columnas. En este campo se especifica cual
de las columnas del FQL es la que va a copiar en la marca incorporada en el Word.
Text: marca o etiqueta incorporada en el archivo de Word, en donde se copiar el valor obtenido de
la consulta SQL. Esta marca, es la que ser reemplazada con el texto que devuelva la consulta en la
columna indicada en Fql Field.
Como vemos en la imagen, tenemos etiquetas como #A@ y #500@.
Las etiquetas que contienen una letra (#A@) se utilizan cuando un campo de la consulta devuelve varios
registros distintos. Luego en el archivo donde se cargan las etiquetas, se numera cada etiqueta indicando
con cual de los registros devueltos quiere ser reemplazada. Por ejemplo para una determinada consulta
que trae datos de clientes, la etiqueta #A@ contendr los nombres de clientes, por lo tanto #A1@
contendr el nombre del primer cliente que trae la consulta, #A2@ contendr el nombre del segundo, y as
sucesivamente. (Ver Ejemplo 1)
Las etiquetas que contienen un nmero se utilizan cuando el valor es nico #500@, o sea cuando en el
conjunto de valores que devuelve la consulta, el valor del campo indicado no cambia. (Ver Ejemplo 1)
List: nmero mximo de registros que utilizar del resultado de la consulta. Por ejemplo en la fila 1,
solo leer 3 registros y en la fila 8 solo leer 1.
Al documento debemos pensarlo como dividido en dos partes. Una parte ser la que utilicen los usuarios
para trabajar en el documento, o sea, la parte editable del documento. La otra parte ser la que se
cargue dinmicamente por los datos que retorne el mtodo aplicado. Tambin puede darse el caso de un
documento que sea puramente dinmico, donde al ejecutarse un mtodo se complete el documento entero
con datos trados desde la base de datos.
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo WORD.
El caso prctico es que al momento de efectuar una Revision, el archivo de Word contenido en el atributo
ARCHIVO de tipo FileLink del objeto DOCUMENTO, complete su cartula con datos trados desde la base
de datos, referidos a las revisiones anteriores y dems datos formales correspondientes al tipo de
documento.
En el caso presentado, se presume una clase de tipo DOCUMENTO. Dicha clase tiene un atributo de tipo
FileLink llamado ARCHIVO.
El resultado que obtendremos, ser que en el objeto revisionado, el archivo de Word contenido en el
FileLink del objeto, tendr su cartula completa con datos trados desde la base de datos.
Entonces en nuestra clase DOCUMENTO definimos un mtodo cuyo evento disparador ser Revision (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
SELECT (classDOCUMENTO.Descripcion) AS A,
(classDOCUMENTO.DescripcionLarga) as B,
(convert(varchar(10),OBJECTver.DateMake,103)) AS C,
FlexABSCI: Manual de Configurador 269
v62 207-SCI-SP (Configuracion).pdf
OBJECTver.Description AS D,
(select username from sysuser where iduser in(OBJECTver.ApprovedBy))AS F,
(select username from sysuser where iduser in(OBJECTver.ExecutedBy)) AS G,
(select username from sysuser where iduser in(OBJECTver.CheckedBy ))AS H,
(classDOCUMENTO.tag) as M,
OBJECTver.Version AS Z
FROM OBJECTver
INNER JOIN classDOCUMENTO ON OBJECTver.idInternal = classDOCUMENTO.idInternal
WHERE
classDOCUMENTO.idInternal = 'XQL:FIRST(//OBJECT/ATTRIBUTES/IDINTERNAL/VALUE)'
Los campos Source Filename y Target Filename, al trabajar con un archivo contenido en un atributo
FileLink, son iguales. La consulta es de la siguiente manera
El archivo de Word debe tener definidos los campos que trabajarn con el mtodo asociado (parte dinmica
del documento). Estos campos se definen por medio de etiquetas que luego sern reemplazadas.
La imagen a continuacin, muestra la cartula del archivo de Word, con las etiquetas correspondientes.
Vemos que existe una etiqueta que contiene un nmero (#500@). Esa etiqueta es la que contendr el
cdigo del documento. Debido a que dicho cdigo es uno solo, se utiliza la etiqueta numrica.
A continuacin se muestra como quedara la cartula con los datos reemplazando a las etiquetas
Una de las ventajas de trabajar de esta manera, radica en que definiendo modelos de documentos, la
presentacin de los mismos ser siempre uniforme y de acuerdo a los estndares definidos para el tipo de
documentacin. El usuario se olvida de todo este trabajo de suma precisin que insume a veces
demasiado tiempo, y solamente se concentra en la redaccin pertinente al contenido del mismo dejando de
lado la presentacin formal.
MSPROJECT
Permite abrir un archivo Project y cargarle el contenido indicado en la consulta FQL.
Data Source: consulta FQL que ser la que obtenga los datos para volcar al archivo de MsProject.
En el panel inferior, se indican los campos que son obligatorios para la consulta FQL a realizar.
Ellos son : Name, Duration, Start, Completed, Predecessors, Resource Names y Group. (Ver
Editor FQL)
Source Filename: determina el nombre del archivo origen, con qu nombre se abrir el archivo
para trabajar. (Ver Source Filename en Metodos Word)
Target Filename: determina el nombre del archivo destino, con qu nombre ser guardado el
archivo.
Edit file after finish: abre el archivo despus de la ejecucin del mtodo
El caso prctico es crear un evento de tipo USERevent llamado BaseCalendario, que ejecutar el
mtodo en el momento en que el usuario lo desee. Dicho mtodo completar un archivo llamado
BaseCalendario.mpp con la lista de TAREAS correspondientes a una determinada versin del trabajo que
se est realizando.
En el caso presentado, se presume una clase de tipo VERSION y una clase de tipo TAREAS.
Entonces en nuestra clase VERSION definimos un mtodo cuyo evento disparador ser USERevent y se
llamar BaseCalendario (Ver Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
La consulta FQL que contiene el campo Data Source (Metodo) Base Calendario podra ser de la siguiente
manera
En esta consulta, se agrupa por el ltimo campo de la proyeccin (subtematarea), por lo cual se debe
hacer un ORDER BY del mismo.
Los campos Source Filename y Target Filename, trabajarn los dos con el mismo archivo y la consulta es la
sguiente
SELECT 'BaseCalendario.mpp'
Por lo que se indica que se tomar el archivo llamado BaseCalendario.mpp que se encuentra en el
directorio temporal del sistema (\Appliware\FlexAB\temp).
FlexABSCI: Manual de Configurador 275
v62 207-SCI-SP (Configuracion).pdf
Por utilizarse un evento de tipo USERevent, el usuario desde la Interfaz Estndar de Usuario (FlexAB-SUI)
ser el que dispare el mtodo, posicionndose sobre la versin indicada, haciendo clic con botn derecho
sobre la misma, y eligiendo el USERevent que corresponda.
Los siguientes son los campos necesarios que deben formar parte de nuestra consulta FQL.
eName: nombre del email. Se enviar un email por cada eName. Esto significa que si la consulta FQL,
contiene varios registros con sus respectivos destinatarios (eTO,eCC,eCCo), el email ser enviado a todos
ellos mientras que en el campo eName del registro, tengan el mismo valor. Ms abajo como ejemplo se
detalla el envo de un email a los integrantes de un grupo de usuarios. (Ver Envo de eMails a un Grupo de
Usuarios)
eTO: direccin de email del destinatario. En caso de haber varios eTO repetidos para un mismo email,
sern unificados en uno solo.
eCC: Copia del email. Direccin de email del destinatario que recibir la copia. En caso de haber varios
eCC repetidos para un mismo email, sern unificados en uno solo.
eCCo: Copia oculta. Direccin de email del destinatario que recibir la copia oculta. En caso de haber
varios eCC repetidos para un mismo email, sern unificados en uno solo.
eSubject: Asunto del mail. En caso de haber un eName que tenga varios eSubject, sern unificados los
Subject en un solo email.
eBody: cuerpo del email
eAttachs: archivos adjuntos al email. Si son varios, separados por coma.
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Email.
El caso prctico es querer enviar un mail a los clientes con las promociones de productos.
En el caso presentado, se presume una clase de tipo PROMOCION, una clase de tipo OFERTA (hija de
PROMOCION) y una clase de tipo CLIENTE.
La clase OFERTA corresponde a los productos que integran una promocin dada.
El resultado que obtendremos, ser el envo de un mail con las promociones de productos del mes para
todos los clientes.
Entonces en nuestra clase PROMOCION definimos un mtodo cuyo evento disparador ser AfterSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data Source, haciendo clic en el botn SQL accederemos al Editor FQL, donde crearemos la
consulta FQL asociada al mtodo, que nos devolver los valores que necesitamos para el email.
Como podemos observar, el campo eAttachs, contiene (comillas simples), con lo cual indicamos que est
vaco, porque no se envan archivos adjuntos.
Cambiando solamente en nuestra consulta el eName y el eTO, desde nuestro sistema podemos enviar
mensajes de correo a telfonos celulares. En determinados casos podra el usuario recibir como SMS dicho
mensaje de correo, pero pura y exclusivamente por una implementacin de la empresa de telefona que
presta el servicio.
Ejemplo
De esta manera estaramos enviando un correo electrnico que sera derivado por el proveedor de servicios
de telefona, al telfono indicado.
Nota: esta funcionalidad depende de la prestacin brindada por su compaa de telefona mvil, la cual
debe implementar el servicio de Mail to SMS.
En este ejemplo, se enviar un mail a varios destinatarios. El caso de ejemplo ilustra como el rea de
Atencin al Cliente de Appliware, informa al grupo de usuarios encargados de la planificacin del producto
(Program Management)de FlexAB, acerca de una nueva sugerencia tcnica para la prxima version,
proveniente desde un cliente.
Con esta informacin, el rea de Atencin al Cliente, d de alta un objeto INCIDENTE. El objeto queda en
estado NUEVO, y luego al ser derivado pasa al estado PLANIFICACION.
Nota: Este mtodo est definido en el estado PLANIFICACION de la clase INCIDENTE. Se ejecuta en el
evento AFTER SAVE.
Desarrollo
1) Se realiza el FQL con los campos obligatorios
2) 'Sugerencia para nueva Version' es el contenido del campo eName, por lo tanto, todos las direcciones de
correo (eTO,eCC,eCCo) de los registros que tengan ese eName, sern destinatarias del email.
3) En este caso, la consulta FQL devuelve 3 registros, correspondientes a los 3 usuarios pertenecientes al
grupo de usuarios Program Management
Campo eTO, direcciones de correo donde ser enviado el email. En este ejemplo, no se envan copias
ni copias ocultas, ya que ambos campos estn vacos en la consulta FQL ().
Los usuarios del grupo Program Management, reciben entonces el email con la nueva sugerencia.
Data: consulta FQL que ser la que obtenga los datos para volcar al reporte.
Target Filename: FQL que contiene ruta y nombre del archivo destino del reporte.
Esta sentencia colocara el reporte en el directorio C:\Reportes, y el nombre del mismo estara
compuesto por el nmero de aplicacin + el idObject del objeto + Archivo.PDF . (Ver Source Filename en
Mtodos Word)
Algo as como
STYLE: formato de salida que tendr el reporte. Si se quisiera que directamente se imprima, se debe
seleccionar la opcin Printer.
Report Name: nombre del reporte original, que se crea desde el Editor de Reportes.
EJEMPLO 1:
En este ejemplo definiremos un mtodo de tipo Report.
El caso prctico es querer que cada vez que se grabe un objeto de tipo Envo que tiene un atributo
FileDown, crear un reporte con la lista de archivos que se obtuvieron en ese FileDown.
Esto sera prctico para llevar un control de los archivos que son bajados del servidor.
El resultado que obtendremos, ser un reporte con la lista de archivos que se obtuvieron del servidor,
cuando el objeto se grabe.
Entonces en nuestra clase ENVIOS definimos un mtodo cuyo evento disparador ser BeforeSave (Ver
Solapa Flow Agregar un Mtodo a un Estado), en las siguientes condiciones
En Data ingresamos la consulta que llenar los datos del reporte, y que en este caso consiste en la lista de
archivos bajados con el atributo FileDown.
En Target Filename , se debe ingresar la ruta y nombre del reporte, tal cual se describe ms arriba. En el
caso de
En Style definimos que formato de archivo queremos obtener, en este caso PDF.
En Report Name, creamos el reporte desde el Editor de Reportes.(Ver Editor de Clases, Solapa Report)
INTERPHASE
Este mtodo permite la ejecucin de Insert, Update, Delete. Puede modificar bases de datos externas al
sistema con datos provenientes de FlexAB. Se puede utilizar como interfase con otros sistemas.
Mtodo Filelink_Down
SQL Source: FQL que contiene los datos necesarios para la identificacin del archivo a bajar, y del
destino de guardado del mismo.
Ejemplo 1
Se crea un mtodo Filelink_Down, llamado BajarDoc para descargar un archivo contenido en el atributo
Filelink llamado PlantillaFactura de la clase DOCVENTA. Dicho mtodo se ejecutar en el evento
BeforeSave, o sea, antes de grabar el objeto.
Desde la solapa Flow de la clase DOCVENTA, creamos entonces el mtodo
Clic para acceder al editor de FQL donde se deber ingresar la siguiente consulta
1) SELECT idInternal as IdInternal: idinternal del objeto que posee el archivo a descargar
2) PlantillaFactura as IdAttribute: nombre del atributo Filelink, que posee el archivo. En este
caso el atributo se llama PlantillaFactura
3) as Version: como en este caso no es una revision el objeto que contiene el archivo , se deja
en blanco
4) VAR:TEMPDIR + Descargado as Filename: Ruta de descarga y nombre que tomar el
archivo. VAR:TEMPDIR indica el directorio temporal del universo, y Descargado es el nombre
que tendr el archivo.
5) FROM classDOCVENTA: el objeto contenedor pertenece a la clase DOCVENTA
6) WHERE idInternal ='XQL:FIRST(//IDOBJECT/ATTRIBUTES/IDINTERNAL/VALUE)': el
idinternal del objeto, debe ser igual al del objeto en edicin
Nota: Cuando se trabaja desde una clase de tipo Mdulo, los Mtodos, FQLs y Reportes, al estar en
edicin y ejecutar el comando Guardar, quedan almacenados definitivamente.
Ejemplo: si se est realizando un Reporte dentro de un mtodo y se guarda, el Reporte queda almacenado
aunque se cancele la edicin del mtodo.
Cuando se trabaja desde el Editor de Clases, esto es diferente. Los cambios quedan almacenados
definitivamente al Generar la clase. El Editor de Help trabaja nicamente en este ltimo modo.
Para ingresar una ayuda, hacemos clic sobre el botn New Help
Agregar Section
Titulo
Content Section
La ayuda ingresada de esta forma, es la que se visualizar desde la interfaz del usuario (FlexAB-SUI),
cuando se invoque la ayuda por REFERENCIA.
El usuario visualizar la ayuda en el lenguaje que tenga el propio usuario configurado. Si no existe ayuda
cargada en ese lenguaje, no ver ayuda.
Para obtener la ayuda de una clase, desde FlexAB-SUI, debemos posicionarnos en el rbol de objetos,
sobre el objeto del cual se desea la ayuda.
El ejemplo a continuacin, muestra un sector de la pantalla Help System que se visualiza cuando se invoca
la ayuda de una clase, con los Title y Content Sections bien detallados para una clara comprensin de
cmo vera el usuario final lo ingresado en el Editor de Help.
Title
Content Section
Tambin es posible cargar un contenido de ayuda ya existente. Para eso hacemos clic sobre el botn
Search , y se despliega una grilla con los helps que se encuentran ya cargados.
Helps existentes
Haciendo clic sobre una de estas filas de ayuda, y tildando el lenguaje en el que est la ayuda (puede estar
cargada para uno, o en varios lenguajes) desde el men Language, aparecen en el panel Sections (grilla
de la derecha), en las columnas Title y Content Section, los tems cargados en cada sector de la ayuda
correspondiente. Si no tiene ayuda cargada para el lenguaje elegido, no se carga la grilla de Sections
Seleccionar ayuda
Seleccionar idioma
Items correspondientes
Haciendo clic sobre una fila del panel Sections, se pone el contenido del tem cargado, en los paneles de
edicin (Title y Content), donde se los puede modificar.
En el men Variables, se despliega una lista de Variables del Sistema (no confundir con variables de
entorno. Ver Utilizacin de XQL en las consultas SQL de FlexAB) , que se pueden intercalar con el texto de
la ayuda. Los textos de las mismas, son reemplazados luego por el sistema, que pone en su lugar
diferentes contenidos html segn la variable elegida.
En el ejemplo, la variable de sistema %FIELDLIST%, ser reemplazada por el sistema, que pondr en su
lugar la lista de campos de la clase, porque ese es el significado de la variable. Eso es lo que ver el
usuario al invocar la ayuda
El HTML Editor es una herramienta que permite realizar modificaciones a los formularios de las clases.
Esta herramienta presenta dos modos de trabajo: una solapa con una parte de diseo grfica, con las
opciones de formateo ms comunes de los editores estndar, y una solapa que contiene el cdigo HTML
del formulario.
Es posible para cada clase particular, definir tambien una plantilla de estilos propia, y hacer que la tome
como predeterminada.
La vista Source (del cdigo HTML) es de mucha utilidad para aquellas personas que tengan conocimiento
del lenguaje HTML, y directamente desde el cdigo realicen modificaciones o una depuracin del mismo.
Presionar botn de Bordes Visibles para poder ver las tablas, columnas, filas y celdas.
I N S E R T AR UNA COLUM NA
FlexABSCI: Manual de Configurador 301
v62 207-SCI-SP (Configuracion).pdf
Se debe situar sobre la columna de la derecha a la nueva columna que se desea insertar. Presionar botn
de Insertar Columna
Tener en cuenta que cuando hay celdas combinadas, ingresar la nueva columna a la izquierda de donde
termina la combinacin de las celdas.
Para eliminar una columna, situarse dentro de alguna celda de la columna y presionar el botn Eliminar
Columna
Para eliminar una fila, situarse con el cursor sobre la fila a eliminar y presionar botn Eliminar Fila
I N S E R T AR UNA CELD A
Situarse con el cursor en la celda que se encuentra a la izquierda de la celda que queremos agregar.
Presionar botn Agregar Celda
Para borrar una celda, situarse dentro de la celda y presionar botn Eliminar Celda
C OMBINAR C ELDAS
Para combinar celdas es necesario que cada celda tenga contenido.
En el ejemplo siguiente, queremos lograr que el texto Object Attributes se combine en las dos celdas y
sea el ttulo de la tabla.
Seleccionamos las celdas que queremos combinar, y se habilita el botn Combinar Celdas.
Celda combinada
Para separar las celdas, seleccionar el contenido y presionar botn Separar Celdas
I N S E R T AR U N A I M AG E N
FlexABSCI: Manual de Configurador 306
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Para insertar una imagen, debemos situarnos en la celda donde queremos poner la imagen y presionar
botn Insertar Imagen
Seleccionar la imagen
Como se explic anteriormente, estas opciones de configuracin tambin pueden ser accedidas y
modificadas desde el cdigo en la solapa Source, para aquellas personas familiarizadas con el lenguaje
HTML.
Controles deshabilitados
Luego de esto, debemos ingresar nuevamente al hipervnculo, y encontraremos ahora todos los controles
habilitados.
Elegir del combo Frame Target, la opcin NewWindow y presionar botn OK.
Controles habilitados
El hipervnculo ahora queda listo para ser utilizado desde la interfaz de usuario (FlexAB-SUI)
Cuando se est personalizando un formulario, y se desea cambiar de lugar un control de tipo fecha, se
debe tener en cuenta que este tipo de control se acompaa de un Script. Este Script debe moverse junto
con el control a la nueva ubicacin, porque de lo contrario el control no funcionar correctamente, ya que
se ocasiona un error en el cdigo Html.
Para poder visualizar la imagen que representa al Script, se debe presionar el botn Show Details como
se muestra a continuacin
Al ubicar el control Fecha en la nueva fila, cortamos y pegamos tambien la imagen del Script
Haciendo clic con botn derecho sobre la tabla, podemos ingresar a las propiedades de la misma, desde la
opcin Table Properties del men contextual.
El HTML (Hyper Text Markup Language) es un sistema para estructurar documentos. Estos documentos
pueden ser mostrados por los visores de pginas Web en Internet, como Netscape, Mosaic o Microsoft
Explorer. Por el momento no existe un estndar de HTML ya que tanto Netscape como Microsoft se
empean en incluir directivas que solo funcionan con sus respectivos navegadores. De cualquier manera
existen diferentes revisiones o niveles de estandarizacin, el 1.0, el 2.0 y el 3.0, lo que produce que
algunos visores no "comprendan" en su totalidad el contenido de un documento. En este manual se ha
utilizado la revisin 3.0 de HTML. Esto quiere decir que algunas de las rdenes de HTML que aqu se
indican puede que no sean reconocidas por algunos visores de pginas Web. Netscape 2.x y Microsoft
Explorer 3.x reconocen prcticamente todas las rdenes HTML vistas en este manual.
Bsicamente, el HTML consta de una serie de rdenes o directivas, que indican al visor que estemos
utilizando, la forma de representar los elementos (texto, grficos, etc...) que contenga el documento. En
este manual nos referiremos a estas rdenes con la palabra "directiva".
Las directivas de HTML pueden ser de dos tipos, cerradas o abiertas. Las directivas cerradas son aquellas
que tienen una palabra clave que indica el principio de la directiva y otra que indica el final. Entre la
directiva inicial y la final se pueden encontrar otras directivas. Las directivas abiertas constan de una sola
palabra clave. Para diferenciar las directivas del resto del texto del documento se encierran entre los
smbolos < y >. Las directivas cerradas incluyen el carcter / antes de la palabra clave para indicar el final
de la misma. Una directiva puede contener "parmetros". Estos parmetros se indican a continuacin de la
palabra clave de la directiva.
Ejemplos:
Directiva cerrada
<CENTER> Mi pgina Web </CENTER>
Directiva abierta
<HR>
Directiva con parmetros
<BODY bgcolor="#FFFFFF"> </BODY>
Los ficheros que contienen documentos HTML suelen tener la extensin .html o .htm. En este manual se
han fijado los siguientes criterios a la hora de escribir la sintaxis de las directivas de HTML:
1) Las directivas se indican en letra mayscula y en negrilla.
2) Los parmetros de las directivas se indican en letra minscula y negrilla.
3) El resto de elementos se indican en letra normal.
4) Las palabras a resaltar en el texto se indican en cursiva y negrilla.
El documento se hallar situado en algn ordenador al que se pueda acceder a travs de Internet. Para
indicar la situacin del documento en Internet se utiliza la URL (Uniform Resource Locator). La URL es el
camino que ha de seguir nuestro visor a travs de Internet para acceder a un determinado recurso, bien
sea una pgina Web, un fichero, un grupo de noticias, etc. Es decir, lo que el visor de pginas Web hace es
acceder a un fichero situado en un ordenador que est conectado a la red Internet. La estructura de una
URL para una pgina Web suele ser del tipo http://dominio/directorio/fichero. El dominio indica el nombre
del ordenador al que accedemos, el directorio es el nombre del directorio de ese ordenador y fichero el
nombre del fichero que contiene la pgina Web escrita en HTML. Por ejemplo:
http://www.server.com/cine/corunha2.html
Donde....
http:// es el indicador de pagina Web
www.server.com es el Dominio (nombre) del ordenador
/cine/ es el Directorio dentro del ordenador
corunha2.html es el Fichero que contiene la pgina Web
La directiva <BODY></BODY> indica el inicio y final de nuestra pagina Web. Ser entre el inicio y el final
de esta directiva donde pongamos los contenidos de nuestra pgina, textos, grficos, enlaces, etc. Esta
directiva tiene una serie de parmetros opcionales que nos permiten indicar la "apariencia" global del
documento:
background= "nombre de fichero grafico"
Indica el nombre de un fichero grfico que servir como "fondo" de nuestra pgina. Si la imagen no rellena
todo el fondo del documento, esta ser reproducida tantas veces como sea necesario.
bgcolor = "cdigo de color"
Indica un color para el fondo de nuestro documento. Se ignora si se ha usado el parmetro background.
text = "cdigo de color"
Indica un color para el texto que incluyamos en nuestro documento. Por defecto es negro.
link = "cdigo de color"
Indica el color de los textos que dan acceso a un Hiperenlace. Por defecto es azul.
vlink = "cdigo de color"
Indica el color de los textos que dan acceso a un Hiperenlace que ya hemos visitado con nuestro visor. Por
defecto es prpura.
El cdigo de color es un nmero compuesto por tres pares de cifras hexadecimales que indican la
proporcin de los colores "primarios", rojo, verde y azul. El cdigo de color se antecede del smbolo #.
Ejemplos:
#000000 Color Negro
#FF0000 Color Rojo
#00FF00 Color Verde
#0000FF Color Azul
#FFFFFF Color Blanco
El primer par de cifras indican la proporcin de color Rojo, el segundo par de cifras la proporcin de color
Verde y las dos ultimas la proporcin de color Azul. Cada par de cifras hexadecimales nos permiten un
rango de 0 a 255. Combinando las proporciones de cada color primario obtendremos diferentes colores.
De cualquier forma la mayora de los editores de HTML nos permiten obtener el cdigo de color
correspondiente escogiendo directamente el color de una paleta.
Todos los visores de pginas Web actuales soportan todos los caracteres grficos del la especificacin ISO
8859-1, que permiten escribir textos en la mayora de los pases occidentales.
De cualquier forma y como muchos sistemas tienen distintos juegos de caracteres ASCII, se han definido
dos formas de representar caracteres especiales usando solamente el cdigo ASCII de 7 bits. Para hacer
referencia a estos caracteres se les asigna un cdigo numrico o un nombre de "entidad". Asimismo hay
caracteres que se utilizan para las directivas de HTML, por ejemplo < y >. Estos caracteres pueden ser
representados por un cdigo numrico o una entidad cuando deseemos que aparezcan en el documento
"tal cual". Las entidades comienzan por el smbolo & (ampersand) y terminan con el smbolo ; (punto y
coma).
FlexABSCI: Manual de Configurador 319
v62 207-SCI-SP (Configuracion).pdf
A continuacin veamos una tabla con las principales entidades:
En HTML solo se reconoce un espacio entre palabra y palabra, el resto de los espacios sern ignorados por
el visor.
Ejemplo Se vera como
Esto es una frase Esto es una frase
Asimismo tampoco se respetan las tabulaciones, retornos de carro etc... Para ello existen una serie de
directivas que indican estos cdigos. La directiva <PRE></PRE> obliga al visor a visualizar el texto tal y
como ha sido escrito, respetando tabulaciones, espacios, retornos de carro, etc.
Ejemplo Se vera como
<PRE>
Este texto ha sido Este texto ha sido
preformateado . preformateado .
</PRE>
Para indicar un salto de lnea se utiliza la directiva <BR> y para un cambio de prrafo (deja una lnea en
blanco en medio) se utiliza la directiva <P>.
Ejemplo Se vera como
Este texto tiene
Este texto tiene<BR>saltos de lnea y <P> de prrafo. saltos de lnea y
de prrafo.
La directiva <P> puede usarse tambin como directiva "cerrada" <P></P> indicando de esta manera los
atributos de un prrafo en concreto. Cuando se usa de esta manera tiene el parmetro align que indica al
visor la forma de "justificar" el prrafo. Los valores posibles de este parmetro son LEFT, RIGHT y CENTER,
estando aun en estudio el valor JUSTIFY.
Ejemplo Se vera como
<P Align=right>Este es un ejemplo de un prrafo de texto Este es un ejemplo de prrafo de texto
justificado a la derecha.</P> justificado a la derecha
<P Align=center>Este es un ejemplo de prrafo de texto Este es un ejemplo de prrafo de texto
centrado.</P> centrado
La directiva <HR> muestra una lnea horizontal de tamao determinable. Tiene los siguientes parmetros
opcionales:
FlexABSCI: Manual de Configurador 321
v62 207-SCI-SP (Configuracion).pdf
align = posicin
Alinea la lnea a la izquierda (left), a la derecha (right) o la centra (center).
noshade
No muestra sombra, evitando el efecto en tres dimensiones.
size = nmero
Indica el grosor de la lnea en pxeles.
width = num / %
Indica el ancho de la lnea en tanto por ciento en funcin del ancho de la ventana del visor. Tambin se
puede especificar un nmero que indicara el ancho de la lnea en pxeles.
Ejemplo:
<HR align= center size= 20 width= 50%>
La directiva <HR> sin ningn parmetro mostrara una lnea horizontal que ocupara todo el ancho de la
pgina. Estas lneas sencillas son las que ves en este manual para separar las diferentes secciones
Cabeceras
En un documento de HTML se pueden indicar seis tipos de cabeceras (tamaos de letra) por medio de las
directivas <H1><H2><H3><H4><H5> y <H6>. El texto que escribamos entre el inicio y el fin de la
directiva ser el afectado por las cabeceras. La cabecera <H1> ser la que muestre el texto en mayor
tamao.
Ejemplo Se vera como
<H1>Texto de Prueba</H1> Texto de prueba
<H2>Texto de Prueba</H2> Texto de Prueba
<H3>Texto de Prueba</H3> Texto de Prueba
<H4>Texto de Prueba</H4> Texto de Prueba
<H5>Texto de Prueba</H5> Texto de Prueba
<H6>Texto de Prueba</H6> Texto de Prueba
Los textos marcados como "cabeceras" provocan automticamente un retorno de carro sin necesidad de
incluir la directiva <BR>. Por ejemplo
Ejemplo Se vera como
Pagina de Jose
<H3>Pagina de Jose</H3>Esta es mi pagina personal.
Esta es mi pagina personal
Para indicar atributos del texto (negrilla, subrayado, etc...) tenemos varias directivas. Algunas de ellas no
son reconocidas por determinados visores de Internet, es por ello que segn el visor que est ud.
utilizando, ver el resultado correctamente o no.
Listas de elementos
Existen tres tipos de listas, numeradas, sin numerar y de definicin. Las listas numeradas representarn los
elementos de la lista numerando cada uno de ellos segn el lugar que ocupan en la lista. Para este tipo de
lista se utiliza la directiva <OL></OL>. Cada uno de los elementos de la lista ir precedido de la directiva
<LI>. La directiva <OL> puede llevar los siguientes parmetros:
start = num
Indica que nmero ser el primero de la lista. Si no se indica se entiende que empezar por el nmero 1.
type = tipo
Indica el tipo de numeracin utilizada. Si no se indica se entiende que ser una lista ordenada
numricamente.
Los tipos posibles son:
1 = Numricamente. (1, 2, 3, 4, etc.)
a = Letras minsculas. (a, b, c, d, etc.)
A = Letras maysculas. (A, B, C, D, etc.)
i = Nmeros romanos en minsculas. (i. ii, iii, iv, v, etc.)
I = Nmeros romanos en maysculas. (I, II, III, IV, V, etc.)
Ejemplo Resultado
<OL>
<LI>Espaa Espaa
<LI>Francia Francia
<LI>Italia Italia
<LI>Portugal Portugal
</OL>
<OL type = A >
<LI>Espaa Espaa
<LI>Francia Francia
<LI>Italia Italia
<LI>Portugal Portugal
</OL>
Las listas sin numerar representan los elementos de la lista con un "topo" o marca que antecede a cada
uno de ellos. Se utiliza la directiva <UL></UL> para delimitar la lista, y <LI> para indicar cada uno de los
elementos. La directiva <UL> puede contener el parmetro type que indica la forma del "topo" o marca
FlexABSCI: Manual de Configurador 323
v62 207-SCI-SP (Configuracion).pdf
que antecede a cada elemento de la lista. Los valores de type pueden ser disk, circle o square, con lo que
el topo o marca puede ser un disco, un crculo o un cuadrado.
Ejemplo Resultado
<UL type = disk >
<LI>Espaa Espaa
<LI>Francia Francia
<LI>Italia Italia
<LI>Portugal Portugal
</UL>
<UL type = square>
<LI>Espaa Espaa
<LI>Francia Francia
<LI>Italia Italia
<LI>Portugal Portugal
</UL>
Las listas de definicin muestran los elementos tipo Diccionario, o sea, trmino y definicin. Se utiliza para
ellas la directiva <DL></DL>. El elemento marcado como trmino se antecede de la directiva <DT>, el
marcado como definicin se antecede de la directiva <DD>.
Ejemplo Resultado
<DL>
<DT>WWW WWW
<DD>Abreviatura de World Wide Web Abreviatura de World Wide Web
<DT>FTP FTP
<DD>Abreviatura de File Transfer Protocol Abreviatura de File Transfer Protocol
<DT>IRC IRC
<DD>Abreviatura de Internet Relay Chat Abreviatura de Internet Relay Chat
</DL>
Existen otros dos tipos de listas menos comunes. Las listas de Men o Directorio se comportan igual que las
listas sin numerar. La lista de Men utiliza la directiva <MENU></MENU> y los elementos se anteceden de
<LI> El resultado es una lista sin numerar mas "compacta" es decir, con menos espacio interlineal entre los
elementos. La lista de Directorio utiliza la directiva <DIR></DIR> y los elementos se anteceden de <LI>.
Los elementos tienen un lmite de 20 caracteres.
Todas las listas se pueden "anidar", es decir incluir una lista dentro de otra, con lo que se consigue una
estructura tipo "ndice de materias".
Ejemplo Resultado
<UL type= disk>
<LI>Buscadores
<UL>
<LI>Yahoo Buscadores
<LI>Ole Yahoo
<LI>Lycos Ole
</UL> Lycos
<LI>Links Links
<UL> Microsoft
<LI>Microsoft IBM
<LI>IBM
</UL>
</UL>
Imgenes
Hasta el momento hemos visto como se puede escribir texto en una pagina Web, as como sus posibles
formatos. Para incluir una imagen en nuestra pgina Web utilizaremos la directiva <IMG>. Hay dos
FlexABSCI: Manual de Configurador 324
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
formatos de imgenes que todos los navegadores modernos reconocen. Son las imgenes GIF y JPG.
Cualquier otro tipo de fichero grfico o de imagen (BMP, PCX, CDR, etc...) no ser mostrado por el visor, a
no ser que disponga de un programa externo que permita su visualizacin.
La directiva <IMG> tiene varios parmetros:
src = "imagen"
Indica el nombre del fichero grfico a mostrar.
alt = "Texto"
Mostrar el texto indicado en el caso de que el navegador utilizado para ver la pgina no sea capaz de
visualizar la imagen.
lowsrc ="imagen"
Muestra una segunda imagen "superpuesta" sobre la primera una vez se carga la pgina. Este parmetro
no es reconocido por la totalidad de los navegadores ya que esta en estudio su aplicacin, as que en la
mayora de los casos ser ignorado mostrndose solo la primera imagen (src). En algunos navegadores
muestra la imagen indicada por lowsrc en primer lugar, y posteriormente muestra la imagen indicada por
src. Si las imgenes son iguales pero tienen distinta "resolucin" se conseguir un efecto tipo "Fade". Si las
imgenes son de distinto tamao la imagen indicada en src se redimensionara al tamao indicado por la
imagen indicada en lowsrc
align = TOP / MIDDLE / BOTTOM
Indica como se alinear el texto que siga a la imagen. TOP alinea el texto con la parte superior de la
imagen, MIDDLE con la parte central, y BOTTOM con la parte inferior.
border = tamao
Indica el tamao del "borde" de la imagen. A toda imagen se le asigna un borde que ser visible cuando la
imagen forme parte de un Hiperenlace.
height = tamao
Indica el alto de la imagen en puntos o en porcentaje. Se usa para variar el tamao de la imagen original.
width = tamao
Indica el ancho de la imagen en puntos o en porcentaje. Se usa para variar el tamao de la imagen
original.
hspace = margen
Indica el nmero de espacios horizontales, en puntos, que separarn la imagen del texto que la siga y la
anteceda.
vspace = margen
Indica el nmero de puntos verticales que separaran la imagen del texto que le siga y la anteceda.
ismap / usemap
Indica que la imagen es un MAPA. Veremos estos parmetros ms adelante en este manual.
Ejemplo Se vera como
<IMG src="caution.gif"
width=100 >
<IMG src="caution.gif"
align=TOP>Atencion !!!
Atencion !!!
<IMG src="caution.gif"
align=MIDDLE>Atencion !!!
Atencion !!!
<IMG src="caution.gif"
align=BOTTOM>Atencion !!!
Atencion !!!
Hiperlinks
La caracterstica principal de una pgina Web es que podemos incluir Hiperenlaces. Un Hiperenlace es un
elemento de la pgina que hace que el navegador acceda a otro recurso, otra pgina Web, un archivo, etc.
Para incluir un Hiperenlace se utiliza la directiva <A></A>. El texto o imagen que se encuentre dentro de
los lmites de esta directiva ser sensible, esto quiere decir que si pulsamos con el ratn sobre el, se
realzar la funcin de Hiperenlace indicada por la directiva <A></A>. Si el Hiperenlace est indicado por
un texto, este aparecer subrayado y en distinto color, si se trata de una imagen, esta aparecer con un
borde rodendola. Esta directiva tiene el parmetro href que indica el lugar a donde nos llevar el
Hiperenlace si lo pulsamos.
Ejemplo Se vera como
<A href = "http://www.microsoft.com/"> Pulse para ir a la pgina de Pulse para ir a la pgina de
Microsoft</A> Microsoft
Si situamos el ratn encima de la frase y pulsamos, el navegador acceder a la pgina Web indicada por el
parmetro href, es decir, acceder a la pgina situada en http://www.microsoft.com/
Lo mismo podramos hacer con un grfico.
Ejemplo Se vera como
Para buscar en Internet :
Para buscar en Internet :
<A href = "http://www.yahoo.com/" >
http://www.yahoo.com/
<IMG src = "yahoo.gif"></A>
Pulsando sobre la imagen se accedera a la pgina situada en http://www.yahoo.com/.
Un Hiperenlace tambin puede llevarnos a una zona de nuestra pgina. Para ello debemos marcar en
nuestra pgina las diferentes secciones en las que se divide. Lo haremos con el parmetro name.
Para la introduccin de las variables se utiliza la directiva <INPUT>. Esta directiva tiene el parmetro type
que indica el tipo de variable a introducir y name que indica el nombre que se le dar al campo. Cada tipo
de variable tiene sus propios parmetros.
type= text name = campo
Indica que el campo a introducir ser un texto. Sus parmetros son:
FlexABSCI: Manual de Configurador 326
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Maxlength = numero
Numero mximo de caracteres a introducir en el campo.
size = numero
Tamao en caracteres que se mostrar en pantalla.
value = "texto"
Valor inicial del campo. Normalmente ser " ", o sea, vaco.
type = password name = campo
Indica que el campo ser una palabra de paso. Mostrar asteriscos (*) en lugar de las letras escritas. Sus
parmetros opcionales son los mismos que para text.
type = checkbox name = campo
El campo se elegir marcando una casilla. Se permite marcar varias casillas. Los valores de las casillas
sern indicados por:
value = "valor"
checked
La casilla aparecer marcada por defecto.
type = radio name = campo
El campo se elegir marcando una casilla. Solo permite marcar una sola de las casillas. Los valores de las
casillas sern indicados por:
value = "valor"
type = image name = campo
El campo contendr el valor de las coordenadas del punto de la imagen pinchado. Debe indicarse la imagen
con el parmetro:
src = "fichero de imagen".
type = hidden name = campo
El usuario no puede modificar su valor, ya que el campo no es visible se manda siempre con el valor
indicado por el parmetro:
value = "valor"
type = submit
Representa un botn. Al pulsar este botn la informacin de todos los campos se enva al programa
indicado en <FORM>. Tiene el parmetro value = "texto" que indica el texto que aparecer en el botn.
type = reset
Representa un botn. Al pulsar este botn se borra el contenido de todos los campos. El parmetro value =
"texto" indica el texto que aparecer en el botn.
Campos de Seleccin
Este tipo de campos despliegan una lista de opciones, entre las que debemos escoger una o varias. Se
utiliza para ellos la directiva <SELECT> </SELECT> . Sus parmetros son:
name = campo
Nombre del campo
size = num
Numero de opciones visibles. Si se indica 1 se presenta como un men desplegable, se indica mas de uno
se presenta como una lista con barra de desplazamiento.
multiple
Permite seleccionar ms de un valor para el campo.
Las diferentes opciones de la lista se indican con la directiva <OPTION>. Esta directiva puede incluir el
parmetro selected para indicar cual es la opcin por defecto. En caso de que no se especifique, se tomara
por defecto la primera opcin de la lista.
reas de texto.
Representa un campo de texto de mltiples lneas. Normalmente se utiliza para que se incluyan en l
comentarios. La directiva usada es <TEXTAREA> </TEXTAREA>, y sus parmetros:
name = campo
Nombre del campo.
cols = num.
Numero de columnas de texto visibles.
rows = num.
Numero de filas de texto visibles.
wrap = VIRTUAL / PHYSICAL
IMPORTANTE: La opcin mailto: en el parmetro action de la directiva FORM solo funciona correctamente
con Netscape. En Microsoft Explorer esta opcin da como resultado un correo en blanco. Para enviar un
formulario por e-mail sin importar el visor utilizado se ha de utilizar un programa externo que realize este
proceso o bien un lenguaje dinmico que procese el correo del lado del servidor.
Sonidos de fondo
Nuestra pgina Web puede tener un sonido que se active al entrar en la pgina. Esta caracterstica de MS
Explorer utiliza la directiva <BGSOUND> y tiene los siguientes parmetros:
src = "fichero"
Indica el nombre del fichero que contiene el sonido (.wav, .mid).
loop = num / infinite
Indica el nmero de veces que se reproducir el sonido. Si se indica infinite, el sonido se reproducir de
forma continua hasta que abandonemos la pgina.
Un Script es un programa escrito en un lenguaje distinto al HTML que se puede incluir en una pgina Web
"tal cual". Para incluir estos programas en una pgina Web se utiliza la directiva <SCRIPT> </SCRIPT>.
Esta directiva tiene el parmetro language para indicar el lenguaje de programacin utilizado para el Script.
El cdigo del programa debe "ocultarse" con las directivas de comentario de HTML <!-- --> con el objeto
de que no sean mostradas por los visores que no reconocen la directiva <SCRIPT>. Los scripts ms usados
suelen estar escritos en lenguaje JAVA. Este lenguaje desarrollado por Sun Microsystems permite realizar
operaciones de animacin y multimedia en una pgina Web. Asimismo se podrn incluir con esta directiva
programas escritos en C++, Perl o Visual Basic.
Un Gif transparente es un grafico del tipo GIF 89a en el cual se define su color de fondo como
transparente. Con esto conseguimos el efecto de que el grfico se encuentre como "flotando" en nuestra
pgina. Para crear Gifs con el fondo transparente podemos utilizar un programa freeware llamado
GIFTRANS.EXE. Este programa permite cambiar uno de los colores del grfico a transparente. Para ello la
instruccin a teclear es:
giftrans -t codigo_de_color fichero_gif > nuevo_fichero
El cdigo de color que queremos que se transforme a transparente hay que darlo en formato #RRVVAA
que fue visto al principio de este manual. La instruccin:
giftrans -l fichero_gif
muestra una lista de los colores incluidos en el grfico con su cdigo de color correspondiente.
De cualquier forma, los programas grficos recientes, como CorelDraw 6 y LviewPro, permiten crear Gifs
con colores transparentes de una manera muy sencilla.
Se pueden poner todas las columnas de una tabla con el mismo ancho?
Si. El parmetro "width" se puede utilizar con la directiva <TD> indicando el valor del ancho de la columna
en puntos o en porcentaje. Si se indica el mismo valor para todas las columnas el ancho de estas ser
idntico independientemente del contenido de cada una de ellas. Ejemplo:
<TABLE>
<TD width=25%>Texto de la Primera columna
<TD width=25%>Texto de la Segunda columna
<TD width=25%>Texto de la Tercera columna
<TD width=25%>Texto de la Cuarta columna
</TABLE>
Cuando intento enviar un formulario por e-mail se presenta el programa de correo con una
pgina en blanco.
Esto se debe a que "Microsoft Explorer" no reconoce la opcin "action:mailto" en un formulario. Para que tu
formulario se enve a tu direccin de correo independientemente del visor de pginas Web utilizado, has de
usar un programa externo (CGI).
Las maneras en que se pueden realizar modificaciones son muchas y escapan a la intencin de este
documento, pero para enumerar 2 casos prcticos, mencionaremos que puede hacerse el cambio
directamente sobre el archivo oeGeneral.css dentro del tempPack.zip o bien puede crearse un nuevo
archivo con extensin .css, e incluirse dentro del tempPack.zip. Este archivo luego puede referenciarse Comentario [E16]: Esto con la
desde el formulario con el tag LINK, tal como se referencia el predeterminado con la lnea: nueva funcionalidad de Updates
debe cambiar. Una vez completo el
<LINK href=../oeGeneral.css rel=Stylesheet> requerimiento hay que actualizar
este texto.
Podramos fcilmente modificar o incluir una plantilla css adicional con el siguiente tag: Comentario [A17R16]: Para
<LINK href=../miPlantilla.css rel=Stylesheet> esto necesito orientacin sobre el
nuevo tema de updates que no s
bien como funciona. Cuando
Para completar el proceso deberamos introducir el archivo miPlantilla.css en el tempPack.zip puedas lo vemos
Comentario [E18]: Mismo
Ahora bien, pasemos a una breve explicacin de cmo puede armarse una plantilla CSS bsica, para comentario que antes, debe
modificar el contenido de un documento HTML como lo es un formulario de objetos de FlexAB. cambiar con el nuevo Update
Que es CSS?
Siglas de "Cascading Style Sheets" (Hojas de Estilo en Cascada), es una tecnologa desarrollada con el fin
de separar la presentacin de la estructura del HTML. Funciona aplicando reglas de estilo a los elementos
HTML, entre las que incluyen, tamao, color de fondo, color del texto, posicin de los elementos,
mrgenes, tipos de letra, etc... Quedando de esta manera toda lo que tiene que ver con la parte grfica de
la web, separada completamente de la estructura del HTML.
Este lenguaje desarrollado por la W3C, ha venido hacindose cada vez ms importante entre los
diseadores, gracias a la facilidad de uso y a los ptimos y flexibles resultados.
Aprender a conocer CSS nos dar como resultado un mejor flujo de trabajo, mayor organizacin de nuestro
cdigo, menos peso en las pginas, y ms flexibilidad a los cambios. Adems una vez familiarizados con sus
capacidades, nos daremos cuenta de que es ms fcil y rpido disear con CSS que de la manera antigua.
Bien, empecemos por el principio. Aqu intentar ensear como hacer documentos vlidos y que sean bien
interpretados por la mayora de los navegadores actuales. Lograremos esto conociendo los tres principales
elementos en el desarrollo de CSS:
Atributos
Valores
Selectores
Atributos
Son las palabras que usaremos para indicar cual estilo queremos modificar, por ejemplo, si queremos
cambiar el tipo de letra, usamos el atributo "font", si es el fondo, el atributo "background", etc.
FlexABSCI: Manual de Configurador 330
v01.01.65 Revisin N1 207-SCI-SP (Configuracion).pdf
Valores
Son para definir como vamos a modificar el atributo, o la propiedad que le daremos. Por ejemplo, si
queremos que un tipo de letra sea rojo, usamos el atributo "font" y el valor "red".
Selectores
Se usan para definir sobre que elementos HTML vamos a aplicar los estilos, si queremos definir un estilo
para toda la pgina, debemos usar el selector "body" que se refiere a la etiqueta <body> del documento
HTML.
La sintaxis:
Es muy simple, primero se coloca el selector, luego se abre una llave "{" y se empiezan a colocar los
atributos, seguidos de dos puntos ":" y luego el valor seguido de punto y coma ";", al final de todo se cierra
el estilo para el selector con el cierre de llave "}". Se pueden definir tantos atributos con sus respectivos
valores como se desee, separndolos con un espacio o un salto de lnea. En CSS se deben escribir los
atributos y valores con minusculas y los comentarios se encierran con "/*" para abrir y "*/" para cerrar,
como veremos en el siguiente ejemplo:
Este tipo de selector no requiere de aplicacin en el documento HTML, las etiquetas a las que se les defina
un estilo de esta forma automticamente heredarn los estilos.
En los selectores de clase, usamos el atributo "class" en las etiquetas HTML para darles el estilo. Ejemplo:
Ademas de esto, existen tres formas de aplicar estilos CSS a una pgina, la que recomiendo en primer
lugar, haciendo un archivo de texto plano guardado como archivo.css, separado del archivo HTML, y
vinculando la hoja HTML a l. Esto se hace colocando en la seccin head de la pgina:
sta forma es la ms recomendable porque as se puede vincular el archivo.css a todas las pginas del
sitio, es mucho ms liviano al ver la pgina y adems a la hora de modificar algo se hace solo una vez.
La segunda forma es aplicando los estilos directamente en la seccin <head> del documento HTML. Se
hace de la siguiente forma
<head>
<title>Pagina</title>
<style type="text/css">
<!--
body {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color:#333333;
}
-->
</style>
</head>
Es buena idea colocarlos de esta forma si son estilos exclusivos para la pgina a la que se le aplica.
Como puede verse en algunos casos, los atributos pueden ser compuestos, como el atributo "font-family" o
"background-color", puede llevar adicionalmente caractersticas ms especficas, que van separadas por un
guin "-" como vimos en los ejemplos. Los valores tambien pueden ser de diferentes tipos, en los de
medida, se pueden usar pixeles "px" centmetros "cm" o relativos como "em", en los colores se puede usar
la notacin hexadecimal (#FF3300) o directamente el nombre del color en ingls.
De esta forma podemos aplicar estilos a todos y cada uno de los elementos HTML que constituyen una
pgina web, y poco a poco ir separando el contenido de la presentacin, ademas de lograr en un
documento completamente vlido cosas que solo el poder de CSS puede lograr, como cambiar
completamente la apariencia de una pgina sin tocar el archivo HTML.
nicamente con el uso, se va uno acostumbrando a lo que se puede hacer con CSS, al principio, es
conveniente usarlo para tareas sencillas como dar formato a los textos, tablas etc, pero luego uno va
conociendo como trabaja y va aadiendo elementos a los archivos CSS.
El punto ideal ser cuando logremos separar completamente el diseo del contenido, dominando las
tcnicas de posicionamiento con CSS, y eliminando el uso de tablas para diagramar el contenido.
Cuando se aplican estilos de varias maneras sobre el mismo componente, el orden de prioridad es de
adentro hacia fuera, siendo aplicado el CSS ms cercano al componente. Es decir, se aplica la plantilla css
externa, pero si hay style aplicado al header del documento HTML, este se aplica por sobre la plantilla. Y si
adems un tag en particular con css aplicado inline, este se aplica por sobre el del header. Cuando los
estilos se cruzan porque el diseo es muy complejo, hay un modo de intentar forzar la aplicacin de
determinados valores CSS y es con la sentencia !important luego del valor del atributo css.
A qu le llamamos posicionamiento?
El trmino no refiere a los buscadores como Google o Yahoo, posicionamiento en CSS consiste en ubicar los
elementos HTML en la pgina, el "layout" o distribucin de la pgina. Basicamente esto se logra
ordenndole desde CSS a los elementos que tengan cierto tamao y posicin, adems de obtener una
buena organizacin del cdigo HTML o XHTML.
El posicionamiento con CSS nos permite control total sobre los elementos de la pgina, adems con
documentos muy livianos y completamente vlidos ante W3C.
Los Divs
Antes de comenzar con el CSS exponemos aqu la importancia de usar los divs, un div es bsicamente un
contenedor, en el podemos meter cualquier clase de contenido, con la gran ventaja de que los podemos
manipular a nuestro antojo con CSS, colocarlo en cualquier parte de la pgina, de cualquier tamao, de
cualquier color, con bordes o sin ellos, con imgenes de fondo o sin ellas, a diferencia de las tablas, los divs
no se dividen por dentro, pero podemos anidarlos y organizarlos casi como las tablas (en caso de ser
necesario).
Para lograr que el posicionamiento no se vuelva complicado, debemos tener en cuenta que la organizacin
en el cdigo HTML es muy importante, tener bien estructurados los elementos nos facilitar el trabajo con
CSS, con esto quiero decir que debemos contar con un cdigo semntico.
FlexABSCI: Manual de Configurador 333
v62 207-SCI-SP (Configuracion).pdf
Semntica
Proviene del griego "semantikos", que quiere decir "significado relevante", derivada de "sema", lo que
significaba "signo") Se dedica al estudio del significado de los signos lingsticos y de sus combinaciones,
desde un punto de vista sincrnico o diacrnico. (Definicin de wikipedia)
Esto significa que a la hora de hacer el cdigo HTML, est bien organizado jerrquicamente, o sea anidar
los divs segun importancia, agrupados segun seccin, utilizar las etiquetas h1, h2, h3, etc para los ttulos,
las etiquetas <ul> y <li> para las listas, las etiquetas <p> en los prrafos, ayuda a organizar mejor el
contenido, ademas de que estn ahi para eso. La mayora se ha olvidado del uso de estas etiquetas por
trabajar en entornos grficos para disear, o porque solo le dan importancia a lo que se ve. Otras ventajas
son que los buscadores entienden el cdigo, por ejemplo google sabe que <h1>Titulo</h1> es un ttulo y
le da la importancia necesaria, si alguien usa Lynx para navegar, o cualquier navegador de texto, podra ver
un contenido ordenado y lgico y es mucho ms fcil de mantener/modificar. Un ejemplo de una estructura
sencilla:
<body>
<div id="contenedor">
<div id="encabezado">
<h1>Titulo de la Pagina</h1>
</div>
<div id="menu">
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
<div id="contenido">
<h2>Subtitulo 1 </h2>
<p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur
turpis purus, fringilla at, tristique vitae, venenatis vel, arcu. Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus eget orci nec
risus posuere facilisis. Proin sit amet nisl. Curabitur lectus felis,
Figura 74: Un documento HTML sin estilo y su misma versin con estilo aplicado.
De aqu en adelante vamos con lo que nos interesa, lo primero que haremos ser centrar nuestro div
"contenedor" en la ventana del navegador, y darle un tamao especfico:
body {
font-family:Georgia, "Times New Roman", Times, serif;
font-size:12px;
color:#666666;
text-align:center; /*aqui mandamos a centrar todo el contenido*/
}
Y luego al div:
#contenedor {
width:600px; /*ancho total de la pagina*/
border:1px solid #333333; /*encadeno los 3 atributos claves del borde en
una sola linea, ahorrando codigo XD*/
background-color:#FFF8F0;
margin:10px auto; /*10px arriba y abajo, y auto a los lados, para los
navegadores nuevos es suficiente para centrar la pagina*/
text-align:left; /*aqui alineamos todo de nuevo a la izquierda, pero
dentro del contenedor*/
}
Bien, ya tenemos el div contenedor centrado en la pgina, ahora vamos con el "encabezado":
Aqu, veremos como funciona float. As como suena, float nos permite "flotar" elementos hacia la izquierda
o la derecha de la pgina, haciendo que los demas elementos fluyan alrededor
#encabezado {
margin:10px; /*para que no se pegue al borde*/
padding:10px; /*algo de relleno*/
width:224px; /*este ancho es para que cuadre con el texto*/
height:50px; /*idem*/
border:1px solid #333333; /*decoracion*/
background-color:#CC6600; /*more*/
float:left; /*lo flotamos a la izquierda*/
display:inline; /*(*)*/
}
#menu {
float:left;
margin:10px 10px auto 0;
border:1px solid #333333;
width:320px;
height:24px;
}
Y luego con la lista. Las listas traen varios pre-formatos desde HTML, como las vietas, margen, saltos de
lnea a cada item, padding, etc... Aqu vamos a cambiar completamente el aspecto de una lista, con sus
vnculos dentro.
ul {
list-style-type:none; /*con esto quitamos las vietas*/
margin:0; /*le quitamos el margen a la lista*/
padding:0; /*y el relleno*/
}
li {
margin:0; /*le quito el margen al elemento de la lista*/
Esto es suficiente para cambiar el aspecto de la lista, y los vnculos en el men. As podemos jugar con los
anchos y rellenos para lograr menes ms complejos, poniendole bordes, etc...
Ahora el contenido:
#contenido {
width:580px; /*el ancho mas el padding me da 600px de ancho que es loque
mide la pagina */
clear:both; /*con esto nos aseguramos de que no se ponga nada a los
lados*/
padding:10px;
}
#contenido h2 {
font-size:16px;
color:#CC3300;
width:246px;
#footer {
width:560px; /*menos porque debemos sumar el padding del div contenido*/
text-align:right;
padding:10px;
font-size:80%; /*mas pequeo el texto*/
font-style:italic;
color:#999999;
}
Los comentarios en el cdigo explican lo que hace cada uno de los atributos clave usados en el ejemplo.