Reasignación de Mensajes de Error
Descripción General
App Builder permite a los desarrolladores proporcionar mensajes de reemplazo comunes y fáciles de usar para errores de excepción de la base de datos. Proporcionar mensajes fáciles de usar puede ayudar a los usuarios que no están familiarizados con la tecnología de bases de datos a comprender qué ha sucedido cuando se produce un error. Reemplazar mensajes de error como Violation of PRIMARY KEY constraint 'PK_ProductInt'
con algo más comprensible como Record already exists
puede contribuir en gran medida a mejorar la experiencia del usuario.
Para reasignar un mensaje de error, primero se deben realizar varios pasos para identificar la excepción:
-
El tipo de base de datos se determina haciendo coincidir las propiedades de la excepción:
-
Nombre del tipo: este es el nombre completo de la clase de excepción
-
Origen: este es el paquete de ensamblaje para la DLL
-
Se intenta una coincidencia del mensaje de error de la base de datos utilizando expresiones regulares para el mensaje de excepción y los parámetros de datos.
- Primero, se escanea la lista de mensajes de excepción específicos de la base de datos en
Index
orden - Si no se encuentra ninguna coincidencia, se escanea la lista de entradas de mensajes de excepción general
Index
orden
- Primero, se escanea la lista de mensajes de excepción específicos de la base de datos en
En caso de que no se encuentre ninguna coincidencia, el mensaje de excepción no se modificará.
Mapeo de Tipos de Bases de Datos
La asignación de tipos de bases de datos permite al desarrollador asignar clases de excepción a tipos de bases de datos específicos. De esta manera, se puede examinar un conjunto más pequeño de mensajes de excepción al intentar reasignar un mensaje de excepción.
Por defecto, App Builder se entrega con muchos de los tipos de bases de datos típicos ya precargados. En el improbable caso de que se requiera una nueva entrada, un desarrollador puede realizar los siguientes pasos para agregar una nueva asignación de base de datos:
-
Navegar hasta App Builder IDE > Configuración > Mensajes de error:
-
Haga clic en el botón de la barra de herramientas Configurar en el panel Tipo de base de datos:
-
Haga clic en Crear
-
Elija su Tipo de base de datos y complete los siguientes detalles:
-
Nombre del tipo: el nombre completo de la clase de excepción (p. ej.
System.Data.SqlClient.SqlException
) - Fuente: campo opcional para proporcionar el nombre del ensamblado de DLL. Este campo es útil si se reasigna un tipo de excepción del sistema para un ensamblado específico. Por ejemplo, el tipo de base de datos Rest reasigna el tipo de sistema
System.InvalidOperationException
para elVinyl.DataSource.Rest
solo ensamblaje. -
Descripción: campo opcional para proporcionar una descripción de la entrada
-
Haga clic en el ícono de marca de verificación para guardar la entrada
Ahora los mensajes de error de excepciones se pueden asignar al tipo de base de datos configurado.
Mensajes de Error
Para reasignar correctamente un mensaje de error, se debe crear una entrada inteligente y fácil de usar en la tabla de mensajes de error. Las entradas se pueden agregar a una de dos listas:
- Un mensaje de error para un tipo de base de datos específico (p. ej.
Microsoft SQL Server
) - Un mensaje de error para cualquier tipo de base de datos
Cuando se encuentra una excepción de base de datos, primero se examina la lista de mensajes de error para el tipo de base de datos asignado. Si no se encuentra ninguna coincidencia, se examina la lista de mensajes de tipo de base de datos no específico (mensajes de error con un tipo de base de datos NULL). Cada lista está ordenada por Index
.
Para ingresar un nuevo mensaje de error:
- Vaya a App Builder IDE > Configuración > Mensajes de error
-
Haga clic en Crear en el panel Errores e ingrese los detalles:
Parámetros del Mensaje de Error
La lista de parámetros para un mensaje de error es la siguiente:
Mensaje
El mensaje de reemplazo que se mostrará al usuario. Este mensaje puede incluir parámetros de sustitución en forma de grupos de captura de expresiones regulares con nombre (del mensaje de excepción Pattern
) o nombres de parámetros de datos de excepción utilizando el {{nm.ab}} {{nombre}}
Sintaxis.
Patrón
Este es el patrón de expresión regular que se utiliza para hacer coincidir el mensaje de excepción. Este patrón puede especificar grupos de captura con nombre, por ejemplo: Capture group 'Key' inside quotation marks "(?<Key>.*)"
.
Nota
El patrón utiliza coincidencias de expresiones regulares de una sola línea. Actualmente, no se admiten coincidencias de varias líneas.
Patrón de ejemplo:
| Parámetro | Valor | |-----------|-------|TABLEROWEND
|Ejemplo|Violation of PRIMARY KEY constraint 'PK_OrderDetails'.
| |Patrón|^Violation of PRIMARY KEY constraint '(?<Key>.*)'.
|TABLEROWEND
|Mensaje|Row already exists for key '{{Tecla}}'.
|
Salidas Row already exists for key 'PK_OrderDetails'.
La coincidencia comienza al principio de la cadena. Incluye un grupo de captura llamado Key
¿Cuál coincide? PK_OrderDetails
dentro de las comillas simples.
Ejemplo
Este es un mensaje de excepción de ejemplo que coincidirá con el mensaje indicado. Pattern
si se introduce un ejemplo, se validará la expresión regular del patrón.
Índice
El índice permite ordenar los mensajes de error. Tenga en cuenta que Index
no es una clave única. Múltiples mensajes de error pueden compartir la misma clave. Index
ya que la mayoría de los partidos no se pueden ordenar realmente. De forma predeterminada, Index
se establece en 100 y, en la mayoría de los casos, tiene sentido dejarlo como está. Sin embargo, algunas coincidencias se pueden mover obviamente al principio o al final de la lista de procesamiento. Por ejemplo, si el desarrollador desea crear un patrón general que coincida con cualquier cadena (de modo que el mensaje de excepción siempre se reasigna incluso si todas las coincidencias anteriores fallan), podría usar un valor muy alto. Index
valor (p. ej. 9999).
Datos de Excepción
El Data
también se puede hacer coincidir el diccionario de parámetros de una excepción. Esto es útil cuando una excepción contiene un mensaje genérico pero tiene detalles específicos de la excepción en el Data
diccionario. Hay tres Data
entradas que se pueden agregar a un mensaje de error. Deberá hacer doble clic en el mensaje de error para ver la lista completa de parámetros de datos de excepción.
Name
: El nombre del parámetro de datos de excepciónRegex
: La expresión regular que se debe comparar con el valor del parámetro de datos de excepción
Sustituciones
Como se mencionó anteriormente, la facilidad de uso Message
puede incluir sustituciones que se resuelven en:
- Un grupo de captura con nombre en el
Pattern
o - Un nombre de parámetro de datos de excepción
La sintaxis de las sustituciones es {{nombre}}
y se puede utilizar en cualquier lugar dentro del Message
.
Envío de Mensajes de Usuario
Las asignaciones de tipos de bases de datos de usuarios y los mensajes de error se incluyen con los LP creados en el App Builder instancia. Cuando se instala un LP en otro App Builder por ejemplo, también se instalarán esas entradas de usuario. Esto sigue el mismo patrón que las funciones mvSQL definidas por el usuario. Las nuevas entradas se activan inmediatamente después de la instalación. Actualmente, no hay forma de deshabilitar esta funcionalidad.