Guía – Entendiendo los disparadores del sistema de

Guía – Entendiendo los disparadores del sistema de Validaciones B1.
En este documento entraremos en detalle de cómo funcionan los disparadores del Sistema de Validación de
B1.
Datos de prueba.
Para probar un evento lo mejor sería que hiciera un ejemplo usted mismo. La mejor manera es creando las
siguientes dos configuraciones.
Las dos configuraciones es donde cambiaremos el método de ejecución para probar los diferentes tipos de
disparos de eventos.
Un Overview
Si le echamos un vistazo al cliente de SAP Business Oe, en general podemos ver que es una interfaz que
recibe información vía el Mouse y el Teclado, podemos ver cada una de estas cosas como disparadores
potenciales de eventos.
El sistema de disparos se puede considerar como un filtro de ciertas acciones de usuario que nos servirán
para agregar funcionalidad adicional y al configurar el sistema de validación de B1 podemos tomar estos
cientos de eventos para las funcionalidades que necesitemos.
El tipo de forma, campo, columna, fila y Menu Uid.
La primera parte está relacionada con el formulario, campo, columna, fila y Menu Uid.
SAP Business One consiste en cientos de ventanas pero al introducir el formulario de la ventana en la que
trabajaremos ya tenemos un filtro principal.
El siguiente filtro que tenemos que indicar es el campo con el que trabajaremos. Si no lo proporcionamos,
cada uno de los campos y eventos de esa ventana disparará el evento.
NOTA: Solo algunos pocos eventos como el abrir o cerrar el formulario no deben de tener un campo, pero el 95% de todos los
eventos deben de tener la combinación de formulario y campo.
Si el campo con el que está trabajando está a nivel línea tiene que proporcionar la columna con la que estará
trabajando (de no ser así el disparador se ejecutará con cualquiera de las columnas).
El último y menos usado es de fila de documento. Esto puede ser utilizado para hacer el filtro aún más
específico, por ejemplo definir que se ejecutará con las primeras 10 partidas.
Alternativamente, si trabajamos con el evento del MenuClic, la columna y la fila serán ignorados y solamente
se ejecutará cuando hagamos clic en un menú específico (Menu Uid).
Ejemplos
Trigger
Resultado
Cualquier lugar en la ventana de Datos Maestros de
Socios de Negocios en la que hagamos clic disparará
el evento.
Ahora reducimos el evento al campo 7 (el campo de
nombre).
Modo Formulario.
Lo siguiente que podemos configurar es el modo del formulario.
Esto hace posible que puedas tener el disparador solamente cuando la ventana se encuentre en cierto modo.
Podemos elegir entre las 6 diferentes combinaciones.
Ejemplos
Disparador
Resultado
Disparamos en cualquiera de los modos.
Modo buscar:
Modo agregar:
Ahora cambiamos el tipo de formulario a Add
(Guardar) y vetemos que el evento deja de
ejecutarse estando en modo Buscar/OK/Actualizar,
solamente se ejecutará en modo Guardar.
Los diferentes eventos.
A partir de la versión 4.0.0.0 hay 19 tipos de eventos que podemos cachar.
Evento
Click
Descripción
Este evento se ejecuta antes de todos los demás eventos y básicamente funciona
cada vez que presiona el botón derecho del mouse (inclusive antes de que suelte
el botón y aunque no presione un campo que normalmente presiona, como por
ejemplo una etiqueta).
El evento del Clic es normalmente confundido con el evento “Item pressed” o
campo presionado.
Combobox Select
Este evento ocurre cuando la selección de un Combo es realizada. Este evento
solo se disparará con combos a nivel línea o cabecera de documento.
Double Click
El Doble clic es el mismo evento del clic pero solo cuando se ejecuta dos veces
consecutivas.
Considere que si ya tiene un evento de un solo clic, siempre detendrá la acción y
jamás se disparará el evento del doble clic.
Form Load
Form Load siempre ocurre cuando se abre una ventana y no se ejecutará
nuevamente cuando estemos trabajando en ella.
NOTA: Este evento solo necesita el FormType o formulario, no requiere
configuración de un objeto o campo.
TIP: Esto es más usado con Funciones Universales de tipo creación de contenido.
Form Closing
Form Closing ocurre justo antes de que la ventana sea cerrada, si comparamos
con Form-Closed este evento ocurre una vez que la ventana se cerró (este es útil
si desea prevenir que la ventana sea cerrada).
NOTA: Este evento solo necesita el FormType o formulario, no requiere
configuración de un objeto o campo.
Form
Closed
(form Form unload es el equivalente a la aperture del formulario pero solo ocurre
unload)
cuando la ventana es cerrada.
Este evento es raramente usado.
Got Focus
Este evento ocurre cuando un campo de texto tiene el foco (cuando el cursor
parpadea en el o es cambiado a color amarillo).
Lost Focus
Este evento se ejecuta cuando se abandona un campo. Es muy similar al evento
validate, pero la diferencia es que el Lost Focus se ejecuta una vez que ya se dejó
el campo (el Validate se ejecuta antes de dejarlo).
Item Pressed
Este es uno e los eventos mayormente usado. Este evento se ejecuta cuando
presionamos Botones, Pestañas, Casillas de selección o Botones de ligas (flechas
naranjas).
Key Down
Este evento se ejecuta cuando una tecla es presionada, el modificador es para
incluir una combinación, como puede ser con ALT, CTRL o SHIFT.
Validate
Este evento es usado normalmente cuando se trata de abandonar un campo
(usado normalmente para validar la información introducida en el mismo).
Menu Clic
Este evento se ejecuta cuando un objeto del menú es presionado. Los tipos de
menú son desde la barra de menú, menú principal, Menú superior o menú de clic
derecho.
NOTA: Este evento se disparará aun cuando se utilice el atajo de CTRL+F.
NOTA: No es posible usar un evento de MenuClic si no se introduce un valor en el
MenuUid.
Data load
Este evento es similar a FormLoad pero solo se ejecuta cuando son mostrados
datos en la ventana. Por ejemplo si abre la ventana de Orden de Venta el evento
FormLoad se ejecutará, pero si abre una Orden de Venta existente entonces el
DataLoad event se disparará.
Data Add
Similar al evento DataLoad pero sólo cuando guarda información en el formulario
Colum link pressed
seleccionado (cuando presiona el botón Crear y los datos son guardados).
Similar a Data Add pero cuando actualizamos información.
Similar a Data Add y Data update pero solamente se ejecuta cuando se elimina
información (de la base de datos, no precisamente en modo buscar).
Ocurre cuando se presiona una flecha naranja a nivel línea.
Column Picker Pressed
Ocurre cuando se presiona un ícono dentro de una celda.
Data Update
Data Delete
Cuando
B1UP
terminado la cargar
ha Como el nombre lo indica, este evento se ejecuta una vez que B1 usability
Package se ha terminado de cargar totalmente. Esto es útil si desea ejecutar una
ventana al iniciar.
Hay muchas combinaciones aquí, se recomienda probarlas en un ambiente de prueba para revisar su
comportamiento y funcionamiento.
BeforeAction, ActionSucess, ItemChanged e Inner Event.
Estas son 4 opciones avanzadas que pueden ser configuradas como Verdad, Ignorar y Falso.
Opción
BeforeAction+ActionSuccess
ItemChanged
InnerEvent
Ejemplos.
Descripción
Esta opción en conjunto con las propiedades de ActionSuccess le
permiten determinar cuándo se disparará el evento comparado con la
forma en la que SAP Business One reacciona al mismo.
La mejor forma de describirlo es el ejemplo que se mencionará a
continuación.
Esto determina si solo desea que reaccione si el campo del evento ha
cambiado.
Los eventos de usuario son casos muy raros. Estos son llamados
InnerEvents. Esto a veces puede terminar en un Loop interminable. Esto
es mejor dejarlo con el valor Ignorar pero en casos muy raros tal vez
deberá cambiarlos.
NOTA: Por favor note que para estos eventos se necesita cambiar la función universal de prueba.
La propiedad de bloquear evento está ahora Activada (requerida para el ejemplo BeforeAction).
Ejemplo
Resultado
Aquí disparamos e evento cuando damos clic en el botón
Crear de la ventana de socios de negocios.
Si damos clic en el botón podemos observar que el evento
ocurre antes de que el socio de negocios sea guardado, por
lo cual bloqueamos el evento de SAP para que no ocurra.
Ahora probemos configurando el BeforeAction en Ignorar y
el ActionSuccess en verdad.
Ahora si presionamos el botón vea que el evento se ejecuta
una vez que el socio de negocios se ha guardado
(posteriormente a que el evento de SAP Business One se
ejecute).
Ahora probemos algo diferente. Vamos al disparar el evento
al cambiar el nombre del cliente (recuerde cambiar el
BeforeAction a Falso o será bloqueado y no podrá
abandonar el campo).
Si nos vamos al campo de nombre del cliente, introducimos
un valor y nos salimos obtendremos el evento.
Ahora si nos vamos nuevamente al campo y nos salimos sin
hacer cambio alguno obtendremos el mismo evento.
Ahora cambiamos el campo ItemChange a Verdad y con ello
cambiara el comportamiento.
Ahora ingresemos al campo sin realizar cambios, el evento
no se disparará.
Solo si ingresamos y realizamos cambios es cuando
obtendremos el evento.
Tecla pulsada y Modificado.
La parte final del Trigger es cuando una Tecla es pulsada y el Modificado. Estos solo son usados cuando una
tecla es presionada (si no son ignorados).
Básicamente lo que tiene que hacer es introducir el valor ASCII de la tecla que disparará este evento.
NOTA: Tome en cuenta que SAP usa muchos atajos de teclas, para que los add-ons no interfieran con ellos valide la tecla que utilizará.
Tabla de caracteres a presionar.
Ejemplos
Trigger
Resultado
El presionar el carácter 36 equivale al botón de Inicio y
el campo 5 es el Código de SN, así que si se posiciona en
ese campo y presiona la tecla de inicio se disparará el
evento.
Ahora, si cambiamos nuestro Trigger a que use el
modificador CTRL, el evento solo se ejecutará si
presionamos la tecla CTRL + Inicio.