Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

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