Archive for March, 2009

Introducing Cloud Loader - March 30, 2009 at 5:02 pm

So why do I need a server again to integrate with the cloud?

Historically one of the arguments against SaaS, or now “The Cloud” was that integration is difficult or expensive.  Several great providers have emerged in this space to make integration with cloud platforms inexpensive and more recently, even cloud based.  These approaches are great for many companies, but as you know one size doesn’t fit everyone and many companies don’t want to bring in another vendor.

Salesforce has made integration somewhat of a commodity with it’s constant improvements to the DataLoader application.  Most of you are probably familiar with it, but if not, it is a Java based client side tool that allows you to load data into Salesforce.  It can handle all of the basic CRUD operations you might expect.  It now supports direct database access as well so you don’t have to rely on .csv flat files as you did previously.

The other great thing about DataLoader is that you can take the JAR file and run it in a scripted and automated fashion to get integration on the cheap.  This approach works well to master customer data from an ERP system, or update nightly financials or orders.  It can also pull data out of Salesforce to feed a Data Warehouse for example.

The only issue, you need a server to host this puppy on.

As you know the “clouds” are converging and Salesforce, Google and Amazon all play well together.  So why not leverage the Amazon cloud to handle this type of integration?  Good news, it works great on Amazon, and is freely available for you to use.

Cloud Loader is a free pre-packaged AMI (Amazon Machine Instance) that you can literally have up and running in a few minutes and have data flowing into or out of Salesforce in the cloud.  It is based on Data Loader, but is fully automated and even has email notifications buit-in.

Cloud Loader does require that the data coming into Salesforce be available on a FTP server that is accessible from an Amazon EC2 Instance.  All you need to do within  Cloud Loader is add your mapping file as well as your Salesforce and FTP credentials and you are ready to roll.

If you want to give this a try, click here.
 

Model Metrics Helps African Aid Organization Automate Donations - - March 24, 2009 at 1:18 pm

CHICAGO – March 24, 2009 – Model Metrics, a leading cloud computing technology firm and premier partner of salesforce.com, has designed and launched a new donation management system for One Acre Fund built on the Force.com platform from salesforce.com. The new solution automates One Acre Fund’s donation process, saving hours of time for its lean staff.

<Link to press release>

Friday Thought: Less Talking, More Doing - March 20, 2009 at 8:10 am

One of the things I like about Salesforce.com and the Force.com platform is that they enable people to do more while talking less.

Let me clarify: people still get to talk, but they get to talk less about what they’re trying to do on the platform.  They’ll probably talk more about other, unrelated stuff, once freed from talking about their business tools — but that’s a good thing.

So what do I mean?

If you want to add a workflow and there’s debate about how to do it, you can just go build it and show people what you mean.

If you want to build a new application, instead of debating should it be .NET or Java, or should we use Dojo or Ext.js — you can just go build it.  

If you want to deploy a fancy new web service, instead of debating SLAs or encryption or authentication requirements — you just go built and the platform does the rest.  

You can talk about functionality — the what, not the how.

Yeah, I’ve consumed just about all the Kool Aid I could possibly find on all this but don’t let that fool you — these are real benefits.

So my Friday thought is this: Talk less about the stuff that doesn’t matter.  Do more of the stuff that does.  And enjoy the day — it’s beautiful!

Model Metrics Releases Definitive CRM Guidelines for CEOs - - March 17, 2009 at 9:36 am

Chicago – March 17, 2009 – Model Metrics, a leading provider of cloud computing and Customer Relationship Management solutions and a premier partner of salesforce.com, today released a new white paper titled "CRM for CEOs", a definitive guide to help CEOs and executive leadership drive a CRM initiative successfully from start to finish.

<Link to press release>

Salesforce-to-Salesforce Mashup: 100% Native Force.com Apex Solution - March 16, 2009 at 5:32 am

Follow Reid: Twitter.com/ReidCarlberg. A few people on my team contributed to this at different points.  Props to Shoby Abdi for getting it all together.  Twitter.com/ShobyAbdi.

