Sample code for 30+ languages & platforms
PureBasic

SugarCRM Create a Record List

See more SugarCRM Examples

Create a record list in Sugar consisting of a set of ids.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkRest::ckConnect(rest,"your.site.domain",443,1,1)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    CkRest::ckAddHeader(rest,"Cache-Control","no-cache")
    CkRest::ckAddHeader(rest,"OAuth-Token","<access_token>")

    ; The following code creates the JSON request body.
    ; The JSON created by this code is shown below.
    jsonReq.i = CkJsonObject::ckCreate()
    If jsonReq.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateString(jsonReq,"records[0]","f16760a4-3a52-f77d-1522-5703ca28925f")
    CkJsonObject::ckUpdateString(jsonReq,"records[1]","ec409fbb-2b22-4f32-7fa1-5703caf78dc3")

    ; The JSON request body created by the above code:

    ; {
    ;   "records": [
    ;     "f16760a4-3a52-f77d-1522-5703ca28925f",
    ;     "ec409fbb-2b22-4f32-7fa1-5703caf78dc3"
    ;   ]
    ; }

    sbReq.i = CkStringBuilder::ckCreate()
    If sbReq.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckEmitSb(jsonReq,sbReq)

    CkRest::ckAddHeader(rest,"Content-Type","application/json")

    sbJson.i = CkStringBuilder::ckCreate()
    If sbJson.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkRest::ckFullRequestSb(rest,"POST","/rest/v10/Accounts/record_list",sbReq,sbJson)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkJsonObject::ckDispose(jsonReq)
        CkStringBuilder::ckDispose(sbReq)
        CkStringBuilder::ckDispose(sbJson)
        ProcedureReturn
    EndIf

    If CkRest::ckResponseStatusCode(rest) <> 200
        Debug "Received error response code: " + Str(CkRest::ckResponseStatusCode(rest))
        Debug "Response body:"
        Debug CkStringBuilder::ckGetAsString(sbJson)
        CkRest::ckDispose(rest)
        CkJsonObject::ckDispose(jsonReq)
        CkStringBuilder::ckDispose(sbReq)
        CkStringBuilder::ckDispose(sbJson)
        ProcedureReturn
    EndIf

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(json,sbJson)

    ; The following code parses the JSON response.
    ; A sample JSON response is shown below the sample code.
    id.s
    assigned_user_id.s
    module_name.s
    date_modified.s
    i.i
    count_i.i
    strVal.s

    id = CkJsonObject::ckStringOf(json,"id")
    assigned_user_id = CkJsonObject::ckStringOf(json,"assigned_user_id")
    module_name = CkJsonObject::ckStringOf(json,"module_name")
    date_modified = CkJsonObject::ckStringOf(json,"date_modified")
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(json,"records")
    While i < count_i
        CkJsonObject::setCkI(json, i)
        strVal = CkJsonObject::ckStringOf(json,"records[i]")
        i = i + 1
    Wend

    ; A sample JSON response body that is parsed by the above code:

    ; {
    ;   "id": "ef963176-4845-bc55-b03e-570430b4173c",
    ;   "assigned_user_id": "1",
    ;   "module_name": "Accounts",
    ;   "records": [
    ;     "f16760a4-3a52-f77d-1522-5703ca28925f",
    ;     "ec409fbb-2b22-4f32-7fa1-5703caf78dc3"
    ;   ],
    ;   "date_modified": "2016-04-05 21:39:19"
    ; }

    Debug "Example Completed."


    CkRest::ckDispose(rest)
    CkJsonObject::ckDispose(jsonReq)
    CkStringBuilder::ckDispose(sbReq)
    CkStringBuilder::ckDispose(sbJson)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure