Tip #643: Role to manage Dynamics CRM Online

Manage the CRM Online instanceWhen a user opens Dynamics CRM Online instance manager (https://port.crm[0-9].dynamics.com/G/Instances/InstancePicker.aspx), they see the instance selector if there is more than one instance available but nothing else. The only option is to select the instance and click Open button.

What if you want user to be able to manage CRM Online features but without being a Global Administrator? There is no CRM Online administrator role in O365 portal?!
O365 Admin Roles
The answer is Service administrator role.

Instance management featuresBut wait, there is more: in addition to that O365 administrator role, user needs to be assigned System Administrator role in CRM to have access to the management features per instance basis. That way, user can add solutions to test instance of CRM but without ability to touch the production instance, for example.

Tip #642: Tipster guide to Dynamics CRM 2016 Spring Update – Part 1

Spring UpdateThe Annual Spring Update for CRM Online is upon as, and trial Instances are already available with the new features. In this video we highlight a couple of key items, and dive into the new SLA enhancements for other entities.

YouTube player

As you have guessed, there will be at least part II – stay tuned. In the meantime give us your feedback, all of it: good, bad, and ugly, I’m sure we can take it. Suggest new topics either in comments or by sending your ideas to jar@crmtipoftheday.com.

And don’t forget to subscribe to http://youtube.com/crmtipoftheday.

Tip #641: Die, subject, die!

Categories entityWith the exception of the Queen who, according to Oscar Wilde, “is not a subject”, subject entity has always been a subject for complaints. Simple search on Dynamics CRM Feedback site shows a long wishlist where people wanted to filter the subject tree, being able to type in subject lookup, have multi-lingual support, use it in dialogs, etc.

But inability to customize the subject entity is arguably the biggest drawback of them all. In short, with the exception of a very few narrow scenarios concoted in early naughties,

Subject entity is next to useless and delivers nothing but a substandard user experience and pain for administrators and customizers

Enter sparkling Category entity, available in CRM Online 2016 Update 1 and CRM 2016 Service Pack 1 (on-premises). Don’t get the location of the entity under Settings > Service Management > KB Management to fool you. The only thing KB articles get that you can’t is native N:N relationship. Here is the short list of features of the entity designed to, uhm, categorize CRM records.

  • Customizable with the exception of N:1 and N:N links. Custom properties, views, business rules and even dashboards
  • User owned (read: security and tree filtering)
  • “Normal” lookup dialog with typeahead and other features
  • Auto-numbering
  • Hierarchy with the ability to order children using SequenceNumber attribute (some assembly may be required)
  • Need many-to-many? Enable categories for Connections and link away
  • Use it in dialogs, plugins and processes (cannot itself be enabled for business process flows though)
  • Anything else?

I’m sure there is more to it and we’ll be seeing steady migration from the subjects. But is it too little too late and everybody has already implemented their own taxonomy?

Tip #640: What happens if you don’t map all users

All users are not mapped

tl;dr

Nothing fatal. You can relax.

Details

When organization database is restored and then imported into CRM Server, one of the wizard steps is the mapping dialog. The only requirement is to map your user account into at least one enabled user with system administrator privileges.
Must map system administrator

That makes sense – we don’t want to end up with an organization nobody can logon into. But what happens if you don’t map the rest?
User Mappings

In short, as we mentioned, nothing. The user records stay as they were, other records in the system are still owned by the same users as before. You can even assign records to these unmapped user accounts. The only side effect is that these user accounts are not mapped to the Active Directory accounts so nobody can login as these users. You can open any of these records, enter a new domain name and CRM will map that user to the specified AD login.

Why is it convenient?

  • If you are creating a copy of the production database in your development or test environment, there is no need to re-create all 759 domain accounts in your dev/test domain – just a handful will do.
  • If you are just testing the redeployment (e.g. for version upgrade) – save yourself time and do not map those accounts, whether they are known or not in the target domain.
  • If you are moving the deployment, it could be a good opportunity to postpone the mapping, especially if organization is being restructured/merged and new user accounts have not been finalized at the time of the move.

Tip #639: I shall call him Squishy

I shall call him SquishySelecting a good name for an organization in CRM On-premises has always been a challenge especially when you automate provisioning of your CRM organizations. At least one would hope that the chosen name would stick.

However, our special correspondent Mehmet “Sputnik” Ozdemir reports from the trenches that organizationid and name fields in the organization entity will contain the old values if the organization you’re importing did not exist on that server before.

One more reason to, instead of poking the entities directly, use RetrieveCurrentOrganizationRequest, available since CRM 2015, to discover details of the current organization:

var details = service
    .Execute<RetrieveCurrentOrganizationResponse>
    (new RetrieveCurrentOrganizationRequest());

Console.WriteLine(details.Detail.OrganizationId);
Console.WriteLine(details.Detail.OrganizationVersion);
Console.WriteLine(details.Detail.UniqueName);
Console.WriteLine(details.Detail.FriendlyName);
Console.WriteLine(details.Detail.UrlName);
 

Tip #638: Cryptic entries in audit log

Dynamics CRM TipperMini truckstop, the only remarkable thing about it that this time I was on the receiving end.

I was helping a customer to get to the bottom of some strange behavior when I noticed this entry in the audit log:
Cryptic entries in audit log
What. Is. That?! 10 minutes later after failed boogle-fu, I’ve reached out for help. About 2 minutes later, help didn’t disappoint, I think Adam “First!” Vero was sitting there and waiting for someone to ask a question.

That’s the symbol for a break in the audit trail (it’s supposed to look like a table with a missing row). If you turn off auditing for the system, or the entity, or that field, you would see this.

There were couple latercomers with the same suggestion, but Jukka “Kalsarikännit” Niiranen decided to take it up a notch with a bold statement that, after all, it’s not the user’s fault

The primary reason why so many people see these strange symbols in their CRM systems is not that they’ve turned off auditing, but rather just that they’ve imported a managed solution [containing the entity that had the audit on]

So while we are at it, spend 30 seconds voting for these product suggestions:

Tip #637: Tipster guide to Microsoft Flow – codeless integration between CRM and other apps

Friday FlowApparently, for people who like bending their joints backward, Friday Flow is a thing. We’ve decided to join the bandwagon and in today’s video we will show you how to create a basic workflow between SharePoint and CRM using Microsoft Flow. Flow is a cloud service, currently in preview, that allow you to create automated workflows between your favorite apps and services to get notifications, synchronize files, collect data, and more.

YouTube player

Give us your feedback, all of it: good, bad, and ugly, I’m sure we can take it. Suggest new topics either in comments or by sending your ideas to jar@crmtipoftheday.com.

And don’t forget to subscribe to http://youtube.com/crmtipoftheday!

Tip #636: Use all attributes and miss some of the data

Entity imageLaziness is the engine of the progress. If it was not for Josephine Cochrane trying to avoid the house duties, we’d still be doing dishes by hand.

So we all guilty from time to time using all attributes when retrieving information from CRM. The consequences are not only spießrutenlaufen and eternal condemnation, but also dreadful performance and, as it turns out, missing information.

We learned from system job views, “all” does not always mean “all” in Dynamics CRM. It’s also true for fetchxml.

CRM will not return binary columns when all attributes are requested

That applies to entityimage attribute; the following fetchxml:

<fetch>
  <entity name="contact" >
    <all-attributes/>
    <filter>
      <condition attribute="firstname" 
	    operator="eq" value="Bruce" />
    </filter>
  </entity>
</fetch>

will not return the image itself.

This fetch, on the other hand, will:

<fetch>
  <entity name="contact" >
    <attribute name="entityimage" />
    <filter>
      <condition attribute="firstname" 
	    operator="eq" value="Bruce" />
    </filter>
  </entity>
</fetch>

Note that to retrieve image data using fetch you have to use RetrieveMultipleRequest instead of the deprecated ExecuteFetchRequest class. Latter will not return the image, whether you specify it or not.

Tip #635: SaRA to help CRM

Who is SaRa and why is she helping CRM?

Not who but what.

SaRA is the acronym for the Office 365 Support and Recovery Assistant which is a powerful diagnostic platform created by the Office team. In many cases, SaRA offers automated solutions that can fix problems for you.

And now SaRa includes CRM diagnostics, initial scenario is for CRM Outlook Client configuration issues for CRM Online.

This diagnostic can detect issues related to CRM Outlook Client install, configuration, and can also detect and fix a disabled CRM add-in with the click of a button. It can also retrieve log files and event log information.

You can download SaRA using the following link: http://aka.ms/crmocblog

Read details on Dynamics CRM Support blog.

Gail, did we fix your problem?

Who is Gail?

No idea.

Tip #634: How to modify recurrent bulk deletion system jobs

On heavy production systems bulk deletion jobs should be scheduled outside of the peak activity window. Unless you’re dealing with 24×7 global monstrosity, scheduling them outside normal working hours would do the trick.

There are handful of system jobs that are created for you when CRM organization is provisioned. You can guess what their start time is going to be – when you provisioned the organization – and that probably will be during the day.

How to modify the start time and, for those feeling extremely adventurous, the recurrence? Just follow instructions in CRM Help & Training Center:

Select the bulk-deletion job, and then on the Actions menu, choose Modify Recurrence

Wait a minute! Where ARE those recurring jobs? All I can see is the list of completed jobs even though I selected All Bulk Deletion System Jobs view?!
All Bulk Deletion System Jobs

All does not mean all in this case, it means “all except those you actually want to see”. Change your view to Recurrent Bulk Deletion System Jobs and now you’ll be able to see the recurrent jobs.
Recurrent Bulk Deletion System Jobs

Now you can follow the instructions from the help center to clean up your mess CRM when nobody’s watching.