<?xml version="1.0" encoding="UTF-8"?>




<rss version="2.0"> <channel> <title>Evernote Openbook: SFDC Shared</title>
<link>http://www.evernote.com/pub/hemmeter/SFDCShared</link>
<description>Notes from hemmeter&#039;s  Evernote Openbook: SFDC Shared</description> 

  
  <lastBuildDate>Sun, 15 Nov 2009 06:58:17 GMT</lastBuildDate>
 
  
  <item> <title>Using Session IDs to access Salesforce on the Web</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#bd9d0033-da3f-4d4c-ab10-4078ce9be6e7</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
<div>Using Session IDs to access Salesforce on the Web</div>
<div> </div>
<div>https://&lt;server&gt;.salesforce.com/secur/frontdoor.jsp?sid=&lt;session id&gt;</div>
<div> </div>
<div>The server must be determined.  I have not been able to get it to work using www.salesforce.com or login.salesforce.com.  If I cannot figure out the server, I go to my workbench app and login using the session.  This will dynamically determine the server.  force.arrowpointe.com.</div>
</div>
    
    ]]></description> <pubDate>Sun, 15 Nov 2009 06:58:17 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#bd9d0033-da3f-4d4c-ab10-4078ce9be6e7</guid> 
  
  </item>

  
  <item> <title>Calculating Totals with Batch Apex</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#b9b14476-dc56-45cd-8d61-176f29ae1887</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#b9b14476-dc56-45cd-8d61-176f29ae1887"><img align="right" src="http://www.evernote.com/shard/s1/thumb/b9b14476-dc56-45cd-8d61-176f29ae1887"/></a>
        <div class="ennote">
<div> </div>
<div><a href="http://feedproxy.google.com/~r/nonprofitcrm/~3/_vNI9bNi-so" shape="rect">Calculating Totals with Batch Apex</a></div>
<div>via <a href="http://nonprofitcrm.org/" shape="rect">nonprofitCRM.org</a> by Evan Callahan on 8/12/09</div>
<div> </div>
<p>Salesforce.com has a new feature called <a href="http://blog.sforce.com/sforce/2009/05/batch-apex-a-powerful-new-functionality-in-summer-09.html" shape="rect">Batch Apex</a>. It is currently available only as a preview by special request, but is expected to be in general release later this year. One of my nonprofit clients has a very large data set and have been looking forward to the ability to add up opportunity values in a variety of ways. We used Batch Apex to create a tool for them, and it seems to be working extremely well.</p>
<p>In this post, I will briefly explain what Batch Apex is, and describe our use case for the feature. In a later post, I will show the tool we created and how it works.</p>
<p>About Batch Apex<br clear="none"/>
Apex has limits. You can perform only so many queries, and process only so many results; this allows Salesforce to keep your resource usage under control. Batch Apex blows these limits out of the water by allowing you to perform a query that returns up to 5 million records, and then create a special type of apex class that processes the records 200 at a time. There are still some rules as to what you can do in a Batch Apex class, but it can be a great workaround for apex limits.</p>
<p>Once you write a “Batchable” Apex class that follows the proper design pattern, you can use the class to execute your query, which queues up an Apex job that executes little by little until it is complete. How fast it runs depends on factors such as complexity of your query, time of day, and the extra capacity of the Salesforce system. You can monitor your job’s progress by clicking Setup | Monitoring | Apex Jobs.</p>
<p/>
<p>As you see, the last apex job shown was broken into 1,327 batches of 200 records – which means the query must have returned and processed over 265,000 opportunities.</p>
<p>Why We Used It<br clear="none"/>
We use many strategies for summarizing data in Salesforce, including report totals, roll-up summary fields, and apex code in triggers. Because roll-up summaries do not support calculations of opportunity totals into contacts who have roles, we have always used triggers to keep ...</p></div>
    
    ]]></description> <pubDate>Mon, 17 Aug 2009 23:20:00 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#b9b14476-dc56-45cd-8d61-176f29ae1887</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/b9b14476-dc56-45cd-8d61-176f29ae1887"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Salesforce Sites Event Registration Pages (Summer 09 part 3)</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#be1027e4-ba49-4a62-bd52-3af89498c9cd</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#be1027e4-ba49-4a62-bd52-3af89498c9cd"><img align="right" src="http://www.evernote.com/shard/s1/thumb/be1027e4-ba49-4a62-bd52-3af89498c9cd"/></a>
        <div class="ennote">
<a href="http://blogs.salesforce.com/marketing/2009/06/salesforce-sites-event-registration-pages-summer-09-part-3.html" shape="rect">Salesforce Sites Event Registration Pages (Summer 09 part 3)</a>
<div>John Kucera Jun 30, 2009</div>
<p>Salesforce just launched Force.com Sites and it's free for all Enterprise and Unlimited Edition subscribers!  Here's a great intro to Force.com Sites, including some possibilities for driving value to your organization leveraging it's power:</p>
<p> </p>
<div> </div>
<p>My favorite application of Sites is creating landing pages that directly update responses in Salesforce campaigns.  Some advantages of using Sites for response capture on landing pages:</p>
<div> </div>
<p> - Fewer duplicate leads</p>
<p> - Cleaner response data</p>
<p> - Secure, hosted, and scalable</p>
<div> </div>
<p>Sites minimizes dupe leads by updating the campaign member record directly instead of creating a duplicate lead that has to be merged back to the original lead or contact.  Sites is a clean, hassle-free way to create webforms because any picklist option you add in Salesforce is immediately available on the web form.  This means if you add an option to a &quot;Product Interest&quot; custom field on campaign member in Salesforce, this product can immediately appear on the Sites pages your prospects and customers see,  minimizing maintenance and creating a simple way to keep data clean.  Finally, Sites is battle tested against security threats and huge traffic spikes so you can rest easy your customers will have a consistent experience.</p>
<div> </div>
<p>Now we'll get into the meat: how to leverage Sites for event registration pages and set up your first page.  Using <a href="http://blogs.salesforce.com/marketing/2009/06/automated-multiwave-campaigns-in-salesforce-marketing-summer-09-part-2.html" shape="rect">examples from the last post</a>, you can set up workflow rules to email anyone added to a campaign.  By the end of this post, you'll know how to include smart links in those emails to drive prospects to your campaign member Sites Event pages, and automatically update responses from those pages such as this example:<br clear="none"/>
<br clear="none"/>
<a href="http://jdk470.force.com/?id=00v3000000JIrl6AAD" shape="rect">http://jdk470.force.com/?id=00v3000000JIrl6AAD</a><br clear="none"/>
<br clear="none"/>
<a href="http://blogs.salesforce.com/.a/6a00e54ee3905b883301157169b389970b-pi" shape="rect"></a><br clear="none"/>
<br clear="none"/>
To get there, we'll explore the 3 key pieces to your first site page:<br clear="none"/>
<br clear="none"/>
1) Set up your email links to include campaign member Id's in the URL<br clear="none"/>
2) Set up Force.com Sites security permissions to allow access to relevant campaign mem...</p></div>
    
    ]]></description> <pubDate>Sat, 11 Jul 2009 15:00:07 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#be1027e4-ba49-4a62-bd52-3af89498c9cd</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/be1027e4-ba49-4a62-bd52-3af89498c9cd"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Triggering an Apex method with a Custom Button</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#d07e4119-9ed4-44d6-9d76-9838b202be7c</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#d07e4119-9ed4-44d6-9d76-9838b202be7c"><img align="right" src="http://www.evernote.com/shard/s1/thumb/d07e4119-9ed4-44d6-9d76-9838b202be7c"/></a>
        <div style="background-color:#ffffff;" class="ennote">
 <a href="http://salesforcesource.blogspot.com/2009/06/triggering-apex-method-with-custom.html" shape="rect">Triggering an Apex method with a Custom Button</a>
