Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Variant vQueryParams
    Handle hoQueryParams
    Variant vResp
    Handle hoResp
    Handle hoJarr
    Variant vJson
    Handle hoJson
    Integer iClient_number
    Integer iConsultant_number
    String sId
    String sName
    Integer j
    Integer iCount_j
    Integer k
    Integer iCount_k
    String sStrVal
    Integer i
    Integer iCount_i
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

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

    Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
    If (Not(IsComObjectCreated(hoQueryParams))) Begin
        Send CreateComObject of hoQueryParams
    End
    // 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.
    Set ComAuthToken Of hoHttp To "REPLACE_BEARER_TOKEN"
    Send ComSetRequestHeader To hoHttp "accept" "application/json;charset=utf-8"
    Send ComSetRequestHeader To hoHttp "X-Datev-Client-ID" "DATEV_CLIENT_ID"

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoQueryParams to vQueryParams
    Get pvComObject of hoResp to vResp
    Get ComHttpParams Of hoHttp "GET" "https://accounting-clients.api.datev.de/platform-sandbox/v2/clients" vQueryParams vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComStatusCode Of hoResp To iTemp1
    Showln iTemp1
    Get ComBodyStr Of hoResp To sTemp1
    Showln sTemp1

    Get Create (RefClass(cComChilkatJsonArray)) To hoJarr
    If (Not(IsComObjectCreated(hoJarr))) Begin
        Send CreateComObject of hoJarr
    End

    // Insert code here to load the above JSON array into the jarr object.
    Get ComBodyStr Of hoResp To sTemp1
    Get ComLoad Of hoJarr sTemp1 To iSuccess

    Move 0 To i
    Get ComSize Of hoJarr To iCount_i
    While (i < iCount_i)
        Get ComObjectAt Of hoJarr i To vJson
        If (IsComObject(vJson)) Begin
            Get Create (RefClass(cComChilkatJsonObject)) To hoJson
            Set pvComObject Of hoJson To vJson
        End
        Get ComIntOf Of hoJson "client_number" To iClient_number
        Get ComIntOf Of hoJson "consultant_number" To iConsultant_number
        Get ComStringOf Of hoJson "id" To sId
        Get ComStringOf Of hoJson "name" To sName
        Move 0 To j
        Get ComSizeOfArray Of hoJson "services" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJson To j
            Get ComStringOf Of hoJson "services[j].name" To sName
            Move 0 To k
            Get ComSizeOfArray Of hoJson "services[j].scopes" To iCount_k
            While (k < iCount_k)
                Set ComK Of hoJson To k
                Get ComStringOf Of hoJson "services[j].scopes[k]" To sStrVal
                Move (k + 1) To k
            Loop

            Move (j + 1) To j
        Loop

        Send Destroy of hoJson
        Move (i + 1) To i
    Loop



End_Procedure