Documentos de Académico
Documentos de Profesional
Documentos de Cultura
transacción
Ya hemos trabajado previamente con el pattern Work With. Hemos visto cómo aplicarlo y
cuáles son las funcionalidades que implementa.
Vamos a ver ahora algunos ejemplos que nos van a permitir conocer aún más las posibilidades
que nos ofrece.
Repasemos algunas de las transacciones que tenemos en nuestra aplicación Travel Agency:
La transacción Country para registrar los países con sus respectivas ciudades, y la transacción
Attraction para registrar las atracciones turísticas.
Hemos aplicado el pattern Work With a la transacción Country y se desea que en la pantalla
principal se muestre también la cantidad de atracciones turísticas para cada país.
Como ya sabemos, si estamos navegando países, para cada país entonces es posible disparar
una fórmula Count que cuente la cantidad de atracciones turísticas que tiene.
La pregunta que nos hacemos es la siguiente: ¿Dónde debemos declarar la fórmula para
obtener el resultado que deseamos?
Debemos editar la instancia del pattern Work With aplicado a la transacción Country y bajo el
1
Es importante destacar que no es posible asignarle directamente un tipo de datos, sino que es
necesario basar la definición de la variable en un dominio.
Finalmente en la propiedad Load Code, declaramos el código que le asignará valor a dicha
variable.
De esta forma, el pattern va a incluir en el evento Load del web panel WWCountry, la
asignación a la variable &Quantity de la fórmula Count que acabamos de definir aquí.
Presionemos F5..
Seleccionamos Work With Country, y vemos la nueva columna en el grid con la cantidad de
atracciones registradas para cada país.
Supongamos ahora que además de visualizar la cantidad de atracciones por país, queremos
también agregar una nueva columna que despliegue para cada país un texto u otro,
dependiendo de la cantidad de atracciones que tiene:
Dirá
Este código se agregará automáticamente en el evento Load del web panel WWCountry, por lo
que al presionar F5 se visualizará esta nueva columna con el texto correspondiente.
Seleccionamos Work With Country, y vemos para cada país el texto correspondiente.
Ahora queremos definir un botón en la pantalla WWCountry, que invoque a un listado pdf, o
sea a un objeto procedimiento previamente definido.
Es así que hemos diseñado el listado AttractionsPerCountry que nos va a permitir ver las
atracciones turísticas agrupadas por país.
Nuevamente volvemos a editar la instancia del pattern Work With aplicado a la transacción
Country, pero esta vez para definir una “acción” .
Posicionados en el nodo Selection, hacemos click con el botón derecho del mouse y
seleccionamos Add / Actions. De esta forma se crea el nodo Actions. Ahora nos posicionamos
sobre esta nuevo nodo, y otra vez hacemos click con el botón derecho del mouse y
seleccionamos Add / Action.
AttractionsPerCountry.
Una vez aplicado el pattern Work With a una transacción, se establece un “dinamismo”, o sea
una sincronización, entre la estructura de la transacción, la instancia del pattern aplicado y los
objetos generados.
Esto nos lleva a pensar entonces que automáticamente también se verá en ejecución.
Ahora bien.
¿Qué sucede si editamos manualmente los objetos generados por la aplicación del pattern?
O sea, qué sucede si por ejemplo abrimos el web panel WWCountry y editamos su form, le
agregamos algún control o modificamos algo?
Esto significa que las definiciones que luego se puedan hacer en la instancia del pattern, ya no
se aplicarán en la pantalla WWCountry y h abrá que definirlas en forma manual.
Vamos a editar el web panel WWCountry. Desde la Toolbox, por ejemplo arrastramos un
botón. Sabemos entonces que hemos perdido el dinamismo entre la instancia del pattern y
este objeto generado.
Para recuperarlo, teniendo abierto este web panel WWCountry, vamos al menú Edit y
selccionamos Apply Default / all parts.
Bien. Veamos ahora dónde se encuentran las definiciones generales que se aplican
automáticamente para cada patrón. Es decir, todas las inicializaciones que se configuran por
defecto para los mismos.
Es por esto que si volvemos a la instancia del pattern aplicado a la transacción Coauntry,
vemos que para algunas propiedades aparece el valor “Default”. Y esto significa que la
propiedad ha heredado el valor por defecto de la configuración general del patrón.
Concluimos entonces que es posible modificar localmente los valores de las propiedades para
una instancia en particular, o bien aquí a nivel general si deseamos modificar la inicialización
genérica.
Veamos un ejemplo…
Si en cambio quisiéramos configurar que para todos los Work With por defecto no se ofrezca la
posibilidad de realizar ingresos, la configuración debemos hacerla a nivel general desde aquí.
Y de esta forma todas las instancias ya se van a inicializar con la propiedad correspondiente al
modo Insert en el valor False.
Para finalizar, veremos cómo eliminar la aplicación del pattern Work With a una transacción.
Así que desde la ventana Folder View, y en este caso bajo la transacción, seleccionamos Work
With Country y presionamos Delete.
Esto provocará que automáticamente se eliminen todos los objetos generados por la
aplicación del pattern Work With, y además se desmarque la casiila “Apply this pattern on
Save”… la cual va a permitir que en el futuro se pueda volver a aplicar.
7
Page