Optimizando la Gestión de Datos en Business Central: De Registros a JSON

Explora una solución eficiente para convertir datos de registros en Business Central a formato JSON. Se utiliza objetos como RecordRef y JsonObject, filtrando datos para una manipulación eficaz. Descubre cómo mejorar tus prácticas de programación en Business Central con este enfoque valioso.

¡Saludos a todos en la vibrante comunidad de NaviWorld!

Hoy, me complace compartir con vosotros un ejemplo práctico fascinante sobre la conversión de datos de registros en Business Central a formato JSON. Este enfoque se torna esencial cuando necesitamos realizar operaciones eficientes como enviar, descargar o transportar datos. ¡Sumérgete conmigo en el emocionante universo de la programación en Business Central!

¡Vamos manos a la obra! 😁

Convertir Datos de un Registro a JSON en Business Central

En el siguiente código, presento una solución poderosa y adaptable a diversos desarrollos. Este ejemplo seguramente será de gran utilidad en vuestros proyectos.

codeunit 50101 "Simple Mgt. Json"
{
    procedure CreateJsonToRec(RecVariant: Variant) JsonText: Text;
    var
        RecField: Record Field;
        RecordRefe: RecordRef;
        FieldRefe: FieldRef;
        Json: JsonObject;
    begin
        RecordRefe.GetTable(RecVariant);
        RecField.SetRange(RecField.TableNo, RecordRefe.Number);
        RecField.SetFilter(Type, '<>%1&<>%2&<>%3&<>%4&<>%5', RecField.Type::BLOB, RecField.Type::DateFormula, RecField.Type::GUID, RecField.Type::Media, RecField.Type::MediaSet);
        RecField.SetFilter(ObsoleteState, '<>%1&<>%2', RecField.ObsoleteState::Removed, RecField.ObsoleteState::Pending);
        if RecField.FindSet() then
            repeat
                FieldRefe := RecordRefe.Field(RecField."No.");
                Json.Add(RecField.FieldName, format(FieldRefe.Value));
            until RecField.Next() = 0;
        Json.WriteTo(JsonText);
    end;
}

Ahora, profundicemos en los detalles. Al crear la codeunit “Simple Mgt. Json”, establecemos las bases para gestionar eficientemente datos en formato JSON. El procedimiento CreateJsonToRec toma un parámetro de tipo Variant, representando un registro, y devuelve el texto en formato JSON.

Dentro del procedimiento, utilizamos objetos como RecordRef, FieldRef y JsonObject para interactuar con la estructura del registro y construir el JSON. Hemos implementado filtros para excluir campos problemáticos como BLOBs, fechas fórmula, GUIDs y tipos de medios, asegurándonos de obtener datos limpios y manejables.

Este enfoque es especialmente útil al trabajar con registros en Business Central que contienen una amplia variedad de campos. Al filtrar y convertir estos datos en JSON, facilitamos su manipulación y transferencia.

Realizando Pruebas

Para evaluar los resultados, he creado una extensión de página para clientes. Al hacer clic en “Export Simple Rec”, se genera el JSON y se muestra en un mensaje. Esta funcionalidad puede integrarse fácilmente en vuestros desarrollos, proporcionando una herramienta valiosa en vuestra caja de herramientas de programación.

pageextension 50100 "Extension Customer" extends "Customer Card"
{
    actions
    {
        addfirst(processing)
        {
            action("Export Simple Rec")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Export Simple Rec', comment = 'ESP="Exportar Rec Simple"';
                Image = Export;
                Promoted = true;
                PromotedCategory = Category4;
                PromotedIsBig = true;

                trigger OnAction()
                var
                    SimpleMgtJson: Codeunit "Simple Mgt. Json";
                    Text01: Text;
                begin
                    Text01 := SimpleMgtJson.CreateJsonToRec(Rec);
                    Message(text01);
                end;
            }
        }
    }
}

Espero que encuentres esta solución emocionante y útil para mejorar vuestras prácticas de programación en Business Central. Todo el código y detalles adicionales están disponibles en el GitHub.

¡Que Disfrutes explorando y aplicando esta técnica en tus proyectos proyectos! 😁

Share your love

Leave a Reply

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