Tip #324: Open a record using just ID

Joel recently has explained how to find a record using id. Cute, very cute. Text editors. What’s next, vim?

Want to be a real developer? Repeat after me:

  1. Open CRM in IE
  2. Press F12
  3. Click Console tab
  4. Type Xrm.Utility.openEntityForm("entity name","record GUID")
  5. Press <Enter> and behold

Is this hands down the best method? Let’s see what CRM has to say:
Open CRM record using console

Tip #323: When Outlook attacks

The contact synchronization in CRM for Outlook is pretty powerful, but in rare occasions, you may find that duplicate contacts are being created in Outlook from the synchronization.

This is sometimes caused by corruption in a user’s offline Outlook data (OST) file.

  1. Look at the duplicate contact records that have been created. Look at the “Created By” field. This will tell you which user’s client is creating the duplicates.
  2. Disable synchronization on this user’s computer. You can do this by running the Outlook client diagnostic and unchecking the synchronization checkbox.
  3. Remove the Outlook client from the user’s computer.
  4. Re-create the OST file on the user’s computer
  5. Delete the duplicate contacts in CRM and in the user’s Outlook.
  6. Reinstall and configure the Outlook client

Tip #322: When upgrading, do a dry run

Whether you are upgrading one version of CRM or three, it is very important that you run through the upgrade prior to the night you upgrade your production environment. Once you have your dev environment upgraded and you build your solution of upgraded customizations, go through a test upgrade in a copy of your production environment. This serves several purposes:

  • When importing solutions into upgraded environments that contain the components in the solution, it is very common to get some kind of error. By testing the upgrade you get an opportunity to resolve potential solution conflicts in a lower pressure time than the production upgrade night when you are limited in time.
  • Going through a test of the complete upgrade will give you exact times for each of the steps, so you will know how much time you will have to allocate to your maintenance window.
  • While doing your end-to-end upgrade test, document the order in which the items are performed. For example, some tasks like importing your access team templates need to happen prior to importing your upgraded customization, while some tasks need to happen post customization import. For example, say you are upgrading a CRM 4.0 environment that has the Business Productivity Workflow Accelerator installed. You will need to import your updated workflow customizations first to remove the dependencies on this solution, then remove the accelerator plugin assemblies.
  • The document you create can become your “playlist” for upgrade night, and you will avoid having to pull an all-nighter or deal with unexpected surprises during the upgrade.

Tip #321: Find a record using ID

A tipping fan writes:

Is it possible to search for a record in CRM using GUID with Advanced Find?

Short answer: No

Longer answer: No, but there are other ways to get what you want. Here is one of them.

  1. Select a record of the desired type in CRM and click the copy link button
  2. Paste the link to the text editor of your choice.
  3. Edit the link and change the ID (red text area) to the GUID that you want to find.
    https://yourorgname.crm.dynamics.com/main.aspx?etc=1&extraqs=formid%3d8448b78f-8f42-454e-8e2a-f8196b0419af&id=%7bB79DF4FA-5604-E311-A5E5-B4B52F67D676%7d&pagetype=entityrecord”
  4. Copy the URL, paste in browser, and go.

Tip #320: You have it all backward (compatible)

Backward compatibility is taken by CRM team very seriously. Another good example of this, sometimes insane, compatibility is how CRM treats URLs. The ability to open any form or view in CRM 4.0, and also dialogs, reports and dashboards in CRM Online and CRM 201x is an awesome way to create mashups, and for an external application or a website (think SharePoint, for example) to access CRM records without spending a fortune on creating custom UI.

To create new account in CRM 4.0, all you had to do is to link to the following URL: https://foobar.crm.dynamics.com/SFA/accts/edit.aspx. In CRM Online and CRM 201x, however, URLs have changed and now you need to send unsuspecting user to https://foobar.crm.dynamics.com/main.aspx?etn=account&pagetype=entityrecord. But guess what happens if your legacy integration code uses former URL but new CRM organization? That’s right, user will get redirected to the latter URL and will be able to create a new account record just as before.

When you deal with Dynamics CRM using documented SDK methods and techniques, your code can live forever.

Hats off.

Tip #319: Qualify Lead – CRM 2011 vs CRM 2015

It seems like the release of CRM 2015 as sparked a fire for a lot of companies using CRM 2011 to finally upgrade. There are many differences between the CRM 2011 and CRM 2015 feature set, hundreds of new features were added for CRM 2013 and hundreds more for 2015. However, there has also been changes in long standing features on how it operated from both a user standpoint and data record perspective.

One big change is in how the Lead Convert process works. In part of the process to reduce the windowing effect of using the product to make it simpler and tablet friendly, the entire Lead convert process has changed.

Take a look at the different scenarios for both 2011 and 2015 below to get a peek on how you may need to incorporate this as a to-do list item in your upgrade process to 2015.

CRM 2011 Qualify Lead

CRM 2011 Lead Convert

