<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1935655503299435627</id><updated>2026-04-05T12:23:38.493+05:30</updated><category term="Visualforce"/><category term="Apex"/><category term="Triggers"/><category term="salesforce.com faq"/><category term="Force.com"/><category term="Batch Apex"/><category term="Chatter"/><category term="Dynamic"/><category term="File Upload"/><category term="General"/><category term="Releases"/><category term="Salesforce"/><category term="Spring&#39;10"/><category term="Summer&#39;12"/><category term="appExchange"/><category term="vCard"/><title type='text'>Force.com, Visualforce, Apex, Triggers, Sites : Trekbin Technologies</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-1549058358956241878</id><published>2012-05-17T19:25:00.000+05:30</published><updated>2012-05-17T19:30:01.363+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Force.com"/><category scheme="http://www.blogger.com/atom/ns#" term="Releases"/><category scheme="http://www.blogger.com/atom/ns#" term="Salesforce"/><category scheme="http://www.blogger.com/atom/ns#" term="Summer&#39;12"/><title type='text'>Force.com Summer&#39;12 Features</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;There are some Awesome features coming
up in Summer&#39;12 release. This is one release for which every force.com
developer is waiting. Some of the interesting features listed below. I can&#39;t
wait to lay my hands on these and test them....Phew!&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Apex Describe Support for Field Sets&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Visualforce dynamic bindings have
supported field sets for some time. In Summer ’12, Apex provides describe
support&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;for field sets, which makes it possible
to dynamically generate the SOQL necessary to load all fields in a field set.
This&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;makes field sets easier to use in
Visualforce pages that use custom controllers.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;This sample uses&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Schema.FieldSet&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;and&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Schema.FieldSetMember&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;methods
to dynamically get all the fields in the&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Dimensions field set for the
Merchandise custom object. The list of fields is then used to construct a SOQL
query that&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;ensures those fields are available for
display. The Visualforce page uses this class as its controller.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Single View State—Generally Available&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;The Single View State optimization
introduced as a pilot feature in Spring ’12 is generally available in Summer
’12.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Single View State will be activated on
existing organizations within 24 hours of deployment of Summer ’12 on your&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Salesforce instance.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;JavaScript Remoting Enhancements&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;We’ve enhanced JavaScript remoting in
several ways.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;To make it easier to work with
namespaces, especially for pages that make remoting calls to methods provided in
packages,&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;you can use the&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;$RemoteAction&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;global
to automatically resolve the correct namespace, if any, for your remote action.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;To use this facility, you must
explicitly invoke JavaScript remoting. The pattern for doing this is:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Visualforce.remoting.Manager.invokeAction(&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&#39;&lt;b&gt;&lt;i&gt;fully_qualified_remote_action&lt;/i&gt;&lt;/b&gt;&#39;,&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;invocation_parameters&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;);&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;There are lot of other features like&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;JSON Parser&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;New Types&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Sorting Support for Non-Primitive Data Types in
Lists&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Knowledge Management Publishing Service
Class&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Describe Support for Field Sets&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;New Interfaces and Methods for Running
Apex on Package Install/Upgrade and Uninstall&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;Allow Reparenting Option in
Master-Detail Relationship Definitions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;New Lookup
Relationship Options etc..&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;You can get the
release notes from here&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://ap1.salesforce.com/help/doc/en/salesforce_summer12_release_notes.pdf&quot;&gt;Salesforce Summer&#39;12 Release Notes&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/1549058358956241878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/05/forcecom-summer12-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1549058358956241878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1549058358956241878'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/05/forcecom-summer12-features.html' title='Force.com Summer&#39;12 Features'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-6898556575747773681</id><published>2012-05-16T13:09:00.000+05:30</published><updated>2012-05-16T13:09:56.239+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamic"/><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Dynamic Visualforce Components Explained</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Some or the other time you might have faced a challenge of dynamically generating input fields. Most of the time we sticked to dynamic HTML and embed that in our VF page to fulfil our needs.&lt;br /&gt;
&lt;br /&gt;
But now, Salesforce has introduced the new Dynamic visualforce components which means you no longer will be dependent on dynamic HTML for most of your needs.&lt;br /&gt;
&lt;br /&gt;
Here is a sample which shows you how to generate a dynamic input form for Account object.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Page&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;apex:page standardController=&quot;Account&quot; extensions=&quot;DynamicInputForm&quot;&amp;gt;
&amp;lt;!-- Create section header dynamically --&amp;gt;
&amp;lt;apex:dynamicComponent componentValue=&quot;{!SH}&quot;/&amp;gt;
&amp;lt;apex:form &amp;gt;
&amp;lt;!-- Create dynamic input form for account object --&amp;gt;
&amp;lt;apex:dynamicComponent componentValue=&quot;{!ActForm}&quot;/&amp;gt;
&amp;lt;/apex:form&amp;gt;
&amp;lt;/apex:page&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Class&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;public with sharing class DynamicInputForm
{
&amp;nbsp; &amp;nbsp; public DynamicInputForm(Apexpages.standardController ctlr)
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //constructor code goes here
&amp;nbsp; &amp;nbsp; }

&amp;nbsp; 
&amp;nbsp; &amp;nbsp; //Create a page block dynamically
&amp;nbsp; &amp;nbsp; public Component.Apex.PageBlock getActForm()
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component.Apex.PageBlock pb = new Component.Apex.PageBlock();
&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //creating an input field dynamically
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component.Apex.InputField name = new Component.Apex.InputField();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name.expressions.value = &#39;{!Account.Name}&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name.id = &#39;name&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component.Apex.OutputLabel label = new Component.Apex.OutputLabel();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.value = &#39;Name&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.for = &#39;name&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Use the above block to create other input fields
&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component.Apex.CommandButton save = new Component.Apex.CommandButton();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; save.value = &#39;Save&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; save.expressions.action = &#39;{!Save}&#39;;


&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pb.childComponents.add(label);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pb.childComponents.add(name);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pb.childComponents.add(save);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return pb;
&amp;nbsp; &amp;nbsp; }

