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); }
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]); }
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>
- SF菜鸟笔记【Ajex调用Salesforce API】
- SF :Salesforce中,datalable
- SF菜鸟笔记【SF Solutions in My work】
- SF :Salesforce中,Billing Address
- SF :Salesforce中,Rights Management
- 在Java程序中调用Salesforce REST API
- SF :Salesforce中,动态拼接SOQL
- SF :Salesforce中,Get and Set
- SF菜鸟笔记【JS里获取List View里的选中记录IDs】
- SF:salesforce中,文件上传的接收对象
- SF :Salesforce中,reRender控件和rendered控件的使用
- SF :Salesforce中,用apex实现下拉列表
- SF :Salesforce中,look up 和 master detail关系
- SF :Salesforce中,关于审批的一些对象
- SF :Salesforce中,查询picklist的value的值
- facebook API 调用笔记
- salesforce 集成-REST API开发
- 菜鸟笔记:java调用sqlserver存储过程
- jAVA 获取Map中的值
- Effective Objective-C(第11-14条)动态绑定、objc_msgSend、消息转发机制
- IO的操作:流中复制文本、将制定文本中内容打印出来、在已有内容的文本中续写内容
- UML建模之用例图
- SQL关闭自增长列标识:SET IDENTITY_INSERT
- SF菜鸟笔记【Ajex调用Salesforce API】
- 自定义对话框
- mWebView拖动出现黑快、黑屏问题处理(兼容2.X版本)
- 商毅:泰达缺国安式稳定 客场没赢球能力只能反击
- UVa 437 - The Tower of Babylon
- Spring mvc 的controller
- Spring管理filter和servlet
- 国内各地图API坐标系统比较与转换
- 免责声明