I recently ran into a challenge regarding a Salesforce-to-Salesforce mashup.  We didn’t want to move the data (traditional integration, S2S/org to org sharing), but we also wanted to keep the solution as "clean" as possible — the simplest possible implementation with the fewest possible moving parts.  This article is a walk through of how we solved it.  I’ve included some lessons learned at the bottom.

Background

* Our goal was to create a mashup without a third party mashup provider.

* Although Apex facilitates callouts to external services, the API specs clearly state that Apex callouts are not designed to call full Salesforce.com API based webservices, so we knew we had to avoid that route.

* We wanted to have avoid creating a large number of dedicated Apex "stubs" on the data provider org.

* In addition to pulling information from the data provider org, we wanted to be update to update a record.

Here are the two screen shots that we ended up with.  Note that both are on the calling org.  In the first, you can see where a query has resulted in data coming back.  In the second, you can see where we’ve updated a field and refreshed the query results. Neat!

Screen 1: The query "Select Id, Name, BillingStreet from Account where BillingState = ‘CA’" results in two records.

Salesforce to Salesforce Mashup - 100% Apex

Screen 2: Here you can see the results of the first query, as well as my entries in the "update" section.  I’m using the data I received from my query to determine which records to update.

Salesforce to Salesforce Mashup - 100% Apex

Screen 3: And you can see here where "GenePoint" the company I select based on the ID has moved from "345 Shoreline Park" to "123 Reid Updated Blvd." (Class A digs if they ever existed.)

Salesforce to Salesforce 100% Apex Mashup

The Basic Process

1. Create a stub in the org that will provide the data.  This should be a global webservice class.  Save the generated WSDL for this class.

2. Import that WSDL using WSDL2APEX in the org that will consume the data.  It will create a matching objects.

3. Create a utility method that handles authentication for you.  You won’t be able to use either the partner or enterprise WSDL in your Apex so you’ll need to roll your own.  We have a quick & dirty version below.

4. You’ll need a Visualforce page and a Visualforce controller to tie everything together.  Those are pretty trivial so I’ve left them out of this post (but they’re in the code, below).

The Code – Data Provider Org

Code is posted in a separate file.  Download it!

We started by creating a "DataProviderRequest" Apex Webservice class that executes queries and returns data.

Next was the Data Consumer. Note that this has both a "getSobjectData" and an "updateSobjectData" section. 

Code contains working examples of:

* Dynamic SOQL / Dynamic Object Udpates

* Login to one SFDC org from another.

Lessons Learned

* You need to create your own intermediate data type to move content back and forth between the orgs.  If you use SObject, you’ll have a schema which includes all of the SObject sub-types.  Not very useful (and just too long).

* Performance is reasonably good although not perfect.  Caching the session ID rather than logging in every time would improve performance.

* This is a reasonably good alternative to traditional integration methods but IMHO I would generally rather use things like Salesforce to Salesforce if the use case supports it.

* Getting this to production ready will require some tweaking but my over all thought is that it shouldn’t be too hard.

 

 

 

 

 

Cloud Converter In Action: Automatically Convert MS SQL Server to Force.com - March 1, 2009 at 5:09 pm

 Had a great note today from a Salesforce Sales Engineer in Belgium. David wrote:

 (After David, I have one more screen shot.)

*****

Just wanted to let you know that I’ve spent some time with the new version of the Cloud Converter code you’ve got up on Code Share : It works like a charm and it will be very useful for us and our customers.

I’ve tested it on a local [MS] SQLExpress Server.

Fwd: Cloud Converter

Converts nicely to:

Fwd: Cloud Converter

I’m sure you’ve seen this in action before but I hadn’t, it’s very cool. Beautiful usage of our Metadata API. The java code is really easy to adapt to any db or table.

*****

Thanks, David.

This next screen shot shows a few other things — namely, the lookup relationship and long field types.

Cloud Converter