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