SF菜鸟笔记【Ajex调用Salesforce API】

来源:互联网 发布:adobe muse for mac 编辑:程序博客网 时间:2024/05/20 13:06

网络来源 http://www.salesforce.com/us/developer/docs/ajax/Content/sforce_api_ajax_more_samples.htm


Data Call Examples

login Example:

  try{    var result = sforce.connection.login("myname@myemail.com", "password");    log("logged in with session id " + result.sessionId);  }catch(error) {    if (error.faultcode.indexOf("INVALID_LOGIN") != -1) {      log("check your username and passwd, invalid login");    } else {      log(error);    }  }

query Example:

  result = sforce.connection.query("Select Name, Id from User");  records = result.getArray("records");   for (var i=0; i< records.length; i++) {    var record = records[i];    log(record.Name + " -- " + record.Id);  }

queryMore Example:

var result = sforce.connection.query("select name, id from account");   var queryMore = true;  while (queryMore) {      var records = result.getArray("records");      var sb = new sforce.StringBuffer();       for (var i = 0; i < records.length; i++) {        sb.append(records[i].Name).append(",");      }       log(records.length);      log(sb.toString());       if (result.getBoolean("done")) {        queryMore = false;      } else {        result = sforce.connection.queryMore(result.queryLocator);    }  }

queryAll Example:

  var result = sforce.connection.queryAll("Select Name, Id from Account");  var records = result.getArray("records");   for (var i=0; i<records.length; i++) {    var record = records[i];    log(record.Name + " -- " + record.Id);  }

Relationship Query Example—Child to Parent:

  var result = sforce.connection.query("SELECT c.Id, c.firstname, " +    "c.lastname, c.leadsource, a.Id, a.name, a.industry, c.accountId " +    "FROM Contact c, c.account a ORDER BY leadsource LIMIT 10");   var it = new sforce.QueryResultIterator(result);   while(it.hasNext()) {    var record = it.next();    var accountName = record.Account ? record.Account.Name : null;     log( record.FirstName + " " + record.LastName +         " in account " + accountName);  }
Note
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, seeRelationship Queries in the Salesforce SOQL and SOSL Reference Guide at www.salesforce.com/us/developer/docs/soql_sosl/index.htm.

Relationship Query Example—Parent to Child:

  var result = sforce.connection.query("select a.Name, a.Industry, " +    "(select c.LastName, c.LeadSource from a.Contacts c) " +    "from account a order by industry limit 100");   var ait = new sforce.QueryResultIterator(result);   while(ait.hasNext()) {    var account = ait.next();     var contacts = [];    if (account.Contacts) {      var cit = new sforce.QueryResultIterator(account.Contacts);      while(cit.hasNext()) {        var contact = cit.next();        contacts.push(contact.LastName);      }    }     log(account.Name + ": " + contacts.join(","));  }

create Example:

  var account = new sforce.SObject("Account");  account.Name = "my new account";  var result = sforce.connection.create([account]);   if (result[0].getBoolean("success")) {    log("new account created with id " + result[0].id);  } else {    log("failed to create account " + result[0]);  }

Batch create Example:

  var accounts = [];   for (var i=0; i<10; i++) {    var account = new sforce.SObject("Account");    account.Name = "my new account " + i;    accounts.push(account);  }   var result = sforce.connection.create(accounts);   for (var i=0; i<result.length; i++) {    if (result[i].getBoolean("success")) {      log("new account created with id " + result[i].id);    } else {      log("failed to create account " + result[i]);    }  }

delete Example:

  //create an example account  var account = new sforce.SObject("Account");  account.Name = "my new account";  var result = sforce.connection.create([account]);   if (result[0].getBoolean("success")) {    log("new account created with id " + result[0].id);    account.Id = result[0].id;  } else {    throw ("failed to create account " + result[0]);  }   //now delete the example account  var delResult = sforce.connection.deleteIds([account.Id]);  if (delResult[0].getBoolean("success")) {    log("account with id " + result[0].id + " deleted");  } else {    log("failed to delete account " + result[0]);  } 

merge Example:

  //create two accounts  var account1 = new sforce.SObject("Account");  account1.Name = "myName";  account1.Phone = "2837484894";   var account2 = new sforce.SObject("Account");  account2.Name = "anotherName";  account2.Phone = "938475950";   var result = sforce.connection.create([account1, account2]);  if (result.length != 2) throw "create failed";   account1.id = result[0].id;  account2.id = result[1].id;   //create merge request  var request = new sforce.MergeRequest();  request.masterRecord = account1;  request.recordToMergeIds = account2.id;   //call merge  result = sforce.connection.merge([request]);   if (result[0].getBoolean("success")) {    log("merge success " + result[0]);  } else {    log("merge failed " + result[0]);  }
