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

SugarCRM Create a Record

See more SugarCRM Examples

Submit a record to the Sugar instance using the / endpoint. In this example we are going to create an Account record with a Name of 'Test Record' and an email of 'test@sugar.com'.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

    ;  This example assumes 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

    ;  Implements the following CURL command:

    ;  curl -X POST -H OAuth-Token:<access_token> -H Cache-Control:no-cache -d '{ 
    ;     "name":"Test Record",
    ;     "email1":"test@sugar.com"
    ;  }' http://<site_url>/rest/v10/Accounts

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

    ;  The following JSON is sent in the request body.

    ;  {
    ;    "name": "Test Record",
    ;    "email1": "test@sugar.com"
    ;  }

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

    CkJsonObject::ckUpdateString(json,"name","Test Record")
    CkJsonObject::ckUpdateString(json,"email1","test@sugar.com")

    CkHttp::ckSetRequestHeader(http,"Cache-Control","no-cache")
    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","http://<site_url>/rest/v10/Accounts",json,"application/json",resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(json)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

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

    CkHttpResponse::ckGetBodySb(resp,sbResponseBody)
    jResp.i = CkJsonObject::ckCreate()
    If jResp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jResp,sbResponseBody)
    CkJsonObject::setCkEmitCompact(jResp, 0)

    Debug "Response Body:"
    Debug CkJsonObject::ckEmit(jResp)

    respStatusCode.i = CkHttpResponse::ckStatusCode(resp)
    Debug "Response Status Code = " + Str(respStatusCode)
    If respStatusCode >= 400
        Debug "Response Header:"
        Debug CkHttpResponse::ckHeader(resp)
        Debug "Failed."
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(json)
        CkHttpResponse::ckDispose(resp)
        CkStringBuilder::ckDispose(sbResponseBody)
        CkJsonObject::ckDispose(jResp)
        ProcedureReturn
    EndIf

    ;  Sample JSON response:
    ;  (Sample code for parsing the JSON response is shown below)

    ;  {
    ;    "id": "ab2222df-73da-0e92-6887-5705428f4d68",
    ;    "name": "Test Record",
    ;    "date_entered": "2016-04-06T13:07:41-04:00",
    ;    "date_modified": "2016-04-06T13:07:41-04:00",
    ;    "modified_user_id": "1",
    ;    "modified_by_name": "Administrator",
    ;    "modified_user_link": {
    ;      "full_name": "Administrator",
    ;      "id": "1",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "delete": "no",
    ;        "_hash": "8e11bf9be8f04daddee9d08d44ea891e"
    ;      }
    ;    },
    ;    "created_by": "1",
    ;    "created_by_name": "Administrator",
    ;    "created_by_link": {
    ;      "full_name": "Administrator",
    ;      "id": "1",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "delete": "no",
    ;        "_hash": "8e11bf9be8f04daddee9d08d44ea891e"
    ;      }
    ;    },
    ;    "description": "",
    ;    "deleted": false,
    ;    "facebook": "",
    ;    "twitter": "",
    ;    "googleplus": "",
    ;    "account_type": "",
    ;    "industry": "",
    ;    "annual_revenue": "",
    ;    "phone_fax": "",
    ;    "billing_address_street": "",
    ;    "billing_address_street_2": "",
    ;    "billing_address_street_3": "",
    ;    "billing_address_street_4": "",
    ;    "billing_address_city": "",
    ;    "billing_address_state": "",
    ;    "billing_address_postalcode": "",
    ;    "billing_address_country": "",
    ;    "rating": "",
    ;    "phone_office": "",
    ;    "phone_alternate": "",
    ;    "website": "",
    ;    "ownership": "",
    ;    "employees": "",
    ;    "ticker_symbol": "",
    ;    "shipping_address_street": "",
    ;    "shipping_address_street_2": "",
    ;    "shipping_address_street_3": "",
    ;    "shipping_address_street_4": "",
    ;    "shipping_address_city": "",
    ;    "shipping_address_state": "",
    ;    "shipping_address_postalcode": "",
    ;    "shipping_address_country": "",
    ;    "parent_id": "",
    ;    "sic_code": "",
    ;    "duns_num": "",
    ;    "parent_name": "",
    ;    "member_of": {
    ;      "name": "",
    ;      "id": "",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "_hash": "654d337e0e912edaa00dbb0fb3dc3c17"
    ;      }
    ;    },
    ;    "campaign_id": "",
    ;    "campaign_name": "",
    ;    "campaign_accounts": {
    ;      "name": "",
    ;      "id": "",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "_hash": "654d337e0e912edaa00dbb0fb3dc3c17"
    ;      }
    ;    },
    ;    "following": true,
    ;    "my_favorite": false,
    ;    "tag": [
    ;    ],
    ;    "assigned_user_id": "",
    ;    "assigned_user_name": "",
    ;    "assigned_user_link": {
    ;      "full_name": "",
    ;      "id": "",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "_hash": "654d337e0e912edaa00dbb0fb3dc3c17"
    ;      }
    ;    },
    ;    "team_count": "",
    ;    "team_count_link": {
    ;      "team_count": "",
    ;      "id": "1",
    ;      "_acl": {
    ;        "fields": [
    ;        ],
    ;        "_hash": "654d337e0e912edaa00dbb0fb3dc3c17"
    ;      }
    ;    },
    ;    "team_name": [
    ;      {
    ;        "id": 1,
    ;        "name": "Global",
    ;        "name_2": "",
    ;        "primary": true
    ;      }
    ;    ],
    ;    "email": [
    ;      {
    ;        "email_address": "test@sugar.com",
    ;        "invalid_email": false,
    ;        "opt_out": false,
    ;        "primary_address": true,
    ;        "reply_to_address": false
    ;      }
    ;    ],
    ;    "email1": "test@sugar.com",
    ;    "email2": "",
    ;    "invalid_email": false,
    ;    "email_opt_out": false,
    ;    "email_addresses_non_primary": "",
    ;    "_acl": {
    ;      "fields": {}
    ;    },
    ;    "_module": "Accounts"
    ;  }

    ;  Sample code for parsing the JSON response...
    ;  Use the following online tool to generate parsing code from sample JSON:
    ;  Generate Parsing Code from JSON

    id.s
    name.s
    date_entered.s
    date_modified.s
    modified_user_id.s
    modified_by_name.s
    modified_user_linkFull_name.s
    modified_user_linkId.s
    modified_user_link_aclDelete.s
    modified_user_link_acl_hash.s
    created_by.s
    created_by_name.s
    created_by_linkFull_name.s
    created_by_linkId.s
    created_by_link_aclDelete.s
    created_by_link_acl_hash.s
    description.s
    deleted.i
    facebook.s
    twitter.s
    googleplus.s
    account_type.s
    industry.s
    annual_revenue.s
    phone_fax.s
    billing_address_street.s
    billing_address_street_2.s
    billing_address_street_3.s
    billing_address_street_4.s
    billing_address_city.s
    billing_address_state.s
    billing_address_postalcode.s
    billing_address_country.s
    rating.s
    phone_office.s
    phone_alternate.s
    website.s
    ownership.s
    employees.s
    ticker_symbol.s
    shipping_address_street.s
    shipping_address_street_2.s
    shipping_address_street_3.s
    shipping_address_street_4.s
    shipping_address_city.s
    shipping_address_state.s
    shipping_address_postalcode.s
    shipping_address_country.s
    parent_id.s
    sic_code.s
    duns_num.s
    parent_name.s
    member_ofName.s
    member_ofId.s
    member_of_acl_hash.s
    campaign_id.s
    campaign_name.s
    campaign_accountsName.s
    campaign_accountsId.s
    campaign_accounts_acl_hash.s
    following.i
    my_favorite.i
    assigned_user_id.s
    assigned_user_name.s
    assigned_user_linkFull_name.s
    assigned_user_linkId.s
    assigned_user_link_acl_hash.s
    team_count.s
    team_count_linkTeam_count.s
    team_count_linkId.s
    team_count_link_acl_hash.s
    email1.s
    email2.s
    invalid_email.i
    email_opt_out.i
    email_addresses_non_primary.s
    v_module.s
    i.i
    count_i.i
    id_int.i
    name_2.s
    primary.i
    email_address.s
    opt_out.i
    primary_address.i
    reply_to_address.i

    id = CkJsonObject::ckStringOf(jResp,"id")
    name = CkJsonObject::ckStringOf(jResp,"name")
    date_entered = CkJsonObject::ckStringOf(jResp,"date_entered")
    date_modified = CkJsonObject::ckStringOf(jResp,"date_modified")
    modified_user_id = CkJsonObject::ckStringOf(jResp,"modified_user_id")
    modified_by_name = CkJsonObject::ckStringOf(jResp,"modified_by_name")
    modified_user_linkFull_name = CkJsonObject::ckStringOf(jResp,"modified_user_link.full_name")
    modified_user_linkId = CkJsonObject::ckStringOf(jResp,"modified_user_link.id")
    modified_user_link_aclDelete = CkJsonObject::ckStringOf(jResp,"modified_user_link._acl.delete")
    modified_user_link_acl_hash = CkJsonObject::ckStringOf(jResp,"modified_user_link._acl._hash")
    created_by = CkJsonObject::ckStringOf(jResp,"created_by")
    created_by_name = CkJsonObject::ckStringOf(jResp,"created_by_name")
    created_by_linkFull_name = CkJsonObject::ckStringOf(jResp,"created_by_link.full_name")
    created_by_linkId = CkJsonObject::ckStringOf(jResp,"created_by_link.id")
    created_by_link_aclDelete = CkJsonObject::ckStringOf(jResp,"created_by_link._acl.delete")
    created_by_link_acl_hash = CkJsonObject::ckStringOf(jResp,"created_by_link._acl._hash")
    description = CkJsonObject::ckStringOf(jResp,"description")
    deleted = CkJsonObject::ckBoolOf(jResp,"deleted")
    facebook = CkJsonObject::ckStringOf(jResp,"facebook")
    twitter = CkJsonObject::ckStringOf(jResp,"twitter")
    googleplus = CkJsonObject::ckStringOf(jResp,"googleplus")
    account_type = CkJsonObject::ckStringOf(jResp,"account_type")
    industry = CkJsonObject::ckStringOf(jResp,"industry")
    annual_revenue = CkJsonObject::ckStringOf(jResp,"annual_revenue")
    phone_fax = CkJsonObject::ckStringOf(jResp,"phone_fax")
    billing_address_street = CkJsonObject::ckStringOf(jResp,"billing_address_street")
    billing_address_street_2 = CkJsonObject::ckStringOf(jResp,"billing_address_street_2")
    billing_address_street_3 = CkJsonObject::ckStringOf(jResp,"billing_address_street_3")
    billing_address_street_4 = CkJsonObject::ckStringOf(jResp,"billing_address_street_4")
    billing_address_city = CkJsonObject::ckStringOf(jResp,"billing_address_city")
    billing_address_state = CkJsonObject::ckStringOf(jResp,"billing_address_state")
    billing_address_postalcode = CkJsonObject::ckStringOf(jResp,"billing_address_postalcode")
    billing_address_country = CkJsonObject::ckStringOf(jResp,"billing_address_country")
    rating = CkJsonObject::ckStringOf(jResp,"rating")
    phone_office = CkJsonObject::ckStringOf(jResp,"phone_office")
    phone_alternate = CkJsonObject::ckStringOf(jResp,"phone_alternate")
    website = CkJsonObject::ckStringOf(jResp,"website")
    ownership = CkJsonObject::ckStringOf(jResp,"ownership")
    employees = CkJsonObject::ckStringOf(jResp,"employees")
    ticker_symbol = CkJsonObject::ckStringOf(jResp,"ticker_symbol")
    shipping_address_street = CkJsonObject::ckStringOf(jResp,"shipping_address_street")
    shipping_address_street_2 = CkJsonObject::ckStringOf(jResp,"shipping_address_street_2")
    shipping_address_street_3 = CkJsonObject::ckStringOf(jResp,"shipping_address_street_3")
    shipping_address_street_4 = CkJsonObject::ckStringOf(jResp,"shipping_address_street_4")
    shipping_address_city = CkJsonObject::ckStringOf(jResp,"shipping_address_city")
    shipping_address_state = CkJsonObject::ckStringOf(jResp,"shipping_address_state")
    shipping_address_postalcode = CkJsonObject::ckStringOf(jResp,"shipping_address_postalcode")
    shipping_address_country = CkJsonObject::ckStringOf(jResp,"shipping_address_country")
    parent_id = CkJsonObject::ckStringOf(jResp,"parent_id")
    sic_code = CkJsonObject::ckStringOf(jResp,"sic_code")
    duns_num = CkJsonObject::ckStringOf(jResp,"duns_num")
    parent_name = CkJsonObject::ckStringOf(jResp,"parent_name")
    member_ofName = CkJsonObject::ckStringOf(jResp,"member_of.name")
    member_ofId = CkJsonObject::ckStringOf(jResp,"member_of.id")
    member_of_acl_hash = CkJsonObject::ckStringOf(jResp,"member_of._acl._hash")
    campaign_id = CkJsonObject::ckStringOf(jResp,"campaign_id")
    campaign_name = CkJsonObject::ckStringOf(jResp,"campaign_name")
    campaign_accountsName = CkJsonObject::ckStringOf(jResp,"campaign_accounts.name")
    campaign_accountsId = CkJsonObject::ckStringOf(jResp,"campaign_accounts.id")
    campaign_accounts_acl_hash = CkJsonObject::ckStringOf(jResp,"campaign_accounts._acl._hash")
    following = CkJsonObject::ckBoolOf(jResp,"following")
    my_favorite = CkJsonObject::ckBoolOf(jResp,"my_favorite")
    assigned_user_id = CkJsonObject::ckStringOf(jResp,"assigned_user_id")
    assigned_user_name = CkJsonObject::ckStringOf(jResp,"assigned_user_name")
    assigned_user_linkFull_name = CkJsonObject::ckStringOf(jResp,"assigned_user_link.full_name")
    assigned_user_linkId = CkJsonObject::ckStringOf(jResp,"assigned_user_link.id")
    assigned_user_link_acl_hash = CkJsonObject::ckStringOf(jResp,"assigned_user_link._acl._hash")
    team_count = CkJsonObject::ckStringOf(jResp,"team_count")
    team_count_linkTeam_count = CkJsonObject::ckStringOf(jResp,"team_count_link.team_count")
    team_count_linkId = CkJsonObject::ckStringOf(jResp,"team_count_link.id")
    team_count_link_acl_hash = CkJsonObject::ckStringOf(jResp,"team_count_link._acl._hash")
    email1 = CkJsonObject::ckStringOf(jResp,"email1")
    email2 = CkJsonObject::ckStringOf(jResp,"email2")
    invalid_email = CkJsonObject::ckBoolOf(jResp,"invalid_email")
    email_opt_out = CkJsonObject::ckBoolOf(jResp,"email_opt_out")
    email_addresses_non_primary = CkJsonObject::ckStringOf(jResp,"email_addresses_non_primary")
    v_module = CkJsonObject::ckStringOf(jResp,"_module")
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"modified_user_link._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"created_by_link._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"member_of._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"campaign_accounts._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"tag")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"assigned_user_link._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"team_count_link._acl.fields")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"team_name")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        id_int = CkJsonObject::ckIntOf(jResp,"team_name[i].id")
        name = CkJsonObject::ckStringOf(jResp,"team_name[i].name")
        name_2 = CkJsonObject::ckStringOf(jResp,"team_name[i].name_2")
        primary = CkJsonObject::ckBoolOf(jResp,"team_name[i].primary")
        i = i + 1
    Wend
    i = 0
    count_i = CkJsonObject::ckSizeOfArray(jResp,"email")
    While i < count_i
        CkJsonObject::setCkI(jResp, i)
        email_address = CkJsonObject::ckStringOf(jResp,"email[i].email_address")
        invalid_email = CkJsonObject::ckBoolOf(jResp,"email[i].invalid_email")
        opt_out = CkJsonObject::ckBoolOf(jResp,"email[i].opt_out")
        primary_address = CkJsonObject::ckBoolOf(jResp,"email[i].primary_address")
        reply_to_address = CkJsonObject::ckBoolOf(jResp,"email[i].reply_to_address")
        i = i + 1
    Wend


    CkHttp::ckDispose(http)
    CkJsonObject::ckDispose(json)
    CkHttpResponse::ckDispose(resp)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jResp)


    ProcedureReturn
EndProcedure