Newer Version Available
Examples of Synchronous Calls
Data Call Examples
login Example:
1try{
2 var result = sforce.connection.login("myname@myemail.com", "password");
3 log("logged in with session id " + result.sessionId);
4 }catch(error) {
5 if (error.faultcode.indexOf("INVALID_LOGIN") != -1) {
6 log("check your username and passwd, invalid login");
7 } else {
8 log(error);
9 }
10 }query Example:
1 result = sforce.connection.query("Select Name, Id from User");
2 records = result.getArray("records");
3
4 for (var i=0; i< records.length; i++) {
5 var record = records[i];
6 log(record.Name + " -- " + record.Id);
7 }queryMore Example:
1var result = sforce.connection.query("select name, id from account");
2
3 var queryMore = true;
4 while (queryMore) {
5 var records = result.getArray("records");
6 var sb = new sforce.StringBuffer();
7
8 for (var i = 0; i < records.length; i++) {
9 sb.append(records[i].Name).append(",");
10 }
11
12 log(records.length);
13 log(sb.toString());
14
15 if (result.getBoolean("done")) {
16 queryMore = false;
17 } else {
18
19 result = sforce.connection.queryMore(result.queryLocator);
20 }
21 }queryAll Example:
1var result = sforce.connection.queryAll("Select Name, Id from Account");
2 var records = result.getArray("records");
3
4 for (var i=0; i<records.length; i++) {
5 var record = records[i];
6 log(record.Name + " -- " + record.Id);
7 }Relationship Query Example—Child to Parent:
1var result = sforce.connection.query("SELECT c.Id, c.firstname, " +
2 "c.lastname, c.leadsource, a.Id, a.name, a.industry, c.accountId " +
3 "FROM Contact c, c.account a ORDER BY leadsource LIMIT 10");
4
5 var it = new sforce.QueryResultIterator(result);
6
7 while(it.hasNext()) {
8 var record = it.next();
9 var accountName = record.Account ? record.Account.Name : null;
10
11 log( record.FirstName + " " + record.LastName +
12 " in account " + accountName);
13 }Relationship Query Example—Parent to Child:
1var result = sforce.connection.query("select a.Name, a.Industry, " +
2 "(select c.LastName, c.LeadSource from a.Contacts c) " +
3 "from account a order by industry limit 100");
4
5 var ait = new sforce.QueryResultIterator(result);
6
7 while(ait.hasNext()) {
8 var account = ait.next();
9
10 var contacts = [];
11 if (account.Contacts) {
12 var cit = new sforce.QueryResultIterator(account.Contacts);
13 while(cit.hasNext()) {
14 var contact = cit.next();
15 contacts.push(contact.LastName);
16 }
17 }
18
19 log(account.Name + ": " + contacts.join(","));
20 }create Example:
1var account = new sforce.SObject("Account");
2 account.Name = "my new account";
3 var result = sforce.connection.create([account]);
4
5 if (result[0].getBoolean("success")) {
6 log("new account created with id " + result[0].id);
7 } else {
8 log("failed to create account " + result[0]);
9 }Batch create Example:
1var accounts = [];
2
3 for (var i=0; i<10; i++) {
4 var account = new sforce.SObject("Account");
5 account.Name = "my new account " + i;
6 accounts.push(account);
7 }
8
9 var result = sforce.connection.create(accounts);
10
11 for (var i=0; i<result.length; i++) {
12 if (result[i].getBoolean("success")) {
13 log("new account created with id " + result[i].id);
14 } else {
15 log("failed to create account " + result[i]);
16 }
17 }delete Example:
1//create an example account
2 var account = new sforce.SObject("Account");
3 account.Name = "my new account";
4 var result = sforce.connection.create([account]);
5
6 if (result[0].getBoolean("success")) {
7 log("new account created with id " + result[0].id);
8 account.Id = result[0].id;
9 } else {
10 throw ("failed to create account " + result[0]);
11 }
12
13 //now delete the example account
14 var delResult = sforce.connection.deleteIds([account.Id]);
15 if (delResult[0].getBoolean("success")) {
16 log("account with id " + result[0].id + " deleted");
17 } else {
18 log("failed to delete account " + result[0]);
19 }merge Example:
1//create two accounts
2 var account1 = new sforce.SObject("Account");
3 account1.Name = "myName";
4 account1.Phone = "2837484894";
5
6 var account2 = new sforce.SObject("Account");
7 account2.Name = "anotherName";
8 account2.Phone = "938475950";
9
10 var result = sforce.connection.create([account1, account2]);
11 if (result.length != 2) throw "create failed";
12
13 account1.id = result[0].id;
14 account2.id = result[1].id;
15
16 //create merge request
17 var request = new sforce.MergeRequest();
18 request.masterRecord = account1;
19 request.recordToMergeIds = account2.id;
20
21 //call merge
22 result = sforce.connection.merge([request]);
23
24 if (result[0].getBoolean("success")) {
25 log("merge success " + result[0]);
26 } else {
27 log("merge failed " + result[0]);
28 }
process Example:
1var request = new sforce.ProcessSubmitRequest();
2request.objectId = "id of object that has a workflow rule on it"; // valid id
3request.comments = "automated approval";
4
5var request2 = new sforce.ProcessSubmitRequest();
6request2.objectId = 'id of object that does NOT have a workflow rule on it' ; // valid id, not useful for workflow
7request2.comments = "approval that will fail";
8
9var processRes = sforce.connection.process([request, request2]);
10
11if(!processRes[0].getBoolean('success')){
12 log("The first process request failed and it should not have");
13}
14
15if(processRes[1].getBoolean('success')){
16 log("The second process request succeeded and it should not have");
17}
18
19log(processRes[0].errors);
20log(processRes[1].errors);update Example:
1//create an account
2 var account = new sforce.SObject("Account");
3 account.Name = "myName";
4 account.Phone = "2837484894";
5 result = sforce.connection.create([account]);
6
7 //update that account
8 account.id = result[0].id;
9 account.Phone = "12398238";
10 result = sforce.connection.update([account]);
11
12 if (result[0].getBoolean("success")) {
13 log("account with id " + result[0].id + " updated");
14 } else {
15 log("failed to update account " + result[0]);
16 }undelete Example:
1var account = new sforce.SObject("Account");
2 account.Name = "account to delete";
3 account.Phone = "2837484894";
4 result = sforce.connection.create([account]);
5 account.id = result[0].id;
6 log("account created " + account);
7
8 result = sforce.connection.deleteIds([account.id]);
9 if (!result[0].getBoolean("success")) throw "delete failed";
10 log("account deleted " + result);
11
12 result = sforce.connection.undelete([account.id]);
13 if (!result[0].getBoolean("success")) throw "undelete failed";
14 log("account undeleted " + result[0]);upsert Example:
1var account = new sforce.SObject("Account");
2account.Name = "TestingAjaxUpsert";
3account.Phone = "2837484894";
4// this will insert an account
5var result = sforce.connection.upsert("Id", [account]);
6
7account.Id = result[0].id;
8account.Name = "TestingAjaxUpsert2";
9// this will update the account
10result = sforce.connection.upsert("Id", [account]);
11
12if(result[0].getBoolean("success") && result[0].id == account.Id) {
13log("upsert updated the account as expected");
14}
15else {
16log("upsert failed!");
17}retrieve Example:
1var account = new sforce.SObject("Account");
2 account.Name = "retrieve update test";
3 account.Phone = "2837484894";
4 var result = sforce.connection.create([account]);
5 if (result[0].getBoolean("success") == false) throw "create failed";
6 log("account created " + result[0]);
7
8 result = sforce.connection.retrieve("Name,Phone", "Account", [result[0].id]);
9 if (result[0] == null) throw "retrive failed";
10 log("account retrieved: " + result[0]);
11
12 result[0].Phone = "111111111111";
13 result = sforce.connection.update(result);
14 if (result[0].getBoolean("success") == false) throw "update failed";
15 log("account updated: " + result[0]);search Example:
1var result = sforce.connection.search(
2 "find {manoj} in Name fields RETURNING Account(name, id)");
3
4 if (result) {
5 var records = result.getArray("searchRecords");
6
7 for (var i=0; i<records.length; i++) {
8 var record = records[i].record;
9 log(record.Id + " -- " + record.Name);
10 }
11 }getDeleted Example:
1var start = new Date();
2 var end = new Date();
3 start.setDate(end.getDate() - 1);
4
5 var result = sforce.connection.getDeleted("Account", start, end);
6
7 var records = result.getArray("deletedRecords");
8
9 log("following records are deleted:");
10
11 for (var i=0; i<records.length; i++) {
12 log(records[i].id);
13 }getUpdated Example:
1var start = new Date();
2 var end = new Date();
3 start.setDate(end.getDate() - 1);
4
5 var result = sforce.connection.getUpdated("Account", start, end);
6
7 var records = result.getArray("ids");
8
9 log("following records are updated:");
10 for (var i=0; i<records.length; i++) {
11 log(records[i]);
12 }convertLead Example:
1var account = new sforce.SObject("Account");
2 account.Name = "convert lead sample";
3 account.Phone = "2837484894";
4 result = sforce.connection.create([account]);
5 account.Id = result[0].id;
6
7 var lead = new sforce.SObject("Lead");
8 lead.Country = "US";
9 lead.Description = "This is a description";
10 lead.Email = "someone@somewhere.com";
11 lead.FirstName = "first";
12 lead.LastName = "last";
13 lead.Company = account.Name;
14 result = sforce.connection.create([lead]);
15 lead.Id = result[0].id;
16
17 var convert = new sforce.LeadConvert();
18 convert.accountId = account.Id;
19 convert.leadId = lead.Id;
20 convert.convertedStatus = "Qualified";
21
22 result = sforce.connection.convertLead([convert]);
23 if (result[0].getBoolean("success")) {
24 log("lead converted " + result[0]);
25 } else {
26 log("lead convert failed " + result[0]);
27 }Describe Examples
describeSObject Account Example:
1var result = sforce.connection.describeSObject("Account");
2
3 log(result.label + " : " + result.name + " : ");
4
5 log("---------- fields ---------");
6 for (var i=0; i<result.fields.length; i++) {
7 var field = result.fields[i];
8 log(field.name + " : " + field.label + " : " + field.length + " : ");
9 }
10
11 log("---------- child relationships ---------");
12
13 for (var i=0; i<result.childRelationships.length; i++) {
14 var cr = result.childRelationships[i];
15 log(cr.field + " : " + cr.childSObject);
16 }
17
18 log("---------- record type info ----------");
19 for (var i=0; i<result.recordTypeInfos.length; i++) {
20 var rt = result.recordTypeInfos[i];
21 log(rt.name);
22 }describeSObjects Example:
1var result = sforce.connection.describeSObjects(["Account", "Contact"]);
2
3 for (var i=0; i<result.length; i++) {
4 log(result[i].label + " : " + result[i].name + " : ");
5 }describeGlobal Example:
1var result = sforce.connection.describeGlobal();
2
3 var sobjects = result.getArray("sobjects");
4 for (var i=0; i<sobjects.length; i++) {
5 log(sobjects[i].name);
6 }describeLayout Example:
1var result = sforce.connection.describeLayout("Account");
2
3 var layouts = result.getArray("layouts");
4
5 for (var i=0; i<layouts.length; i++) {
6 var layout = layouts[0];
7 detailLayoutSections(layout.detailLayoutSections);
8 }
9
10 function detailLayoutSections(sections) {
11 for (var i=0; i<sections.length; i++) {
12 var section = sections[i];
13 log(section.columns + ":" + section.heading + ":");
14 layoutRows(section.getArray("layoutRows"));
15 }
16 }
17
18 function layoutRows(rows) {
19 for (var i=0; i<rows.length; i++) {
20 var row = rows[i];
21 layoutItems(row.getArray("layoutItems"));
22 }
23 }
24
25 function layoutItems(items) {
26 for (var i=0; i<items.length; i++) {
27 var item = items[i];
28 log(" " + item.label);
29 }
30 }describeTabs Example:
1var result = sforce.connection.describeTabs();
2
3 for (var i=0; i<result.length; i++) {
4 var tabSet = result[i];
5 log( tabSet.label);
6 displayTabs(tabSet.get("tabs"));
7 }
8
9 function displayTabs(tabs) {
10 for( var i=0; i<tabs.length; i++) {
11 var tab = tabs[i];
12 log( " " + tab.label + " " + tab.url);
13 }
14 }Utility Examples
getServerTimestamp Example:
1var result = sforce.connection.getServerTimestamp();
2 log(result.timestamp);getUserInfo Example:
1var user = sforce.connection.getUserInfo();
2 log("Hello " + user.userName);
3 log("Your email id is " + user.userEmail);
4 log("and you work for " + user.organizationName);resetPassword and setPassword Example:
1var username = "myname@myemail.com";
2
3 var result = sforce.connection.query(
4 "SELECT ID from User WHERE User.username='" + username + "'");
5
6 var records = result.getArray("records");
7 if (records.length != 1) throw "unable to find user";
8 var id = records[0].Id;
9
10 sforce.connection.resetPassword(id);
11 sforce.connection.setPassword(id, "123456");sendEmail Example:
1// single mail request
2var singleRequest = new sforce.SingleEmailMessage();
3singleRequest.replyTo = "jsmith@acme.com";
4singleRequest.subject = "sent through ajax test driver";
5
6singleRequest.plainTextBody = "this test went through ajax";
7singleRequest.toAddresses = ["noone@nowhere.com"];
8
9// mass mail request - need to get email template ID
10
11var queryResponse = sforce.connection.query("select id from emailtemplate");
12var templatedId = queryResponse.getArray("records")[0].Id;
13var massRequest = new sforce.MassEmailMessage();
14massRequest.targetObjectIds = [globalContact.id];
15massRequest.replyTo = "jsmith@acme.com";
16massRequest.subject = "sent through ajax test driver";
17massRequest.templateId = templateId;
18
19var sendMailRes = sforce.connection.sendEmail([singleRequest, massRequest]);The following sample shows best practice techniques by putting all processing in a function that does not execute until the HTML page is loaded.
1<html>
2<head>
3 <script src="/soap/ajax/38.0/connection.js"></script>
4 <script>
5 var contactId = "{!Contact_ID}";
6 function initPage() {
7 try{
8 var contact = sforce.connection.retrieve("AccountId", "Contact", [contactId])[0];
9 var accountsRetrieved = sforce.connection.retrieve("Id, Name, Industry,
10 LastModifiedDate", "Account", [contact.AccountId]);
11 if (accountsRetrieved.length > 0) {
12 var account = accountsRetrieved.records[0];
13 document.body.innerHTML += "Account name: <a href='/" + account.Id;
14 document.body.innerHTML += "' target='_blank'>" + account.Name + "</a><br>;
15 document.body.innerHTML += "Industry: " + account.Industry + "<br>";
16 }
17 } catch (e) {
18 document.body.innerHTML += "Error retrieving contact information";
19 document.body.innerHTML += "<br>Fault code: " + e.faultcode;
20 document.body.innerHTML += "<br>Fault string: " + e.faultstring;
21 }
22 }
23 </script>
24</head>
25<body onload="initPage();">
26
27</body>
28</html>