&amp;nbsp; 
&amp;nbsp; &amp;nbsp; //create section header dynamically
&amp;nbsp; &amp;nbsp; public Component.Apex.SectionHeader getSH()
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component.Apex.SectionHeader sh = new Component.Apex.SectionHeader();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sh.title = &#39;Create Account&#39;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sh;
&amp;nbsp; &amp;nbsp; }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
Updated Visualforce developer guide covers this topic.
&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/6898556575747773681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/05/dynamic-visualforce-components.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6898556575747773681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6898556575747773681'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/05/dynamic-visualforce-components.html' title='Dynamic Visualforce Components Explained'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-3028390783464191518</id><published>2012-01-16T08:49:00.000+05:30</published><updated>2012-01-16T08:49:14.123+05:30</updated><title type='text'>Force.com Spring&#39;12 Release Feature Set</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; mso-font-kerning: 18.0pt;&quot;&gt;Apex REST Updates&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; mso-font-kerning: 18.0pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;We’ve streamlined Apex REST and made it even easier to develop your custom endpoint. The following changes have been made to Apex REST API:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;Apex REST automatically provides the REST      request and response in your Apex REST methods via a static RestContext      object. You no longer need to declare a RestRequest or RestResponse      parameter in your method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;User-defined types are now allowed as Apex      REST parameter types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;Apex REST methods are now supported in managed      and unmanaged packages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;The order of elements in the JSON or XML      response data no longer has to match the Apex REST method parameter order.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt;&quot;&gt;Concurrent Apex Jobs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Salesforce has increased the limit for the total number of Apex classes that you can schedule concurrently to 25 (the previous limit was 10). With this higher limit, you can now schedule more Apex jobs for concurrent execution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt;&quot;&gt;ContentDocument Triggers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;You can now associate Apex triggers with the ContentDocument object. You can create Apex triggers for the ContentDocument object only through the Metadata API. Alternatively, you can create the triggers using the Force.com IDE or the Force.com Migration Tool, both of which make use of the Metadata API. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; mso-font-kerning: 18.0pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 16.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; mso-font-kerning: 18.0pt;&quot;&gt;OFFSET added to SOQL (Pilot)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;We’re adding a new clause to SOQL which will allow your app to view records after a certain offset. Use OFFSET to specify the starting row offset into the result set returned by your query.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;Using OFFSET is helpful for paging into large result sets, in scenarios where you need to quickly jump to a particular subset of the entire results. For example, the following SOQL query returns a result set that skips the first 100 rows of the full query results:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;SELECT Name FROM Merchandise__c WHERE Price__c &amp;gt; 5.0 ORDER BY Name LIMIT 50 OFFSET 100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;The resulting set of records would still be limited by 50, but would begin with the 101st record in the result set.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt;This feature is in Developer Preview.&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: &amp;quot;Arial Narrow&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 12.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN;&quot;&gt; Please contact Salesforce.com to enable it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/3028390783464191518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/01/forcecom-spring12-release-feature-set.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3028390783464191518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3028390783464191518'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2012/01/forcecom-spring12-release-feature-set.html' title='Force.com Spring&#39;12 Release Feature Set'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-4397201467398741861</id><published>2011-08-07T19:16:00.000+05:30</published><updated>2011-08-07T19:16:03.571+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="Force.com"/><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>How Force.com is revitalizing Application Development?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;The other day I caught up with an old friend. We spent about 5 years together, working on Microsoft technologies and developing a slew of applications. Invariably, the topic veered towards technology and application development. I asked him what he was up to, and discovered that he was part of a team working on an application for a large enterprise. Some of the features read like this...&lt;br /&gt;
&lt;br /&gt;
(No &quot;ideas&quot; were shared, these are pretty common features of all apps!)&lt;br /&gt;
&lt;br /&gt;
--- Data model that supports related records&lt;br /&gt;
--- Large scale Business validations on forms&lt;br /&gt;
--- A Facebook clone for the social connect&lt;br /&gt;
--- Approval mechanisms, Notifications, Security, etc.&lt;br /&gt;
&lt;br /&gt;
He was going on and on, so I stopped him to ask what his role in the entire exercise was and how they were planning for future versions. I learnt that he was a Lead Developer for one of the modules at one of the locations. Incidentally, the project was being worked on from four different geographies each of them sharing a significant Development piece. They were yet to come up with the first version and the project has been running for 15 months. As for the cost, your guess is better than his!&lt;br /&gt;
&lt;br /&gt;
I said wow! This sounded familiar, but hang on, what are we building here? An aircraft carrier?&lt;br /&gt;
&lt;br /&gt;
My heart goes out to the CIO and the end users of the application. By the time they get to realize any value out of the applications, their priorities in life would have changed. And it must have been one hell of a CFO to have approved the budget in the middle of uncertain and trying times.&lt;br /&gt;
&lt;br /&gt;
OK, let&#39;s get pragmatic to understand the reason for my frustration.&lt;br /&gt;
(Disclaimer: I&#39;ve been a fan of the Force.com platform since it&#39;s inception, and have partnered in building a Company around it, but that&#39;s after working on Microsoft technologies for many years before that, and I am still a keen follower)&lt;br /&gt;
&lt;br /&gt;
Traditional Application Development follows an approach similar to this:&lt;br /&gt;
Code, Test, Assemble, Bundle, Deploy, Resolve, Release, Fix&lt;br /&gt;
This is characteristic of any technology that forces Developers to interact with libraries and have them worry about making the code work after writing it. But, as Application Development evolved in general and the way Force.com has adapted in particular, this approach has become redundant. And, here&#39;s why.&lt;br /&gt;
&lt;br /&gt;
We hear it all the time - Application Developers must focus on Innovation. But, Force.com is the front runner, &amp;nbsp;if not the only technology that lets Application Developers do that. Everything else is what&#39;s called as plumbing code. So, when you do any of the following (and more), you are essentially plumbing your code.&lt;br /&gt;
&lt;br /&gt;
--- Write code (or use Design mode in IDEs) for Data validations, and even common Business validations&lt;br /&gt;
--- Importing libraries and fretting over getting all the files in one folder to ward of the &quot;Assembly not found&quot; error&lt;br /&gt;
--- Use multiple frameworks to imitate a 3-tier architecture, making your code bulky&lt;br /&gt;
--- Write classes for Notifications, Messaging, Role hierarchy, etc.&lt;br /&gt;
--- Move from one Remote m/c to another to deploy your code before seeing your page go bust with an Invalid reference error&lt;br /&gt;
&lt;br /&gt;
Sample this - how can you expect your Developer to be innovative if he is plumbing for 75% of his time?&lt;br /&gt;
This is exactly where Force.com wins - with Visualforce, Apex and the Force.com platform, it helps Application Developers ideate. They get a Zen like feeling. It&#39;s the holy grail of Application Development platforms.&lt;br /&gt;
&lt;br /&gt;
How does Force.com achieve this? I&#39;ll cover that in detail over the next few posts, but for starters, the crux lies in how the platform provides for a combination of common feature sets bundled with an exciting user experience, and how Developers are able to leverage a Business data model with easy to build validations and formulae through clicks. As a Developer, that&#39;s making it available on a platter for me! My interest to ideate is enhanced when I look at what I already have on Force.com. There can&#39;t be a better motivation to build great apps.&lt;br /&gt;
&lt;br /&gt;
I can&#39;t but mention about the social connection, and how Business and Enterprise apps have the social toolbox ready to go on Chatter.&lt;br /&gt;
&lt;br /&gt;
It is not all about the plumbing though, its how you have a wonderful user experience that makes it graceful that adds all the value. There are umpteen stories of how CEOs have built up the entire environment on Force.com leaving only the code for the Developers, which is essentially about 20-25% of the entire effort.&lt;br /&gt;
&lt;br /&gt;
The technology industry has been known to fade out geographical barriers, but are the IT behemoths doing it in the most efficient way for their Clients? No. 3-year, 5-year budget cycles spread over millions of dollars cannot be a sustainable approach for a technological implementation. Bordering uncertain times, CIOs must demand the best approach, the best technology and the best ROI and must leave behind the baggage of legacy brands.&lt;br /&gt;
In the next post, I&#39;ll write about how Force.com dilutes geographical barriers in the best possible way, thereby letting in more of the innovation in to your apps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/4397201467398741861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2011/08/how-forcecom-is-revitalizing.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/4397201467398741861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/4397201467398741861'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2011/08/how-forcecom-is-revitalizing.html' title='How Force.com is revitalizing Application Development?'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-610641704813810999</id><published>2011-05-03T19:26:00.001+05:30</published><updated>2011-05-06T17:43:21.072+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="appExchange"/><category scheme="http://www.blogger.com/atom/ns#" term="vCard"/><title type='text'>Salesforce Easy vCard</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;We are launching a free application on appExchange for vCard downloads from Leads, Contacts, Accounts and Users.&lt;br /&gt;
You can download multiple vCards as well by PDF.. Stay tuned..&lt;br /&gt;
Here is the appExchange URL for&lt;a href=&quot;http://appexchange.salesforce.com/listingDetail?listingId=a0N30000004cdAyEAI&quot; style=&quot;color: red;&quot;&gt; &lt;span style=&quot;font-size: large;&quot;&gt;Easy vCard&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/610641704813810999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2011/05/salesforce-easy-vcard.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/610641704813810999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/610641704813810999'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2011/05/salesforce-easy-vcard.html' title='Salesforce Easy vCard'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-3311541828343184903</id><published>2010-12-02T17:01:00.001+05:30</published><updated>2010-12-02T17:07:54.190+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="Triggers"/><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Update Namespace Prefix in Your Apex Code</title><content type='html'>As a developer, it is sometimes very tedious when we have to make all of our code as a Managed Package. Have to go to each custom field/Object in the code and change it manually with the Namespace Prefix.&lt;br /&gt;
&lt;br /&gt;
I have developed a tool which takes input as your Class/VF Page/Trigger etc.. for that matter any of the file type mxml, aspx, php etc... and gives the updated output like in the screen shots below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfzB-FQddW6GB4WYsuYcEPYWjU9mBeKuxda_CH_uoTvvFRHjCUW_YEltatU-c5AiQHEsrM20cffWC6_GKJ6NuuEuz005Do0NdPrlHjccPbu66d92M_6McHwJMVRqYJYCJ9UVaRk67jfG-/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfzB-FQddW6GB4WYsuYcEPYWjU9mBeKuxda_CH_uoTvvFRHjCUW_YEltatU-c5AiQHEsrM20cffWC6_GKJ6NuuEuz005Do0NdPrlHjccPbu66d92M_6McHwJMVRqYJYCJ9UVaRk67jfG-/s400/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJa0kjwn5Tvthr3IOMK6DOruu9wrLoQnyzr8zo2PsYf1OfdvBptkffuQMmJOP9N7kqh5Zg76j5MteFfC3snKQGHVXkDBxgdB-5d-1gDZIswkh9b9kgJHbs_-KgOLfeyy1F8iGXHXLPZ-_X/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJa0kjwn5Tvthr3IOMK6DOruu9wrLoQnyzr8zo2PsYf1OfdvBptkffuQMmJOP9N7kqh5Zg76j5MteFfC3snKQGHVXkDBxgdB-5d-1gDZIswkh9b9kgJHbs_-KgOLfeyy1F8iGXHXLPZ-_X/s320/2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;&#39;Hope this helps&lt;br /&gt;
&lt;br /&gt;
You can use the tool from here.&lt;br /&gt;
&lt;div style=&quot;background-color: yellow; color: black;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://timesheet-trekbin-developer-edition.ap1.force.com/ManagedPackageAuto&quot;&gt;Update Namespace Prefix in My Code&lt;/a&gt;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas.</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/3311541828343184903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/12/update-namespace-prefix-in-your-apex.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3311541828343184903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3311541828343184903'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/12/update-namespace-prefix-in-your-apex.html' title='Update Namespace Prefix in Your Apex Code'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfzB-FQddW6GB4WYsuYcEPYWjU9mBeKuxda_CH_uoTvvFRHjCUW_YEltatU-c5AiQHEsrM20cffWC6_GKJ6NuuEuz005Do0NdPrlHjccPbu66d92M_6McHwJMVRqYJYCJ9UVaRk67jfG-/s72-c/1.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-218603016195876695</id><published>2010-06-14T21:52:00.004+05:30</published><updated>2010-06-14T22:11:21.194+05:30</updated><title type='text'>Our App to Chatter Developer Challenge</title><content type='html'>Sorry People, &lt;br /&gt;
&lt;br /&gt;
Its been a while I have updated the blog. I am coming up with some good articles in the near future. Meantime, We have submitted a simple application to Salesforce Chatter Developer Challenge. Check this out here and vote if you like it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://developer.force.com/chatterdevchallenge/entry?id=087300000002lGAAAY&amp;amp;returnUrl=%2Fapex%2FentryGallery%3Fc%3D09a300000000Xv3%26sort%3Dtop&quot; style=&quot;background-color: red; color: white;&quot;&gt;http://developer.force.com/chatterdevchallenge/entry?id=087300000002lGAAAY&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
entry is submitted by our Technology Architect Mr Rohit Marathe&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas&lt;br /&gt;
www.trekbin.com</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/218603016195876695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/06/our-app-to-chatter-developer-challenge.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/218603016195876695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/218603016195876695'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/06/our-app-to-chatter-developer-challenge.html' title='Our App to Chatter Developer Challenge'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-6328133210041997345</id><published>2010-05-11T19:14:00.001+05:30</published><updated>2010-05-11T19:15:44.994+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><title type='text'>Interfaces for Apex Class - Salesforce</title><content type='html'>&lt;div style=&quot;background-color: orange;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Implementing Interfaces for Apex Classes&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
An interface is like a class in which none of the methods have been implemented, the method signatures are there, but the body of each method is empty. To use an interface, another class must implement it by providing a body for all of the methods contained in the interface.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;public class InterfaceClass
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; //Lets consider a Bank trnasaction interface which indeed used by 3 banks BankA, BankB and BankC
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Interface bankTransactionInterface
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double deposit();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double withdrawal();
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //We have to implement the two methods declared in the interface for BankA
&amp;nbsp;&amp;nbsp;&amp;nbsp; public class BankA implements bankTransactionInterface
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double deposit()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process the deposit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double depositedAmount = 250;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return depositedAmount ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double withdrawal()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process the withdrawal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double withdrawalAmount = 350;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return withdrawalAmount ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //We will take another class for BankB and declare it as virtual as it is parent of BankC which has different deposit porcess but same withdrawal process as BankB.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //For this we have to declare the deposit method as virtual and use override keyword when overriding it for BankC like showed below
&amp;nbsp;&amp;nbsp;&amp;nbsp; public virtual class BankB implements bankTransactionInterface
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public virtual double deposit()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process the deposit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double depositedAmount = 450;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return depositedAmount ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double withdrawal()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process the withdrawal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double withdrawalAmount = 1000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return withdrawalAmount ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public class BankC extends BankB 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override double deposit()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process the deposit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double depositedAmount = 750;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return depositedAmount ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&#39;Hope this is helpful &lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/6328133210041997345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/interfaces-for-apex-class-salesforce.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6328133210041997345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6328133210041997345'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/interfaces-for-apex-class-salesforce.html' title='Interfaces for Apex Class - Salesforce'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-7977634136593712275</id><published>2010-05-06T16:08:00.004+05:30</published><updated>2010-05-06T17:32:15.369+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="salesforce.com faq"/><title type='text'>Salesforce.com Customization Questions</title><content type='html'>&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Salesforce.com General/Customization Questions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
As I am getting requests from people to post more questions on customization also. I am posting here questions in a more general way. &lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321647734&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;With this you will get a good idea on basics of salesforce.com usage.&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;1. Explain how MVC architechture fit for Salesforce&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;2. How will you create relationships between objects&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;3. How many types of relationships are possible on objects&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;4. How many data types are supported for a Custom Object Standard Field Name&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;5. What are activities&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;6. What is the difference between Task and Event&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;7. List and describe the features used to set permission and data access in a custom app.&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;8. How will you create a User&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;9. What are the available editions of salesforce. &lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;10. What is the difference between Enterprise/Professional/Unlimited/force.com/Developer editions.&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;11. What are Sharing Settings&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;12. What are Person Accounts&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;13. How forecasting works in salesforce&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;14. What are the system fields. Can you name some of them&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;15. What are the default components available on home page? &lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;16. How do I change the home page layout?&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;17. How many types of Reports I can create in salesforce. what are they&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;18. What is dashboard. How it is created &lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;19. What is Page Layout&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;20. What is the Related List&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;21. What is the difference between Page Layout and Related List&lt;/div&gt;&lt;div style=&quot;color: blue;&quot;&gt;22. What is mini page lay out&lt;/div&gt;&lt;br /&gt;
As I am in hurry, I will update this post with real taste of customization questions as soon as I can.&lt;br /&gt;
&lt;br /&gt;
Hope this is helpful.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Thanks&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Srinivas,&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Technology Evangelist,&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Trekbin Technologies,&lt;/b&gt;&lt;/div&gt;&lt;b style=&quot;background-color: white; color: lime;&quot;&gt;&lt;a href=&quot;http://www.trekbin.com/&quot;&gt;www.trekbin.com&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/7977634136593712275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/salesforcecom-customization-questions.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/7977634136593712275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/7977634136593712275'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/salesforcecom-customization-questions.html' title='Salesforce.com Customization Questions'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-1569103290129909464</id><published>2010-05-05T17:59:00.006+05:30</published><updated>2010-05-05T20:02:22.125+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Visualforce Email Template with Attachment</title><content type='html'>&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: orange;&quot;&gt;Visualforce Email Templates with Component as Attachment&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now Email templates can be created through a visualforce. That is you can send emails to people with salesforce features.&lt;br /&gt;
&lt;br /&gt;
I will explain a Visualforce email template basic/as well as with component as attachement here.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;messaging:emailTemplate recipientType=&quot;Contact&quot; relatedToType=&quot;Account&quot; subject=&quot;opportunity report for Account : {!relatedTo.name}&quot;&amp;gt;
&amp;lt;messaging:htmlEmailBody &amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;table &amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt; Name &amp;lt;/th&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt; CloseDate &amp;lt;/th&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt; Stage Name &amp;lt;/th&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:repeat var=&quot;o&quot; value=&quot;{!relatedTo.Opportunities}&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;{!o.Name}&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;{!o.CloseDate}&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;{!o.StageName}&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/apex:repeat&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;/table&amp;gt;
&amp;nbsp;&amp;nbsp; 
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;/messaging:htmlEmailBody&amp;gt;
&amp;lt;/messaging:emailTemplate&amp;gt;
&lt;/pre&gt;The above Visualforce Template sends out all the opportunities that are related to the Contact&#39;s Account.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: red;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: red; color: white;&quot;&gt;The one more powerful usage of Visualforce Email Template is We can introduce Custom Components in the body&lt;/span&gt;.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
I would like to attach a PDF document which shows the number of Opporutnities for that account grouping by their close date. This I can do in a component and include that component inside my email template like this after htmlEmailBody tag.&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;messaging:attachment renderAs=&quot;PDF&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;c:opportunityGrouping accountId=&quot;{!relatedTo.Id}&quot;/&amp;gt;
&amp;lt;/messaging:attachment&amp;gt;
&lt;/pre&gt;component:&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;apex:component controller=&quot;opportunityGroupingController&quot; access=&quot;global&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:attribute name=&quot;accountId&quot; assignTo=&quot;{!accId}&quot; type=&quot;String&quot; description=&quot;Id of the account&quot;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table &amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt; Total &amp;lt;/th&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt; CloseDate &amp;lt;/th&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:repeat var=&quot;opp&quot; value=&quot;{!GroupedOpportunites}&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;{!opp.Total}&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;{!opp.CloseDate}&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/apex:repeat&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;
&amp;lt;/apex:component&amp;gt;&lt;/pre&gt;opportunityGroupingController Class:&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;public class opportunityGroupingController 
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String accId
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public list&amp;lt;AggregateResult&amp;gt; lstAR = new list&amp;lt;AggregateResult&amp;gt;();
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public list&amp;lt;subClass&amp;gt; lstSC = new list&amp;lt;subClass&amp;gt;(); 

&amp;nbsp;&amp;nbsp;&amp;nbsp; public class subClass
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer Total
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public date closeDate
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public subClass(AggregateResult ar)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Total = (Integer)ar.get(&#39;Total&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; closeDate = (date)ar.get(&#39;CloseDate&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public list&amp;lt;subClass&amp;gt; getGroupedOpportunites()
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstAR = [select count(Id) Total, CloseDate from Opportunity where AccountId =:accId Group By CloseDate];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Integer i = 0; i &amp;lt; lstAR.size(); i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subClass objSubClass = new subClass(lstAR[i]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstSC.add(objSubClass);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return lstSC;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/pre&gt;&lt;br /&gt;
Hope this is useful. &lt;br /&gt;
&lt;br /&gt;
Thanks &lt;br /&gt;
&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Srinivas&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Technology Evangelist&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;b&gt;Trekbin Technologies&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: orange;&quot;&gt;&lt;a href=&quot;http://www.trekbin.com/&quot;&gt;&lt;b&gt;www.trekbin.com&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/1569103290129909464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/visualforce-email-template-with.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1569103290129909464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1569103290129909464'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/05/visualforce-email-template-with.html' title='Visualforce Email Template with Attachment'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-6389657853932163675</id><published>2010-04-29T18:22:00.005+05:30</published><updated>2010-05-05T12:28:47.092+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="File Upload"/><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Visualforce File Upload - for Any SObject</title><content type='html'>&lt;span style=&quot;font-family: Verdana,sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;color: orange;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;How to Upload Attachment to any SObject using Visualforce&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: lime; font-size: large;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.amazon.com/Development-Force-com-Platform-Building-Applications/dp/0321647734?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This article explains how you can upload file attachments to any SOobject using Visualforce.&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRcpa1YucGrfOb5uSaa7V40wHYNant4ZYyckezlXHvC644y-y1amN6pwQ5zUS-57FWNkOo_7a6pzGGfvbXl6nckk5tadnprqef10bCMVGbJx2K8ZlwRy-9fx9effxjF51wIlywfGDd3pPg/s1600/file.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;72&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRcpa1YucGrfOb5uSaa7V40wHYNant4ZYyckezlXHvC644y-y1amN6pwQ5zUS-57FWNkOo_7a6pzGGfvbXl6nckk5tadnprqef10bCMVGbJx2K8ZlwRy-9fx9effxjF51wIlywfGDd3pPg/s400/file.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;b style=&quot;background-color: orange;&quot;&gt;Page:&lt;/b&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;apex:page standardController=&quot;YourSObjectName&quot; extensions=&quot;VFFileUpload&quot;&amp;gt;
&amp;nbsp; &amp;lt;apex:form&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:pageBlock title=&quot;Upload Attachment&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:inputFile style=&quot;width:100%&quot; id=&quot;fileToUpload&quot; value=&quot;{!fileBody}&quot; filename=&quot;{!fileName}&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:commandButton value=&quot;Upload Attachment&quot; action=&quot;{!UploadFile}&quot;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/apex:pageBlock&amp;gt;
&amp;nbsp; &amp;lt;/apex:form&amp;gt;
&amp;lt;/apex:page&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: orange;&quot;&gt;Class:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;public class VFFileUpload
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Id recId
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public VFFileUpload(ApexPages.StandardController ctlr)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recId = ctlr.getRecord().Id;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public string fileName 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Blob fileBody 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; get;set;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public PageReference UploadFile()
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PageReference pr;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fileBody != null &amp;amp;&amp;amp; fileName != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attachment myAttachment&amp;nbsp; = new Attachment();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myAttachment.Body = fileBody;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myAttachment.Name = fileName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myAttachment.ParentId = recId;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert myAttachment;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pr = new PageReference(&#39;/&#39; + myAttachment.Id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pr.setRedirect(true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return pr;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;/span&gt;&lt;/pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321647734&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
You can use the above code for any object whether it is standard or custom. Happy coding!&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas,&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Technology Evangelist,&lt;/span&gt;&lt;br style=&quot;color: #38761d;&quot; /&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Trekbin Technologies,&lt;/span&gt;&lt;br style=&quot;color: #38761d;&quot; /&gt;&lt;a href=&quot;http://www.trekbin.com/&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;www.trekbin.com&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/6389657853932163675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/visualforce-file-upload-for-any-sobject.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6389657853932163675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6389657853932163675'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/visualforce-file-upload-for-any-sobject.html' title='Visualforce File Upload - for Any SObject'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRcpa1YucGrfOb5uSaa7V40wHYNant4ZYyckezlXHvC644y-y1amN6pwQ5zUS-57FWNkOo_7a6pzGGfvbXl6nckk5tadnprqef10bCMVGbJx2K8ZlwRy-9fx9effxjF51wIlywfGDd3pPg/s72-c/file.JPG" height="72" width="72"/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-6575031443701471276</id><published>2010-04-29T16:45:00.003+05:30</published><updated>2010-05-06T16:10:32.764+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="salesforce.com faq"/><title type='text'>Salesforce.com FAQ - Technical Questions</title><content type='html'>Here are more technical questions, that any new one to salesforce &lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B001BCFSCG&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;has to learn.&lt;br /&gt;
&lt;br /&gt;
1. What are recursive triggers. How can we avoid the recursion problem&lt;br /&gt;
2. What are Apex Governer Limits.&lt;br /&gt;
3. What are the Spring&#39;10 features&lt;br /&gt;
4. How do you use an actionFunction tag&lt;br /&gt;
5. What is the difference between apex:actionFunction and apex:actionSupport tag&lt;br /&gt;
6. What is actionPoller&lt;br /&gt;
7. How do you do FileUpload using Visualforce&lt;br /&gt;
8. What is the difference between a Profile and Role&lt;br /&gt;
9. What is appexchange? How can I host my application on appexchange&lt;br /&gt;
10. What are the different editions available on salesforce&lt;br /&gt;
11. What is batch apex. &lt;br /&gt;
12. When will we use batch apex and what is the best practice&lt;br /&gt;
13. What are webservice callouts&lt;br /&gt;
14. What are wrapper classes&lt;br /&gt;
15. When do we use wrapper classes&lt;br /&gt;
&lt;br /&gt;
....More questions to be followed. Stay tuned...&lt;br /&gt;
&lt;br /&gt;
You will get answers for these questions mostly form apex and visualforce documentation provided by salesforce. If you find any real trouble in getting an answer I wil defintely help you out.&lt;br /&gt;
&lt;br /&gt;
&#39;Most of them I will be covering in my blog as articles in the very near future&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/goog_384985981&quot;&gt;&lt;span style=&quot;color: orange; font-size: large;&quot;&gt;&lt;b&gt;More &lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://salesforcetrekbin.blogspot.com/2010/05/salesforcecom-customization-questions.html&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: orange; font-size: large;&quot;&gt;&lt;b&gt;General/Customization &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: orange; font-size: large;&quot;&gt;&lt;b&gt;questions on Salesforce.com &lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas,&lt;br /&gt;
&lt;div style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Technology Evangelist,&lt;br /&gt;
Trekbin Technologies,&lt;/b&gt;&lt;/div&gt;&lt;b style=&quot;color: #38761d;&quot;&gt;www.trekbin.com&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/6575031443701471276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/salesforcecom-faq-technical-questions.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6575031443701471276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/6575031443701471276'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/salesforcecom-faq-technical-questions.html' title='Salesforce.com FAQ - Technical Questions'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-7995194797566023410</id><published>2010-04-27T12:05:00.011+05:30</published><updated>2010-04-29T14:30:48.609+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chatter"/><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>Chatter or Twitter  - Salesforce?</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: orange; font-size: large;&quot;&gt;&lt;b&gt;Chatter or &lt;a href=&quot;http://www.amazon.com/Twitter-Power-2-0-Dominate-Market/dp/0470563362?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;Twitter &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470563362&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;? :(&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/Salesforce-com-Secrets-Success-Practices-Profitability/dp/0137140762?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;Salesforce &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0137140762&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;has come up with another powerful (is it so?) tool called Chatter. It is a social collaboration platform where people can share anything from profile updates to documents. And of course the idea is not new. It has been taken from Twitter mainly and may be from other social networking sites like facebook.&lt;br /&gt;
&lt;br /&gt;
What is the real value that chatter is going to add to your organization or sales people? your sales people can easily collaborate with each other and can track any record literally, What is happening inside the organization, what other sales reps are doing, what records are getting updated etc. This will really add a value when all the users or most of them use it extensively to track their performance against others or organizations performance. Do Sales reps really have that much time to track all of this and analyse themselves. I doubt. &lt;br /&gt;
&lt;br /&gt;
Twitter is not made for professional networking and its not a performance tracking system. What i heard of from lot of tweeple (yes what they call people use twitter is tweeple :)) about why they use twitter is &quot;No one gives a damn here on what are you doing&quot;. I really don&#39;t think this is the case with chatter.&lt;br /&gt;
&lt;br /&gt;
One more biggest pain point I am seing is chatter is of no use to small scale organizations who hardly have a few sales representatives and really want to concentrate on increasing the business and not chat or tweet with other people in the orgnization. &lt;br /&gt;
&lt;br /&gt;
These are all my personal opinions and &lt;b style=&quot;color: red;&quot;&gt;What I am concerned about is, there are hell of ideas on idea exchange which have to be addressed first and these people are wasting their time on internal social networking..&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;.&lt;/span&gt;A surprise from salesforce.com ....... I am a big admirer of Salesforce.com and I can see the value it can bring to CRM breaking through barriers, at the same time I stick to the basics that you concentrate on increasing the business for customers and addressing their pain points. This is the first time I am getting contradictory to a salesforce.com feature.&lt;br /&gt;
&lt;br /&gt;
There&#39;s plenty of comment on Twitter from folks attending Dreamforce. A sampling:&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Wonder what Facebook will think of this? Could Facebook go into competition on this, providing &#39;private&#39; social networks?&quot; From @SaaSEurope, David Bradshaw.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Salesforce Chatter calling out Sharepoint 2010 - emphasizing bringing in other native apps. Also showing live tweets on SP hahaha.&quot; From @JuliaMak.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Chatter icon looks like dentures. Anyone want some Super Poligrip with that?&quot; From @rwang0, Altimeter Group&#39;s Ray Wang.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Salesforce Dreamforce Keynote outlasts audience bladders, everyone is leaving during Benioff Chatter keynote.&quot; From @marksmithvr, Ventana Research&#39;s Mark Smith.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also from Mark Smith: &quot;Salesforce Chatter support all Force.com native apps so that you can link collaboration across Salesforce ecosystem.&quot;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-family: Verdana,sans-serif; font-size: small;&quot;&gt;Krigsman says Chatter will need three things to succeed: ability to filter noise,accessibility to non-Salesforce customers and great performance.&lt;br /&gt;
reference from &lt;a href=&quot;http://www.itbusinessedge.com/cm/blogs/all/plenty-of-chatter-on-salesforces-chatter/?cs=37597&quot;&gt;itbusinessedge&lt;/a&gt;&lt;/span&gt;.</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/7995194797566023410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/chatter-or-twitter-salesforce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/7995194797566023410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/7995194797566023410'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/chatter-or-twitter-salesforce.html' title='Chatter or Twitter  - Salesforce?'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-8300673735651986200</id><published>2010-04-24T21:59:00.011+05:30</published><updated>2010-04-29T16:01:14.281+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Triggers"/><title type='text'>Bulk Triggers in Salesforce</title><content type='html'>&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://salesforcetrekbin.blogspot.com/2010/04/triggers.html&quot;&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b style=&quot;color: orange;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Bulk Enabled Triggers in &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: orange; font-size: large;&quot;&gt;&lt;b&gt;Salesforce&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321647734&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;When you have a need of writing a trigger, it is strongly recommended that you make it bulk enabled, so that the trigger can handle number of records whcih can be inserted/updated/deleted through data loader or any other &lt;a href=&quot;http://www.amazon.com/Project-Management-Data-Conversions-MIGRATIONS/dp/1418452165?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;data migration tool.&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1418452165&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;&lt;br /&gt;
I have explained &lt;b style=&quot;color: red;&quot;&gt;&lt;a href=&quot;http://salesforcetrekbin.blogspot.com/2010/04/triggers.html&quot;&gt;writing a basic trigger&lt;/a&gt;&lt;/b&gt; here.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
I will explain how to bulk enable a &lt;a href=&quot;http://www.amazon.com/MICROSOFT-SERVER-2008-BEGINNERS-GUIDE/dp/0071546383?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;trigger&lt;/b&gt; &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071546383&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;now in this article. Consider a scenario where you might want to update the opportunity status to &quot;Closed-Won&quot; depending on a boolean field CloseOpportunities__c on each of the account that has been updated (That is, if you want to close the opportunities related to accounts that are being updated). And you will be uploading hundreds of accounts using a &lt;a href=&quot;http://www.amazon.com/Creating-Demand-Applications-AppExchange-Introduction/dp/0978963903?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;data uploader&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0978963903&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt; tool.&lt;br /&gt;
&lt;br /&gt;
Here is the trigger.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;Trigger myTrigger on Account(after update)
{
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Set &amp;lt;Id&amp;gt; setAccId = new Set&amp;lt;Id&amp;gt;();

&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Account a: Trigger.new)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(a.CloseOpportunities__c)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setAccId.add(a.Id);//set always contains distinct Ids
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; list &amp;lt;Opportunity&amp;gt; lstOpp = [select Id, StageName from Opportunity where AccountId in : setAccId];
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Integer i = 0; i &amp;lt; lstOpp.size(); i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstOpp[i].StageName = &quot;Closed-Won&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(lstOpp.size() &amp;gt; 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update lstOpp;

}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br style=&quot;color: black;&quot; /&gt;&lt;b style=&quot;color: black;&quot;&gt;&lt;id&gt;&lt;id&gt;&lt;opportunity&gt;&lt;opportunity&gt;&lt;/opportunity&gt;&lt;/opportunity&gt;&lt;/id&gt;&lt;/id&gt;&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;And a more genaralised way is something like this.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-size: small;&quot;&gt;&lt;id&gt;&lt;id&gt;&lt;id,sobject&gt;&lt;id,sobject&gt;&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;tirgger MyTrigger on SObject([your events goes here comma seperated])
{
       Set&amp;lt;Id&amp;gt; SetOfIds = new Set&amp;lt;Id&amp;gt;();

       for(SObject s : trigger.new)
       {
             SetOfIds.add(s.idField);
       }
  

       Map&amp;lt;Id,SObject&amp;gt; objMap = new Map&amp;lt;Id,SObject&amp;gt;([select Id, [Other Fields] from SObject where Id in : SetOfIds]);

       for(SObject s : trigger.new)
       {
              //do your processing with map
       }
}&lt;/pre&gt;&lt;/id,sobject&gt;&lt;/id,sobject&gt;&lt;/id&gt;&lt;/id&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-size: small;&quot;&gt;&lt;b&gt;&lt;id&gt;&lt;id&gt;&lt;id,sobject&gt;&lt;id,sobject&gt;&amp;nbsp;&lt;/id,sobject&gt;&lt;/id,sobject&gt;&lt;/id&gt;&lt;/id&gt;&lt;/b&gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Hope this is useful.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
Thanks&lt;br /&gt;
Srinivas,&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://www.trekbin.com/&quot; style=&quot;color: red;&quot;&gt;www.trekbin.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/8300673735651986200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/bulk-triggers-in-salesforce.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/8300673735651986200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/8300673735651986200'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/bulk-triggers-in-salesforce.html' title='Bulk Triggers in Salesforce'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-5425681118862507989</id><published>2010-04-23T22:35:00.006+05:30</published><updated>2010-04-29T16:23:24.597+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Call External Web Service from Salesforce Apex</title><content type='html'>&lt;span style=&quot;color: blue; font-size: large;&quot;&gt;&lt;b&gt;Call External Web Service from Salesforce &lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0470521163&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;Apex&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Some &lt;a href=&quot;http://www.amazon.com/TIME-1-year/dp/B00007BK3L?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; style=&quot;color: blue;&quot; target=&quot;_blank&quot;&gt;times&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B00007BK3L&quot; style=&quot;border: medium none ! important; color: blue; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;, you may need to call an extenal web service which might have written on a serverside language like .net, php or java.&lt;br /&gt;
Once you made your web service on the serverside or you can use a third party web service api. &lt;br /&gt;
&lt;br /&gt;
I will explain you this using &lt;a href=&quot;http://www.amazon.com/Beginning-PHP-PostgreSQL-E-Commerce-Professional/dp/159059648X?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;Authorize.net&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=159059648X&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt; payment gateway. &lt;br /&gt;
There are several types of payment criterias available for Authorize.net. For an example I will go with CIM (Customer Information Manager)&lt;br /&gt;
You will find all the details in Authoirze.net &lt;a href=&quot;http://www.amazon.com/SQL-Server-2008-Developer-Edition/dp/B001B8EZR4?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;developer &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B001B8EZR4&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;documentation.&lt;br /&gt;
&lt;br /&gt;
To do payments on authorize using CIM we need to create customer profile first.&lt;br /&gt;
&lt;br /&gt;
Here is the apex code that calls an external web service.&lt;br /&gt;
&lt;br /&gt;
//Before any Apex &lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=salesforcetre-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321647734&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;callout can call an external site, that site must be registered in the Remote Site Settings page, or the call will fail. The platform, by default, prevents calls to unauthorized network addresses. &lt;br /&gt;
//You can do this like this: got Setup-&amp;gt;Administration setup-&amp;gt;Security controls-&amp;gt;Remote site settings-&amp;gt;New and add your endpoint URL there.&lt;br /&gt;
//In our case the ende point is https://api.authorize.net/soap/v1/Service.asmx.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;Public class callExternalWS
{
    public void invokeExternalWs()
    {
        HttpRequest req = new HttpRequest();
        //Set HTTPRequest Method
        req.setMethod(&#39;POST&#39;);
        req.setEndpoint(&#39;https://api.authorize.net/soap/v1/Service.asmx&#39;);
        req.setMethod(&#39;POST&#39;);
        req.setHeader(&#39;Content-Type&#39;, &#39;text/xml; charset=utf-8&#39;);
        req.setHeader(&#39;SOAPAction&#39;, &#39;https://api.authorize.net/soap/v1/CreateCustomerProfile&#39;);//
        string b =   &#39;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&amp;lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&amp;gt;&#39;+
                      &#39;&amp;lt;soap:Body&amp;gt;&amp;lt;CreateCustomerProfile xmlns=&quot;https://api.authorize.net/soap/v1/&quot;&amp;gt;&#39;+
                      &#39;&amp;lt;merchantAuthentication&amp;gt;&amp;lt;name&amp;gt;Merchant name here&amp;lt;/name&amp;gt;&#39;+
                      &#39;&amp;lt;transactionKey&amp;gt;Transaction Key here&amp;lt;/transactionKey&amp;gt;&amp;lt;/merchantAuthentication&amp;gt;&#39;+
&#39;&amp;lt;profile&amp;gt;&amp;lt;description&amp;gt;description&amp;lt;/description&amp;gt;&#39;+
                      &#39;&amp;lt;email&amp;gt;sforce2009@gmail.com&amp;lt;/email&amp;gt;&#39;+
                      &#39;&amp;lt;paymentProfiles&amp;gt;&#39;+
                      &#39;&amp;lt;CustomerPaymentProfileType&amp;gt;&amp;lt;customerType&amp;gt;individual&amp;lt;/customerType&amp;gt;&#39;+
&#39;&amp;lt;payment&amp;gt;&amp;lt;creditCard&amp;gt;&amp;lt;cardNumber&amp;gt;6011000000000012&amp;lt;/cardNumber&amp;gt;&#39;+
                      &#39;&amp;lt;expirationDate&amp;gt;2009-12&amp;lt;/expirationDate&amp;gt;&amp;lt;/creditCard&amp;gt;&#39;+
                      &#39;&amp;lt;/payment&amp;gt;&amp;lt;/CustomerPaymentProfileType&amp;gt;&amp;lt;/paymentProfiles&amp;gt;&amp;lt;/profile&amp;gt;&#39;+
                      &#39;&amp;lt;/CreateCustomerProfile&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;&#39;;
        req.setBody(b);
        Http http = new Http();
        try {
          //Execute web service call here       
          HTTPResponse res = http.send(req);   
          //Helpful debug messages
          System.debug(res.toString());
          System.debug(&#39;STATUS:&#39;+res.getStatus());
          System.debug(&#39;STATUS_CODE:&#39;+res.getStatusCode());
        //YOU CAN ALWAYS PARSE THE RESPONSE XML USING XmlStreamReader  CLASS
       } catch(System.CalloutException e) {
            //Exception handling goes here....
     }       
}
}
&lt;/pre&gt;&lt;br /&gt;
Hope this is useful</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/5425681118862507989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/call-external-web-service-from.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5425681118862507989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5425681118862507989'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/call-external-web-service-from.html' title='Call External Web Service from Salesforce Apex'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-3892038571070898391</id><published>2010-04-17T17:16:00.009+05:30</published><updated>2010-04-29T16:32:39.910+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apex"/><category scheme="http://www.blogger.com/atom/ns#" term="Batch Apex"/><title type='text'>How to use Batch Apex in Salesforce</title><content type='html'>&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;Content-Type&quot;&gt;&lt;/meta&gt;&lt;meta content=&quot;Word.Document&quot; name=&quot;ProgId&quot;&gt;&lt;/meta&gt;&lt;meta content=&quot;Microsoft Word 12&quot; name=&quot;Generator&quot;&gt;&lt;/meta&gt;&lt;meta content=&quot;Microsoft Word 12&quot; name=&quot;Originator&quot;&gt;&lt;/meta&gt;&lt;link href=&quot;file:///C:%5CDOCUME%7E1%5CINTEL%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml&quot; rel=&quot;File-List&quot;&gt;&lt;/link&gt;&lt;link href=&quot;file:///C:%5CDOCUME%7E1%5CINTEL%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx&quot; rel=&quot;themeData&quot;&gt;&lt;/link&gt;&lt;link href=&quot;file:///C:%5CDOCUME%7E1%5CINTEL%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml&quot; rel=&quot;colorSchemeMapping&quot;&gt;&lt;/link&gt;    &lt;m:smallfrac m:val=&quot;off&quot;&gt;    &lt;m:dispdef&gt;    &lt;m:lmargin m:val=&quot;0&quot;&gt;    &lt;m:rmargin m:val=&quot;0&quot;&gt;    &lt;m:defjc m:val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent m:val=&quot;1440&quot;&gt;    &lt;m:intlim m:val=&quot;subSup&quot;&gt;    &lt;m:narylim m:val=&quot;undOvr&quot;&gt;   &lt;/m:narylim&gt;&lt;/m:intlim&gt; &lt;/m:wrapindent&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:&quot;Cambria Math&quot;;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
	{font-family:CourierNewPSMT;
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:&quot;&quot;;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:&quot;Times New Roman&quot;;
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:&quot;Times New Roman&quot;;
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;  &lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Batch Apex in salesforce&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As you all might know about the salesforce governer limits on its data. When you want to fetch thousands of records or fire DML on thousands of rows on objects it is very complex in &lt;a href=&quot;http://www.amazon.com/Salesforce-com-Dummies-Tom-Wong/dp/0470318120?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;salesforce &lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470318120&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;and it does not allow you to operate on more than certain number of records which satisfies the Governer limits.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;But for medium to large enterprises, it is essential to manage thousands of records every day. Adding/editing/deleting them when needed.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Salesforce has come up with a powerful concept called Batch Apex. Batch Apex allows you to handle more number of records and manipulate them by using a specific syntax.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;We have to create an global apex class which extends &lt;span style=&quot;font-size: 9pt; line-height: 115%;&quot;&gt;Database.Batchable&lt;/span&gt; Interface because of which the salesforce compiler will know, this class incorporates batch &lt;a href=&quot;http://www.amazon.com/Jobs-People-Do-Felicity-Brooks/dp/0794519989?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;jobs&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0794519989&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;. Below is a sample class which is designed to delete all the records of Account object (Lets say your organization contains more than 50 thousand records and you want to mass delete all of them). &lt;/div&gt;&lt;span style=&quot;font-family: CourierNewPSMT; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: verdana; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;global class deleteAccounts implements Database.Batchable
{
global final String Query;
global deleteAccounts(String q)
{
Query=q;
}

global Database.QueryLocator start(Database.BatchableContext BC)
{
return Database.getQueryLocator(query);
}

global void execute(Database.BatchableContext BC,List scope)
{
List &amp;lt;Account&amp;gt; lstAccount = new list&amp;lt;Account&amp;gt;();
for(Sobject s : scope)
{
 Account a = (Account)s;
lstAccount.add(a);
}
Delete lstAccount;
}

global void finish(Database.BatchableContext BC)
{
                //Send an email to the User after your batch completes
                Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {‘sforce2009@gmail.com’};
mail.setToAddresses(toAddresses);
mail.setSubject(&#39;Apex Batch Job is done‘);
mail.setPlainTextBody(&#39;The batch Apex job processed &#39;);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: CourierNewPSMT; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: CourierNewPSMT; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;b&gt;///////////////////This is how the batch class is called&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;id batchinstanceid = database.executeBatch(new deleteAccounts(‘select Id from Account’));
&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: CourierNewPSMT; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 115%;&quot;&gt;When you instantiate the global class and called it using &lt;a href=&quot;http://www.amazon.com/Beginning-Database-Design-Novice-Professional/dp/1590597699?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;database&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1590597699&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;.executeBatch, the process gets started. As you have observed the deleteAccounts class accepts your query as a parameter in the constructor and sets it to the string variable called Query.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 115%;&quot;&gt;The start method of deleteAccount class which extends database.batchable interface sets the current query to execute using the Database.getQueryLocator method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 115%;&quot;&gt;Then the result of the query can be captured in execute method. The scope list of SObjects returned as the result of your query. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 115%;&quot;&gt;When you are executing your batch with a query which returns thousands of records, the batch will be executed with 200 records each time that is salesforce divides the total number of records in to batches. Each batch contains 200 records by default (though this is configurable less than 200 by just introducing the number when you are calling the batch class like database.executebatch(new deleteAccounts(‘your &lt;a href=&quot;http://www.amazon.com/Writers-Digest-Guide-Query-Letters/dp/1582975663?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;query&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1582975663&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;’), number here);).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;line-height: 115%;&quot;&gt;After processing each batch, the governor limits are reset.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: CourierNewPSMT; font-size: 9pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;Once the whole batch of thousands records are done the Finish method gets called and an email will be sent to the specified person.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;script src=&quot;http://www.assoc-amazon.com/s/link-enhancer?tag=salesforcetre-20&amp;amp;o=1&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/3892038571070898391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/how-to-use-batch-apex-in-salesforce.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3892038571070898391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3892038571070898391'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/how-to-use-batch-apex-in-salesforce.html' title='How to use Batch Apex in Salesforce'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-8007526836823831603</id><published>2010-04-14T20:20:00.001+05:30</published><updated>2010-04-14T20:21:33.152+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Set Id for Apex insert Tag</title><content type='html'>&lt;div style=&quot;background-color: white; color: red;&quot;&gt;&lt;b&gt;How to set Id parameter for Apex insert Tag&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I came to an interesting question on community. the above. you might want to check (reply from sforce2009, its me :) ).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: yellow;&quot;&gt;&lt;a href=&quot;http://community.salesforce.com/t5/Visualforce-Development/How-to-set-Id-parameter-for-Apex-insert-Tag/m-p/179534#M23338&quot;&gt;http://community.salesforce.com/t5/Visualforce-Development/How-to-set-Id-parameter-for-Apex-insert-Tag/m-p/179534#M23338&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Thanks,&lt;br /&gt;
Srinivas</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/8007526836823831603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/set-id-for-apex-insert-tag.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/8007526836823831603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/8007526836823831603'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/set-id-for-apex-insert-tag.html' title='Set Id for Apex insert Tag'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-1140468524600235872</id><published>2010-04-03T11:25:00.012+05:30</published><updated>2010-05-04T16:36:22.328+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring&#39;10"/><title type='text'>GROUP BY Clause in salesforce SOQL</title><content type='html'>&lt;b&gt;How to use GROUP BY clause in Salesforce&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
As you know, there are some good things in Spring’10 release of salesforce.com for developers, one of them for SOQL and yet a powerful feature is Introducing GROUP BY Clause and Aggregate functions like MAX(), SUM() etc.&lt;br /&gt;
&lt;br /&gt;
People who are from SQL background or who know SQL are definitely, great appreciators of GROUP BY usage in SQL.&lt;br /&gt;
&lt;br /&gt;
Till now, in salesforce if we want to achieve this feature, we were dealing with the apex code only.&lt;br /&gt;
The new syntax is listed below.&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;SELECT fieldList FROM objectType[WHERE conditionExpression]
[WITH [DATA CATEGORY] filteringExpression]
[GROUP BY fieldGroupByList] | [GROUP BY ROLLUP|CUBE (fieldSubtotalGroupByList)]
[HAVING havingConditionExpression]
[ORDER BY fieldOrderByList ASC | DESC ? NULLS FIRST | LAST ?]
[LIMIT ?]
&lt;/pre&gt;As you observe on the above syntax, GROUP BY is of 3 types here.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: red;&quot;&gt;&lt;b&gt;GROUP BY Explained with Visualforce report:&lt;/b&gt;&lt;/div&gt;&lt;b style=&quot;background-color: orange;&quot;&gt;&lt;/b&gt;&lt;br /&gt;
Page:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;apex:page controller=&quot;TestGroupBy&quot;&amp;gt;
&amp;nbsp; &amp;lt;apex:pageBlock title=&quot;Test Group By&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:pageBlockTable value=&quot;{!Results}&quot; var=&quot;ar&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:column headerValue=&quot;Number of Opportunities&quot; value=&quot;{!ar.Total}&quot;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apex:column headerValue=&quot;Close Date&quot; value=&quot;{!ar.CloseDate}&quot;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/apex:pageBlockTable&amp;gt;
&amp;nbsp; &amp;lt;/apex:pageBlock&amp;gt;
&amp;lt;/apex:page&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Class:&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;public class TestGroupBy
{
public list&amp;lt;AggregateResult&amp;gt; lstAR = new list&amp;lt;AggregateResult&amp;gt;();
/*
Note that any query that includes an aggregate function returns its results in an array of AggregateResult objects. AggregateResult is a read-only sObject and is only used for query results.
Aggregate functions become a more powerful tool to generate reports when you use them with a GROUP BY clause. For example, you could find the count of all opportunities for a CloseDate.

*/
public TestGroupBy()
{
lstAR = [SELECT CloseDate, COUNT(id) Total FROM Opportunity GROUP BY CloseDate];
}

public list&amp;lt;OppClass&amp;gt; getResults()
{
list&amp;lt;OppClass&amp;gt; lstResult = new list&amp;lt;OppClass&amp;gt;();
for (AggregateResult ar: lstAR)
{
oppClass objOppClass = new oppClass(ar);
lstResult.add(objOppClass);
}
return lstResult;
}

class oppClass
{
public Integer Total
{ get;set; }

public Date CloseDate
{ get;set; }

public oppClass(AggregateResult ar)
{
//Note that ar returns objects as results, so you need type conversion here
Total = (Integer)ar.get(&#39;Total&#39;);
CloseDate = (Date)ar.get(&#39;CloseDate&#39;);
}
}
}&lt;/pre&gt;&lt;aggregateresult&gt;&lt;aggregateresult&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;background-color: orange;&quot;&gt;Result:&lt;/span&gt;&lt;/b&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/aggregateresult&gt;&lt;/aggregateresult&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoyE3nmrJG8WDebB_71FFnE-Mfkvo6xbAOmr41nVeCltd-LOvKZwxNEs5IyTSGQrfjyt1ngMA7FmXbsNmbeqSFveptTbGsgG-TVCQEvJGgjUVIlKEJNdG1uVho7SAf-4mDBBtmB4rX0qln/s1600/op.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;103&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoyE3nmrJG8WDebB_71FFnE-Mfkvo6xbAOmr41nVeCltd-LOvKZwxNEs5IyTSGQrfjyt1ngMA7FmXbsNmbeqSFveptTbGsgG-TVCQEvJGgjUVIlKEJNdG1uVho7SAf-4mDBBtmB4rX0qln/s400/op.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;apex:page controller=&quot;TestGroupBy&quot;&gt;&lt;apex:pageblock title=&quot;Test Group By&quot;&gt;&lt;aggregateresult&gt;&lt;aggregateresult&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;br /&gt;
GROUPING, GROUP BY CUBE, GROUP BY ROLLUP,&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/aggregateresult&gt;&lt;/aggregateresult&gt;&lt;/apex:pageblock&gt;&lt;/apex:page&gt;&lt;br /&gt;
&lt;apex:page controller=&quot;TestGroupBy&quot;&gt;&lt;apex:pageblock title=&quot;Test Group By&quot;&gt;&lt;aggregateresult&gt;&lt;aggregateresult&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;oppclass&gt;These topics are better explained in the apex pdf.&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/aggregateresult&gt;&lt;/aggregateresult&gt;&lt;/apex:pageblock&gt;&lt;/apex:page&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: white;&quot;&gt;&lt;a href=&quot;http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic=Content%2Fsforce_api_calls_soql_select_having.htm%7CSkinName=webhelp&quot;&gt;&lt;b&gt;&lt;apex:page controller=&quot;TestGroupBy&quot;&gt;&lt;apex:pageblock title=&quot;Test Group By&quot;&gt;&lt;aggregateresult&gt;&lt;aggregateresult&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;oppclass&gt;http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic=Content%2Fsforce_api_calls_soql_select_having.htm|SkinName=webhelp&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/aggregateresult&gt;&lt;/aggregateresult&gt;&lt;/apex:pageblock&gt;&lt;/apex:page&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;apex:page controller=&quot;TestGroupBy&quot;&gt;&lt;apex:pageblock title=&quot;Test Group By&quot;&gt;&lt;aggregateresult&gt;&lt;aggregateresult&gt;&lt;oppclass&gt;&lt;oppclass&gt;&lt;oppclass&gt;To use them in visualforce, after writing the specific query, you can use the above Page and Class&lt;br /&gt;
&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/oppclass&gt;&lt;/aggregateresult&gt;&lt;/aggregateresult&gt;&lt;/apex:pageblock&gt;&lt;/apex:page&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/1140468524600235872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/group-by-clause-in-salesforce-soql.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1140468524600235872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/1140468524600235872'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/group-by-clause-in-salesforce-soql.html' title='GROUP BY Clause in salesforce SOQL'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoyE3nmrJG8WDebB_71FFnE-Mfkvo6xbAOmr41nVeCltd-LOvKZwxNEs5IyTSGQrfjyt1ngMA7FmXbsNmbeqSFveptTbGsgG-TVCQEvJGgjUVIlKEJNdG1uVho7SAf-4mDBBtmB4rX0qln/s72-c/op.JPG" height="72" width="72"/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-5744355369791849782</id><published>2010-04-02T14:11:00.033+05:30</published><updated>2010-04-29T15:47:10.523+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visualforce"/><title type='text'>Visualforce</title><content type='html'>&lt;div style=&quot;font-family: inherit;&quot;&gt;Visualforce is a powerful tool for designing your forms with similar look and feel of Salesforce default layouts. Let’s say you want to build a search page for Account Object. That is you wish to list all the existing accounts in a list and search functionality by using which you want to view the filtered accounts.&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;To do the same functionality before Visualforce era, it was very cumbersome and demand more knowledge on javascript (which may not be reliable on all browsers). Visual force is the markup language introduced by Salesforce, It provides a similar look and feel of a Salesforce standard object by just introducing some tags whose namespace is prefixed by apex.&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;We can use the standard object properties and styles by just setting the attribute StandardController to the desired object like below&lt;/div&gt;&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;apex:page standardController=”Account”&amp;gt;&amp;lt;/apex:page&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
An example which uses Account as StandardController and renders Account style is below.&lt;br /&gt;
&lt;pre class=&quot;cpp&quot; name=&quot;code&quot;&gt;&amp;lt;apex:page standardController=&quot;Account&quot;&amp;gt;
&amp;lt;apex:form&amp;gt;
&amp;lt;apex:pageBlock title=&quot;Edit Account for{!$User.FirstName}&quot;&amp;gt;
&amp;lt;apex:pageBlockSection&amp;gt;
&amp;lt;apex:inputField value=&quot;{!account.name}&quot;/&amp;gt;
&amp;lt;/apex:pageBlockSection&amp;gt;
&amp;lt;/apex:pageBlock&amp;gt;
&amp;lt;/apex:form&amp;gt;
&amp;lt;/apex:page&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
The above code inherits a pageblock which is similar to Account standard layout page section with the Name field editable. If you observe the Pageblock’s title, we can still use the Formula Merge Fields just like in S-Controls.&lt;br /&gt;
In my next Article on Visualforce, I will be posting the code for the functionality described at top (Search functionality on Account listing). This will involve more abilities of Visualforce.</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/5744355369791849782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/visualforce_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5744355369791849782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5744355369791849782'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/visualforce_02.html' title='Visualforce'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-5741657616836908187</id><published>2010-04-02T12:23:00.002+05:30</published><updated>2010-04-24T22:05:20.592+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Triggers"/><title type='text'>Triggers</title><content type='html'>&lt;span style=&quot;font-weight: bold;&quot;&gt;Writing a basic &lt;a href=&quot;http://www.amazon.com/Development-Force-com-Platform-Building-Applications/dp/0321647734?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;Trigger&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0321647734&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The possible events of trigger are&lt;br /&gt;
&lt;ul&gt;&lt;li value=&quot;7&quot;&gt;&lt;samp class=&quot;codeph&quot;&gt;before insert, before update, before delete, after insert, after update, after delete, after undelete&lt;/samp&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Example:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
trigger MyTrigger on Account(after insert)&lt;br /&gt;
{&lt;br /&gt;
//Update Account Name by appending some dummy text&lt;br /&gt;
Account a = new Account(Id= trigger.new[0].Id);&lt;br /&gt;
a.Name = &#39;Test &#39; + Trigger.new[0].Name;&lt;br /&gt;
update a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Please note, the above is a very basic &lt;a href=&quot;http://www.amazon.com/Maximizing-Sales-Salesforce-com-Edward-Kachinske/dp/159863562X?ie=UTF8&amp;amp;tag=salesforcetre-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;trigger&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=salesforcetre-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=159863562X&quot; style=&quot;border: medium none ! important; margin: 0px ! important; padding: 0px ! important;&quot; width=&quot;1&quot; /&gt;. I will discuss in other article how to write a Trigger which is bulk enabled&lt;br /&gt;
&lt;div style=&quot;color: red;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://salesforcetrekbin.blogspot.com/2010/04/bulk-triggers-in-salesforce.html&quot;&gt;How to bulk enable triggers I have explained here&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/5741657616836908187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/triggers.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5741657616836908187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/5741657616836908187'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/triggers.html' title='Triggers'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1935655503299435627.post-3231360971697496779</id><published>2010-04-02T10:21:00.002+05:30</published><updated>2010-04-29T16:47:39.646+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="salesforce.com faq"/><title type='text'>Salesforce.com FAQ or Interview Questions</title><content type='html'>People who are using salesforce.com or newly migrating to this platform or who are seeking a career on this platform definitely face some challenges. I am trying to consolidate a few technical questions here. &lt;br /&gt;
Questions &lt;br /&gt;
&lt;br /&gt;
1. What is Apex &lt;br /&gt;
Ans: It is the in-house technology of salesforce.com which is similar to Java programming with object oriented concepts and to write our own custom logic. &lt;br /&gt;
&lt;br /&gt;
2. What is an S-Control &lt;br /&gt;
Ans: S-Controls are the predominant salesforce.com widgets which are completely based on Javascript. These are hosted by salesforce but executed at client side. S-Controls are superseded by Visualforce now. &lt;br /&gt;
&lt;br /&gt;
3. What is a Visualforce Page &lt;br /&gt;
Ans: As I said in the above answer, S-controls are superseded by Visulaforce, Visualforce is the new markup language from salesforce, by using which, We can render the standard styles of salesforce. We can still use HTML here in Visualforce. Each visualforce tag always begins with &quot;apex&quot; namespace. All the design part can be acomplished by using Visualforce Markup Language and the business logic can be written in custom controllers associated with the Page. &lt;br /&gt;
&lt;br /&gt;
4. Will Visual force still supports the mege fields usage like S-control. &lt;br /&gt;
Ans: Yes. Just like S-Controls, Visualforce Pages support embedded merge fields, like the {!$User.FirstName} used in the example. &lt;br /&gt;
&lt;br /&gt;
5. Where can I write my Visualforce code &lt;br /&gt;
Ans: You can write the code basically in 3 ways. One go to, setup-&amp;gt;App Setup-&amp;gt;Develop-&amp;gt;Pages and create new Visulaforce page. While creating the Page, You will find a salesforce editor. You can write your Visualforce content there. Or go to Setup -&amp;gt; My Personal Information -&amp;gt; Personal Information -&amp;gt; Edit check the checkbox development mode. When you run the page like this, https://ap1.salesforce.com/apex/MyTestPage. you will find the Page editor at the bottom of the page. You can write you page as well as the controller class associated with it, there it self. OR Using EclipseIDE you can create the Visulaforce page and write the code. &lt;br /&gt;
&lt;br /&gt;
Stay tuned.... I will be posting more questions and articles on salesforce.com technical side very soon. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://salesforcetrekbin.blogspot.com/2010/04/salesforcecom-faq-technical-questions.html&quot;&gt;&lt;b style=&quot;color: red;&quot;&gt;More Qustions are Here&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;. All the best for the newbies...&lt;br /&gt;
&lt;br /&gt;
Thanks Srinivas, &lt;br /&gt;
www.trekbin.com</content><link rel='replies' type='application/atom+xml' href='http://salesforcetrekbin.blogspot.com/feeds/3231360971697496779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/salesforcecom-faq-or-interview.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3231360971697496779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1935655503299435627/posts/default/3231360971697496779'/><link rel='alternate' type='text/html' href='http://salesforcetrekbin.blogspot.com/2010/04/salesforcecom-faq-or-interview.html' title='Salesforce.com FAQ or Interview Questions'/><author><name>Trekbin Technologies</name><uri>http://www.blogger.com/profile/08235678279956052118</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='22' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJKwtEI5lRejt2Xck17JHS6SCNL_g9uSIopI-WHrMh8pXaAJBZBnQR6RkYfIzDCiG9DSMq_rpjoCw2wwpj8tsvZp9OWE3qNZA9Ck8fhZ7aimOR_Qz9TcHpJZ5YwlLeQ/s220/Mypic.JPG'/></author><thr:total>10</thr:total></entry></feed>