HTTP berichten inkomend

  • 2 minutes to read

Tables

CFL HttpMessage

procedure CFLProcess

procedure CFLProcess()

Verwerk de binnenkomende request. Deze functie wordt aangeroepen vanuit de CFL Http Message Api pagina voor binnenkomende rest api calls. Deze functie leidt door naar het event "CFLonCFLProcess* waarin de eigenlijke verwerking dan gebeurt door de subscribers op dit event.

event CFLOnCFLProcess

[EventSubscriber(ObjectType::Table, Database::"CFL HttpMessage", 'CFLOnCFLProcess', '', true, true)]
local procedure HelloWorld(var Sender: Record "CFL HttpMessage")
begin
end;

Subscribe op deze functie om een binnekomende API request op te vangen en te verwerken. Na je verwerking kan je via de fucntie CFLSetResponse het antwoord van de request instellen.
Via het veld CFL Delete After Processing kan je instellen of het bericht mag verwijderd worden na de verwerking.

event CFLOnAfterProcess

[EventSubscriber(ObjectType::Table, Database::"CFL HttpMessage", 'CFLOnAfterProcess', '', true, true)]
local procedure HelloWorld(var Sender: Record "CFL HttpMessage")
begin
end;

Subscribe op deze functie om een binnekomende API request op te vangen na de verwerking.

Voorbeeld

In de codeunit CFL HTTP Message Management zit deze event subscriber:

 [EventSubscriber(ObjectType::Table, Database::"CFL HttpMessage", 'CFLOnCFLProcess', '', true, true)]
    local procedure HelloWorld(var Sender: Record "CFL HttpMessage")
    var
        JsonObject: JsonObject;
    begin
        if JsonObject.ReadFrom(Sender.CFLGetContent()) then begin
            if (JsonValue(JsonObject, 'Type') = 'API') and (JsonValue(JsonObject, 'Method') = 'HelloWorld') then begin
                Sender.CFLSetResponse(StrSubstNo('Hello %1 !', JsonValue(JsonObject, 'Params')));
                Sender.Modify(true);
                exit;
            end;
        end;
    end;

De body gebruikt in dit voorbeeld ziet er als volgt uit:

{   
    "Type":"API",
    "Method":"HelloWorld",
    "Params":"LOCALTEST\\ADMIN_CHRISTIAENS"
}	

Hierbij wordt dus de binnenkomende request opgevangen via het event en wordt de inhoud gelezen. Indien de inhoud Type = API en Method=HelloWorld bevat dan wordt hier het antwoord ingesteld. Op deze manier is het dus vrij eenvoudig om door bvb een andere 'Method' op te nemen in call, om een eigen verwerking te voorzien. Uiteraard is het mogelijk om een andere json structuur als inhoud te gebruiken en de verwerking dan daarop te voorzien.