You need to sign in to do that
Don't have an account?

Managed Package Question
Our company is in the process of trying to create and license our software. One of the issues that I'm having is providing in such a way that the licensee can customize it. For example, we have pages that include our company's name on it. What I'm trying to do is allow the customer to change that particular item. However, because we're distributing the application as a managed package, the client is unable to modify anything. I've tried using custom labels, but the same issue occurs. Once the manage package is deployed in a client's org, the labels become read-only. The only thing that I've come up with would be a cusom object, and that complicates things considerably. For example, for a custom label, a Visualforce page would simply use {!$Label.Company_Name} as the reference. If I use a custom object, then it's not as simple and would actually cause a SOQL query on each page load.
My question is: Is there any "best practice" in a managed package that allows a client to customize certain aspects of the application?
Thanks in advance.
Take a look at Custom Settings...I saw this presentation at Dreamforce this year where he is using Custom Settings to store all his labels for a VF page:
https://github.com/nzgonjanin/Dreamforce2012
You'll see in his code he references them like this, where AddtoCampaignsSetting__c is his custom setting, and column_Select_Header__cis the field name on the setting:
Depending on how you implement the setting, you can control the access someone has to the setting, so I think this is probably your best bet. And now you can run scripts on install/update of a package, you can run a simple script to populate the custom setting on install from code/static resource or even a web service...
All Answers
Take a look at Custom Settings...I saw this presentation at Dreamforce this year where he is using Custom Settings to store all his labels for a VF page:
https://github.com/nzgonjanin/Dreamforce2012
You'll see in his code he references them like this, where AddtoCampaignsSetting__c is his custom setting, and column_Select_Header__cis the field name on the setting:
Depending on how you implement the setting, you can control the access someone has to the setting, so I think this is probably your best bet. And now you can run scripts on install/update of a package, you can run a simple script to populate the custom setting on install from code/static resource or even a web service...
Is there a way to "auto-run" a script upon installing a managed package or just something you do from the console or in Eclipse?
Yes - they added the functionality in Spring 12 I think...see docs here for details
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_install_handler.htm
Excellent! Thank you for the response!