process Example:
var request = new sforce.ProcessSubmitRequest();request.objectId = "id of object that has a workflow rule on it"; // valid idrequest.comments = "automated approval";var request2 = new sforce.ProcessSubmitRequest();request2.objectId = 'id of object that does NOT have a workflow rule on it' ; // valid id, not useful for workflowrequest2.comments = "approval that will fail";var processRes = sforce.connection.process([request, request2]);if(!processRes[0].getBoolean('success')){            log("The first process request failed and it should not have");}if(processRes[1].getBoolean('success')){            log("The second process request succeeded and it should not have");}log(processRes[0].errors);log(processRes[1].errors);

update Example:

  //create an account  var account = new sforce.SObject("Account");  account.Name = "myName";  account.Phone = "2837484894";  result = sforce.connection.create([account]);   //update that account  account.id = result[0].id;  account.Phone = "12398238";  result = sforce.connection.update([account]);   if (result[0].getBoolean("success")) {    log("account with id " + result[0].id + " updated");  } else {    log("failed to update account " + result[0]);  }

undelete Example:

  var account = new sforce.SObject("Account");  account.Name = "account to delete";  account.Phone = "2837484894";  result = sforce.connection.create([account]);  account.id = result[0].id;  log("account created " + account);   result = sforce.connection.deleteIds([account.id]);  if (!result[0].getBoolean("success")) throw "delete failed";  log("account deleted " + result);   result = sforce.connection.undelete([account.id]);  if (!result[0].getBoolean("success")) throw "undelete failed";  log("account undeleted " + result[0]);

upsert Example:

var account = new sforce.SObject("Account");account.Name = "TestingAjaxUpsert";account.Phone = "2837484894";// this will insert an accountvar result = sforce.connection.upsert("Id", [account]);account.Id = result[0].id;account.Name = "TestingAjaxUpsert2";// this will update the accountresult = sforce.connection.upsert("Id", [account]);if(result[0].getBoolean("success") && result[0].id == account.Id) {log("upsert updated the account as expected");}else {log("upsert failed!");}

retrieve Example:

  var account = new sforce.SObject("Account");  account.Name = "retrieve update test";  account.Phone = "2837484894";  var result = sforce.connection.create([account]);  if (result[0].getBoolean("success") == false) throw "create failed";  log("account created " + result[0]);   result = sforce.connection.retrieve("Name,Phone", "Account", [result[0].id]);  if (result[0] == null) throw "retrive failed";  log("account retrieved: " + result[0]);   result[0].Phone = "111111111111";  result = sforce.connection.update(result);  if (result[0].getBoolean("success") == false) throw "update failed";  log("account updated: " + result[0]);

search Example:

  var result = sforce.connection.search(    "find {manoj} in Name fields RETURNING Account(name, id)");    if (result) {     var records = result.getArray("searchRecords");      for (var i=0; i<records.length; i++) {       var record = records[i].record;       log(record.Id + " -- " + record.Name);     }  }

getDeleted Example:

  var start = new Date();  var end = new Date();  start.setDate(end.getDate() - 1);   var result = sforce.connection.getDeleted("Account", start, end);   var records = result.getArray("deletedRecords");   log("following records are deleted:");   for (var i=0; i<records.length; i++) {    log(records[i].id);  }

getUpdated Example:

  var start = new Date();  var end = new Date();  start.setDate(end.getDate() - 1);   var result = sforce.connection.getUpdated("Account", start, end);   var records = result.getArray("ids");   log("following records are updated:");  for (var i=0; i<records.length; i++) {    log(records[i]);  }

convertLead Example:

  var account = new sforce.SObject("Account");  account.Name = "convert lead sample";  account.Phone = "2837484894";  result = sforce.connection.create([account]);  account.Id = result[0].id;   var lead = new sforce.SObject("Lead");  lead.Country = "US";  lead.Description = "This is a description";  lead.Email = "someone@somewhere.com";  lead.FirstName = "first";  lead.LastName = "last";  lead.Company = account.Name;  result = sforce.connection.create([lead]);  lead.Id = result[0].id;   var convert = new sforce.LeadConvert();  convert.accountId = account.Id;  convert.leadId = lead.Id;  convert.convertedStatus = "Qualified";   result = sforce.connection.convertLead([convert]);  if (result[0].getBoolean("success")) {    log("lead converted " + result[0]);  } else {    log("lead convert failed " + result[0]);  }

Describe Examples

