Hoy inicio una serie especial de posts donde compartiré distintas utilidades (utils) para Microsoft Dynamics 365 Business Central. En las próximas semanas, continuaré explorando herramientas prácticas que facilitarán el desarrollo en este entorno. En este primer post, me enfocaré en las tablas temporales, una herramienta esencial que permite manejar datos de manera transitoria sin impactar la base de datos principal. Pero, ¿cómo asegurarnos de que nuestras operaciones sean seguras y eficaces? ¡Hoy lo descubriremos!
¡Vamos manos a la obra! 😜
1. ¿Es realmente temporal? ¡Averigüémoslo!
procedure RecordIsTemporary(RecVariant: Variant)
var
RecordRefe: RecordRef;
Text001Err: Label 'The table has to be temporary. Contact the system administrator', Comment = 'ESP="La tabla tiene que ser temporal. Ponte en contacto con el administrador del sistema"';
begin
RecordRefe.GetTable(RecVariant);
if not RecordRefe.IsTemporary() then
Error(Text001Err);
end;
En esta función, RecordIsTemporary
, verifico si una tabla es temporal. El procedimiento toma un RecVariant
(un Variant
que puede contener diferentes tipos de registros), lo convierte en un RecordRef
y luego verifica su estado temporal.
RecordRefe.GetTable(RecVariant)
: Carga el registro en elRecordRef
.IsTemporary()
: Comprueba si el registro es temporal.Error()
: Lanza un error si la tabla no es temporal, con un mensaje claro que indica al usuario contactar con el administrador.
Esta verificación es crucial para evitar operaciones críticas en tablas permanentes por error.
2. Limpieza total: Eliminar todo en tablas temporales
procedure RecordIsTemporaryAndDeleteAll(RecVariant: Variant)
var
RecordRefe: RecordRef;
begin
RecordIsTemporary(RecVariant);
RecordRefe.GetTable(RecVariant);
RecordRefe.Reset();
RecordRefe.DeleteAll();
end;
La función RecordIsTemporaryAndDeleteAll
se basa en la anterior, añadiendo un paso más: eliminar todos los registros de la tabla si es temporal.
- Primero, llamo a
RecordIsTemporary
para asegurarme de que estoy trabajando con una tabla temporal. - Luego, uso
DeleteAll()
para eliminar todos los registros.
Esta función es útil cuando necesito limpiar datos temporales después de su uso, asegurando que no queden residuos que puedan interferir en futuras operaciones.
Beneficios y Aplicaciones Prácticas
Estas funciones ayudan a mantener la integridad y limpieza de los datos temporales. Al verificar que solo se operan tablas temporales, evito errores críticos y mantengo un entorno de datos seguro. Además, la capacidad de limpiar rápidamente estas tablas mejora el rendimiento y simplifica la gestión de datos transitorios.
Conclusión
Trabajar con tablas temporales puede ser un desafío, pero con estas funciones, garantizo un manejo seguro y eficiente. Este post es solo el inicio de una serie donde compartiré más utilidades (utils) que tengo preparadas para facilitar el desarrollo en Business Central. ¡No te pierdas las próximas publicaciones, donde profundizaré en otras herramientas prácticas y efectivas!
Para seguir todos los posts de esta serie, puedes encontrarlos bajo la etiqueta #UtilsBc.
Si quieres ver el código completo, está en GitHub.
¡Hasta la próxima!