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

SugarCRM Updating a Record

See more SugarCRM Examples

Demonstrates how to update a record in the Sugar instance using the //:record endpoint, and the PUT Http method. In this example we update the Account record and change it's name to "Updated Test Record".

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

#  Implements the following CURL command:

#  curl -X PUT -H OAuth-Token:<access_token> -H Cache-Control:no-cache -d '{ 
#     "name":"Updated Record"
#  }' http://<site_url>/rest/v10/Accounts/<record_id>

#  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": "Updated Record"
#  }

set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "name" "Updated Record"

CkHttp_SetRequestHeader $http "Cache-Control" "no-cache"
CkHttp_SetRequestHeader $http "OAuth-Token" "<access_token>"

set sbRequestBody [new_CkStringBuilder]

CkJsonObject_EmitSb $json $sbRequestBody

set resp [new_CkHttpResponse]

set success [CkHttp_HttpSb $http "PUT" "http://<site_url>/rest/v10/Accounts/<record_id>" $sbRequestBody "utf-8" "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkStringBuilder $sbRequestBody
    delete_CkHttpResponse $resp
    exit
}

set sbResponseBody [new_CkStringBuilder]

CkHttpResponse_GetBodySb $resp $sbResponseBody
set jResp [new_CkJsonObject]

CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0

puts "Response Body:"
puts [CkJsonObject_emit $jResp]

set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
    puts "Response Header:"
    puts [CkHttpResponse_header $resp]
    puts "Failed."
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkStringBuilder $sbRequestBody
    delete_CkHttpResponse $resp
    delete_CkStringBuilder $sbResponseBody
    delete_CkJsonObject $jResp
    exit
}

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

#  {
#    "id": "ab2222df-73da-0e92-6887-5705428f4d68",
#    "name": "Updated Test Record",
#    "date_entered": "2016-04-06T15:03:21-04:00",
#    "date_modified": "2016-04-06T15:03:22-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

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

delete_CkHttp $http
delete_CkJsonObject $json
delete_CkStringBuilder $sbRequestBody
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp