8/18/2019 Ajax-Salesforce Complete Material
1/15
Ajax tool kit with salesforce
Salesforce offer AJAX tool kit to run javascript and allowing user to make a
connection with Salesforce and query salesforce from javascript, the data in-
return can be handled in own fashion to be displayed on the page
Note : Ajax tool kit should be used when you want to work with records upto
200 with 5 to 6 fields in the object
he following are e!amples of scenarios that require case-by-case analysis"
#pdate more than $%% records&
#pdate records that are unusually large& 'or e!ample, what happens ifthe user clicks the browser stop button(
)ecalculate a comple! value for more than $%% records&
Step *" include connection&js in the visualforce page&
+script src.soap.aja!./%&%.connection&js typete!t.javascript0
+.script0
Step $" 1ass the session id to 2onnection&Session34
*&sforce&connection&session3d 567Api&Session8349:
;r$&username,password?resettoken@:
sforce&connection&session3dresult&session3d:
step / "str@:
Step E" 2heck wheather the query)esult has element :
if>query)esult&siFe 0%@
Step G" Het all the records into an array
var records query)esult&getArray>records@:
8/18/2019 Ajax-Salesforce Complete Material
2/15
C!ample *"Iogin to the sforce using loginid and password"
+ape!"page 0 +ape!"form0 +ape!"commandutton valueclick onclickshow>@.0 +.ape!"form0 +script src.soap.aja!./%&%.connection&js typete!t.javascript0 +.script0 +script0 function show>@5 try5
var result sforce&connection&login>batch*KLMDCdge&com, password?recuritytoken@:
alert>logged in with session id ? result&session3d@: 9catch>error@ 5
alert>error@: 9 9 +.script0
+.ape!"page0C!ample $" Iogin to the sforce using A13 sessionid
+ape!"page idpage3d0+ape!"form0+script src.soap.aja!./%&%.connection&js typete!t.javascript0+.script0+script0function show>@ 5 try 5 sforce&connection&session3d 567Api&Session8349:
var query)esult sforce&connection&query>Select Name, 3ndustry 'rom Account where Name6null@ if >query)esult&siFe 0 %@ 5
var output :var records query)esult&getArray>records@:
var result:for >var i %: i +records&length: i??@ 5 var account recordsOiP: result ? account&Name :
9 document&getClementy3d>5672omponent&output9@&innerQRIresult:
9
9 catch>error@ 5query'ailed>error, output@:
9
9 function query'ailed>error, out@ 5 out&innerQRI +font colorred0An error"+.font0 +p0 ? error: 9 +.script0 +ape!"commandutton valueclick onclickshow>@ .0 +ape!"outputIabel idoutput0+.ape!"outputIabel0+.ape!"form0+.ape!"page0
8/18/2019 Ajax-Salesforce Complete Material
3/15
)eference 2odes"..-- Aja! Duery" syncresult sforce&connection&query>Select Name,3d from #ser@:
records result&getArray>records@: for >var i%: i+records&length: i??@ 5 var record recordsOiP: log>record&Name ? -- ? record&3d@: 9..-- Aja! Duery" async var result sforce&connection&query>Select Name,3d from #ser, 5 onSuccess " success, on'ailure " failure 9@:
function success>result@ 5 var records result&getArray>records@:
for >var i%: i+records&length: i??@ 5 var record recordsOiP: log>record&Name ? -- ? record&3d@: 9 9
function failure>error@ 5 log>oops something went wrong ? error@: 9..-- Aja! Duery" async inline function var result sforce&connection&query>Select Name,3d from #ser, 5 onSuccess " function>result@ 5 var records result&getArray>records@:
for >var i%: i+records&length: i??@ 5 var record recordsOiP: log>record&Name ? -- ? record&3d@: 9 9, on'ailure " function>error@ 5 log>oops something went wrong ? error@: 9 9@:..-- Aja! Duery" query result iterator
var result sforce&connection&query>Select Name,3d from #ser, 5 onSuccess " success, on'ailure " failure9@:
function success>result@ 5 var it new sforce&Duery)esult3terator>result@: while>it&hasNe!t>@@5 var record it&ne!t>@: log>record&Name ? -- ? record&3d@: 9 9
8/18/2019 Ajax-Salesforce Complete Material
4/15
function failure>error@ 5 log>oops something went wrong ? error@: 9
..-- Aja! Duery" query more sync var result sforce&connection&query>select name, id from account@:
var queryRore true: while >queryRore@ 5 var records result&getArray>records@: var sb new sforce&Stringuffer>@:
for >var i %: i + records&length: i??@ 5 sb&append>recordsOiP&Name@&append>,@: 9
log>records&length@: log>sb&toString>@@:
if >result&queryIocator null@ 5 queryRore false: 9 else 5 result sforce&connection&queryRore>result&queryIocator@: 9 9..-- Aja! Duery" query more async sforce&connection&query>Select Name,3d from Account, 5 onSuccess " success, on'ailure " log 9@:
function success>result@ 5 var records result&getArray>records@:
var sb new sforce&Stringuffer>@: for >var i%: i+records&length: i??@ 5 var record recordsOiP: sb&append>record&Name@&append>,@: 9
log>records&length@: log>sb&toString>@@:
if >result&queryIocator@ 5 sforce&connection&queryRore>result&queryIocator, 5 onSuccess " success, on'ailure " log9@:
9 9
..-- Aja! Duery" query all sync var result sforce&connection&queryAll>Select Name,3d from #ser@: var records result&getArray>records@:
for >var i%: i+records&length: i??@ 5 var record recordsOiP:
8/18/2019 Ajax-Salesforce Complete Material
5/15
log>record&Name ? -- ? record&3d@: 9
..-- Aja! Duery" limit var result sforce&connection&query>Select Name,3d from Account limit *%,5 onSuccess " success, on'ailure " failure9@:
function success>result@ 5 var it new sforce&Duery)esult3terator>result@: while>it&hasNe!t>@@5 var record it&ne!t>@: log>record&Name ? -- ? record&3d@: 9 9
function failure>error@ 5 log>oops something went wrong ? error@: 9
..-- Aja! Duery" relationships var result sforce&connection&query>SCIC2 c&3d, c&firstname, ? c&lastname, c&leadsource, a&3d, a&name, a&industry, c&account3d ? ');R 2ontact c, c&account a limit *%@:
var it new sforce&Duery)esult3terator>result@:
while>it&hasNe!t>@@ 5 var record it&ne!t>@: var accountName record&Account ( record&Account&Name " null:
log> record&'irstName ? ? record&IastName ? in account ? accountName@: 9
..-- Aja! Duery" joins var result sforce&connection&query>select a&name, a&industry, ? >select c&lastname, c&leadsource from a&contacts c@ ? from account a limit *%%@:
var ait new sforce&Duery)esult3terator>result@:
while>ait&hasNe!t>@@ 5 var account ait&ne!t>@:
var contacts OP:
if >account&2ontacts@ 5 var cit new sforce&Duery)esult3terator>account&2ontacts@: while>cit&hasNe!t>@@ 5 var contact cit&ne!t>@: contacts&push>contact&IastName@: 9 9
log>account&Name ? " ? contacts&join>,@@: 9
8/18/2019 Ajax-Salesforce Complete Material
6/15
..-- Aja! 2)#4" create - sync var account new sforce&S;bject>Account@: account&Name my new account: var result sforce&connection&create>OaccountP@:
if >resultO%P&getoolean>success@@ 5 log>new account created with id ? resultO%P&id@: 9 else 5 log>failed to create account ? resultO%P@: 9..-- Aja! 2)#4" create - async var account new sforce&S;bject>Account@: account&Name my new account:
sforce&connection&create>OaccountP,
5onSuccess " success, on'ailure " failed9@:
function success>result@ 5 if >resultO%P&getoolean>success@@ 5 log>new account created with id ? resultO%P&id@: 9 else 5 log>failed to create account ? resultO%P@: 9 9
function failed>error@ 5 log>oops something went wrong ? error@: 9..-- Aja! 2)#4" create- with other data types var campaign new sforce&S;bject>2ampaign@: campaign&Name new campaign: campaign&Actual2ost *$K/&$/: campaign&Cnd4ate new 4ate>@: campaign&3sActive true:
sforce&connection&create>Ocampaign P, 5onSuccess " success, on'ailure " log9@:
function success>result@ 5 if >resultO%P&getoolean>success@@ 5 log>new campaign created with id ? resultO%P&id@:
9 else 5 log>failed to create campaign ? resultO%P@: 9 9
8/18/2019 Ajax-Salesforce Complete Material
7/15
..-- Aja! 2)#4" create- batch var accounts OP:
for >var i%: i+*%: i??@ 5 var account new sforce&S;bject>Account@: account&Name my new account ? i: accounts&push>account@: 9
var result sforce&connection&create>accounts@:
for >var i%: i+result&length: i??@ 5 if >resultOiP&getoolean>success@@ 5 log>new account created with id ? resultOiP&id@: 9 else 5 log>failed to create account ? resultOiP@:
9 9..-- Aja! 2)#4" create- with baseGBinary fr sforce&connection&query>select name,id from folder@:
records fr&getArray>records@: if >records&siFe %@ 5 log>unable to find any folders@: 9
folder3d recordsO%P&3d: log>folder3d@:
var doc new sforce&S;bject>document@: doc&Name new doc: doc&'older3d folder3d: doc&ody new sforce&aseGBinary>some body string@:
result sforce&connection&create>OdocP@: log>result@:
doc sforce&connection&retrieve>name,body, document, OresultO%P&idP@:
log>docO%P&getaseGBinary>ody@@:
..-- Aja! 2)#4" delete ..create an account var account new sforce&S;bject>Account@: account&Name my new account: var result sforce&connection&create>OaccountP@:
if >resultO%P&getoolean>success@@ 5 log>new account created with id ? resultO%P&id@: account&3d resultO%P&id: 9 else 5
8/18/2019 Ajax-Salesforce Complete Material
8/15
throw >failed to create account ? resultO%P@: 9
..now delete that account var del)esult sforce&connection&delete3ds>Oaccount&3dP@: if >del)esultO%P&getoolean>success@@ 5 log>account with id ? resultO%P&id ? deleted@: 9 else 5 log>failed to delete account ? resultO%P@: 9
..-- Aja! 2)#4" update ..create an account var account new sforce&S;bject>Account@: account&Name manoj: account&1hone $/LBBKB: result sforce&connection&create>OaccountP@:
..update that account
account&id resultO%P&id: account&1hone *$/K$/: result sforce&connection&update>OaccountP@:
if >resultO%P&getoolean>success@@ 5 log>account with id ? resultO%P&id ? updated@: 9 else 5 log>failed to update account ? resultO%P@: 9..-- Aja! 2)#4" upserta
..-- Aja! 2)#4" merge ..create two accounts var account* new sforce&S;bject>Account@: account*&Name manoj: account*&1hone $/LBBKB:
var account$ new sforce&S;bject>Account@: account$&Name cheenath: account$&1hone K/BLEKE%:
var result sforce&connection&create>Oaccount*, account$P@: if >result&length 6 $@ throw create failed:
account*&id resultO%P&id: account$&id resultO*P&id:
..create merge request var request new sforce&Rerge)equest>@: request&master)ecord account*: request&recordoRerge3ds account$&id:
..call merge result sforce&connection&merge>OrequestP@: if >resultO%P&getoolean>success@@ 5 log>merge success ? resultO%P@:
8/18/2019 Ajax-Salesforce Complete Material
9/15
9 else 5 log>merge failed ? resultO%P@: 9..-- Aja! 2)#4" undelete var account new sforce&S;bject>Account@: account&Name account to delete: account&1hone $/LBBKB: result sforce&connection&create>OaccountP@: account&id resultO%P&id: log>account created ? account@:
result sforce&connection&delete3ds>Oaccount&idP@: if >6resultO%P&getoolean>success@@ throw delete failed: log>account deleted ? result@:
result sforce&connection&undelete>Oaccount&idP@: if >6resultO%P&getoolean>success@@ throw undelete failed: log>account undeleted ? resultO%P@:
..-- Aja! 2)#4" retrieve var account new sforce&S;bject>Account@: account&Name retrieve update test: account&1hone $/LBBKB: var result sforce&connection&create>OaccountP@: if >resultO%P&getoolean>success@ false@ throw create failed: log>account created ? resultO%P@:
result sforce&connection&retrieve>Name,1hone, Account,OresultO%P&idP@: if >resultO%P null@ throw retrive failed: log>account retrieved" ? resultO%P@:
resultO%P&1hone ************: result sforce&connection&update>result@: if >resultO%P&getoolean>success@ false@ throw update failed: log>account updated" ? resultO%P@:..-- Aja! 2)#4" retrieve async var account new sforce&S;bject>Account@: account&Name retrieve update test: account&1hone $/LBBKB: var result sforce&connection&create>OaccountP@: if >resultO%P&getoolean>success@ false@ throw create failed: log>account created ? resultO%P@:
var callback 5
onSuccess" function>result@ 5 if >resultO%P null@ throw retrive failed: log>account retrieved" ? resultO%P@: 9, on'ailure" function>error@ 5 log>failed due to ? error@: 9 9:
result sforce&connection&retrieve>Name,1hone, Account,
8/18/2019 Ajax-Salesforce Complete Material
10/15
OresultO%P&idP, callback@:
..-- Aja! 4escribe" S;bject var result sforce&connection&describeS;bject>Account@:
log>result&label ? " ? result&name ? " @:
log>---------- fields ---------@: for >var i%: i+result&fields&length: i??@ 5 var field result&fieldsOiP: log>field&name ? " ? field&label ? " ? field&length ? " @: 9
log>---------- child relationships ---------@: for >var i%: i+result&child)elationships&length: i??@ 5 var cr result&child)elationshipsOiP: log>cr&field ? " ? cr&childS;bject@: 9
log>---------- record type info ----------@:
for >var i%: i+result&recordype3nfos&length: i??@ 5 var rt result&recordype3nfosOiP: log>rt&name@: 9..-- Aja! 4escribe" S;bjects var result sforce&connection&describeS;bjects>OAccount, 2ontactP@:
for >var i%: i+result&length: i??@ 5 log>resultOiP&label ? " ? resultOiP&name ? " @: 9
..-- Aja! 4escribe" global var result sforce&connection&describeHlobal>@:
var types result&getArray>types@: for >var i%: i+types&length: i??@ 5 log>typesOiP@: 9
..-- Aja! 4escribe" layout var result sforce&connection&describeIayout>Account@:
var layouts result&getArray>layouts@:
for >var i%: i+layouts&length: i??@ 5 var layout layoutsO%P:
detailIayoutSections>layout&detailIayoutSections@: 9
function detailIayoutSections>sections@ 5 for >var i%: i+sections&length: i??@ 5 var section sectionsOiP: log>section&columns ? " ? section&heading ? "@: layout)ows>section&getArray>layout)ows@@: 9
8/18/2019 Ajax-Salesforce Complete Material
11/15
9
function layout)ows>rows@ 5 for >var i%: i+rows&length: i??@ 5 var row rowsOiP: layout3tems>row&getArray>layout3tems@@: 9 9
function layout3tems>items@ 5 for >var i%: i+items&length: i??@ 5 var item itemsOiP: log> ? item&label@: 9 9
..-- Aja! 4escribe" tabs var result sforce&connection&describeabs>@:
for >var i%: i+result&length: i??@ 5 var tabSet resultOiP: log> tabSet&label@: displayabs>tabSet&get>tabs@@: 9
function displayabs>tabs@ 5 for> var i%: i+tabs&length: i??@ 5 var tab tabsOiP: log> ? tab&label ? ? tab&url@: 9 9
..-- Aja! #til" get deleted var start new 4ate>@: var end new 4ate>@: start&set4ate>end&get4ate>@ - *@:
var result sforce&connection&get4eleted>Account, start, end@:
var records result&getArray>deleted)ecords@:
log>following records are deleted"@:
for >var i%: i+records&length: i??@ 5 log>recordsOiP&id@:
9
..-- Aja! #til" get updated var start new 4ate>@: var end new 4ate>@: start&set4ate>end&get4ate>@ - *@:
var result sforce&connection&get#pdated>Account, start, end@:
8/18/2019 Ajax-Salesforce Complete Material
12/15
var records result&getArray>ids@:
log>following records are updated"@: for >var i%: i+records&length: i??@ 5 log>recordsOiP@: 9..-- Aja! #til" convert lead var account new sforce&S;bject>Account@: account&Name convert lead sample: account&1hone $/LBBKB: result sforce&connection&create>OaccountP@: account&3d resultO%P&id:
var lead new sforce&S;bject>Iead@: lead&2ountry #S: lead&4escription his is a description: lead&Cmail someoneMsomewhere&com: lead&'irstName first: lead&IastName last:
lead&2ompany account&Name: result sforce&connection&create>OleadP@: lead&3d resultO%P&id:
var convert new sforce&Iead2onvert>@: convert&account3d account&3d: convert&lead3d lead&3d: convert&convertedStatus Dualified:
result sforce&connection&convertIead>OconvertP@: if >resultO%P&getoolean>success@@ 5 log>lead converted ? resultO%P@: 9 else 5 log>lead convert failed ? resultO%P@: 9
..-- Aja! System" login try5 var result sforce&connection&login>manoj*Mcheenath&com, *$/BEG@: log>logged in with session id ? result&session3d@: 9catch>error@ 5 if >error&faultcode&inde!;f>3N=AI348I;H3N@ 6 -*@ 5 log>check your username and passwd, invalid login@: 9 else 5 log>error@: 9
9
..-- Aja! System" get server timestamp var result sforce&connection&getServerimestamp>@: log>result×tamp@:
..-- Aja! System" get user info var user sforce&connection&get#ser3nfo>@: log>Qello ? user&userName@: log>Tour email id is ? user&userCmail@:
8/18/2019 Ajax-Salesforce Complete Material
13/15
log>and you work for ? user&organiFationName@:
..-- Aja! System" set.reset password var username manoj*Mcheenath&com:
var result sforce&connection&query> SCIC2 34 from #ser records@: if >records&length 6 *@ throw unable to find user: var id recordsO%P&3d:
sforce&connection&reset1assword>id@: sforce&connection&set1assword>id, *$/BEG@:
..-- Aja! )emote 1ro!y" http get sync
.U his feature is not enabled by default& 1lease contact support U. sforce&connection&remote'unction>5
url " http"..www&cheenath&com, onSuccess " function>response@ 5 log>Hot response ? response@: 9, on'ailure " function>error@ 5 log>C));)" ? error@: 9, async" false 9@:
..-- Aja! )emote 1ro!y" http get async
.U his feature is not enabled by default& 1lease contact support U. sforce&connection&remote'unction>5 url " http"..www&cheenath&com, onSuccess " function>response@ 5 log>Hot response ? response@: 9, on'ailure " function>error@ 5 log>C));)" ? error@: 9, async" true 9@:
..-- Aja! )emote 1ro!y" web service
.U his feature is not enabled by default& 1lease contact support U. var envelope +soap"Cnvelope !mlns"mrns%urn"!methods-2urrencyC!change ? !mlns"soaphttp"..schemas&!mlsoap&org.soap.envelope. ? !mlns"soapenchttp"..schemas&!mlsoap&org.soap.encoding. ? !mlns"!shttp"..www&w/&org.$%%*.XRISchema ? !mlns"!sihttp"..www&w/&org.$%%*.XRISchema-instance0 ? +soap"odysoap"encodingStylehttp"..schemas&!mlsoap&org.soap.encoding.0 ?
8/18/2019 Ajax-Salesforce Complete Material
14/15
+mrns%"get)ate0+country* !si"type!s"string0us+.country*0 ? +country$ !si"type!s"string0india+.country$0 +.mrns%"get)ate0+.soap"ody0 +.soap"Cnvelope0:
sforce&connection&remote'unction>5 url " http"..services&!methods&net.soap, requestQeaders" 52ontent-ype"te!t.!ml, S;A1Action" VV 9, request4ata" envelope, method" 1;S, onSuccess " function>response@ 5 log>response@: 9, on'ailure " function>response@ 5 log>'ailed test)emote'unction1ostAsync ? response@ 9 9@:
..-- Aja! )emote 1ro!y" !ml mime type
.U his feature is not enabled by default& 1lease contact support U.
var envelope +soap"Cnvelope !mlns"mrns%urn"!methods-2urrencyC!change ? !mlns"soaphttp"..schemas&!mlsoap&org.soap.envelope. ? !mlns"soapenchttp"..schemas&!mlsoap&org.soap.encoding. ? !mlns"!shttp"..www&w/&org.$%%*.XRISchema ? !mlns"!sihttp"..www&w/&org.$%%*.XRISchema-instance0 ? +soap"odysoap"encodingStylehttp"..schemas&!mlsoap&org.soap.encoding.0 ? +mrns%"get)ate0+country* !si"type!s"string0us+.country*0 ? +country$ !si"type!s"string0india+.country$0 +.mrns%"get)ate0+.soap"ody0 +.soap"Cnvelope0:
sforce&connection&remote'unction>5 url " http"..services&!methods&net.soap, mimeype" te!t.!ml, requestQeaders" 52ontent-ype"te!t.!ml, S;A1Action" VV 9, request4ata" envelope, method" 1;S, onSuccess " function>response@ 5 log>response is ? typeof response@: logXml>response@:
9, on'ailure " function>response@ 5 log>'ailed test1ostRimeype" ? response@ 9 9@:
function logXml>node@ 5 if >node&node=alue null@ 5 log>node&nodeName@: 9 else 5
8/18/2019 Ajax-Salesforce Complete Material
15/15
log>node&nodeName ? " ? node&node=alue@: 9 var children node&childNodes: for >var i %: i + children&length: i??@ 5 logXml>childrenOiP@: 9 9..-- Aja! Risc" search var result sforce&connection&search> find 5manoj9 in Name fields )C#)N3NH Account>name, id@@:
if >result@ 5 var records result&getArray>search)ecords@:
for >var i%: i+records&length: i??@ 5 var record recordsOiP&record: log>record&3d ? -- ? record&Name@: 9 9 else 5
log>No records found@: 9