describeSObject Account Example:

  var result = sforce.connection.describeSObject("Account");   log(result.label + " : " + result.name + " : ");   log("---------- fields ---------");  for (var i=0; i<result.fields.length; i++) {    var field = result.fields[i];    log(field.name + " : " + field.label + " : " + field.length + " : ");  }   log("---------- child relationships ---------");  for (var i=0; i<result.childRelationships.length; i++) {    var cr = result.childRelationships[i];    log(cr.field + " : " + cr.childSObject);  }   log("---------- record type info ----------");  for (var i=0; i<result.recordTypeInfos.length; i++) {    var rt = result.recordTypeInfos[i];    log(rt.name);  }

describeSObjects Example:

  var result = sforce.connection.describeSObjects(["Account", "Contact"]);   for (var i=0; i<result.length; i++) {    log(result[i].label + " : " + result[i].name + " : ");  }

describeGlobal Example:

  var result = sforce.connection.describeGlobal();   var sobjects = result.getArray("sobjects");  for (var i=0; i<sobjects.length; i++) {    log(sobjects[i].name);  }

describeLayout Example:

  var result = sforce.connection.describeLayout("Account");  var layouts = result.getArray("layouts");   for (var i=0; i<layouts.length; i++) {    var layout = layouts[0];    detailLayoutSections(layout.detailLayoutSections);  }    function detailLayoutSections(sections) {    for (var i=0; i<sections.length; i++) {      var section = sections[i];      log(section.columns + ":" + section.heading + ":");      layoutRows(section.getArray("layoutRows"));    }  }   function layoutRows(rows) {    for (var i=0; i<rows.length; i++) {      var row = rows[i];      layoutItems(row.getArray("layoutItems"));    }  }   function layoutItems(items) {    for (var i=0; i<items.length; i++) {      var item = items[i];      log("  " + item.label);    }  }

describeTabs Example:

  var result = sforce.connection.describeTabs();   for (var i=0; i<result.length; i++) {    var tabSet = result[i];    log( tabSet.label);    displayTabs(tabSet.get("tabs"));  }   function displayTabs(tabs) {    for( var i=0; i<tabs.length; i++) {      var tab = tabs[i];      log( "  " + tab.label + " " + tab.url);    }  }

Utility Examples

getServerTimestamp Example:

  var result = sforce.connection.getServerTimestamp();  log(result.timestamp);

getUserInfo Example:

  var user = sforce.connection.getUserInfo();  log("Hello " + user.userName);  log("Your email id is " + user.userEmail);  log("and you work for " + user.organizationName);

resetPassword and setPassword Example:

 var username = "myname@myemail.com";   var result = sforce.connection.query(    "SELECT ID from User WHERE User.username='" + username + "'");   var records = result.getArray("records");  if (records.length != 1) throw "unable to find user";  var id = records[0].Id;   sforce.connection.resetPassword(id);  sforce.connection.setPassword(id, "123456");

sendEmail Example:

// single mail request                        var singleRequest = new sforce.SingleEmailMessage();singleRequest.replyTo = "jsmith@acme.com";singleRequest.subject = "sent through ajax test driver";singleRequest.plainTextBody = "this test went through ajax";singleRequest.toAddresses = ["noone@nowhere.com"];// mass mail request - need to get email template IDvar queryResponse = sforce.connection.query("select id from emailtemplate");var templatedId = queryResponse.getArray("records")[0].Id;var massRequest = new sforce.MassEmailMessage();massRequest.targetObjectIds = [globalContact.id];massRequest.replyTo = "jsmith@acme.com";massRequest.subject = "sent through ajax test driver";massRequest.templateId = templateId;var 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.

<html><head>  <script src="/soap/ajax/32.0/connection.js"></script>  <script>    var contactId = "{!Contact_ID}";    function initPage() { try{        var contact = sforce.connection.retrieve("AccountId", "Contact", [contactId])[0];        var accountsRetrieved = sforce.connection.retrieve("Id, Name, Industry,                                 LastModifiedDate", "Account", [contact.AccountId]);        if (accountsRetrieved.length > 0) {             var account = accountsRetrieved.records[0];             document.body.innerHTML += "Account name: <a href='/" + account.Id;             document.body.innerHTML += "' target='_blank'>" + account.Name + "</a><br>;             document.body.innerHTML += "Industry: " + account.Industry + "<br>";        } } catch (e) {    document.body.innerHTML += "Error retrieving contact information";    document.body.innerHTML += "<br>Fault code: " + e.faultcode;    document.body.innerHTML += "<br>Fault string: " + e.faultstring;    } } </script></head><body onload="initPage();"> </body></html>

0 0