Http Class In Business (API)

GET

POST

PATCH


 codeunit 50391 HttpWebRequest

{
    trigger OnRun()
    begin


    end;


    procedure APITestConnection(Methode: Code[10]; UserName: Text; Password: Text; Domain: Code[100];
            url: text; var ResponseString: Text; var ErrorTxt: Text
             )
    begin
        Clear(Client);
        Clear(Request);
        Clear(Content);
        Clear(Headers);
        Client.SetBaseAddress(Url);
        Client.UseWindowsAuthentication(UserName, Password, Domain);
        Request.Method('GET');
        Content.GetHeaders(Headers);
        Headers.Remove('Content-Type');
        Client.DefaultRequestHeaders.Add('User-Agent', 'Dynamics 365');
        Headers.Add('Content-Type', 'application/json;odata.metadata=none');

        Client.Timeout(15000);
        if Not Client.Send(Request, Response) then
            ErrorTxt := ('The call to the web service failed.');

        if not Response.IsSuccessStatusCode() then
            ErrorTxt := ('Status code: ' + Format(Response.HttpStatusCode()) +
                    ' Description: ' + Response.ReasonPhrase())
        else
            Response.Content().ReadAs(ResponseString);

        If ResponseString <> '' then begin

            // JObject.ReadFrom(ResponseString);
            // JObject.Get('displayName', JToken);
            // ResponseString := 'Test is ok , Company Name  : ' + Jtoken.AsValue().AsText();


        end;

    end;


    procedure GETRequest(UserName: Text; Password: Text; Domain: Code[100];
    url: text; var ResponseString: Text; var ErrorTxt: Text
    )
    begin

        Clear(Client);
        Clear(Request);
        Clear(Content);
        Clear(Headers);
        Client.SetBaseAddress(Url);
        Client.UseWindowsAuthentication(UserName, Password, Domain);
        Request.Method('GET');
        Content.GetHeaders(Headers);
        Headers.Remove('Content-Type');
        Client.DefaultRequestHeaders.Add('User-Agent', 'Dynamics 365');
        Headers.Add('Content-Type', 'application/json;odata.metadata=none');

        Client.Timeout(15000);
        if Not Client.Send(Request, Response) then
            ErrorTxt := ('The call to the web service failed.');

        if not Response.IsSuccessStatusCode() then
            ErrorTxt := ('Status code: ' + Format(Response.HttpStatusCode()) +
                    ' Description: ' + Response.ReasonPhrase())
        else
            Response.Content().ReadAs(ResponseString);
        PurchHeaderInit(ResponseString);

    end;

    procedure PatchRequest(UserName: Text; Password: Text; Domain: Code[100];
   url: text; var ResponseString: Text; var ErrorTxt: Text
   )
    begin

        Clear(Client);
        Clear(Request);
        Clear(Content);
        Clear(Headers);
        Client.SetBaseAddress(Url);
        Client.UseWindowsAuthentication(UserName, Password, Domain);
        Request.Method('GET');
        Content.GetHeaders(Headers);
        Headers.Remove('Content-Type');
        Client.DefaultRequestHeaders.Add('User-Agent', 'Dynamics 365');
        Headers.Add('Content-Type', 'application/json');
        Headers.Add('If-Match', '*');

        Client.Timeout(15000);
        if Not Client.Send(Request, Response) then
            ErrorTxt := ('The call to the web service failed.');

        if not Response.IsSuccessStatusCode() then
            ErrorTxt := ('Status code: ' + Format(Response.HttpStatusCode()) +
                    ' Description: ' + Response.ReasonPhrase())
        else
            Response.Content().ReadAs(ResponseString);


    end;

    procedure PurchHeaderInit(JsonText: text)
    begin
        Clear(TempPurchaseHeader);
        if not JObject.ReadFrom(JsonText) then
            Error('Invalid response, expected a JSON object');

        JObject.Get('value', Jtoken);

        if not Jarray.ReadFrom(Format(Jtoken)) then
            Error('Array not Reading Properly');

        TotalCount := 0;
        OrderCount := 0;
        TotalCount := Jarray.Count();
        for i := 0 to Jarray.Count() - 1 do begin
            Jarray.Get(i, Jtoken);

            JObject := Jtoken.AsObject();

            IF Jtoken.AsObject.Get('No', Jtoken) then begin

                TempPurchaseHeader.INIT;
                TempPurchaseHeader."Document Type" := TempPurchaseHeader."Document Type"::Order;
                TempPurchaseHeader."No." := Jtoken.AsValue().AsCode();


                if Jtoken.AsObject.Get('BuyfromVendorNo', Jtoken) then;
                TempPurchaseHeader."Buy-from Vendor No." := Jtoken.AsValue().AsCode();
                if Jtoken.AsObject.Get('BuyfromVendorName', Jtoken) then;
                TempPurchaseHeader."Buy-from Vendor Name" := Jtoken.AsValue().AsText();
                if Jtoken.AsObject.Get('OrderDate', Jtoken) then;
                TempPurchaseHeader."Order Date" := Jtoken.AsValue().AsDate();
                if Jtoken.AsObject.Get('LocationCode', Jtoken) then;
                TempPurchaseHeader."Location Code" := Jtoken.AsValue().AsCode();
                if Jtoken.AsObject.Get('InterCompanyCode', Jtoken) then;
                TempPurchaseHeader."Inter Company Code" := Jtoken.AsValue().AsCode();
                TempPurchaseHeader.Status := TempPurchaseHeader.Status::Released;
                TempPurchaseHeader.INSERT;
            end;

        end;
        IF NOT TempPurchaseHeader.ISEMPTY THEN BEGIN
            IF PAGE.RUNMODAL(0, TempPurchaseHeader) = ACTION::LookupOK THEN BEGIN
                Message('Proccess Document No. %1', TempPurchaseHeader."No.");
            end;

        end;
    end;

    procedure PurchLineInit(JsonText: text)
    begin

    end;


    procedure SaleshHeaderInit(JsonText: text)
    begin

    end;

    procedure SalesLineInit(JsonText: text)
    begin

    end;

    procedure UpdateSalesHeader()
    begin

    end;

    procedure UpdatePurchHeader()
    begin

    end;



    var

        Client: HttpClient;
        Request: HttpRequestMessage;
        Response: HttpResponseMessage;
        Headers: HttpHeaders;
        Content: HttpContent;
        ResponseText: Text;
        ErrorBodyContent: Text;
        TextContent: Text;
        Jtoken: JsonToken;
        JObject: JsonObject;
        jsonval: JsonValue;
        Jarray: JsonArray;
        i: Integer;
        j: Integer;
        TotalCount: Integer;
        OrderCount: Integer;
        TempPurchaseHeader: Record 38 temporary;

}

No comments:

Post a Comment