Tag Archives: Integration

Setting up your Ruby on Rails environment for Force.com


Like many of you, I was excited about the announcement regarding Heroku at Dreamforce.  I wanted to learn more about Ruby and Heroku and what better way to learn a new programming language than to write and deploy an application.  Though I found the getting started article useful, it assumes you have a working environment.  This article shows you how you can easily setup a working environment on a windows machine. 

The Big Picture

Before we get started, it is useful to understand how the toolkit fits into the overall Ruby environment. Ruby is a programming language  and Rails is a web application framework.  The Force.com… Continue reading

Chatter and Event Driven Architecture (EDA)

One of the things that stuck me while watching the Chatter presentation and demo  was the asynchronous and event driven nature of the collaboration taking place.  As an example, any number of activities happening at your customer account – identification of a new opportunity, a project being completed, etc. can be treated as event that can be handled by the right people or system which in turn could trigger additional events and so on. 

Let us look at a few of the attributes of this style of interaction.

  • The entity(either a person or a system) triggering the event just broadcasts/publishes the event without any knowledge of who may be interested in that -

Batch Apex – a powerful new functionality in Summer ’09

Among the many new goodies in Summer ’09 release is a powerful new feature to do batch processing on your database records.  Tasks that require processing of large data volumes without any active human intervention can take advantage of this feature.  As an example, consider the task of validating addresses in your contacts when you can potentially have millions of contact records.  A batch job would be ideal for this scenario since you can start the batch job, continue to work or even log off while the job continues to execute.

To use this functionality, you need to implement the Database.Batchable… Continue reading

Testing – it is more than code coverage….

As a Force.com developer, you are probably already aware that before you can deploy your code into production, you should have atleast 75% test coverage.  Though necessary (since the platform enforces this requirement), it is hardly sufficient to ensure that your code meets the requirements and expectations of the users.  I will briefly describe the different types of testing you should consider before rolling out a Force.com application.

Unit Testing – Unit testing is used to verify that each individual piece of code (trigger, a method of a class, custom controller code etc.) is behaving as expected.  Force.com provides… Continue reading

Calling Web Services from a Trigger (and an update to Zillow mashup)

Few months ago, I wrote about accessing an external web service, in this case Zillow to enrich lead data in Salesforce CRM.  Very briefly, Zillow provides the valuation of a property given an address using a proprietary algorithm.  To incorporate this transparently into the application, we built an extension to the standard controller for Lead sObject and defined our own custom save method to override the standard behavior.  The save method we wrote, made the callout to the Zillow service.

Though this works fine for Leads entered through the UI, it doesn't work if a lead… Continue reading

Navigating Relationships…..


Navigating relationships in life may be hard but doesn't have to between custom sObjects :). The SOQL documentation  has several examples with standard sObjects. Custom sObjects have some differences – mostly syntactical.  We will illustrate that using a few sample SOQL queries.

We will use the example from the Developer Guide The object model is reproduced below (click on the pictures to enlarge them).

When you insert a relationship field on an sObject (either a lookup or master-detail) to another object, the other object is called the parent sObject.  So Location is the parent of Position in the object model shown.  The… Continue reading

Chalk one up for the Cloud!


Yesterday the Force.com team led speed geeking rounds and chalk
talks at the Cloud
Connect event in Mountain View,
California. Together with Google and Amazon Web Services,
we were able to discuss the benefits of cloud computing, show how to get
started, and answer questions.  

Have you ever attended an “unconference”
before? This was the first time for
me. The unstructured approach and piercing bullhorns
can be a little unfamiliar at first, but soon I found myself immersed in the rapid pace and participation
from the conference attendees.… Continue reading

Adding a Visualforce Page to a Page Layout


A nice feature of S-Controls is the ability to easily embed them into a page layout. Did you know that you can do the same thing with Visualforce Pages?

I was talking with a partner yesterday and they wanted to add some Visualforce functionality to a page layout. To achieve this, they re-created the whole detail page in Visualforce and then proceeded to add additional Visualforce functionality. This approach works, but when it comes time for the user to customize this page, they better be familiar with your Visualforce code.

Dreamforce Day 1 – Amazon announcement and more….

Wow!  What a day and it is not yet over.  The keynote, the sessions and the Sites Hackathon are over and now it is party time – I can hear the Foo Fighters playing in the background.  This is actually my second Dreamforce, I presented at the very first Dreamforce as a Salesforce partner back in 2003.  At that time, there were a few hundred attendees, the Web Services API was in version 1.0, and I don’t think the term Cloud Computing was even around.  Today, there are almost 10,000 attendees here, version 14 of the API is in GA… Continue reading

Dynamic Apex – make your code more flexible


In my last post, I talked about Dynamic SOQL which lets you build and execute a query ‘on the fly’ or at runtime.  Dynamic SOQL is one feature in a family of features collectively called Dynamic Apex.  Dynamic Apex lets you build flexible applications where the database objects (or sObjects in Apex terminology) that need to be acted upon are not known at compile time.  Examples of such applications are  generic report writing tools, graphical query editors etc..  Such tools will have to work in any org where it gets installed, so it is impossible to know ahead of time… Continue reading