Tip #171: If email router is having a slow day or how to add custom index

Sometimes things are slow. Very. Slow. So slow that your email router starts spitting dreadful messages: #9628 – An error occurred while delivering the e-mail message with subject “None of your business” in mailbox foo@bar.baz for delivery to https://crm.bar.baz. System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]: SQL timeout expired. (Fault Detail is equal to Microsoft.Xrm.Sdk.OrganizationServiceFault). If you are on CRM […]

Tip #169: Update related records with a workflow

Ever wish you could use a workflow to update related/child records? For example, when I update the address on an account, update the address on all of the related contacts. You can, with the help of the very helpful CRM 2011 Distribute Workflow Activity assembly written by Alberto Gemin on Codeplex. While this says “CRM 2011” […]

Tip #165: 1:1 with security twist

Usability of 1:1 relationships stretches far beyond UI candy. They can become a very useful tool that secures parts of the same logical record. For example, financial services company might use account entity to hold information about their customers but due to Chinese walls within the company, investment manager should not be able to access […]

Tip #159: PowerShell fails in IFD deployment

Microsoft Dynamics CRM Windows PowerShell snap-in is an excellent automation tool but on some Internet Facing Deployments even an innocuous call to Get-CrmServer can fail with a fairly generic message “The caller was not authenticated by the service“. One of the possible reasons is that the tool always runs on CRM server but for IFD […]

Tip #155: During the upgrade all your CRM are belong to us

When importing a CRM 2011 organization into CRM 2013 UR2 or SP1 environment, you may receive a cryptic message “Database having version 6.0.0.809 is not supported for upgraded”. As it turns out, it has nothing to do with the version of the database being imported. If you are trying to import an organization database that […]

Tip #146: Geo-restrictions for your CRM

One of our customers challenged us with a very specific requirement to limit access to their CRM to the users located in Australia. It’s always good to remember that CRM application server is a very sophisticated but a web site nevertheless and for a web site, we can use ipSecurity element in web.config that defines […]

Tip #144: Restrict AD browsing when adding new users

If you are a hosting provider or a security-conscious administrator managing multiple CRM deployments then you’d like to avoid exposing entire Active Directory when user with appropriate permissions clicks New Multiple Users and then opts to browse all trusted domains and groups. There are some unsupported methods as well as supported C# code to achieve […]

Tip #135: What to check if on-disk plugin registration fails

Registering plugin on disk has its benefits but can be tricky business. Plugin registration tool that comes with SDK is very coy about the errors and display the following message (in the log section of the form): ERROR: Occurred while checking whether the assembly exists You can opt to see more details about fault exception […]