More on the Appexchange
On Monday I had a great chat with Jim Yu, Director of Platform Product Management, and Adam Gross, Director of Developer Marketing, from Salesforce.com. Last week I posted some frustrations I was having with the Appexchange and Jim contacted me to talk about what I was experiencing, some possible workarounds, and to get a better sense of the way I was trying to use the service.
I learned a lot about how package validation in the Appexchange currently works:
- Any explicit Id string is checked by the validator. Pretty trippy if you think about it. So an S-Control with var RecordTypeId = 0000004f500Fgh; in it won’t be packageable.
- Any use of merge fields is checked by the validator, so if your S-Conrol has var Fund = “{!Opportunity.Fund__c}”; that field will be automatically pulled into to the package.
- Using custom fields in any other way isn’t validated. SOQL statements that reference custom fields are not checked, and won’t automatically package custom fields. Same is true for set statements.
These insider tips were really helpful to me. If I want to share S-Controls that access the Fund custom field on Opportunity, as long as I don’t use the merge fields other nonprofit template users will be able to install things no problem. And I already talked about the solution to the record type problem.
I had two other take aways from this conversation. One is that Salesforce.com genuinely cares about what users think about their application. They want users to be successful, and also want to learn from folks who are looking at things from a slightly different angle.
Second, Salesforce.com seems to be genuinely interested in the shared development model, and is starting to think about how to enable an “open-source-like” development experience for Salesforce.com add-ons. I know Steve Wright at the Foundation is really behind this, and I think the developer side of the company finds it very interesting, too. We’ll see where it goes–the nonprofit Salesforce.com community would be some of the first to come to the table if this happens.
Update: Kingsley had the great idea in the comments that I create an entry on ideas.salesforce.com for this idea. If you want a changelog, go vote for it!