<div>Most often developers want to write a custom logic such as sending a notification email, changing the status of a record (picklist), etc once a button is clicked on, in a standard layout.<br clear="none"/>
<br clear="none"/>
The effort is minimized this way since you do not want to recreate the layout using a Visualforce page, all you need is to be able to launch a method once the button is clicked on.<br clear="none"/>
<br clear="none"/>
In order to do so, you need to write your logic into an Apex class with following conditions:</div>
<ol><li>Firstly, your class should be marked as &quot;Global&quot;</li><li>Secondly, the logic goes to a static method of this class which is marked as &quot;WebService&quot;</li></ol>
<div>If an Apex class has the above characteristics, the method marked as web service can be called via javascript when the button is clicked on. Neat!<br clear="none"/>
<br clear="none"/>
I think by now you a good idea of where I am going with this, so let's dive into code and examine everything more closely.<br clear="none"/>
<br clear="none"/>
Below I have created a Apex Class called &quot;OutboundEmails&quot; and added a method that has a keyword as &quot;WebService&quot;.</div>
<div><br clear="none"/>
<br clear="none"/>
global class OutboundEmails {<br clear="none"/>
<br clear="none"/>
WebService static void SendEmailNotification(string id) {<br clear="none"/>
<br clear="none"/>
//create a mail object to send a single email.<br clear="none"/>
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();<br clear="none"/>
<br clear="none"/>
//set the email properties<br clear="none"/>
mail.setToAddresses(new string[] {'myemail@domain.com'});<br clear="none"/>
mail.setSenderDisplayName('SF.com Email Agent');<br clear="none"/>
mail.setSubject('A new reminder');<br clear="none"/>
mail.setHtmlBody('an object with ID='+ id + ' is just clicked on.');<br clear="none"/>
<br clear="none"/>
//send the email<br clear="none"/>
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail } );<br clear="none"/>
<br clear="none"/>
}<br clear="none"/>
}</div>
<div> </div>
<div><br clear="none"/>
This method receives an object Id (this is just to demo purposes, so you can identify any parameters that you need) and sends an email notification subsequently once the method is called.<br clear="none"/>
<br clear="none"/>
Now let's concentrate on the button that will actually call our WebService method.<br clear="none"/>
<br clear="none"/>
Firstly, I create a detail page button let's say on Account object and name it &quot;Send Me ID&quot;.<br clear="none"/>
This button's behavior will be &quot;Execute Javascript&quot;.<br clear="none"/>
If you need more information about how you can ad...</div></div>
    
    ]]></description> <pubDate>Thu, 02 Jul 2009 16:51:36 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#d07e4119-9ed4-44d6-9d76-9838b202be7c</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/d07e4119-9ed4-44d6-9d76-9838b202be7c"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Real World Release Management with Salesforce.com « Jeff Douglas – Technology, Coding and Bears… OH MY!</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#2a1856fb-7015-4207-b5e2-e4043b3de023</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#2a1856fb-7015-4207-b5e2-e4043b3de023"><img align="right" src="http://www.evernote.com/shard/s1/thumb/2a1856fb-7015-4207-b5e2-e4043b3de023"/></a>
        <div class="ennote">

<div>
	<div>
		
		<div>
			
			


<div></div>
			
			<div></div>
			
		</div>
		
		<div>
			<div>
					<p><a shape="rect" href="http://blog.jeffdouglas.com" target="_blank">Jeff Douglas – Technology, Coding and Bears… OH MY!</a></p>
			</div>
		</div>

		<div>
			<ul><li><a shape="rect" title="About Me" href="http://blog.jeffdouglas.com/about/" target="_blank">About Me</a></li><li><a shape="rect" title="Contact Me" href="http://blog.jeffdouglas.com/contact/" target="_blank">Contact Me</a></li><li><a shape="rect" title="Family" href="http://blog.jeffdouglas.com/family/" target="_blank">Family</a></li></ul>
		</div>
		

		<div>
			<div>
			
							
				<a shape="rect" title="Permanent Link to Real World Release Management with Salesforce.com" rel="bookmark" href="http://blog.jeffdouglas.com/2009/06/19/real-world-release-management-with-salesforce-com/" target="_blank">Real World Release Management with Salesforce.com</a>
				<p>Posted on June 19, 2009. Filed under: <a shape="rect" rel="category tag" title="View all posts in Salesforce.com" href="http://en.wordpress.com/tag/salesforcecom/" target="_blank">Salesforce.com</a> |  </p>

				<div><p>We’ve been working with Salesforce.com on and off for about a year on their release and change management best practices. We’ve had a number of calls with them discussing the Metadata API’s functionality (or lack of functionality) and best practices for release management for large, complex orgs. It looks like they’ve taken of our suggestions and experiences to heart as they recently <a shape="rect" target="_blank" href="http://blog.sforce.com/sforce/2009/06/new-book-the-forcecom-development-lifecycle-guide.html">released their Development Lifecycle Guide</a>.</p>
<p>First let me state that we have a complex org and development environment. We have a global Saleforce.com project team with multiple projects running concurrently in all continents. We have 15 development sandboxes, 5 test sandboxes, 1 full-copy UAT sandbox and 1 Production box. Our production org consists of 40+ distinct and separately functioning companies with over 500 recordtypes to manage access to data.</p>
<p>The guide is fairly thorough and has a lot of best practices and practical info for orgs of all sizes. My one main criticism of the guide is that in a couple of areas they paint a rosy picture of the migration process and the amount of effort required to migrate configuration items and assets. If you’ve ever done a moderately complex migration you know that not everything is possible via the Metadata API. This leaves you with some manual processes that are grueling, time-consuming and tedious. For instance, Salesforce.com just completed a moderately sized project for us and they scheduled 40 hours to migrate the manual changes to Production.</p>
<p>Scheduling Releases</p>
<p>For change and release management we’ve broken our development work into four types with different release timeframes:</p>
<p>1. Project – these are typically large amounts of work for a specific business (or business stream) requiring multiple resourc...</p></div></div></div></div></div></div>
    
    ]]></description> <pubDate>Tue, 30 Jun 2009 19:45:32 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#2a1856fb-7015-4207-b5e2-e4043b3de023</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/2a1856fb-7015-4207-b5e2-e4043b3de023"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Backup Importer for Salesforce</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#44d3e6b4-6144-4479-bbcd-1716e5d7f5ee</link>
  <description><![CDATA[
    
    
    
        
        <div class="ennote">
<div>Great tool by Steve Buikhuizen to move data from Production to your Sandbox orgs.</div>

<div> </div>
Backup Importer for Salesforce
<p><a href="http://www.youtube.com/v/vzR_Giv2g1A%26hl=en%26fs=1%26rel=0%26color1=0x234900%26color2=0x4e9e00%26border=1" shape="rect">Problem: there are many times where you need a copy of data from your live Salesforce instance loaded into another instance. This is done automatically by Salesforce when refreshing a Full Copy Sandbox but what about a Config Only, Developer Sandbox or even a Developer Edition instance? For those instances you need to load your own sample data and this is a complicated process when you have to deal with multiple entities, their relationships and the space limits of the target instance.</a></p>
<p><a href="http://www.youtube.com/v/vzR_Giv2g1A%26hl=en%26fs=1%26rel=0%26color1=0x234900%26color2=0x4e9e00%26border=1" shape="rect">Solution: using ANT you can run this tool and use it to load some or all of the data from a backup or Export from your live Salesforce instance. You can choose which entities are loaded and how much data is loaded from each so that you don't exceed the space limits of the target instance.</a></p>
<p><a href="http://www.youtube.com/v/vzR_Giv2g1A%26hl=en%26fs=1%26rel=0%26color1=0x234900%26color2=0x4e9e00%26border=1" shape="rect">How does it work?: The tool will scan your backup file for all entities that you wish to load into your target instance. It will use the upsert call to load all of these records. This means that you must create an External Id field for all entities in your target instance. The benefit of using the upsert call is two-fold. First, you can run your load multiple times and it will not duplicate any data. Secondly, the upsert call allows the load to automagically match records through relationships i.e. the connections between your records e.g. Accounts and related Contacts will be correctly loaded. The import will only load records that have parent records already loaded e.g. if an Account has been skipped then its Contacts will not be loaded. This ensures that related records get priority during the load.</a></p>
<p><a href="http://www.youtube.com/v/vzR_Giv2g1A%26hl=en%26fs=1%26rel=0%26color1=0x234900%26color2=0x4e9e00%26border=1" shape="rect">Why build this tool?: Most of my work is consulting and training for Salesforce customers and Partners. I often see them struggling with the Dev/Test/Live environment creation. This tool can automate the preparation of the most critical part of the setup - the data. Its a way of giving back to the community which pays my bills. I hope...</a></p></div>
    
    ]]></description> <pubDate>Tue, 23 Jun 2009 18:17:09 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#44d3e6b4-6144-4479-bbcd-1716e5d7f5ee</guid> 
  
  </item>

  
  <item> <title>Best Practice: Sites and record identifiers - Force.com Blog</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#e435432c-252b-415e-bd7b-1bd32945ee8d</link>
  <description><![CDATA[
    
    
    
        
        <div class="ennote">
<div>
<a href="http://blog.sforce.com/sforce/2009/04/best-practices-sites-and-record-identifiers.html" shape="rect">Best Practice: Sites and record identifiers</a>
by Ron Hess on April 13, 2009 at 04:19 PM
<div><a href="http://www.typepad.com/t/app/weblog/post?__mode=edit_entry&amp;id=65409423&amp;blog_id=125619" shape="rect"></a>
<p>Now that <a href="http://developer.force.com/sites" shape="rect">Force.com Sites</a> is out in the developer community as a preview, we are starting to see several interesting and powerful use cases that involve generating forms that will input data into the Force.com database.  As these use cases come up, we are often asked is it acceptable from a security perspective to allow the Sites Public User to input data directly into the database ? </p>
<p>The answer is Yes, however as a developer it's important to understand there is a safe way, and there is a casual way that could cause problems.</p>
<p>To explain the alternatives I'll construct a simple scenario, I'll call this the survey problem.  Simply stated you would like to offer a Survey that your contacts can fill out, once and only once and no other public users should be allowed to fill in this survey. </p>
<p>You can easily and quickly build such a survey using Visualforce, and using Force.com Sites you can make this available to the contacts in your system.  In order to do this you must send them the URL of the survey that they can then visit and fill in.   If you send everyone the same URL, you'll never know which data came from which account / customer, so you construct a URL that contains specific information that allows them to visit this survey and complete the data, storing the resulting info in a record, let's say a custom object called Survey Results.</p>
<p>So far so good, however if you have sent the URL with a valid Force.com custom object Record Identifier ( casual way ) then you will open up your database to potential trouble.  Since the identifier will be used by the Visualforce page, first, the record identifier could be used twice, and the user could guess the identifiers that will allow them to access other records in your system using the Visualforce page that you provided.</p>
<p>The secure solution is to generate a KEY that is specific to something in the system, in the case described this is unique to one contact and one survey.   I have bu...</p></div></div></div>
    
    ]]></description> <pubDate>Wed, 29 Apr 2009 19:12:06 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#e435432c-252b-415e-bd7b-1bd32945ee8d</guid> 
  
  </item>

  
  <item> <title>Reporting On Percentage Of Cases By Origin</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#aa10717f-0020-46f1-b4cd-26d02619b655</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#aa10717f-0020-46f1-b4cd-26d02619b655"><img align="right" src="http://www.evernote.com/shard/s1/thumb/aa10717f-0020-46f1-b4cd-26d02619b655"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<a href="http://blogs.salesforce.com/support/2009/03/reporting-on-percentage-of-cases-by-origin.html" shape="rect">Reporting On Percentage Of Cases By Origin</a>
<div>Marco Casalaina Mar 19, 2009</div>
<p>Today's blog post comes courtesy of guest blogger Jay Thayer, our resident all-around Salesforce.com guru.</p>
<p>Let's say you're trying to build a common report, Cases By Origin, but with a twist -- you want to know what percent of your interactions are coming via each channel.  Well, you could build a dashboard with it and eyeball it, but that's not very satisfying -- sometimes you just want cold, hard numbers.  The good news is that there is in fact a way to do it using some new capabilities of custom summary fields.</p>
<p>First, start by making yourself a standard Cases By Origin report by creating a custom report.  Choose the Customer Support Reports category, and then choose the first option, Cases -- we don't need any related objects for this report.  In the next step, make it a Summary Report.</p>
<p>Now, here's the real trick.  The next step you'll see is the Select Columns To Total step.  We'll need this step later, but we're not ready for it just yet -- so skip it.  Do nothing here right now.</p>
<p>Go to the next step, Select Grouping, and set it to group by Case Origin:</p>
<p><a href="http://blogs.salesforce.com/.a/6a00e54ee3905b88330112797c3ff428a4-pi" shape="rect"></a><br clear="none"/>
Great.  Press the Next button to save your grouping settings.</p>
<p>Now go back to the Select Columns To Total step by using the dropdown list at the top right of the screen.  All the way at the bottom of the screen you'll see the place where you can create a new custom summary field:</p>
<p><a href="http://blogs.salesforce.com/.a/6a00e54ee3905b88330112797c44b128a4-pi" shape="rect"></a></p>
<p>Press that New button.  Because we'd jumped ahead and set the grouping, we now see a useful item here -- we can actually create a custom summary field per grouped item!</p>
<p><a href="http://blogs.salesforce.com/.a/6a00e54ee3905b8833011169085f31970c-pi" shape="rect"></a></p>
<p>This type of field will allow us to do math using both a summary of the group items and a summary of the whole report -- that's exactly what we need to calculate our percentages.  First, at the top of the page, give the formula field a name, and set its format to Percentage.  Now let's go to the formula builder and build it up.</p>
<p>In order to calculate the percentage for each group, we need the record count for that group, and then we have to divid...</p></div>
    
    ]]></description> <pubDate>Sat, 21 Mar 2009 15:12:55 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#aa10717f-0020-46f1-b4cd-26d02619b655</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/aa10717f-0020-46f1-b4cd-26d02619b655"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Free Salesforce.com Advanced Search Code</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#7a32e42e-7fc5-4ea7-9d69-e29836753f9a</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
<div><a shape="rect">Free Salesforce.com Advanced Search Code</a></div>
<div><a href="http://www.shamrockcrm.com/salesforce/free-salesforcecom-advanced-search-code/#comments" shape="rect">3/4/2009 6:41 PM|Tanner - Shamrock CRM|</a><a href="http://www.shamrockcrm.com/" shape="rect">Shamrock CRM</a></div>
<p>Ok, I have decided to be kind.  Everyone saw the post about the <a href="http://www.shamrockcrm.com/salesforce/new-salesforcecom-advanced-search-tool" target="_self" shape="rect">Advanced Search tool for Salesforce.com</a> already and loved it.  Everyone requested it and I am in a very giving mood.</p>
<p>This is such a great little tool.  You can’t miss out on this little bit of functionality.</p>
<p>This Salesforce.com code is incredibly simple and very easy to install.  This can be used on any edition of Salesforce, including Group, Professional, Enterprise and Unlimited.</p>
<p>1) All you need to do is create a Salesforce Home Page Component.</p>
<p>2) Make this component of type “HTML Area.”</p>
<p>3) Click the checkbox that says “Show HTML.”</p>
<p>4) Add this snippet of HTML into the box:</p>
<div><br clear="none"/>
&lt;form name=&quot;advsrch&quot; action=&quot;/search/SearchResults?searchType=2&amp;amp;sen=0&amp;amp;setLast=1&quot; method=&quot;post&quot;&gt;&lt;input class=&quot;searchTextBox&quot; maxlength=&quot;80&quot; size=&quot;18&quot; name=&quot;sbstr&quot;&gt;&amp;nbsp;&lt;input class=&quot;btn&quot; value=&quot; Go! &quot; type=&quot;submit&quot;&gt;&lt;/form&gt;</div>
<p>5) Add this Home Page Component to your Home Page Layout.</p>
<p>6) Done</p>
<p>Wasn’t that easy? This will now allow you to have one simple search box, remove the old complicated one and search through all custom fields. (external identifiers are excellent!)</p>
<p>Let me know if you need help installing this!</p>
</div>
    
    ]]></description> <pubDate>Sat, 21 Mar 2009 15:05:39 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#7a32e42e-7fc5-4ea7-9d69-e29836753f9a</guid> 
  
  </item>

  
  <item> <title>Daily Email Series in Salesforce</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#c07e9cc0-dc36-40bc-b523-8f1ca3ceba8a</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#c07e9cc0-dc36-40bc-b523-8f1ca3ceba8a"><img align="right" src="http://www.evernote.com/shard/s1/thumb/c07e9cc0-dc36-40bc-b523-8f1ca3ceba8a"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<div><a shape="rect">Daily Email Series in Salesforce</a></div>
<div><a href="http://gokubi.com/archives/daily-email-series-in-salesforce#comments" shape="rect">3/4/2009 4:38 PM|Steve|gokubi.com » CRM</a></div>
<div><a href="http://gokubi.com/archives/daily-email-series-in-salesforce#comments" shape="rect">email_series_demo.mp4</a><a shape="rect">Open</a>|<a shape="rect">Download</a></div>
<p>I’m building a system for sending out daily emails to Contacts that uses Time-Based Workflow. We’ve done <a href="http://gokubi.com/archives/unattended-drip-campaigns-with-time-based-workflow" shape="rect">some work in this area before</a>, but now it’s really starting to come together.</p>
<p>In this example, Contacts are added to a Campaign that is configured with a number of planned email sends. Once the Email Series is kicked off, the Contacts will receive emails on the determined schedule. This example uses hard dates for the individual sends–we’ve also got working code that sends out emails on interval from the individual Contact’s campaign join date. That allows for open-enrollment to an Email Series.</p>
<p>Check out the example, I’m very happy with it. Check out the background noise–we sound like a CRM sweatshop!</p>
<p/>
</div>
    
    ]]></description> <pubDate>Sat, 21 Mar 2009 14:59:48 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#c07e9cc0-dc36-40bc-b523-8f1ca3ceba8a</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/c07e9cc0-dc36-40bc-b523-8f1ca3ceba8a"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Accessing Session Id and API Server URL parameters with Visualforce</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#3fcbead2-5843-4f87-b1d5-ef525ea1d339</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
<a href="http://blog.sforce.com/sforce/2009/01/accessing-session-id-and-api-server-url-parameters-with-visualforce.html" shape="rect">Accessing Session Id and API Server URL parameters with Visualforce</a>
by Andrew Albert on January 31, 2009 at 09:45 AM
<div><br clear="none"/>When building a composite Force.com application, it is often necessary to dynamically generate the current Session Id and API Server URL from<br clear="none"/>within Visualforce and Apex. These parameters let the external application access the salesforce.com Web Services API if any callbacks are<br clear="none"/>required to query, insert, or update data. In the past this was often handled in the SControl's javascript using merge field syntax such as <br clear="none"/>{!API.Partner_Server_URL_140} and {!API.Session_ID}. <br clear="none"/><br clear="none"/>Below is some sample code illustrating how simple it is to set these 2 parameters in a Visualforce Page and set them in an Apex Controller. <br clear="none"/>This will allow you to pass those parameters in any external web service calls or in a URL redirect including them in the URL as query string<br clear="none"/>parameters. <br clear="none"/><br clear="none"/>The sample uses a combination of &lt;apex:ActionSupport&gt; and &lt;apex:param&gt; to pass the two parameters to the<br clear="none"/>Apex Controller, myController, when a user clicks on the text &quot;Click Here To Generate Session Id and Server URL&quot;. <br clear="none"/><br clear="none"/>Visualforce Page<br clear="none"/>&lt;apex:page setup=&quot;true&quot; controller=&quot;MyController&quot; showHeader=&quot;false&quot;&gt;<br clear="none"/>&lt;apex:form &gt;<br clear="none"/>&lt;apex:outputpanel id=&quot;counter&quot;&gt;<br clear="none"/>&lt;apex:outputText value=&quot;Click Here To Generate Session Id and Server URL&quot; /&gt; <br clear="none"/>&lt;apex:actionSupport event=&quot;onclick&quot; action=&quot;{!doLogin}&quot; rerender=&quot;refreshId&quot; status=&quot;counterStatus&quot;&gt;<br clear="none"/>&lt;apex:param name=&quot;sessionId&quot; assignTo=&quot;{!apiSessionId}&quot; value=&quot;{!$Api.Session_ID}&quot; /&gt;<br clear="none"/>&lt;apex:param name=&quot;serverURL&quot; assignTo=&quot;{!apiServerURL}&quot; value=&quot;{!$Api.Partner_Server_URL_140}&quot; /&gt; <br clear="none"/>&lt;/apex:actionSupport&gt; <br clear="none"/>&lt;/apex:outputpanel&gt;&lt;br&gt;&lt;/br&gt; <br clear="none"/>&lt;apex:outputPanel id=&quot;refreshId&quot;&gt;<br clear="none"/>&lt;apex:outputText value=&quot;API Session Id: {!apiSessionId}&quot;/&gt;&lt;br&gt;&lt;/br&gt;<br clear="none"/>&lt;apex:outputText value=&quot;API Server URL: {!apiServerURL}&quot;/&gt;&lt;br&gt;&lt;/br&gt;<br clear="none"/>&lt;/apex:outputPanel&gt;<br clear="none"/>&lt;/apex:form&gt; <br clear="none"/>&lt;/apex:page&gt;<br clear="none"/><br clear="none"/><br clear="none"/>Controller Apex Class<br clear="none"/>public class MyController {<br clear="none"/><br clear="none"/>public String apiSessionId {get;set;} <br clear="none"/>public String apiServerURL {get;set;} <br clear="none"/><br clear="none"/>public PageReference doLogin(){ <br clear="none"/>System.debug('apiSessionId: ' + apiSessio...</div></div>
    
    ]]></description> <pubDate>Sat, 21 Mar 2009 14:40:09 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#3fcbead2-5843-4f87-b1d5-ef525ea1d339</guid> 
  
  </item>

  
  <item> <title>Visualforce Popup</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#841ddc95-d5e6-4e13-9eb3-337aeb4cda14</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
Visualforce Popup
<div>Jump to: <a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#column-one" shape="rect"> navigation</a> , <a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#searchInput" shape="rect"> search</a></div>

Contents
<div>[<a shape="rect">hide</a>]</div>
<ul><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Introduction" shape="rect">1 Introduction</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Problem_Statement" shape="rect">2 Problem Statement</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#DHTML_Solution" shape="rect">3 DHTML Solution</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Visualforce_Code" shape="rect">4 Visualforce Code</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Configuring_Code" shape="rect">5 Configuring Code</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Summary" shape="rect">6 Summary</a></li><li><a href="http://wiki.apexdevnet.com/index.php/Visualforce_Popup#Developer_Feedback_.3F" shape="rect">7 Developer Feedback ?</a></li></ul>

<div><a href="http://wiki.apexdevnet.com/index.php?title=Visualforce_Popup&amp;action=edit&amp;section=1" shape="rect">edit</a></div>
 Introduction
<p>Visualforce is a powerful UI framework, and by now the design concept called Model, View, Controller is not new. When Developers work with Visualforce for a while they will often comment that many things are easy and even simple, but occasionally I've heard that getting Popups right is difficult. This short article will introduce a method that allows developers to build popup functionality into their Visualforce pages and still retain the simplicity of working in a single page.</p>
<div><a href="http://wiki.apexdevnet.com/index.php?title=Visualforce_Popup&amp;action=edit&amp;section=2" shape="rect">edit</a></div>
 Problem Statement
<p>Building a link or button to popup a new Visualforce page is actually quite simple, and getting this popup to be modal and above the current page is also quite easy. The problem occurs when you would like to collect information in the popup and pass that information back to the page that launched the popup.</p>
<p>The issue is that the new window is launched as a separate browser request when you use window.open(). Since this is a separate request to the server, the new page does not share the same controller context/session. Even if the two pages both use the same controller!. This is due to the fact that these are two different requests at the browser level.</p>
<p>So, how do you pass information from one page to another in this case ? You would be forced to use a query string parameter, from the popup window back to the opener window. The issue here is that the parent page will reload and lose it's context, ouch.</p>
<div><a href="http://wiki.apexdevnet.com/index.php?title=Visualforce_Popup&amp;action=edit&amp;section=3" shape="rect">edit</a></div>
 DHTML Solution
<p>While it sounds serious, there is a straight forward method to build a popup, and make it modal if required. This technique is sometimes called In-Page DIV or Hidden DIV. There is a good example of this in the YUI toolkit, which we will detail here. Another good demo of this is provided by Matt Kruse and is located here: <a href="http://www.javascripttoolbox.com/lib/popup/example.php" shape="rect">Popup Examples</a></p>
<p>We will now develop a simple solution around a widely tested Y...</p></div>
    
    ]]></description> <pubDate>Fri, 06 Feb 2009 18:38:39 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#841ddc95-d5e6-4e13-9eb3-337aeb4cda14</guid> 
  
  </item>

  
  <item> <title>Using Basic Authentication with Web Services</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#cce78e7d-fbab-4c70-9ea0-bbe558acc9cb</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
<div><a shape="rect">Using Basic Authentication with Web Services</a></div>
<div>Monday 10:04 PM|Quinton Wall|Force.com Blog</div>
<p>The requirement to call a web service from with an Apex class is a common use case when using Salesforce.com. Typically this may be a public web service, but at other times there may be a need to use some form of authentication, such as Basic Authentication. Before you cringe at the thought of getting lost in arcane security protocols, don't worry; Apex makes it very easy.</p>
<div> </div>
<div>Let's break it down into three simple steps:</div>
<div> </div>
<div>Step1: Access HTTP Headers</div>
<div>Thankfully it is very easy to access the http headers in Apex with a few lines of code:</div>
<div><br clear="none"/>
mysample.MySamplePort webservice = new mysample.MySamplePort();webservice.inputHttpHeaders_x = new Map&lt;String, String&gt;();</div>
<div>Looking at line two above, what we have done is instantiated the input header map on our web service. From here we can add standard or custom headers.</div>
<div> </div>
<div>Step 2: Basic Authentication Primer</div>
<div>Next you need to create a Basic Authentication HTTP header. This header takes a name/value pair that takes a user name and password in a base64 encoded string.</div>
<div> </div>
<div>First thing you need to do is set the correct format for your username and password (which is going to become the value in your name/value pair after a little configuration)</div>
<div> </div>
<div>myusername:mypassword</div>
<div> </div>
<div>Then take this string and convert it to base64. You can use a site such as <a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/Default.aspx" target="_blank" shape="rect">Base64 Encoder</a> if you need a quick way to do the conversion. In our example above the encoded string of myusername:mypassword looks like the following after encoding:</div>
<div>bXl1c2VybmFtZTpteXBhc3N3b3Jk</div>
<div>Step3: Add the Authentication Header</div>
<div>Now that we have our encoded string, we need to add the Authentication header to our webservice. Set the value in the name/value pair to Authorization and complete the value like below:</div>
<div> </div>
<div><br clear="none"/>
'Basic addYourEncodedStringHere'</div>
<div><br clear="none"/>
Last this is to put it all together, and add the Basic Authentication Header to our input headers:</div>
<div><br clear="none"/>
webservice.inputHttpHeaders_x.put('Authorization', 'Basic bXl1c2VybmFtZTpteXBhc3N3b3Jk');</div>
<div>That's it! You just wro...</div></div>
    
    ]]></description> <pubDate>Sun, 25 Jan 2009 05:48:11 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#cce78e7d-fbab-4c70-9ea0-bbe558acc9cb</guid> 
  
  </item>

  
  <item> <title>Allow Mass Update of your Object Records Even Without Having a Save Button!</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#7a4507b4-1ddd-4ca6-83c0-366374ae1227</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#7a4507b4-1ddd-4ca6-83c0-366374ae1227"><img align="right" src="http://www.evernote.com/shard/s1/thumb/7a4507b4-1ddd-4ca6-83c0-366374ae1227"/></a>
        <div style="background-color:#ffffff;" class="ennote">
 <a href="http://salesforcesource.blogspot.com/2009/01/allow-mass-update-of-your-object.html" shape="rect"> Allow Mass Update of your Object Records Even Without Having a Save Button!</a>
<div>Posted by  Sam Arjmandi    at <a href="http://salesforcesource.blogspot.com/2009/01/allow-mass-update-of-your-object.html" shape="rect">  10:35 AM  </a>   Labels: <a href="http://salesforcesource.blogspot.com/search/label/Visualforce" shape="rect"> Visualforce</a></div>
<div>Today we want to explore one of the beauties of the Visualforce technology.<br clear="none"/>
Those who have a history of witting ASP or ASP.NET code will admit that Visualforce has made it all too simple to develop business applications.<br clear="none"/>
<br clear="none"/>
Let's say we want to be able to update several records of a certain Object all together providing ability for users to quickly make modifications and save them.<br clear="none"/>
<br clear="none"/>
This is particularly useful when the data in nature changes often and it's time consuming to do the updates on a record by record basis.<br clear="none"/>
<br clear="none"/>
<a href="http://3.bp.blogspot.com/_A3gbIRtV9H8/SWTOZ5OdSdI/AAAAAAAAAIQ/fKK9JepDmcw/s1600-h/massupdate_sf.JPG" shape="rect"></a>In this example, I will demonstrate a Visualforce page which has a search box through which user can search Accounts and view a list of records where he or she can modify the information inline and then proceed to the next record without clicking on a save button of some sort!<br clear="none"/>
<br clear="none"/>
This is very much as easy of entering data into cells of an excel sheet! The only difference is that the Excel needs you to click on the save button at the end but our Visualforce page won't!<br clear="none"/>
<br clear="none"/>
I will use an actionFunction tag to create a javascript function which in turn will trigger a method of my Apex controller class. This way when the value of one the input controls changed I can call that javascript function and boom the change would get posted back to the controller and will be saved.<br clear="none"/>
<br clear="none"/>
This the how Visualforce page is like:</div>
<div><br clear="none"/>
&lt;apex:page tabStyle=&quot;Account&quot; controller=&quot;massAccountUpdateCon&quot;&gt;<br clear="none"/>
&lt;apex:sectionHeader title=&quot;Accounts Mass Update&quot;&gt;&lt;/apex:sectionHeader&gt;<br clear="none"/>
&lt;apex:form &gt;<br clear="none"/>
&lt;apex:pageBlock title=&quot;&quot; id=&quot;pageBlock&quot;&gt;<br clear="none"/>
&lt;!-- This block will show the search textbox and the Search button --&gt;<br clear="none"/>
&lt;apex:pageBlockButtons location=&quot;top&quot;&gt;<br clear="none"/>
&lt;apex:inputText value=&quot;{!keywords}&quot; style=&quot;height:15px;&quot;&gt;&lt;/apex:inputText&gt;<br clear="none"/>
&lt;apex:commandButton value=&quot;Search&quot; action=&quot;{!ViewData}&quot; id=&quot;theButton&quot; rerender=&quot;pageBlock&quot; status=&quot;status&quot;&gt;&lt;/apex:commandButton&gt;<br clear="none"/>
&lt;/apex:pageBlockButtons&gt;<br clear="none"/>
&lt;!-- To show page level messages --...</div></div>
    
    ]]></description> <pubDate>Fri, 09 Jan 2009 18:06:10 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#7a4507b4-1ddd-4ca6-83c0-366374ae1227</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/7a4507b4-1ddd-4ca6-83c0-366374ae1227"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Browser share</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#6dea1ee8-1482-4823-9404-3a4297bed391</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#6dea1ee8-1482-4823-9404-3a4297bed391"><img align="right" src="http://www.evernote.com/shard/s1/thumb/6dea1ee8-1482-4823-9404-3a4297bed391"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<div><a href="http://feeds.feedburner.com/~r/Successforce/Recent/~3/500852068/browser-share.html" shape="rect">Browser share</a></div>
<p>There have been a few articles about changing <a href="http://www.netapplications.com/newsarticle.aspx?nid=45" shape="rect">market share for browsers</a> and <a href="http://www.tgdaily.com/html_tmp/content-view-40785-140.html" shape="rect">whether browsers are supported by services</a>. Since I have the reporting tools, and as it's the end of year and so I have a full set of data for 2008, I thought I'd share some information on how salesforce.com's service has seen browser versions change. If you are looking for total share numbers, normally Jerry covers that - e.g. in June 2008 <a href="http://blogs.salesforce.com/user_experience/2008/06/salesforce-and.html" shape="rect">he shared his results on browser share</a>. There are also a set of good comments in that article in response to Jerry's questions about how users use IE6 and whether they can upgrade.</p>
<p>We're a web application used normally by businesses - so our total numbers might not line up with somebody measuring all accesses from all browsers.</p>
Versions of IE
<p>Here is the split between May 2004 and December 2008 - you can see when IE7 came out, and is slowly being pushed down to upgrade IE6. IE8 isn't statistically significant yet - it's still in beta as of January 2009.</p>
<p/>
<p>Internet Explorer changes fairly slowly - users are either happy with their current experience, don't want to upgrade, or are not in control of their PCs. For instance, in one of the comments in Jerry's blog post above, the user says that their IT department controls the deployment over their 5000 PCs</p>
<p> </p>
Version of Safari
<p>The Safari version split shows a quicker movement from version to version - particularly version 3 which replaced all the other versions pretty quickly. I'm not sure why the number of 1.3 and 2 versions went back up - it's probably be customers trying Safari 3 on Windows - released in March 2008 - then going back to other browsers or switching to FireFox 3 because they are the cool kids.</p>
<p/>
<p>For instance, in this <a href="http://ideas.salesforce.com/article/show/69780/Make_Salesforce_work_in_Safari_for_Windows" shape="rect">idea to make Safari 3 supported</a> - it says Safari was faster than the FireFox at the time. Then there were articles saying <a href="http://www.schoonzie.com/salesforcecom-way-faster-firefox-3" shape="rect">FF3 was faster than Safari 3</a> so people must have then changed again - and looking below, when Safari 3 is loosing ground, it's when the avalanche of users upgrading to FireFox 3 is happening.</p>
&lt;h...</div>
    
    ]]></description> <pubDate>Mon, 05 Jan 2009 20:56:08 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#6dea1ee8-1482-4823-9404-3a4297bed391</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/6dea1ee8-1482-4823-9404-3a4297bed391"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Visualforce Component to show Object Record Types</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#efde92c7-933f-4eb1-b269-fd7b6ca7b352</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#efde92c7-933f-4eb1-b269-fd7b6ca7b352"><img align="right" src="http://www.evernote.com/shard/s1/thumb/efde92c7-933f-4eb1-b269-fd7b6ca7b352"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<a href="http://salesforcesource.blogspot.com/2009/01/visualforce-component-to-show-object.html" shape="rect">Visualforce Component to show Object Record Types</a>
<div>Happy New Year!<br clear="none"/>
<br clear="none"/>
Time definitely flies and I wish you wonderful times in 2009!<br clear="none"/>
<br clear="none"/>
<a href="http://4.bp.blogspot.com/_A3gbIRtV9H8/SV5vf9kkJ5I/AAAAAAAAAII/drynhg2NuIk/s1600-h/RecordTypesList.JPG" shape="rect"></a><br clear="none"/>
Part of our daily job is to make life easier for others by developing new applications in force.com platform. But sometimes it's not bad to spend some time for ourselves to make our own life a little easier, better and smoother.<br clear="none"/>
<br clear="none"/>
In this article I will present a Visualforce Component that would list the record types of an Object in the platform.<br clear="none"/>
<br clear="none"/>
Imagine, the Account object has two record types in the force.com platform (Record Types are created by the users based on what these objects represent on their business).<br clear="none"/>
<br clear="none"/>
Account Record types:</div>
<ul><li>Customer</li><li>Partner</li></ul>
<div>In many occasions especially when developing a new wizard you need to first allow the user select what type of record they want to create and then based on that show the correct type of interface to the user.<br clear="none"/>
<br clear="none"/>
The solution as to how you can show this to the user is rather simple, but here I actually took the time to create a re-usable component, so you and I won't need to rewrite the code next time!<br clear="none"/>
<br clear="none"/>
Here is the Component's Tags:</div>
<div><br clear="none"/>
<br clear="none"/>
&lt;apex:component controller=&quot;RecordTypeListCon&quot;&gt;<br clear="none"/>
&lt;apex:attribute name=&quot;sObjectType&quot; description=&quot;&quot; type=&quot;String&quot; required=&quot;true&quot; default=&quot;Account&quot; assignTo=&quot;{!sObjectType}&quot;&gt;&lt;/apex:attribute&gt;<br clear="none"/>
&lt;apex:attribute name=&quot;value&quot; description=&quot;&quot; type=&quot;String&quot; required=&quot;true&quot;&gt;&lt;/apex:attribute&gt;<br clear="none"/>
&lt;apex:selectList value=&quot;{!value}&quot; size=&quot;1&quot;&gt;<br clear="none"/>
&lt;apex:selectOptions value=&quot;{!items}&quot;&gt;&lt;/apex:selectOptions&gt;<br clear="none"/>
&lt;/apex:selectList&gt;<br clear="none"/>
&lt;/apex:component&gt;</div>
<div> </div>
<div><br clear="none"/>
The Component has a Controller called &quot;RecordTypeListCon&quot; and is named as &quot;RecordTypeList&quot;. It declares two attributes as follow:</div>
<ul><li>sObjectType: values such as &quot;Account&quot;, &quot;Contact&quot;, generally the name of your object.</li><li>value: you can capture the result of user's selection by using the attribute in your Vsualforce Controller.</li></ul>
<div><br clear="none"/>
And here goes the code of the component's Controller:</div>
<div><br clear="none"/>
<br clear="none"/>
public class RecordTypeListCon {<br clear="none"/>
private List&lt;SelectOption&gt; items;<br clear="none"/>
<br clear="none"/>
// property that reads the value from the Compon...</div></div>
    
    ]]></description> <pubDate>Mon, 05 Jan 2009 20:55:36 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#efde92c7-933f-4eb1-b269-fd7b6ca7b352</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/efde92c7-933f-4eb1-b269-fd7b6ca7b352"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Email Template Shortcut Buttons</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#b0a3d9d3-b11a-4fa0-82ef-327fdf2493b8</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
 <a href="http://nonprofitcrm.org/2009/01/02/email-template-shortcut-buttons" shape="rect">Email Template Shortcut Buttons</a>
<p>A client of ours got frustrated with having to click on Send an Email, then Select a Template, and finally Select the right Contact(s) before hitting Send on a very common type of email. The email was still sent on a discretionary basis by staff so we couldn’t automate it with a workflow rule. The client asked for a special button to be put on the page that could open up the correct email template and automatically select the correct contacts. After some searching on the Salesforce.Com Developer Forums, <a href="http://community.salesforce.com/sforce/board/message?board.id=general_development&amp;message.id=20233" shape="rect">I found this little gem of JavaScript code.</a></p>
<p>I adapted the code to the following:</p>

<p>location.replace(’/_ui/core/email/author/EmailAuthor?<br clear="none"/>
retURL=/{!Opportunity.Id}<br clear="none"/>
&amp;p3_lkid={!Opportunity.Id}<br clear="none"/>
&amp;p2_lkid={!Opportunity.Registrant_Salesforce_ID__c}<br clear="none"/>
&amp;p2={!Opportunity.Registrant_Full_Name__c}<br clear="none"/>
&amp;p24={!Opportunity.Billing_Contact_Email__c}<br clear="none"/>
&amp;template_id=00XX99234365′);</p>
<p>NOTE: Remove the linebreaks if you cut and paste this code.</p>

<p>I put the above code into a Custom Button on the Opportunity Object. The Button behavior should be set to Execute Javascript and the Content Source should be set to OnClick JavaScript.</p>
<p>In the above JavaScript code, the following variables are represented:</p>
<ul><li>retURL = URL that the user is returned to if they click Cancel on the message</li><li>p3_lkid = The ID of the record that this email should be associated with (the WhatID)</li><li>p2_lkid = The ID of the person that this email should be associated with (the WhoID)</li><li>p2 = The name of the person that this email should be associated with</li><li>p24 = The email address of anyone you want as additional TO’s on the message</li><li>templateID = The Salesforce ID of the email template that you wish to use</li></ul>
<div>Once this button is setup, I added it to my Detail Buttons on my Opportunity Page Layouts. After that, when an End User clicks on this button it opens up an Email, selects the template I indicated, and pre-populates the main recipient and even an additional recipient for the message.</div>
</div>
    
    ]]></description> <pubDate>Fri, 02 Jan 2009 22:34:32 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#b0a3d9d3-b11a-4fa0-82ef-327fdf2493b8</guid> 
  
  </item>

  
  <item> <title>URLFOR function finally explained!</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#b365b0e0-e324-4e6f-ba26-18c0c0a1e660</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
 <a href="http://salesforcesource.blogspot.com/2008/12/urlfor-function-finally-explained.html" shape="rect"> URLFOR function finally explained!</a>
<div>Posted by  Sam Arjmandi    at <a href="http://salesforcesource.blogspot.com/2008/12/urlfor-function-finally-explained.html" shape="rect">  11:40 AM  </a>   Labels: <a href="http://salesforcesource.blogspot.com/search/label/Apex%20Code" shape="rect"> Apex Code</a>  , <a href="http://salesforcesource.blogspot.com/search/label/Visualforce" shape="rect"> Visualforce</a></div>
<div>While developing your Visualforce pages you may need to be able to obtain the URL of certain actions, s-controls or your static resources.<br clear="none"/>
<br clear="none"/>
I found it personally a challenge since the documentation for &quot;URLFOR&quot; function is not included in &quot;Visualforce Developer Guide&quot; itself and instead included in the general help area of Salesforce.<br clear="none"/>
<br clear="none"/>
Generally you can use the &quot;URLFOR&quot; function for three purposes:</div>
<ol><li>Obtain URL of a s-control</li><li>Obtain URL of a static resource</li><li>Obtain URL of an object's action</li></ol>
<div>In this article I will demonstrate usages of the three above.<br clear="none"/>
<br clear="none"/>
Generally, URLFOR function returns a relative URL for an action, s-control, or a file in a static resource archive in a Visualforce page. Following the syntax of the function:<br clear="none"/>
<br clear="none"/>
{!URLFOR(target, id, [inputs], [no override])}<br clear="none"/>
<br clear="none"/>
Parameters shown in brackets ([]) are optional.</div>
<ul><li>target: You can replace target with a URL or action, s-control or static resource.</li><li>id: This is id of the object or resource name (string type) in support of the provided target.</li><li>inputs: Any additional URL parameters you need to pass you can use this parameter.<br clear="none"/>
you will to put the URL parameters in brackets and separate them with commas<br clear="none"/>
ex: [param1=&quot;value1&quot;, param2=&quot;value2&quot;]</li><li>no override: A Boolean value which defaults to false, it applies to targets for standard Salesforce pages. Replace &quot;no override&quot; with &quot;true&quot; when you want to display a standard Salesforce page regardless of whether you have defined an override for it elsewhere.</li></ul>
<div><br clear="none"/>
Obtaining URL of a s-control:</div>
<div><br clear="none"/>&lt;!-- Use $SControl global veriable to reference your s-control and pass it to the URLFOR function --&gt;<br clear="none"/>&lt;apex:outputLink value=&quot;{!URLFOR($SControl.MySControlName)}&quot;&gt;Link to my S-Control&lt;/apex:outputLink&gt;<br clear="none"/><br clear="none"/></div>

<div> </div>
<div><br clear="none"/>
Obtaining URL of a Static Resource</div>
<div><br clear="none"/>&lt;!-- Use $Resource global veriable to reference your resource file --&gt;<br clear="none"/>&lt;apex:image url=&quot;{!URLFOR($Resource.LogoImg)}&quot; width=&quot;50&quot; height=&quot;50&quot; /&gt;<br clear="none"/><br clear="none"/>&lt;!-- If your file is in another ZIP file, then pass th...</div></div>
    
    ]]></description> <pubDate>Wed, 24 Dec 2008 19:19:36 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#b365b0e0-e324-4e6f-ba26-18c0c0a1e660</guid> 
  
  </item>

  
  <item> <title>Visualforce to Excel</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#f634b75e-300e-4a89-8051-4bfe1b117686</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#f634b75e-300e-4a89-8051-4bfe1b117686"><img align="right" src="http://www.evernote.com/shard/s1/thumb/f634b75e-300e-4a89-8051-4bfe1b117686"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<a href="http://blog.sforce.com/sforce/2008/12/visualforce-to-excel.html" shape="rect">Visualforce to Excel</a>
by Sati Hillyer on December 22, 2008 at 11:45 AM
<div> </div>
<p>You probably know that a Visualforce Page can be easily converted to a PDF (if not, check out <a href="http://wiki.apexdevnet.com/index.php/Visualforce_Quote2PDF" target="_blank" shape="rect">Quote2PDF</a>), but did know Visualforce can also generate a Microsoft Excel Worksheet?</p>
<p>By simply modifying the <a href="http://www.salesforce.com/us/developer/docs/pages/Content/pages_styling_content_type.htm" target="_blank" shape="rect">ContentType</a> attribute on the &lt;apex:page&gt; tag, your Visualforce code will automatically generate an Excel document. For example, the following code will create a table of Contact data for a given Account:</p>
<div>&lt;apex:page standardController=&quot;Account&quot;&gt;<br clear="none"/>
 &lt;apex:pageBlock title=&quot;Hello {!$User.FirstName}!&quot;&gt;<br clear="none"/>
    You are viewing the {!account.name} account.<br clear="none"/>
 &lt;/apex:pageBlock&gt;<br clear="none"/>
 &lt;apex:pageBlock title=&quot;Contacts&quot;&gt;<br clear="none"/>
    &lt;apex:pageBlockTable value=&quot;{!account.Contacts}&quot; var=&quot;contact&quot;&gt;<br clear="none"/>
       &lt;apex:column value=&quot;{!contact.Name}&quot;/&gt;<br clear="none"/>
       &lt;apex:column value=&quot;{!contact.Email}&quot;/&gt;<br clear="none"/>
       &lt;apex:column value=&quot;{!contact.Phone}&quot;/&gt;<br clear="none"/>
    &lt;/apex:pageBlockTable&gt;<br clear="none"/>
 &lt;/apex:pageBlock&gt;<br clear="none"/>
&lt;/apex:page&gt;</div>
<p><br clear="none"/>
If an ID of a valid Account record is specified as a query parameter in the URL for the page, you will see the following table of data:</p>
<div><a href="http://blog.sforce.com/.a/6a00d8341cded353ef0105368c4c1d970b-pi" shape="rect"></a></div>
<p><br clear="none"/>
We can tell Visualforce to convert this page to an Excel doc by adding:</p>
<div>&lt;apex:page standardController=&quot;Account&quot; contenttype=&quot;application/vnd.ms-excel&quot;&gt;</div>
<p><br clear="none"/>
The next time the page is loaded, you will receive the following prompt:</p>
<div><a href="http://blog.sforce.com/.a/6a00d8341cded353ef0105369383da970c-pi" shape="rect"></a></div>
<div>The spreadsheet generated will convert your pageBlockTable to their respective columns, shown here:</div>
<div><a href="http://blog.sforce.com/.a/6a00d8341cded353ef0105368c4f18970b-pi" shape="rect"></a></div>
<div><br clear="none"/>
This is a powerful and easy-to-use feature. You can learn more about ContentType in the <a href="http://www.salesforce.com/us/developer/docs/pages/Content/pages_styling_content_type.htm" target="_blank" shape="rect">documentation</a>.</div>
</div>
    
    ]]></description> <pubDate>Tue, 23 Dec 2008 20:36:49 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#f634b75e-300e-4a89-8051-4bfe1b117686</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/f634b75e-300e-4a89-8051-4bfe1b117686"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Using the Metadata API to retrieve Picklist Values</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#617f133a-42d8-486f-ba6f-efa7f7a6685d</link>
  <description><![CDATA[
    
    
    
        
        <div class="ennote">
<a href="http://blog.sforce.com/sforce/2008/12/using-the-metadata-api-to-retrieve-picklist-values.html" shape="rect">Using the Metadata API to retrieve Picklist Values</a>
by Quinton Wall on December 9, 2008 at 10:53 AM
<div> </div>
<p>With the increasing popularity and adoption of the Force.com platform, I am seeing a huge growth in custom Visual Force pages, in particular pages which require interaction with multiple objects. One requirement that comes up regularly is how to display picklist values from an object when the page is using a custom controller.</p>
<div> </div>
<div>In order to achieve this, we have to look at the very powerful and useful <a href="http://www.salesforce.com/us/developer/docs/api_meta/index.htm" shape="rect">Metadata API</a>. The Metadata API allows us to interrogate the custom objects, page layouts etc and describe their characteristics. In our requirement above, we want to describe the fields on an object, in particular, a picklist field to determine its list of values.</div>
<div> </div>
<div>Lets say we have a custom object called OfficeLocation__c. OfficeLocation__c contains a number of fields, one of which is a picklist of country values called, creatively enough, Country__c. Our customer requirements are to include the picklist of countries on a Visual Force page which uses a custom controller. The first thing we need to do, within our controller is use the Metadata API to describe the Country__c field:</div>
<div> </div>
<div>Schema.DescribeFieldResult fieldResult = OfficeLocation__c.Country__c.getDescribe();</div>
<div> </div>
<div>We know that Country__c is a picklist, so we want to retrieve the picklist values:</div>
<div> </div>
<div>List&lt;Schema.PicklistEntry&gt; ple = fieldResult.getPicklistValues();</div>
<div> </div>
<div>The only thing left for us to do is map the picklist values into an &lt;apex:selectOptions&gt; tag can use for display. Here is the entire method from our controller to do this:</div>
<div> </div>
<div>public List&lt;SelectOption&gt; getCountries()</div>
<div>{</div>
<div>  List&lt;SelectOption&gt; options = new List&lt;SelectOption&gt;();</div>
<div>        </div>
<div>   Schema.DescribeFieldResult fieldResult =</div>
<div> OfficeLocation__c.Country__c.getDescribe();</div>
<div>   List&lt;Schema.PicklistEntry&gt; ple = fieldResult.getPicklistValues();</div>
<div>        </div>
<div>   for( Schema.PicklistEntry f : ple)</div>
<div>   {</div>
<div>      options.add(new SelectOption(f.getLabel(), f.getValue()));</div>
<div>   }       </div>
<div>   return options;</div>
<div>}</div>
<div> </div>
<div>With our control...</div></div>
    
    ]]></description> <pubDate>Tue, 09 Dec 2008 21:03:53 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#617f133a-42d8-486f-ba6f-efa7f7a6685d</guid> 
  
  </item>

  
  <item> <title>Modifying the Default Force.com Site Template to Build am Excellent Customer Portal</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#62396c3b-e3c0-4d16-a258-2e97406c8b3a</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
 <a href="http://salesforcesource.blogspot.com/2008/12/modifying-default-forcecom-site.html" shape="rect"> Modifying the Default Force.com Site Template to Build am Excellent Customer Portal</a>
<div>Posted by  Sam Arjmandi    at <a href="http://salesforcesource.blogspot.com/2008/12/modifying-default-forcecom-site.html" shape="rect">  11:20 AM</a></div>
<div>Force.com Sites were released on December 2, 2008 (just two days ago) and we are all so excited about this new feature.<br clear="none"/>
<br clear="none"/>
Now you can potentially create Customer/Partner portals that are integrated with your CRM readily, this is big advantage plus that with ease of Visualforce's technology and shorter development life-cycles now you can deliver with a much faster pace.<br clear="none"/>
<br clear="none"/>
In this article I will demonstrate how fast we can modify our sites' template to customize the looked and feel our customer, partner, etc portals.<br clear="none"/>
<br clear="none"/>
With each new site that you create there are a few new Visualforce pages and components added to your box. some of those are:<br clear="none"/>
<br clear="none"/>
User Management Pages:</div>
<ul><li>SiteLogin</li><li>SiteRegister</li><li>SiteRegisterConfirm</li><li>ForgotPassword</li><li>ForgotPasswordConfirm</li><li>Unauthorized</li></ul>
<div><br clear="none"/>
Template:</div>
<ul><li>SiteTemplate</li></ul>
<div><br clear="none"/>
Components:</div>
<ul><li>SiteLogin</li><li>SiteHeader</li><li>SiteFooter</li></ul>
<div>Also a few more pages for handling errors and such.<br clear="none"/>
<br clear="none"/>
Now let's take a closer look at the SiteTemplate:</div>
<div> </div>
<div><br clear="none"/><br clear="none"/>&lt;!-- showHeader is turned off so we won't see any Salesforce standard tabs or sidebar --&gt;<br clear="none"/>&lt;apex:page showHeader=&quot;false&quot; id=&quot;SiteTemplate&quot; standardStylesheets=&quot;true&quot;&gt;<br clear="none"/>&lt;!-- A section is reserved for header of the site --&gt;<br clear="none"/>&lt;apex:insert name=&quot;header&quot;&gt;<br clear="none"/>&lt;c:SiteHeader /&gt;<br clear="none"/>&lt;hr/&gt;<br clear="none"/>&lt;/apex:insert&gt;<br clear="none"/>&lt;!-- This section is where you can include the content of each page of your site--&gt;<br clear="none"/>&lt;apex:insert name=&quot;body&quot;/&gt;<br clear="none"/>&lt;!-- A section is reserved for footer of the site --&gt;<br clear="none"/>&lt;apex:insert name=&quot;footer&quot;&gt;<br clear="none"/>&lt;hr/&gt;<br clear="none"/>&lt;c:SiteFooter /&gt;<br clear="none"/>&lt;/apex:insert&gt;<br clear="none"/>&lt;/apex:page&gt;<br clear="none"/><br clear="none"/></div>

