Delphi ActiveX
Delphi ActiveX
Datev - Get a List of Clients
See more Datev Examples
Demonstrates how to get a list of clients in the accounting:clients Datev API.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
http: TChilkatHttp;
queryParams: TChilkatJsonObject;
resp: TChilkatHttpResponse;
jarr: TChilkatJsonArray;
json: IChilkatJsonObject;
client_number: Integer;
consultant_number: Integer;
id: WideString;
name: WideString;
j: Integer;
count_j: Integer;
k: Integer;
count_k: Integer;
strVal: WideString;
i: Integer;
count_i: Integer;
begin
success := 0;
http := TChilkatHttp.Create(Self);
// Implements the following CURL command:
// curl --request GET \
// --url "https://accounting-clients.api.datev.de/platform/v2/clients?filter=REPLACE_THIS_VALUE&skip=REPLACE_THIS_VALUE&top=REPLACE_THIS_VALUE" \
// --header "Authorization: Bearer REPLACE_BEARER_TOKEN" \
// --header "X-Datev-Client-ID: clientId" \
// --header "accept: application/json;charset=utf-8"
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
queryParams := TChilkatJsonObject.Create(Self);
// ignore = queryParams.UpdateString("filter","REPLACE_THIS_VALUE");
// ignore = queryParams.UpdateString("skip","REPLACE_THIS_VALUE");
// ignore = queryParams.UpdateString("top","REPLACE_THIS_VALUE");
// Adds the "Authorization: Bearer REPLACE_BEARER_TOKEN" header.
http.AuthToken := 'REPLACE_BEARER_TOKEN';
http.SetRequestHeader('accept','application/json;charset=utf-8');
http.SetRequestHeader('X-Datev-Client-ID','DATEV_CLIENT_ID');
resp := TChilkatHttpResponse.Create(Self);
success := http.HttpParams('GET','https://accounting-clients.api.datev.de/platform-sandbox/v2/clients',queryParams.ControlInterface,resp.ControlInterface);
if (success = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
Memo1.Lines.Add(IntToStr(resp.StatusCode));
Memo1.Lines.Add(resp.BodyStr);
jarr := TChilkatJsonArray.Create(Self);
// Insert code here to load the above JSON array into the jarr object.
jarr.Load(resp.BodyStr);
i := 0;
count_i := jarr.Size;
while i < count_i do
begin
json := jarr.ObjectAt(i);
client_number := json.IntOf('client_number');
consultant_number := json.IntOf('consultant_number');
id := json.StringOf('id');
name := json.StringOf('name');
j := 0;
count_j := json.SizeOfArray('services');
while j < count_j do
begin
json.J := j;
name := json.StringOf('services[j].name');
k := 0;
count_k := json.SizeOfArray('services[j].scopes');
while k < count_k do
begin
json.K := k;
strVal := json.StringOf('services[j].scopes[k]');
k := k + 1;
end;
j := j + 1;
end;
i := i + 1;
end;
end;