Sample code for 30+ languages & platforms
PowerBuilder

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 PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Http
oleobject loo_QueryParams
oleobject loo_Resp
oleobject loo_Jarr
oleobject loo_Json
integer li_Client_number
integer li_Consultant_number
string ls_Id
string ls_Name
integer j
integer li_Count_j
integer k
integer li_Count_k
string ls_StrVal
integer i
integer li_Count_i

li_Success = 0

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// 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

loo_QueryParams = create oleobject
li_rc = loo_QueryParams.ConnectToNewObject("Chilkat.JsonObject")

// 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.
loo_Http.AuthToken = "REPLACE_BEARER_TOKEN"
loo_Http.SetRequestHeader("accept","application/json;charset=utf-8")
loo_Http.SetRequestHeader("X-Datev-Client-ID","DATEV_CLIENT_ID")

loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")

li_Success = loo_Http.HttpParams("GET","https://accounting-clients.api.datev.de/platform-sandbox/v2/clients",loo_QueryParams,loo_Resp)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_QueryParams
    destroy loo_Resp
    return
end if

Write-Debug string(loo_Resp.StatusCode)
Write-Debug loo_Resp.BodyStr

loo_Jarr = create oleobject
li_rc = loo_Jarr.ConnectToNewObject("Chilkat.JsonArray")

// Insert code here to load the above JSON array into the jarr object.
loo_Jarr.Load(loo_Resp.BodyStr)

i = 0
li_Count_i = loo_Jarr.Size
do while i < li_Count_i
    loo_Json = loo_Jarr.ObjectAt(i)
    li_Client_number = loo_Json.IntOf("client_number")
    li_Consultant_number = loo_Json.IntOf("consultant_number")
    ls_Id = loo_Json.StringOf("id")
    ls_Name = loo_Json.StringOf("name")
    j = 0
    li_Count_j = loo_Json.SizeOfArray("services")
    do while j < li_Count_j
        loo_Json.J = j
        ls_Name = loo_Json.StringOf("services[j].name")
        k = 0
        li_Count_k = loo_Json.SizeOfArray("services[j].scopes")
        do while k < li_Count_k
            loo_Json.K = k
            ls_StrVal = loo_Json.StringOf("services[j].scopes[k]")
            k = k + 1
        loop
        j = j + 1
    loop
    destroy loo_Json
    i = i + 1
loop


destroy loo_Http
destroy loo_QueryParams
destroy loo_Resp
destroy loo_Jarr