¡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! 😁


Absolutely with you it agree. Idea good, it agree with you.
Muchas gracias, recibir estos comentarios ayuda mucho