Utilidades en Business Central: Gestión de Errores con el Procedimiento ActionError (Parte 9)

Explora cómo gestionar errores de manera eficiente en Business Central con el procedimiento ActionError y el tipo de datos ErrorInfo.

Esta es la novena entrega de la serie sobre utilidades para Business Central. En esta ocasión, explico cómo utilizar el procedimiento ActionError, apoyado en el tipo de datos ErrorInfo, para manejar errores de forma clara, guiada y contextualizada, mejorando tanto la experiencia del usuario como la eficiencia en la resolución de problemas.

¡Vamos manos a la obra! 🤩


El bloque de código: Procedimiento ActionError

#region Control de Errores
procedure ActionError(MessageErr: Text; PageNo: Integer; FieldNo: Integer; RecordId: RecordId; CaptionButton: Text)
var
    ErrorInfo: ErrorInfo;
begin
    Clear(ErrorInfo);
    ErrorInfo.Message(MessageErr);
    ErrorInfo.PageNo := PageNo;
    ErrorInfo.RecordId := RecordId;
    if FieldNo <> 0 then
        ErrorInfo.FieldNo := FieldNo;
    if CaptionButton <> '' then
        ErrorInfo.AddNavigationAction(CaptionButton);

    if GuiAllowed() then
        Error(ErrorInfo);
end;
#endregion

1. Declaración y Configuración de Variables

  • ErrorInfo encapsula toda la información necesaria sobre el error. Se inicializa con Clear(ErrorInfo) para evitar datos residuales.

2. Definición del Mensaje

  • ErrorInfo.Message(MessageErr) configura el mensaje que se muestra al usuario. Este mensaje puede ser claro y específico, explicando el error de forma comprensible.

3. Contextualización del Error

  • ErrorInfo.PageNo: Asocia el error con una página específica.
  • ErrorInfo.RecordId: Relaciona el error con un registro concreto.

4. Resaltado del Campo

  • Si el error afecta a un campo específico, ErrorInfo.FieldNo lo indica, facilitando al usuario identificar el problema.

5. Adición de una Acción de Navegación

  • Con AddNavigationAction(CaptionButton), se añade un botón en el mensaje de error que puede dirigir al usuario a la acción o sección correspondiente.

6. Verificación de la Interfaz Gráfica

  • GuiAllowed() garantiza que el error solo se muestre si hay una interfaz gráfica activa. Esto evita errores en contextos como integraciones API.

7. Lanzamiento del Error

  • Finalmente, Error(ErrorInfo) genera el error, mostrando al usuario toda la información configurada.

Relación con el tipo de datos ErrorInfo

El procedimiento ActionError utiliza las propiedades y métodos de ErrorInfo para proporcionar mensajes detallados y acciones específicas. Algunas de las capacidades destacadas de ErrorInfo son:

  • Mensajes claros: Define un mensaje principal y uno adicional (opcional) para diagnóstico.
  • Acciones adicionales: Incluye botones para navegación o resolución de problemas.
  • Identificación precisa: Señala páginas, registros y campos afectados por el error.

Beneficios y aplicaciones prácticas

  • Experiencia mejorada: Proporciona mensajes claros y navegaciones directas para resolver errores.
  • Ahorro de tiempo: Facilita la resolución rápida de problemas.
  • Mantenimiento simplificado: Centraliza la lógica de errores, haciendo más sencillo su ajuste o mejora.

Ejemplo práctico

Si un usuario intenta guardar un cliente sin completar el campo “Teléfono”, el procedimiento puede:

  • Mostrar el mensaje: “El campo ‘Teléfono’ es obligatorio.”
  • Resaltar la página de “Clientes” y el campo específico.
  • Añadir un botón que dirija al campo “Teléfono” para su corrección.

Este enfoque elimina la ambigüedad y ayuda a los usuarios a resolver el error rápidamente.


Conclusión

En esta novena entrega de la serie Utils, explico cómo el procedimiento ActionError y el tipo de datos ErrorInfo son herramientas indispensables para mejorar la gestión de errores en Business Central. Esta combinación permite mostrar mensajes detallados, guiar al usuario y resolver problemas de forma ágil.

Para seguir todos los posts de esta serie, puedes encontrarlos bajo la etiqueta #UtilsBc.

Si quieres ver el código completo, está en GitHub.

Espero que esta entrada te sea de gran utilidad. ¡Nos vemos en la próxima!

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *