Arrowpointe @ Dreamforce 2008

Dreamforce 2008Dreamforce is just around the corner.  If you are already registered, be sure to visit the Attendee Portal to create a calendar of the sessions to attend.  Also, if you are so inclined, it’s a great opportunity to get certified.  Salesforce is offering a voucher for a free certification exam sitting ($200 value). Go here for more information.

One session you won’t want to miss is the one I am speaking at!

Enhancing Your Force Platform Apps with Google Geo & Maps APIs
You’ve seen basic Google Maps mashups, but did you know there are new API capabilities that support Flash-based maps, Google Earth, geo-coding, and other advanced visualizations? Join experts from the Google Geo API team as they show you how to implement new types of geo-enabled Force Platform apps.

Wednesday, November 5
11:30 a.m. – 12:30 p.m.

Presented By
Ron Hess, Salesforce.com
Billy Rutledge, Google Inc.
Ossama Alami, Google Inc.
Scott Hemmeter, Arrowpointe Corp.

It is on the Tour De Force track.  In that session, I will be making an exciting announcement. If you are familiar with Arrowpointe Maps, you can probably guess what that announcement will be.

Arrowpointe does not have a booth this year, but I will all around the convention, primarily attending the developer track sessions.  If you would like to try and meet up, contact me.  If we don’t have each other’s contact information, please submit your’s here.

Comments (1) comments feed

Arrowpointe Maps 1.2.1

Version 1.2.1 of Arrowpointe Maps was just released. You can read about all the improvements on the Change History page.

The changes most applicable to end users are:

  • Search Nearby now includes the ability to start from an arbitrary address.  The Other Tools section of the front page now has a “Search Nearby” link.  This link will let you search for a Lead, Account or Contact or you can manually enter an address.  When in the midst of a Search Nearby process, clicking the Start Over button will also bring you to this page.
  • You can now assign specific icons/colors to your Data Sets.  Edit your Data Set and select a Data Set Image.  You can see the image used for each Data Set by viewing your list of Data Sets in the Admin Area of the application.
  • The Company/Account Name is automatically included for Lead/Contact Search Nearby searches.
  • The first 3 fields configured for a Data Set will now appear in the table of results.  All configured fields still appear in the map marker bubble on the map.
  • Search Nearby queries now allow you to use decimal amounts for a range (e.g. 0.25 miles)
  • Number fields on Map Pages now accept decimal amounts.
  • You can now see a list of the records that failed to map.  On a result set, you currently see something like “29 of 30 records successfully mapped”.  If there is an errored record, a link that says “Show Unmappable Records” will appear and you can click it to see a list of the records that did not map properly.
  • The Color Markers By parameter now saves with each Map Report run and will be automatically set for users when that report is mapped the next time.
  • The Language and Unit of Measure (miles vs. kilometers) on the Routing screen are now saved as a user preference.
  • The last Data Set, Range and Unit of Measure (miles vs. kilometers) used in a Search Nearby query are now saved as a user preference.
  • Improved performance on the initial load of the Routing screen.  This improvement also fixes the issue with IE6 and its sporadic inability to load routed records.

NOTE: This upgrade was automatically completed for all users.  It does not require any changes to the AppExchange installation.

About Arrowpointe Maps

Arrowpointe Maps is an on-demand mapping platform that facilitates a conversation between Salesforce.com & MapQuest allowing for easy deployment of mapping capabilities in your organization and providing end-users a simple means for mapping their data. Arrowpointe Maps is configurable and can be tailored to your organization, so that your users can work with their information in a meaningful way.

The official location for information on Arrowpointe Maps is its product page at http://www.arrowpointe.com/maps. There, you will find answers to the most frequently asked questions, screencasts and links to its AppExchange page.

Comments (1) comments feed

“Salesforce User Community 3.0” on Facebook

A new Facebook Group popped up recently called “Salesforce User Community 3.0“.  The group moderator, Pete Fife, asked me to communicate the following note to my readers:

Do you wonder if Salesforce.com listens to their customers and what they want from the user community? Take it from me, they do even if it takes a little squeaking to get their ear. Join me, Pete Fife, to discuss taking the Salesforce.com community beyond disucssion boards and into the new world of social commuinty. I started the customer salesforce user groups back in 2003 and although we have come a long way since then, there is a long way to go to really enable us customers to define our own vision of the Salesforce.com Community. Take advantage of the chance to bring our collective wishes for the user community to the ears of Salesforce.com. They are our captive audience and ready to listen.

Join the Facebook group Salesforce User Community 3.0 to stay up to date and find out when and were we’ll meet at Dreamforce.

FB group link: http://www.new.facebook.com/group.php?gid=26018154108

