Sample code for 30+ languages & platforms
PureBasic

SugarCRM: Importing Email Addresses (New Records)

See more SugarCRM Examples

Demonstrates how to import a new contact with email addresses.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

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

    CkHttp::setCkAccept(http, "application/json")

    ; The following JSON is sent in the request body:

    ; {
    ;   "first_name": "Rob",
    ;   "last_name": "Robertson",
    ;   "email": [
    ;     {
    ;       "email_address": "rob.robertson@sugar.crm",
    ;       "primary_address": "1",
    ;       "invalid_email": "0",
    ;       "opt_out": "0"
    ;     },
    ;     {
    ;       "email_address": "rob@sugar.crm",
    ;       "primary_address": "0",
    ;       "invalid_email": "0",
    ;       "opt_out": "1"
    ;     }
    ;   ]
    ; }

    ; Use this online tool to generate the code from sample JSON: 
    ; Generate Code to Create JSON

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

    CkJsonObject::ckUpdateString(jsonRequestBody,"first_name","Rob")
    CkJsonObject::ckUpdateString(jsonRequestBody,"last_name","Robertson")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].email_address","rob.robertson@sugar.crm")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].primary_address","1")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].invalid_email","0")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].opt_out","0")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].email_address","rob@sugar.crm")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].primary_address","0")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].invalid_email","0")
    CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].opt_out","1")

    url.s = "http://<site url>/rest/v10/Contacts"

    CkHttp::ckSetRequestHeader(http,"OAuth-Token","ACCESS_TOKEN")

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

    success = CkHttp::ckHttpJson(http,"POST",url,jsonRequestBody,"application/json",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(jsonRequestBody)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    Debug "Response Status Code: " + Str(CkHttpResponse::ckStatusCode(resp))

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

    CkJsonObject::ckLoad(jsonResponse,CkHttpResponse::ckBodyStr(resp))
    CkJsonObject::setCkEmitCompact(jsonResponse, 0)
    Debug CkJsonObject::ckEmit(jsonResponse)

    If CkHttpResponse::ckStatusCode(resp) >= 300
        Debug "Failed."
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(jsonRequestBody)
        CkHttpResponse::ckDispose(resp)
        CkJsonObject::ckDispose(jsonResponse)
        ProcedureReturn
    EndIf



    CkHttp::ckDispose(http)
    CkJsonObject::ckDispose(jsonRequestBody)
    CkHttpResponse::ckDispose(resp)
    CkJsonObject::ckDispose(jsonResponse)


    ProcedureReturn
EndProcedure