Just start typing...
Technologies

Resolving upgrade issues for Microsoft Dynamics CRM 2011

Published November 27, 2012
Let us tell you more about our projects
Start here

Microsoft released a beta version of Microsoft Dynamics CRM that supports multiple browser types. This also includes significant changes influencing a great number of users and organizations. We listed the most common issues that our customers faced.

Microsoft released a beta version of MS Dynamics CRM that supports multiple browser types, but this also includes significant changes that will influence a great number of users and organizations that use Microsoft Dynamics CRM.

Even though Microsoft provides code samples and documented best practices to simplify development and facilitate future upgrades, it doesn’t stop users from facing the problems with breaking customizations and solutions that don’t work anymore. Only solutions that have been created with the help of supported APIs for CRM 2011 as documented in the Software Development Kit for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online will continue to work without issues. But what if your solution use unsupported methods?

Of course you can use Microsoft Dynamics CRM 2011 Custom Code Validation Tool, however it only highlights the problem, and it doesn’t provide a solution.

Below you can find some examples how problems that have been identified with the help of Microsoft Dynamics CRM 2011 Custom Code Validation Tool can be solved using JQuery and new SDK.

insertCell $("
document.all $(element)
attachevent $(element).bind
innerText $(element).text
FormType Xrm.Page.ui.getFormType()
crmForm Xrm.Page
AddParam addCustomView
Clear setValue(null)
SubmitCrmForm Xrm.Page.data.entity.save
GetLabelControl controlObj.getLabel()

Actually this table listed a small portion of the issues, but even these issues might require time consuming efforts.

You might have a question “what are the most typical problems you might face?”.

To help you answer, below we listed the 6 mostly frequently met situations and issues that our customers had:

  1. Assign event directly:
            
              document.getElementById('new_field').onclick = FormerClientChange;
           
          

    instead you can use functions:

              
                Xrm.Page.getAttribute("new_field").addOnChange(myFunction);
              
            
  2. Rename element in navigation

              
                if (document.getElementById('nav_myitem') != null) {
                  if (document.getElementById('nav_myitem').children.length > 1) {
                    if (document.getElementById('nav_myitem').children[1].tagName == "NOBR") {
                      document.getElementById('nav_myitem').children[1].setAttribute('title', "Some text");
                      document.getElementById('nav_myitem').children[1].innerText = "Some text";
                    }
                  }
                }
              
            

    instead you can use functions:

              
                Xrm.Page.ui.navigation.items.get("nav_myitem").setLabel("Other Addresses");
              
            
  3. Hide the field

              
                document.getElementById('new_field').style.visibility = 'hidden';
              
            

    instead you can use functions:

              
                Xrm.Page.getControl("new_field").setVisible(false);
              
            
  4. Hide navigation element

              
                document.getElementById('nav_myitem').style.display = 'none';
              
            

    instead you can use functions:

              
                Xrm.Page.ui.navigation.items.get("nav_myitem").setVisible(false);
              
            
  5. To use XMLHttpRequest do not use ActiveX objects directly:

              
                objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
              
            

    instead you can use functions from jQuery $.ajax or the following function:

              
                function GetXmlHttpObject() {
                  var objXMLHttp = null;
                  if (window.XMLHttpRequest) {
                    objXMLHttp = new XMLHttpRequest();
                  }
                  else if (window.ActiveXObject) {
                    objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
                  }
                  return objXMLHttp;
                  }
              
            

If you do not have time for dealing with such issues we can help you

  • Identify whether any unsupported methods have been used in your solution
  • Resolve all identified issues
  • Conduct testing

Energy Management System for Mata Energy

The solution is aimed to facilitate sector-coupled energy supply, improving its efficiency. For the client we provided a consulting session, and developed an MVP.

WaveAccess named among Clutch Global Leaders 2023

We're thrilled to announce that WaveAccess has been recognized as a winner of the Clutch Global Awards 2023 in the IoT, Cognitive Computing, and Microsoft Dynamics CRM categories. Clutch Global leaders are selected based on the platform’s strict methodology, emphasizing industry expertise and the ability to deliver results.

New Pooling API in Unity 2021

In games in most cases you are faced with a lot of instantiations and disposes of objects but when you reach some amount of instantiations every second performance can degrade dramatically.
March, 2020. The WHO offered to use the term ‘physical distancing’ instead of ‘social distancing’, because for those who stay at home social relations are more important than ever. In this article, we’d like to talk about a couple of stories where people who communicate and have fun using myQuiz, our own web product. In 2020, this platform helped to engage isolated audiences in activities and events that previously were not even possible.    
Today we’d like to talk about the Wave.Integrate solution, and integration challenges it can help with. In our previous article on the same topic, Data integration and migration platform: tasks and opportunities, we already discussed some of its abilities and told more about Wave.Integrate itself. Today let’s dive deeper into some intricate business processes which will include integration with closed systems, Blockchain, and more.
WaveAccess has partnered with ScrubPort, a US-based medical uniform supplier, to develop a comprehensive IT solution for providing disposable scrub sets for healthcare professionals at medical care facilities through vending machines.

Related Services

Help with Upgrading MS CRM for multi-browser support
Migration from MS CRM 4/11 to Dynamics CRM 365/9.0
MS CRM Custom Development & Customization

How we process your personal data

When you submit the completed form, your personal data will be processed by WaveAccess USA. Due to our international presence, your data may be transferred and processed outside the country where you reside or are located. You have the right to withdraw your consent at any time.
Please read our Privacy Policy for more information.