Skip to main content

Posts

Showing posts from February, 2014

Dynamics CRM - Replacing old CRM 4 API references with regular expressions

When upgrading Dynamics CRM 2011 to the most recent set of updates, it turns out that CRM 4 API stuff was no longer supported, even though the Microsoft code validation tool said that it should all work in IE! >:-[
So I needed to quickly replace loads of old CRM 4 API references, such as

crmForm.all.some_field.DataValue = 1;

with the newer CRM 2011 API, which in this example would look like:

Xrm.Page.getAttribute("some_field").setValue(1);

We had thousands of these scattered all throughout about over 50 javascript files from long ago, back when we were running CRM 4, and many of them hadn't been updated with the new API. This would have been extremely laborious if it were not for a couple of pretty handy regular expressions I came up with (plus a bit of help from my colleague to perfect the first):

Find:

crmForm\.(?:all\.|\w*?)(\w*)\.DataValue
And replace with:

Xrm.Page.getAttribute("$1").Value
After that, it's still necessary to replace "Value" with…