<?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-9158797946384190684</id><updated>2024-11-01T06:34:01.986-04:00</updated><title type='text'>Salesforce Musings</title><subtitle type='html'>Your one-stop guide to Salesforce Administration, Development and Training</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-8164608724790531414</id><published>2014-07-01T23:20:00.000-04:00</published><updated>2014-07-02T23:21:05.212-04:00</updated><title type='text'>Phone Number with Dial Icon</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;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 23px;&quot;&gt;Recently while working for a client, I came across a use case where a dial icon&amp;nbsp;was required to be displayed in the Phone Number field. Here are the steps we followed -&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 23px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 23px;&quot;&gt;Add the dial icon to the Static Resources.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 23px;&quot; /&gt;
&lt;b style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 1.4;&quot;&gt;Formula field:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 23px;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTlIWHedfAxYe01K1_ajwsgHt74reoqqpJo70P-SN30ZNu1O87saYck5Y-6fbLmYzMHZJDtD_4-oKe0DqdX4MjslLeZYtoqlh7hFQ9NRkmJc84_gI3vg6-Jn6t-VgxVNMvfNbrpaTuKP0/s1600/phone+with+dial.png&quot; style=&quot;border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;pinContainer&quot;&gt;&lt;span class=&quot;pin&quot; data-page-action-input=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTlIWHedfAxYe01K1_ajwsgHt74reoqqpJo70P-SN30ZNu1O87saYck5Y-6fbLmYzMHZJDtD_4-oKe0DqdX4MjslLeZYtoqlh7hFQ9NRkmJc84_gI3vg6-Jn6t-VgxVNMvfNbrpaTuKP0/s1600/phone+with+dial.png&quot; data-page-action=&quot;pinImage&quot; style=&quot;-webkit-background-size: 56px 28px; background-image: url(http://s3.feedly.com/production/head/images/ab-pinit.v3.png); background-size: 56px 28px; cursor: pointer; height: 28px; margin-left: 5px; margin-top: 5px; opacity: 0; position: absolute; width: 56px; z-index: 5;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;epin&quot; data-page-action-input=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTlIWHedfAxYe01K1_ajwsgHt74reoqqpJo70P-SN30ZNu1O87saYck5Y-6fbLmYzMHZJDtD_4-oKe0DqdX4MjslLeZYtoqlh7hFQ9NRkmJc84_gI3vg6-Jn6t-VgxVNMvfNbrpaTuKP0/s1600/phone+with+dial.png&quot; data-page-action=&quot;epinImage&quot; style=&quot;-webkit-background-size: 28px; background-image: url(http://s3.feedly.com/production/head/images/ab-epin@2x.png); background-size: 28px; cursor: pointer; height: 28px; margin-left: 65px; margin-top: 5px; opacity: 0; position: absolute; width: 28px; z-index: 5;&quot;&gt;&lt;/span&gt;&lt;img border=&quot;0&quot; class=&quot;pinable&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTlIWHedfAxYe01K1_ajwsgHt74reoqqpJo70P-SN30ZNu1O87saYck5Y-6fbLmYzMHZJDtD_4-oKe0DqdX4MjslLeZYtoqlh7hFQ9NRkmJc84_gI3vg6-Jn6t-VgxVNMvfNbrpaTuKP0/s1600/phone+with+dial.png&quot; style=&quot;border: 0px; display: block; margin-bottom: 17px; margin-top: 17px; max-width: 578px; padding: 0px;&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 23px;&quot; /&gt;
&lt;b style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 1.4;&quot;&gt;Output:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 23px;&quot;&gt;
&lt;span class=&quot;pinContainer&quot; style=&quot;border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; text-decoration: none;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6n7y9HLyBA-dRBv7OiUC693TJ7auXPmDe2rMz2zb4xj4Gha4whcFuJS_z5hM_-O4mUCan-3pk_mHakXcUBIQ-IV6sGq8-iq1wkFXaIfdYKT8q80GvZEAFxZIy2RGaGeTUpdb4sMl7zUd/s1600/output.png&quot; style=&quot;border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;pin&quot; data-page-action-input=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6n7y9HLyBA-dRBv7OiUC693TJ7auXPmDe2rMz2zb4xj4Gha4whcFuJS_z5hM_-O4mUCan-3pk_mHakXcUBIQ-IV6sGq8-iq1wkFXaIfdYKT8q80GvZEAFxZIy2RGaGeTUpdb4sMl7zUd/s1600/output.png&quot; data-page-action=&quot;pinImage&quot; style=&quot;-webkit-background-size: 56px 28px; background-image: url(http://s3.feedly.com/production/head/images/ab-pinit.v3.png); background-size: 56px 28px; cursor: pointer; height: 28px; margin-left: 5px; margin-top: 5px; opacity: 0; position: absolute; width: 56px; z-index: 5;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;epin&quot; data-page-action-input=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6n7y9HLyBA-dRBv7OiUC693TJ7auXPmDe2rMz2zb4xj4Gha4whcFuJS_z5hM_-O4mUCan-3pk_mHakXcUBIQ-IV6sGq8-iq1wkFXaIfdYKT8q80GvZEAFxZIy2RGaGeTUpdb4sMl7zUd/s1600/output.png&quot; data-page-action=&quot;epinImage&quot; style=&quot;-webkit-background-size: 28px; background-image: url(http://s3.feedly.com/production/head/images/ab-epin@2x.png); background-size: 28px; cursor: pointer; height: 28px; margin-left: 65px; margin-top: 5px; opacity: 0; position: absolute; width: 28px; z-index: 5;&quot;&gt;&lt;/span&gt;&lt;img border=&quot;0&quot; class=&quot;pinable&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6n7y9HLyBA-dRBv7OiUC693TJ7auXPmDe2rMz2zb4xj4Gha4whcFuJS_z5hM_-O4mUCan-3pk_mHakXcUBIQ-IV6sGq8-iq1wkFXaIfdYKT8q80GvZEAFxZIy2RGaGeTUpdb4sMl7zUd/s1600/output.png&quot; style=&quot;border: 0px; display: block; margin-bottom: 17px; margin-top: 17px; max-width: 578px; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/8164608724790531414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/8164608724790531414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/8164608724790531414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/8164608724790531414'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2014/07/phone-number-with-dial-icon.html' title='Phone Number with Dial Icon'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTlIWHedfAxYe01K1_ajwsgHt74reoqqpJo70P-SN30ZNu1O87saYck5Y-6fbLmYzMHZJDtD_4-oKe0DqdX4MjslLeZYtoqlh7hFQ9NRkmJc84_gI3vg6-Jn6t-VgxVNMvfNbrpaTuKP0/s72-c/phone+with+dial.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-5558586058469649512</id><published>2014-06-01T23:17:00.000-04:00</published><updated>2014-07-02T23:18:07.126-04:00</updated><title type='text'>4 Best Practices for Salesforce.com Code Reviews</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;a href=&quot;http://www.opfocus.com/blog/five-pet-peeves-for-salesforce-com-code-reviews/&quot;&gt;&lt;span style=&quot;color: #196bae; font-size: 18pt; text-decoration: none;&quot;&gt;4 Best Practices to Write Great Code&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;As a technical lead, I often review
code written by other developers. Sometimes these code reviews are planned: a
client invites us in to review their code, either for training purposes or to
address a specific problem. Other times, code reviews are a response to an
unexpected emergency: for example, we try to deploy new functionality only to
discover that existing unit tests aren’t passing in Production, or, we get a
panicked call from a client saying that they’re suddenly seeing Governor Limit
errors in code that a long-gone system administrator wrote, and we’re asked to
fix the problem that is blocking users from saving their data.&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Beginning a review of someone else’s
code is always a little stressful. It’s like being called in to clean someone
else’s house, where you have to get it clean in 2 hours, but you have no idea
how many rooms need to be cleaned or how messy those rooms might be when you
start the job. I imagine that house cleaners have pet peeves when they begin a
cleaning job (probably things like ferocious pets or unwashed dishes in the
kitchen sink.) I certainly have pet peeves when I conduct a code review; things
that I find that raise my blood pressure because I know they’re not serving our
clients well. Here are a few of my own best practices for code reviews.&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;margin-bottom: 21.4pt; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 21.4pt; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 21.4pt; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 21.4pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;1. No Comments&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Sometimes I’ll see a trigger with a
hundred lines of code, with absolutely no comments except for one line, buried
deep within the code that says:&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;// Increment x&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;I’ve never understood why some
developers don’t take time to comment their code! Every Trigger, Class, and
method should begin with a comment block that explains what the code does.
Every section of code within a Trigger or Class should contain an explanation
as well. (For that matter, complex formulas in Custom Fields, Validation Rules,
and Approval Processes should also have comments, but that’s a story for
another time.)&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;It doesn’t take long at all to write
a comment. Even a mediocrely written comment can save a ton of time months
later, when someone else is trying to make sense of your code. Please, as
you’re writing your code, write comments!&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;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;2. Non-Bulkified Triggers&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Every couple of months, we run across
non-Bulkified (or poorly Bulkified) Triggers. These Triggers are usually
written by people who are experienced in Java or some other language, but who
aren’t used to developing in Apex, and who don’t understand the factors that
Salesforce’s Governor Limits require developers to consider. &lt;b&gt;All triggers
must be bulkified!&lt;/b&gt; This may sound harsh, but if you don’t know what that
means, think long and hard about whether you should be developing code that
will impact your company’s Production Users! At a minimum, read the &lt;a href=&quot;https://developer.salesforce.com/page/Apex_Language_Reference_-_PDF_Download&quot;&gt;&lt;span style=&quot;color: #196bae; text-decoration: none; text-underline: none;&quot;&gt;Apex Language
Reference&lt;/span&gt;&lt;/a&gt;, especially the section on “Running Apex Within Governor
Execution Limits.” And consider bringing in an experienced consultant to review
your code and suggest improvements. A little experienced help as you’re
learning can help save you a lot of time (and your company a lot of money) in
the long term!&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;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;3. Hard-Coded Ids&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Very often, I’ll run across code with
hard-coded Ids like this:&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Contact c = new Contact();&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;c.RecordTypeId = &#39;012700000001du7&#39;;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Hard-coded Ids – augh! They’re not
self-documenting – looking at the above code, can you tell why it’s assigning
that particular Record Type Id to the new Contact, or what Record Type is being
assigned? But even worse, if the Record Type was just created in the Sandbox,
when the code is deployed and the new Record Type is created in Production,
it’ll have a different Id, and the code above will fail.&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;A much better version of this code
would be:&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;RecordType rtInternalContact = [select id from RecordType &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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;where SObjectType=&#39;Contact&#39; &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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;and Name=&#39;Internal Contact&#39;];&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Contact c = new Contact();&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;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;c.RecordTypeId = rtInternalContact.id;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Even though this code doesn’t have
any comments, it’s much easier to see what Record Type is being used. And if
the “Internal Contact” Record Type has a different Id in Production, this code
will use that new Id without any changes. (Don’t forget to bulkify this code –
you don’t want to make this query inside a FOR loop!)&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;(You can also get a Record Type Id
using the DescribeSObjectResult object’s getRecordTypeInfos*() methods. See the
Apex Language Reference for details.)&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;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;4. Unit Tests That Don’t Test&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Sometimes, when we look at a Unit
Test, we can tell exactly how and when it was written: in a panic, when the
original developer tried to deploy some code and realized that they hadn’t
written any Unit Tests for it. When that happens, the developer sometimes slaps
together Unit Tests that might achieve the code coverage required for
deployment, but that don’t actually test anything. How frustrating! The whole
purpose of unit tests is to help ensure quality: slapping together unit tests
that don’t verify anything only serves to help you deploy potentially
poor-quality code to Production!&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Unit Tests should test both positive
and negative cases. Unit Tests for Triggers should test both individual and
bulk DML operations. When you find a problem in your code, you should consider
developing a regression Unit Test to prevent a recurrence of the same problem.
Developers (and their management) often perceive Unit Tests as a necessary
evil. I encourage you to re-evaluate that opinion. A well-written Unit Test can
help you find and solve problems long before they’re experienced in Production.
Unit tests are your friend!&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;margin-bottom: 20pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;All of our development estimates
include time to write Unit Tests. We don’t consider a coding assignment to be
done until adequate Unit Tests have been written for it. We don’t wait until
deployment time; we write tests as we go. I strongly encourage you to adopt the
same practice.&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;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #262626; font-size: 18pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;In Conclusion&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 25pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #262626; font-size: 15pt;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;How can you avoid writing code that has the kinds of
problems described above? First, be aware that the code you’re writing will be
running in a production org and that the quality and maintainability of your
code could be responsible for generating or blocking millions of dollars in
productivity and revenue for your company – so it’s worth the time to write
that code properly! Secondly, encourage your company’s IT development
organization to develop a Coding Standards document, and then conduct your own
code reviews to ensure that you’re following those guidelines. What should go
into a Coding Standard document? More on that in a future post.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/5558586058469649512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/5558586058469649512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/5558586058469649512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/5558586058469649512'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2014/07/4-best-practices-for-salesforcecom-code.html' title='4 Best Practices for Salesforce.com Code Reviews'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-4608584726294869480</id><published>2014-05-01T16:28:00.000-04:00</published><updated>2014-07-02T23:09:18.587-04:00</updated><title type='text'>Diving into Visualforce Controllers</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Very often you would need to either display data from Force.com database or insert data in database variables. Well Force.com platform uses &#39;Controllers&#39; to do the same task. A &#39;Controller&#39; is just an APEX code that reads and writes data in the model that is the Force.com database. The variables in the database interact with the presentation layer using &quot;getter&quot; and &quot;setter &quot; methods of the Controller. Using the &#39;getter&#39; method its possible to get the value of the variable and display it on the Visualforce pages. Similarly a setter method allows the user to change the value of the variable using the Visualforce components like text box.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://wiki.developerforce.com/images/5/51/Img538_plat_model.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://wiki.developerforce.com/images/5/51/Img538_plat_model.gif&quot; height=&quot;144&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now there is something about this Force.com platform which is so majical. It provides default controller implementations called Standard Controllers. These standard controllers provide for the behaviour of native interface like &#39;editing&#39; or &#39;creating&#39; records.&amp;nbsp; Now you can also customize these controllers using controller extensions (classes written in Apex). also you can implement controllers which are totally user defined called Custom Controllers.&lt;br /&gt;
&lt;br /&gt;
Lets take a look at a simple example:&lt;br /&gt;
TestPage Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;apex:page controller=&quot;MyController&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;apex:form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name: &amp;lt;apex:inputText value=&quot;{!name}&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;apex: outputText value=&quot;{!mssg}&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;apex:commandLink action=&quot;{!Display}&quot; value=&quot;Show Message&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/apex:form&amp;gt;&lt;br /&gt;
&amp;lt;/apex:page&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MyController Code:&lt;br /&gt;
&lt;br /&gt;
public class MyController{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String name {get ; set;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String mssg {get ; set;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PageReference Display() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mssg=&#39;Good Morning&#39; + name;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/4608584726294869480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/4608584726294869480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/4608584726294869480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/4608584726294869480'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2010/09/diving-into-visualforce-controllers.html' title='Diving into Visualforce Controllers'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-6435011976198191888</id><published>2014-04-01T14:54:00.000-04:00</published><updated>2014-07-02T23:08:38.754-04:00</updated><title type='text'>Benefits of Visualforce</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Visualforce markup language provides a host of benefits. Some of them are listed below:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Easier development: &lt;/b&gt;Visualforce allows the developers to write the code for the VF page and immediately see the results after saving in the upper panel. This ease of use saves considerable time for the developers. Also creating a new VF page is extremely easy. You can just enter a URL with a the name of new VF page and the platform will prompt you to create it without even writing a single line of code..!!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Easy Integration with Web-based user Interface technologies: &lt;/b&gt;Won&#39;t it be cool if we can build VF pages with host of user interface techniques like Flash, Javascript....!! Yes sir you can do it with Force.com platform. Since the VF pages are ultimately rendered as HTML pages in the browser you can combine HTML, Javascript with native dynamic binding fields and do some really cool stuff. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Conformity with MVC style development: &lt;/b&gt;MVC refers to Model-View-Controller paradigm. The &#39;model&#39; here refers to the &#39;back-end&#39; that is the database design part of the application. &#39;View&#39; refers to the presentation layer (front end) that is our VF pages itself. &#39;Controller&#39; refers to the business logic of the application. Such separation ensures easier division of work where Designers can concentrate on designing the VF pages while the developers can quietly play with the business logic. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Compact Code:&lt;/b&gt; On an average the amount of code needed is 90% less with VF tags&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hosted platform:&lt;/b&gt; This is by far the best advantage. As the VF pages are hosted and compiled by the platform itself. This translates into improved performance &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Automatic Upgradation:&lt;/b&gt; Your VF pages are automatically upgraded when Force.com platform itself is upgraded. So no hassles there.&lt;/li&gt;
&lt;/ul&gt;
In the next post we will discuss advantages of VF pages over S-controls. Till then sit tight and enjoy your Salesforce journey with my blogs.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/6435011976198191888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/6435011976198191888' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/6435011976198191888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/6435011976198191888'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2010/09/benefits-of-visualforce.html' title='Benefits of Visualforce'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-3942217606978122090</id><published>2014-03-01T14:31:00.000-05:00</published><updated>2014-07-02T23:07:51.979-04:00</updated><title type='text'>Introduction to Visualforce --1</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
As a Salesforce developer you will face numerous occassions when the users demand custom pages or something different than what Salesforce&#39;s native environment has to offer. How&amp;nbsp;do you cater to such situations. Just say &#39;No Problemo...&#39; and start working on developing Visualforce pages. You can develop custom user interfaces using two ways. One by using Visualforce Components framework or use the automatically generated Page Layouts that Salesforce environment provides.&lt;br /&gt;
&lt;br /&gt;
Lets start with our Visualforce jouney. Note that this will be a series of blogs based on Visualforce and Apex. (Its not possible to cover all topics in a single blog). This blog will give you a brief introduction on Visualforce. Visualforce is basically a component based framework to build custom pages. This framework uses tags to build components that make up a page. There are about 70 components which are already made available by the salesforce framework. But that doesn&#39;t mean that you cannot create your own component.&amp;nbsp;The framework allows developers to create custom components. &lt;br /&gt;
&lt;br /&gt;
Visualforce also follows the MVC(Model View Controller)&amp;nbsp;paradigm. Hence the VF (henceforth Visualforce is referred to as VF) pages provide tight integration with the Salesforce database. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://wiki.developerforce.com/images/9/9d/Visualforce_crl_vf.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://wiki.developerforce.com/images/9/9d/Visualforce_crl_vf.png&quot; height=&quot;176&quot; qx=&quot;true&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
Now lets take a deeper look at how VF pages are built and rendered. Visualforce pages are made up of components (custom or already available). These components basically render HTML tags when called from the browser. Once the VF pages are constructed and saved in the salesforce servers the users can access those pages using url links in the browser. The interesting part starts now. When a call is made to the Salesforce servers for those pages, the VF tags are rendered as HTML tags instead and an HTML page is displayed at the browser. (Your browser&amp;nbsp;has no clue how to interpret VF tags). You might wonder why do we need to build VF pages using VF tags then? Don&#39;t the HTML&amp;nbsp;tags serve the purpose. Yes, HTML tags serve the purpose and you can very well substitute HTML tags to VF tags. But the main advantage of&amp;nbsp;using VF tags is it reduces the amount of code that needs to be written by about 90%. No wonder Salesforce Developers go gaga about Visualforce and Apex Development platform.&amp;nbsp; This process is explained in the image above. &lt;/div&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
Now since you know what Visualforce pages are all about (and I hope you are hungry for more). Lets stop it here and we will continue in the next blog post.&lt;/div&gt;
&lt;img src=&quot;http://wiki.developerforce.com/images/9/9d/Visualforce_crl_vf.png&quot; height=&quot;52&quot; style=&quot;filter: alpha(opacity=30); left: 522px; mozopacity: 0.3; opacity: 0.3; position: absolute; top: 480px; visibility: hidden;&quot; width=&quot;96&quot; /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/3942217606978122090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/3942217606978122090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/3942217606978122090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/3942217606978122090'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2010/09/introduction-to-visualforce-1.html' title='Introduction to Visualforce --1'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9158797946384190684.post-6914973019220693461</id><published>2014-02-01T12:30:00.000-05:00</published><updated>2014-07-02T23:21:17.828-04:00</updated><title type='text'>Data Loader to the Rescue</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span id=&quot;inner&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Recently I was working on a Salesforce.com CRM project. I came across a software called Data Loader. Let see in detail.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;The Force.com platform offers a development environment which you can use to create your own custom applications. Frequently, you will use the Force.com platform to create applications that operate on data that you already have in some form - in comma-separated variable files, spreadsheets or other relational databases.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0.4em 0px 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;The Data Loader is an easy to use graphical tool that helps you to get your data into Force.com objects via insert and upsert operations. The Data Loader can also be used to export data from Force.com objects into any of the destinations mentioned above. You can even use the Data Loader to perform bulk deletions by exporting the ID fields for the data you wish to delete and using that source to specify deletions through the Data Loader.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0.4em 0px 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;The Apex Data Loader requires the use of the Force.com API (Enterprise, Unlimited and Developer Editions).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-family: inherit; font-size: 12px; margin: 0.4em 0px 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0.4em 0px 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Features of the Data Loader include:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; list-style-type: disc; margin: 0.3em 0px 0px 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;An easy-to-use wizard interface&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;An alternate command line interface&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;A batch mode interface with database connectivity&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Support for large files with up to millions of rows&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Drag-and-drop field mapping&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Support for all objects, including custom objects&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Detailed success and error log files in CSV format&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;A built-in CSV file viewer&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0px 0px 0.1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;Supported on Windows 2000, XP, and Vista&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;color: black; font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 12px; margin: 0.4em 0px 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;For more detailed information about the use of Data Loader, check out:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;book antiqua&#39;, palatino;&quot;&gt;&lt;a href=&quot;http://wiki.developerforce.com/index.php/Data_Loader_Video&quot;&gt;http://wiki.developerforce.com/index.php/Data_Loader_Video&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://salesforcemusings.blogspot.com/feeds/6914973019220693461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9158797946384190684/6914973019220693461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/6914973019220693461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9158797946384190684/posts/default/6914973019220693461'/><link rel='alternate' type='text/html' href='http://salesforcemusings.blogspot.com/2010/09/recently-i-was-working-on-salesforce.html' title='Data Loader to the Rescue'/><author><name>Prathamesh</name><uri>http://www.blogger.com/profile/10176510669514551105</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTDYYdZeqA8WNXPRcAT6ilmZqK1ZIGd60nX49KtTQr2kvEA-8YTkz0ZnQmE5MXxEQkg7gPE0qAxgp6rymvGyPP1xT7c2dZsZkeizl919b2d5mLXaVaFNsf_AJIgdFMvQ/s1600/*'/></author><thr:total>0</thr:total></entry></feed>