Sample code for 30+ languages & platforms
Visual FoxPro

SugarCRM: Importing Email Addresses (New Records)

See more SugarCRM Examples

Demonstrates how to import a new contact with email addresses.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonRequestBody
LOCAL lcUrl
LOCAL loResp
LOCAL loJsonResponse

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

loHttp.Accept = "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

loJsonRequestBody = CreateObject('Chilkat.JsonObject')
loJsonRequestBody.UpdateString("first_name","Rob")
loJsonRequestBody.UpdateString("last_name","Robertson")
loJsonRequestBody.UpdateString("email[0].email_address","rob.robertson@sugar.crm")
loJsonRequestBody.UpdateString("email[0].primary_address","1")
loJsonRequestBody.UpdateString("email[0].invalid_email","0")
loJsonRequestBody.UpdateString("email[0].opt_out","0")
loJsonRequestBody.UpdateString("email[1].email_address","rob@sugar.crm")
loJsonRequestBody.UpdateString("email[1].primary_address","0")
loJsonRequestBody.UpdateString("email[1].invalid_email","0")
loJsonRequestBody.UpdateString("email[1].opt_out","1")

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

loHttp.SetRequestHeader("OAuth-Token","ACCESS_TOKEN")

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("POST",lcUrl,loJsonRequestBody,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJsonRequestBody
    RELEASE loResp
    CANCEL
ENDIF

? "Response Status Code: " + STR(loResp.StatusCode)

loJsonResponse = CreateObject('Chilkat.JsonObject')
loJsonResponse.Load(loResp.BodyStr)
loJsonResponse.EmitCompact = 0
? loJsonResponse.Emit()

IF (loResp.StatusCode >= 300) THEN
    ? "Failed."
    RELEASE loHttp
    RELEASE loJsonRequestBody
    RELEASE loResp
    RELEASE loJsonResponse
    CANCEL
ENDIF

RELEASE loHttp
RELEASE loJsonRequestBody
RELEASE loResp
RELEASE loJsonResponse