Table 4300 Agent JSON Buffer, source in 27

Source272829metadata in 27

src/System Application/App/Agent/Troubleshooting/Internal/AgentJSONBuffer.Table.al69 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------

namespace System.Agents.Troubleshooting;

table 4300 "Agent JSON Buffer"
{
    TableType = Temporary;
    Access = Internal;
    InherentEntitlements = RIMDX;
    InherentPermissions = RIMDX;

    fields
    {
        field(1; Id; Integer)
        {
        }
        field(2; Json; Blob)
        {
        }
    }

    keys
    {
        key(PrimaryKey; Id)
        {
        }
    }

    procedure GetJsonText(): Text
    var
        JsonTextBuilder: TextBuilder;
        JsonTextInStream: InStream;
        JsonTextLine: Text;
    begin
        Rec.CalcFields(Rec.Json);
        Rec.Json.CreateInStream(JsonTextInStream, GetDefaultEncoding());
        while not JsonTextInStream.EOS do begin
            JsonTextInStream.ReadText(JsonTextLine);
            JsonTextBuilder.AppendLine(JsonTextLine);
        end;
        exit(JsonTextBuilder.ToText().Trim());
    end;

    procedure SetJsonText(NewJsonText: Text)
    var
        JsonTextOutstream: OutStream;
    begin
        Clear(Rec.Json);
        Rec.Json.CreateOutStream(JsonTextOutstream, GetDefaultEncoding());
        JsonTextOutstream.WriteText(NewJsonText);
        Rec.Modify(true);
    end;

    procedure SetJson(NewJson: JsonObject)
    var
        JsonText: Text;
    begin
        NewJson.WriteTo(JsonText);
        this.SetJsonText(JsonText);
    end;

    local procedure GetDefaultEncoding(): TextEncoding
    begin
        exit(TextEncoding::UTF8);
    end;
}