<div> </div>
<div><br clear="none"/>
Generally it's a good practice that you follow the same pattern in developing your sites.<br clear="none"/>
<br clear="none"/>
Furthermore, it's best to include your logo, log in and out links, any headline that remains the same throughout your site and above all your site navigation menu to be included in the &quot;SiteHeader&quot; component.<br clear="none"/>
<br clear="none"/>
The same way, you can modify the &quot;SiteFooter&quot; component to add your site's pages footer template. It's good practice to include your site's shortcuts links and your comp...</div></div>
    
    ]]></description> <pubDate>Sat, 06 Dec 2008 04:27:59 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#62396c3b-e3c0-4d16-a258-2e97406c8b3a</guid> 
  
  </item>

  
  <item> <title>System Log</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#f2702b83-9898-41ec-910b-a86f880d4857</link>
  <description><![CDATA[
    
    
    
        
        <div style="background-color:#ffffff;" class="ennote">
<div>System Log</div>
<div>I’d like to introduce you all to my new best friend. He saves me so much time when needing to get past page layout issues, he’s extremely fast at making little data fixes and he’s amazing at debugging code. I like to call him Sy, but his full name System Log and he’s available to you at the top of your salesforce.com screens.</div>
<p>Here’s an example of how the System Log just saved me some time:<br clear="none"/>
A client asked us to load some test data into their sandbox, but when we loaded the data, we didn’t set the owner, so all the data was owned by our user. Normally to fix this, we would open excel, login with the Excel Connector, query the table, update the rows in Excel and the use the connector’s update function. (We could also use the data loader, but for simple stuff like this, the Excel Connector is often faster.) It’s really not complex or that time-consuming, but opening up Excel always seems like a chore, and dealing with security tokens is a pain. I was already logged into their org in Firefox, why should I have to login again! So, instead, I opened up the System Log, typed in the below apex code and executed it. Instant fix!</p>
<p>List cons = [Select Id from contact where OwnerId != 'INSERT CORRECT ID' limit 999];<br clear="none"/>
for (contact c : cons)<br clear="none"/>
{<br clear="none"/>
c.OwnerId = ‘INSERT CORRECT ID’;<br clear="none"/>
}<br clear="none"/>
update cons;</p>
<p>Please note that we don’t recommend doing this in your production org as you could ruin a lot of data very quickly. But, there are so many times where we need to just make a minor update like this, or create a new record without filling out fields required by the page layout when this functionality is a huge time saver.</p>
<p>The System Log is even better when trying to figure out why Apex code is not doing what you want it to. Just open it up and take an action which will trigger the code and the System Log will show you everything that is going on behind the scenes. You may want to adjust the Log Level to a level closer to Finest to see more information.</p>
<p>For those of you that work in Eclipse a lot, you can use the System Log there too....</p></div>
    
    ]]></description> <pubDate>Sat, 06 Dec 2008 04:22:31 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#f2702b83-9898-41ec-910b-a86f880d4857</guid> 
  
  </item>

  
  <item> <title>Introduction to Visualforce</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#9712a650-8bd9-49a4-a3b2-eb4742c9c102</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#9712a650-8bd9-49a4-a3b2-eb4742c9c102"><img align="right" src="http://www.evernote.com/shard/s1/thumb/9712a650-8bd9-49a4-a3b2-eb4742c9c102"/></a>
        <div style="background-color:#ffffff;" class="ennote">
Introduction to Visualforce
Abstract
<p>Visualforce is the component-based user interface framework for the Force.com platform. The framework includes a tag-based markup language, similar to HTML. Each Visualforce tag corresponds to a coarse or fine-grained user interface component, such as a section of a page, or a field. Visualforce boasts over 60 built-in components, and a mechanism whereby developers can create their own components.</p>
<p>Visualforce uses the traditional model-view-controller (MVC) paradigm, with the option to use auto-generated controllers for database objects, providing simple and tight integration with the database. You can write your own controllers, or extensions to controllers, using Apex Code. Visualforce also provides AJAX components, and embeds the formula expression language for action, data and component binding interaction.</p>
<p>This article introduces Visualforce. It illustrates the major areas of functionality, provides an example of the MVC paradigm in action, shows how to include database integration, and demonstrates how to create your own components.</p>
Visualforce in action
<p>A developer creates Visualforce pages by composing components, HTML and optional styling elements on the Force.com platform. Each page is then accessible by a unique URL. When someone accesses a page, the server renders the page.</p>
<p><a href="http://wiki.apexdevnet.com/index.php/Image:Visualforce_crl_vf.png" shape="rect"></a></p>
<p>As the figure illustrates, pages are constructed on the server and depending on the logic behind the page may interact with the database, invoke external web service calls or both before returning the view to the client (browser). In fact:</p>
<ul><li>Visualforce pages can react differently to different client browsers such as those on a mobile or touch screen device</li><li>Everything runs on the server, so no additional client-side callbacks are needed to render a complete view</li><li>Optional server-side call outs can be made to any web service</li></ul>
<p>Let's see how this works in a little more detail.</p>
Introducing Visualforce and the MVC model
<p>This section provides a quick overview of a simple Visualforce page, followed by some...</p></div>
    
    ]]></description> <pubDate>Fri, 05 Dec 2008 18:40:14 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#9712a650-8bd9-49a4-a3b2-eb4742c9c102</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/9712a650-8bd9-49a4-a3b2-eb4742c9c102"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>Balsamiq nice mockups</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#7d85849d-5886-40fb-938a-7acf1a092d04</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#7d85849d-5886-40fb-938a-7acf1a092d04"><img align="right" src="http://www.evernote.com/shard/s1/thumb/7d85849d-5886-40fb-938a-7acf1a092d04"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<a href="http://gokubi.com/archives/balsamiq-nice-mockups" shape="rect">Balsamiq nice mockups</a>
<p>I downloaded Balsamiq’s <a href="http://www.balsamiq.com/products/mockups" shape="rect">Mockup tool</a> last week and have played with it a bit. I’m pretty impressed as it smartly hits a sweet spot between quick and dirty and presentation ready.</p>
<p>Mockups is an Air app for doing interface designs very quickly. There is a library of common interface elements: web browser chrome, input field, google map, tabs, etc. You simply drag these onto your mockup and go. Most have some simple configuration: title bar of the browser chrome, value showing in the drop down, etc.</p>
<p/>
<p>Yesterday a user of mine asked for a specific feature in Salesforce.com. <a href="http://gokubi.com/archives/campaign-inclusion-reports" shape="rect">I used Mockups to draw it for my post</a>, and for <a href="http://ideas.salesforce.com/article/show/10094370/Campaign_Inclusion_Reports" shape="rect">my Salesforce.com Idea post</a>. I think the image speaks volumes in support of the idea.</p>
<p>I’ve tried lots of other mockup tools: <a href="http://office.microsoft.com/en-us/visio" shape="rect">Visio</a>, <a href="http://dub.washington.edu:2007/denim" shape="rect">Denim</a>, <a href="http://www.adobe.com/products/illustrator" shape="rect">Illustrator</a>, <a href="http://www.evolus.vn/Pencil/Home.html" shape="rect">Pencil</a>, and many more that are now defunct. I like Balsamiq’s product a lot and I think you’ll see it in my posts for the foreseeable future.</p>
<p>I only wish someone would build some Salesforce.com widgets (like object lookups) and a <a href="http://trac.edgewall.org/" shape="rect">Trac</a> integration, I’d be in heaven!</p>
</div>
    
    ]]></description> <pubDate>Wed, 03 Dec 2008 17:03:52 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#7d85849d-5886-40fb-938a-7acf1a092d04</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/7d85849d-5886-40fb-938a-7acf1a092d04"
               length="0" type="image/jpeg"/>
  
  </item>

  
  <item> <title>VisualForce Sites Webinar 12/2/2008</title> <link>http://www.evernote.com/pub/hemmeter/SFDCShared#698ec4b1-3e86-4e9a-93c8-719560e34a43</link>
  <description><![CDATA[
    
    
    
        <a href="http://www.evernote.com/pub/hemmeter/SFDCShared#698ec4b1-3e86-4e9a-93c8-719560e34a43"><img align="right" src="http://www.evernote.com/shard/s1/thumb/698ec4b1-3e86-4e9a-93c8-719560e34a43"/></a>
        <div style="background-color:#ffffff;" class="ennote">
<div>VisualForce Sites Webinar 12/2/2008</div>
<div> </div>
<div></div>
<div> </div>
<div> </div>
<div> </div>
<div></div>
<div> </div>
<div></div>
</div>
    
    ]]></description> <pubDate>Tue, 02 Dec 2008 19:35:11 GMT</pubDate> <guid>http://www.evernote.com/pub/hemmeter/SFDCShared#698ec4b1-3e86-4e9a-93c8-719560e34a43</guid> 
  
    <enclosure url="http://www.evernote.com/shard/s1/thumb/698ec4b1-3e86-4e9a-93c8-719560e34a43"
               length="0" type="image/jpeg"/>
  
  </item>
 </channel> </rss>