Cubic Compass Software

I was reading through the new API features coming out in the next release of Salesforce (Summer '07) when the Metadata API feature caught my eye. This feature addresses a big pain point we have today, which is helping customers to quickly install and configure their Salesforce org for i-Dialogue web site integration.

AppExchange packages are fairly self-contained and cannot modify native objects. Many tasks are left to manual configuration. For example, if we want to extend Salesforce Campaigns with detailed, real-time information like number of emails sent, click-through-rate, or web pages viewed, then we must manually create these metrics as custom fields on the Campaign object. Our default AppExchange package only installs a couple additional custom objects (a web event data warehouse).

But the Metadata API apparently will let us remotely create these fields on the Campaign object, conceivably allowing us to add a link on the "About" tab of our package that instructs our service to configure your Salesforce environment for rich Campaign management and real-time web analytics.

So, I started thinking... why have anything at all in the AppExchange package except the smart "About" tab? Just let customers download the bare essentials and let our service remotely provision Salesforce to guarantee installation/configuration success every time? Why cast our fate into the wind and use Managed Packages when implementing upgrades? With the Metadata API, we can figure out precisely which object/fields are installed and automate upgrades of both Salesforce and your i-Dialogue web site.

Posted: Wednesday, July 18, 2007 12:42:57 AM (GMT Standard Time, UTC+00:00)  #   
Comments [2]  | 
Monday, July 23, 2007 8:40:01 PM (GMT Standard Time, UTC+00:00)
Why cast our fate into the wind . . .?

1. The meta data API is only available in the Developer Edition for now.

2. We don't know yet which level of users will be able to use the metadata API (Enterprise ? Unlimited ? Professional ?). I had high hopes for Apex code, but now it is only available to the Unlimited Edition users, and it cannot be packaged into an AppExchange for the time being.

3. Going through the AppExchange approval process ensures that the AppExchange product will not conflict with some other existing custom object or custom field.

4. There is no way yet to set up layouts via the metadata api.

Just off of the top of my head.

On the other hand, I welcome the use of the metadata API to build my custom application BEFORE packaging the "product" for AppExchange. It is much easier to create a script which automatically builds all aspects of your product (and also a script to remove it) than to tediously do this object by object, field by field, through the UI.
Monday, July 23, 2007 8:59:56 PM (GMT Standard Time, UTC+00:00)
David,

Great comments. I'm specifically challenged with the concept of Managed Packages and package migrations/upgrades. The AppExchange's overly cautious governers are justified, but limit any ability to use an "Agile" development methodology. The Metadata API provides the most flexible solution to this problem (assuming it is available to PE/EE customers).

BTW- I too invested some time in Apex on the assumption it could be generally packaged, only to be disappointed with the UE restriction in Summer '07. I still have hope that this will become more generally available in later releases though.

-Mike
Comments are closed.

Search