Please join the group if you wish to participate in the community.

Comments (1) comments feed

Sidebar Summary using Visualforce

About a year ago, I posted about the Sidebar Summary.  The Sidebar Summary exists in the Salesforce.com sidebar and displays the counts of some important queries.  The counts are also hyperlinks to a view or report representing that query.  It’s a very handy thing to have in your sidebar and I use it all the time for my own work.  However, because it’s an s-Control, it runs a little slow.  In fact, it ran slow enough to make me uncheck the user interface option “Show Custom Sidebar Components on All Pages”.

I changed it into a Visualforce page with a custom Apex controller and now it runs super fast and I am able to keep the “Show Custom Sidebar Components on All Pages” option turned on and see it on every page I go to.  There’s a bit of hardcoding in here, but it gets the job done pretty well.  Bye bye s-Control.

Visualforce

The Page is almost all raw HTML.  The only dynamic thing in there are the count values.  Each one retrieves the value from a specific “get” method in the controller.  If you like the queries I use, then the only thing you’ll need to confirm are the URLs that get linked to.  The first 2 go to Views in my Org and the last 2 go to Reports in my Org.  You’ll need to change those URLs.

I named the VF Page “SidebarSummary”.


<apex:page controller="VFController_Sidebar_Summary" sidebar="false" showHeader="false" standardStylesheets="true">
<style type="text/css" media="all">
body{margin: 0; padding: 0; color: #000000; background-color: #E8E8E8;}
#DIV_Container {background-color: #F3F3EC;}
</style>
<div id="DIV_Container">
<table>
<tr><td><em>Unread Leads</em>:  </td><td><a href="/00Q?fcf=00B30000005JhsT" target="_parent"><b>{!UnreadLeads}</b></a></td></tr>
<tr><td><em>Leads - Not Contacted</em>:  </td><td><a href="/00Q?fcf=00B30000005Jhru" target="_parent"><b>{!NotContactedLeads}</b></a></td></tr>
<tr><td><em>Oppty - Next 30 Days</em>:  </td><td><a href="/00O30000001aEHV" target="_parent"><b>{!Next30DayOppty}</b></a></td></tr>
<tr><td><em>Oppty - Past Due</em>:  </td><td><a href="/00O30000001aEHV" target="_parent"><b>{!PastDueOppty}</b></a></td></tr>
</table>
</div>
</apex:page>

Apex

The controller has a method for each query to be run.  Each query is a count() query and returns an Integer.  At the end is a really lame Test method, but it does get 100% of the code covered.  I am certain the code works, so I didn’t do too much with the Test method.  Salesforce just requires the code to be tested.


public class VFController_Sidebar_Summary {

public Integer getUnreadLeads() {
return [
select count() from Lead
where IsConverted = False
AND IsUnreadByOwner = TRUE
];
}

public Integer getNotContactedLeads() {
return [
select count() from Lead
where IsConverted = False
AND Status = 'Open - Not Contacted'
];
}

public Integer getNext30DayOppty() {
return [
select count() from Opportunity
where IsClosed = False
AND (CloseDate = Next_N_DAYS:30 OR CloseDate = TODAY)
];
}

public Integer getPastDueOppty() {
return [
select count() from Opportunity
where IsClosed = False
AND CloseDate < TODAY
&#93;;
}

static testMethod void testVFController_Sidebar_Summary() {
Test.setCurrentPageReference(new PageReference('Page.SidebarSummary'));
VFController_Sidebar_Summary controller = new VFController_Sidebar_Summary();
Integer i1 = controller.getUnreadLeads();
Integer i2 = controller.getNotContactedLeads();
Integer i3 = controller.getNext30DayOppty();
Integer i4 = controller.getPastDueOppty();
}

}

&#91;/sourcecode&#93;

<span style="text-decoration: underline;"><strong>Homepage HTML Component</strong></span>

I created a component for the Narrow side and put the following HTML into the editor.  Essentially, you create an IFRAME and embed the VF page into it.  I found a (unsupported) trick on the forums to remove the developer bar from a page.  Just add <strong>?core.apexpages.devmode.url=1</strong> to the URL.  This will turn off development mode when that page is rendered.  This is important for this little iFrame page on the sidebar.  From what I've gathered, this hack is not supported and could change at any time.

The code below should work for you.  The only thing you might need to change is the Page URL if you didn't name your page SidebarSummary and the height of it.



<iframe src="/apex/SidebarSummary?core.apexpages.devmode.url=1" frameborder="0" height="100" width="100%"></iframe>

Let me know what you think.

Comments (24) comments feed

Winter 09 Release (links)

Links are below to learn about the Winter 09 release.

Comments (3) comments feed

Next entries » · « Previous entries