Handbuch drucken  

 NVXSUL Serialization Utility Library


Library App zum Serialisieren komplexer AL-Typen.
Aktuelle Version: 2.0.1.0 ab Business Central 17.

Handbuch


Erstellungsdatum: 2024/04/28
Die aktuelle Version dieses Handbuchs finden Sie unter:

https://www.navax.app/help.php?AppID=NVXSUL&L=de


☰ Inhaltsverzeichnis



Allgemein

  • App Serialization Utility Library

Aufgaben

  • Arbeiten mit der App Serialization Utility Library

Anhang

  • Versionshinweise
    Möchten Sie wissen, was sich in der App geändert hat...

Docs  /  NVXSUL Serialization Utility Library  /  Allgemein
Allgemein

Diese Library App stellt diverse Funktionen zu Verfügung, welche BC Datentypen in JSON Objekte serialisieren, um diese beispielsweise an ein REST Webservice zu senden, ohne dass man die JSON Objekte "manuell" aufbauen muss.

Docs  /  NVXSUL Serialization Utility Library  /  Aufgaben
Arbeiten mit der App

Über die Codeunit SULSerializationUtilNVX kann von einer abhängigen Extension die Funktion Serialize aufgerufen werden diese nimmt unterschiedliche Paramter an:

Parameter

  • VarToSerialize: Variant -> der Datentyp welcher serialisiert werden soll
  • ISerializer: Interface SULISerializerNVX -> Implementierung der Serialisierung bspw. JSON
  • SerializableType: Enum SULSerializableTypeNVX -> die Art des zu serialisierenden Datentyps
  • FieldNoSelection: List of [Integer]
Weitere Serialisierungsformate wie z.B.: XML sind über das Interface SULISerializerNVX und das Enum SULSerializerTypeNVX zu implementieren.

JSON Serialisierung von Records

procedure GetCustomerAsJSONObject(Customer: Record Customer): JsonObject
var
    SerializationUtil: Codeunit SULSerializationUtilNVX;    
    JObject: JsonObject;
    BodyContent: Text;
begin
    BodyContent := SerializationUtil.Serialize(Customer, Enum::SULSerializerTypeNVX::JSON, Enum::SULSerializableTypeNVX::Record);
    exit(JObject.WriteTo(BodyContent));
end;

procedure GetCustomerSelectedFieldsAsJSONObject(Customer: Record Customer; SlectedFields: List of [Integer]): JsonObject
var
    SerializationUtil: Codeunit SULSerializationUtilNVX;    
    JObject: JsonObject;
    BodyContent: Text;
begin
    BodyContent := SerializationUtil.Serialize(Customer, Enum::SULSerializerTypeNVX::JSON, SelectedFields, Enum::SULSerializableTypeNVX::Record);
    exit(JObject.WriteTo(BodyContent));
end;

JSON Deserialisierung von Records

local procedure UpdateCustomerFromApi(CustomerNo: Code[20]; Response: Text)
var
    Customer: Record Customer;
    SerializationUtil: Codeunit SULSerializationUtilNVX;
    JsonFieldMapping: Dictionary of [Integer, Text];
    DeserializationFailed: List of [Text];
    Json: JsonObject;
begin
    //JsonFieldMapping consists of the Field No. of the BC Record as key and the respective Json Token from the response as value
    //DeserializationFailed contains the Json Tokens which must be deserialized manually

    ThrowError.IfCustomerDoesNotExist(Customer, CustomerNo);
    JsonFieldMapping.Add(2, 'name');
    JsonFieldMapping.Add(4, 'name2');

    Json.ReadFrom(Response);
    SerializationUtil.Deserialize(
        Json,
        MKSHeader,
        Enum::SULDeserializerTypeNVX::JSON,
        JsonFieldMapping,
        DeserializationFailed);
end;

Docs  /  NVXSUL Serialization Utility Library  /  Anhang
Versionshinweise

Möchten Sie wissen, was sich in der App geändert hat? Nachfolgend finden Sie eine Übersicht über die neuen Features und Änderungen, die in den Updates vorgenommen wurden. Build-Übersicht in DevOps

NVXSUL 2.0.2.0

  • Änderungen

    • Anpassungen für BC 23 Kompatibilität.

NVXSUL 2.0.1.0

ab Business Central 17
2022/02/03
  • Erweiterungen

    • JSON Deserialisierung auf für noch nicht vorhandene Datensätze implementiert.

NVXSUL 2.0.0.0

ab Business Central 17
2022/01/26
  • Erweiterungen

    • JSON Deserialisierung auf Basis von Record Datentypen wurde implementiert.

NVXSUL 1.0.0.0

ab Business Central 17
  • Ursprungsversion

  Handbuch drucken  
DE|EN Impressum