Newer Version Available

This content describes an older version of this product. View Latest

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 name formats differ depending on the direction of the relationship (parent-to-child or child-to-parent), and also depending on whether the objects are standard or custom objects. For more information, see Relationship Queries in the Salesforce SOQL and SOSL Reference Guide at www.salesforce.com/us/developer/docs/soql_sosl/index.htm.

Note

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>