Crear Validaciones de Grillas con Reglas
De
<keywords content="keywords">
crear validacion de grilla, reglas, validaciones de grilla
</keywords>
Contenido |
¿Cómo Crear Validaciones de Grilla con Reglas?
Las tablas siempre consideran una relación de uno a muchos entre dos entidades. Usando validaciones sobre tablas con reglas, habilitan al usuario validar condiciones con la entidad muchos, con el fin de guardar o editar un registro.
Esto es, cuando se hace clic en el botón Guardar (Save), cuando se Edita o se Agrega un registro, la regla es ejecutada, presentando mensajes de error por el asistente de Bizagi.
Tenga en cuenta que el contexto de estas validaciones es la entidad N, es decir la entidad muchos.
En este ejemplo, un Proceso de Solicitud de Crédito debe validar que el valor solicitado de todos los productos están dentro de un rango dado.
Este rango es paramétrico y ha sido incluido en la entidad ProductType como se muestra abajo
1. Abra el Diseñador de Formas en donde la Tabla ha sido creada.
Ubique la opción Grilla (Grid) en la caja de Propiedades (Properties).
2. Haga clic en Expresión de Validación para la Forma de Edición o Adición para seleccionar una Expresión.
Una nueva ventana se abrirá. Si la regla ya ha sido creada, selecciónela y haga clic en OK
Si la regla no ha sido creada, haga clic en Nueva (NEW)
3. Cree la regla
Haga clic para mayor información sobre Expresiones
3. Seleccione la regla
4. El mensaje de error será mostrado cuando se Agrega o Edita un nuevo registro de la grilla
Utilizar Xpath para evitar duplicados
Si usted necesita asegurarse de que todos los registros de una colección sean únicos usted puede validar un registro que estra siendo creado utilizando Validaciones de grilla, una función XPath o una expression XPath.
Suponga que usted tiene un proceso denominado ProcesoA La entidad de proceso se llama EntidadA y tiene una relación uno a muchos con la Entidad B.Dicha relacion recibe el nombre de CollecciónB. Adicionalmente la entidad B tiene una relación uno a uno con una entidad maestra o paramétrica denominada EntidadC. Usted desea validar que todos los registros en la colección de la EntidadB no tengan más de un registro de cada valor de la EntidadC.
Luego, cuando el usuario esta creando un nuevo registro de la colección en el Portal de Trabajo, debe haber una validación cuando esta condición no se cumpla. Para hacer esto, usted debe definir una expresión en la propiedades de validación de la forma de Editar y/o Agregar, que se encuentran en el editor de formas(Para mas informacion acerca de propiedades de las formas vea Propiedades de las Formas ). La expresión tiene la siguiente estructura.
//Obtener valor ingresado var ValorObjetivo = Me.Context.getXPath("EntidadC.id") //Validar Duplicados if (Me.getXPath("exists(EntidadA.ColleccionB[EntidadC ="+ ValorObjetivo +"])")==true) { //Mensaje de Validación CHelper.ThrowValidationError("Mensaje de Error") }
Por ejemplo: En un proceso de CRM (Gestión de Relaciones con el Cliente)usted podría tener 2 entidades diferentes, una para todos los clientes y otra especialemnte para los clientes VIP. En este caso la EntidadA es CRM, la EntidadB es la lista de clientes VIP y la EntidadC es la lista de clientes. No es deseable ingresar un cliente en la lista de clientes VIP mas de una vez.
La expresión quedaría de la siguiente manera:
//Obtener valor ingresado var ValorObjetivo= Me.Context.getXPath("Cliente.id") //Validar Duplicados if (Me.getXPath("exists(CRM.ClientesVIP[Cliente ="+ ValorObjetivo +"])")==true) { //Mensaje de Validación CHelper.ThrowValidationError("Este cliente ya existe en la lista de clientes VIP") }
Si usted intenta ingresar un cliente a la lista de clintes VIP mas de una vez, un mensaje de validación se mostrará.
Información Relacionada
<comments />