When you qualify a Lead in the current 2011 CRM a pop up appears and you are given a choice to convert the Lead into an Account, Contact and/or Opportunity.

  1. If you choose just an Account to be created:
    1. An Account is created from the info on the Lead.
  2. If you choose just a Contact to be created:
    1. A Contact is created from the info on the Lead.
  3. If you choose for just an Opportunity to be created:
    1. You must use the Potential Customer lookup to choose an existing Account/Contact
    2. An Opportunity is created with the chosen existing Account/Contact in the Account lookup field on the Opportunity.
  4. If you choose to create an Account and Contact:
    1. An Account is created with the created Contact in the Primary Contact lookup
    2. A Contact is created with the created Account in the Account Name lookup
  5. If you choose to create an Account and Opportunity
    1. An Account is created from info on the Lead
    2. An Opportunity is created with the created Account in the Account lookup
  6. If you choose to create a Contact and Opportunity
    1. A Contact is created from info on the Lead
    2. An Opportunity is created with the created Contact in the Account lookup
  7. If you choose to create an Account, Contact and Opportunity
    1. An Account is created with the created Contact in the Primary Contact lookup
    2. A Contact is created with the created Account in the Account Name lookup
    3. An Opportunity is created with the created Account in the Account lookup
  8. Currently there is no way to have the Lead Qualify create a new Contact and Opportunity but be able to choose an existing Account to tie the Contact to and use as the Account on the Opportunity

CRM 2015 Qualify Lead

CRM 2015 Lead Convert

  1. When you qualify a Lead that has a First/Last Name and Company Name filled out a Contact, Account and Opportunity are created.
    1. The Contact has the Account in the Company Name lookup field
    2. The Account has the Contact in the Primary Contact lookup field
    3. The Opportunity has
      1. The Account in the Account lookup
      2. The Contact in the Contact lookup
      3. The Account in the Potential Customer lookup
  2. When you qualify a lead that has a First/Last Name but NO Company Name filled out a Contact and Opportunity are created.
    1. The Opportunity has
      1. The Contact in the Contact lookup
      2. The Contact in the Potential Customer lookup
  3. If you qualify a lead where the First/Last Name or Email matches a Contact already in the system a pop-up will appear with a duplicate warning and will allow you to lookup to an existing Contact instead of creating a new one. An Opportunity will then be created as per #2 above.
  4. If you qualify a lead where the Company Name matches an Account already in the system a pop-up will appear with a duplicate warning and will allow you to lookup to an existing Account instead of creating a new one. A Contact & Opportunity will then be created as per #1 above.

Tip #318: Don’t hack the button

In a comment for Tip #33, a reader asked why I recommend creating a new command bar button, rather than modifying the action of the standard ribbon button.

The reason I recommend creating a new button rather than modifying the standard button is for several reasons:

  1. The recommendation was technically unsupported, as the multi-action button is not documented in any official source. it is more unsupported if you modify the standard button behavior.
  2. A custom button is less likely to get overwritten by other solutions, such as ISV solutions that include the standard ribbon button.
  3. A custom button is less likely to break or get overwritten in an upgrade.
  4. I forget what I do and plans change. 5 years from now, we may have totally new people using the system. They take training and learn about the standard button, but wait, ours behaves differently. By going with a custom button, it is clear that our custom two feature button is different, so you can avoid embarrassing calls to support.

So that is why I would take the time to create a new button rather than modifying the existing one.

Tip #317: Once upon a time this rollup field was recalculated

Mitch “Snapshot” Milam is on a roll. This is just another way to say that his next tip is all about rollup fields.

Rollup fields are one of the best new features of Dynamics CRM 2015. Here are some facts to help you better understand how they work:

  1. They are automatically calculated asynchronously, once per hour.
  2. You may manually update the rollup field at any time by hovering over the field and clicking the refresh icon that is located on the right–side of the field.
  3. Hovering over the field will also show you the amount and the last update time for the field, as you can see below: Rollup field tooltip
 

Tipp Jarr’s Double Dipp

The default recalculation interval of one hour can be changed by editing appropriate job under Settings > System Jobs > View > Recurring System Jobs (filter the list by system job type Calculate Rollup Field) then looking for the required entity (there is only one Calculate Rollup Field job per entity).

Tip #316: Important links for all occasions

Shan “Smokin’ Portals” McArthur is the man not easily excited but even he couldn’t contain his enthusiasm:

The documentation and support teams have responded to some of our requests for important links to the implementation guide, product downloads, and update rollup information. They have published a new page that documents that information for all versions of CRM from version 4 to 2015. I hope the search engine optimization strategy works and it starts to rise to the top of search results soon. If you have existing blog articles on the subject, please update them to include this link:

http://support.microsoft.com/kb/3036179

Thanks so much to the teams for the effort in publishing this page!

Tip #315: Help! I can’t move my fields around the form

Mitch “Snapshot” Milam to the rescue once again:

There may be a time, when working in the Dynamics CRM form editor, that you notice that the form editor will not allow you to move a field from one section to another. Have you ever seen that?

It is not a problem with the form editor, it is a problem with the field.

Although it may not be clearly visible, some fields are actually configured to take up two columns, by default. If your destination section is only one column, then the form editor will not allow you to move the field into that section.

The solution is simple: Edit the properties for the field and change the formatting to one column (or whatever you need to, to match the section you are moving into).