I’ve updated Woodswork Bench. Along with some visual stuff, it now also hosts my offline tools:
- Simplicity; built for Microsoft Dynamics CRM 2011 this tool provides Guid Mining, and URL Building services.
- Determination; a light weight IronPython scripting tool specifically setup for Microsoft Dynamics 2011, however it suitable for use with any .Net assemblies and MSCRM version.
Check it out here.
Argh! Someone has done something and something is ruined! Fortunately someone only changed records in CRM, and even better audit logging was enabled. You can now use the web service SDK to analyse changes that have occurred, you can then use this information to perform the opposite action and roll back changes.
I was looking for an easy way to allow a user to perform an action in CRM by opening a hyper link. The idea being the URL can be embedded in an email, SMS, or anything else, and simply opening the URL allows the user to perform an action in CRM (without having to actually use the full CRM interface).
I cobbled together this proof of concept which chains together a couple of components to create an “Action Link”.
Today I found myself creating a couple of architecture diagrams for some design documents. I wanted to use the official Microsoft icons and logo sets.
Fortunately Microsoft make those readily available.
This code will print out all the differences between two given security roles. Useful when you need to sanity check your work or debug security issues.
Differences between Marketing Manager and Marketing Professional
Marketing Manager has prvActivateBusinessProcessFlow: Global
Marketing Manager has prvActivateSynchronousWorkflow: Global
Marketing Manager has prvAppendCompetitor: Global
Marketing Professional has prvActivateSynchronousWorkflow: User
Marketing Professional has prvAppendEmailTemplate: Bu
When debugging security issues it can be useful to compare the privileges of a functioning user with a non-functioning user.
The code in this post will print out all the privilege differences between two given users.
Differences between email@example.com and firstname.lastname@example.org
email@example.com has BU:root, PRIV:prvCreateAccount, DEPTH:Global
firstname.lastname@example.org has BU:root, PRIV:prvCreateActivity, DEPTH:Global
email@example.com has BU:root, PRIV:prvCreateArticle, DEPTH:Global
firstname.lastname@example.org has BU:sub, PRIV:prvCreateActivity, DEPTH:Deep
email@example.com has BU:sub, PRIV:prvCreateArticle, DEPTH:Global
At the time I struggled to find an official release from Microsoft commenting on this change – it seemed like a breaking change that caused issues in a number of deployments so I was surprised this wasn’t sign posted more explicitly (maybe I missed something in the release notes :|).
In any case it appears this may now be changing – at least in respect to load order. In the release notes of Rollup 15 under ‘Issues that are resolved in Update Rollup 15 for Microsoft Dynamics CRM 2011’ there is this little nugget:
Loading order of web resource script files is not respected after Update Rollup 12.
It’s difficult to tell exactly what this means and what change will occur, however it definitely suggests that the load order will now be respected (even if they do load asynchronously), which seems like a good thing.