Project and Download URL: http://orgDbOrgSettings.codeplex.com
What are orgDbOrgSettings you ask? They work similar to registry settings but they’re stored in the CRM database instead of in a given servers registry. OrgDbOrgSettings control behaviors and various other CRM system settings and have been added over various releases and will continue to be added as needed. And customers may edit these when they want to optimize/tailor the experience based on specific requirements. As you may know, there is an existing command line tool referred to in the OrgDbOrgSettings KB: KB2691237, this existing command line tool can be used for all types of CRM Customers but requires extensive configuration. If you’ve run the command line tool you’ll understand the desire for something having something with far fewer configuration requirements.
The idea for the project came several months ago when I was prototyping various uses of CRM’s OData/REST endpoint and discovered a plethora of accessible entities that could be very useful including the “Organization” entity. Using this prototype I added on more sample code and eventually had an HTML webresource that can be published CRM for editing OrgDbOrgSettings. A few folks from the CRM Support team tested and gave feedback along with a few partners, after making some changes based on their feedback I now have something I consider “ready for use” and this is what it looks like:
The idea was to make it straightforward and simple given the time I had. This project has taken place over many weeks and includes many different samples and concepts and I’ll admin the code isn’t as “neat” and clean as I would like it to be but, frankly speaking, I’m not sure if code is ever clean or neat enough to share with the “community” at large . In either case the time has come to get this out and let folks use it and give feedback. First, I want to say that you should only really edit these settings when you have a specific reason to do so – a couple of the more advanced settings should also be tested or set with guidance of other KB articles or support engineers. I can cover these settings and why you should be using them instead of the registry in a later blog post if there’s interest, but for now I’m sure you’re thinking: how exactly does it work? And where can I get it? You can download it here, and for those who are curious read on to learn more.
But there’s more, if you’re accessing this page from a modern browser and computer connected to the internet, it will also call out to AzureMobile services and retrieve the latest build version number. When I publish an update you’ll get a message in the settings editor from AzureMobile telling you there’s an updated version along with a URL. It’s important to keep this updated as new settings get released in update rollups. To update in the utility, click the link to download and save the solution, click another link to launch CRM’s import wizard, import the solution, and press F5 to refresh the solution window and you’ll have the latest update with the newest settings! For those curious about how the caching and callbacks to Azure work, the editor will only call back to Azure once every 7 days. This timeframe is stored using HTML5 localStorage and will reset under a couple different conditions (localStorage is available in all modern browsers and IE8, more info on localStorage can be found here) . And for those concerned about the amount of data stored there, I’m currently storing three values, all of which contain a very small amount of string data.
I hope you find the Org Settings Utility to be useful and it should save you some time as your configuring, implementing , and deploying CRM. And if you’re building mobile apps you should look at leverage AzureMobile. As always I appreciate the constructive feedback of the community and look forward to hearing from you!