Delphi DLL
Delphi DLL
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 DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, JsonArray, HttpResponse, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
queryParams: HCkJsonObject;
resp: HCkHttpResponse;
jarr: HCkJsonArray;
json: HCkJsonObject;
client_number: Integer;
consultant_number: Integer;
id: PWideChar;
name: PWideChar;
j: Integer;
count_j: Integer;
k: Integer;
count_k: Integer;
strVal: PWideChar;
i: Integer;
count_i: Integer;
begin
success := False;
http := CkHttp_Create();
// 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 := CkJsonObject_Create();
// 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.
CkHttp_putAuthToken(http,'REPLACE_BEARER_TOKEN');
CkHttp_SetRequestHeader(http,'accept','application/json;charset=utf-8');
CkHttp_SetRequestHeader(http,'X-Datev-Client-ID','DATEV_CLIENT_ID');
resp := CkHttpResponse_Create();
success := CkHttp_HttpParams(http,'GET','https://accounting-clients.api.datev.de/platform-sandbox/v2/clients',queryParams,resp);
if (success = False) then
begin
Memo1.Lines.Add(CkHttp__lastErrorText(http));
Exit;
end;
Memo1.Lines.Add(IntToStr(CkHttpResponse_getStatusCode(resp)));
Memo1.Lines.Add(CkHttpResponse__bodyStr(resp));
jarr := CkJsonArray_Create();
// Insert code here to load the above JSON array into the jarr object.
CkJsonArray_Load(jarr,CkHttpResponse__bodyStr(resp));
i := 0;
count_i := CkJsonArray_getSize(jarr);
while i < count_i do
begin
json := CkJsonArray_ObjectAt(jarr,i);
client_number := CkJsonObject_IntOf(json,'client_number');
consultant_number := CkJsonObject_IntOf(json,'consultant_number');
id := CkJsonObject__stringOf(json,'id');
name := CkJsonObject__stringOf(json,'name');
j := 0;
count_j := CkJsonObject_SizeOfArray(json,'services');
while j < count_j do
begin
CkJsonObject_putJ(json,j);
name := CkJsonObject__stringOf(json,'services[j].name');
k := 0;
count_k := CkJsonObject_SizeOfArray(json,'services[j].scopes');
while k < count_k do
begin
CkJsonObject_putK(json,k);
strVal := CkJsonObject__stringOf(json,'services[j].scopes[k]');
k := k + 1;
end;
j := j + 1;
end;
CkJsonObject_Dispose(json);
i := i + 1;
end;
CkHttp_Dispose(http);
CkJsonObject_Dispose(queryParams);
CkHttpResponse_Dispose(resp);
CkJsonArray_Dispose(jarr);
end;