Tip #493: Tipster guide to Dynamics USD Action Calls

It’s Friday and time for action calls. No, not calls for action but Action Calls – grease for moving parts of Unified Service Desk. Here we look at Action Calls and how they work. We walk you though the basics of creating and using them.

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.

Bonus

Listen to CRM Audio Episode 10. Hear a preview of our Tips From The CRM Tipsters session

Tip #492: Whatever happened to the “copy a link” button?

Screenshot 2015-10-06 13.01.54

Remember me?

Users of CRM 2015 may notice that the “Copy a Link” button no longer appears in CRM forms and views. Email a link does, but copy a link does not.

The reason goes back to the introduction of cross browser compatibility late in the lifecycle of CRM 2011. Since all browsers do not share a common method of copying, the “copy a link” button was not cross browser compatible. So special logic was added to this button to only appear in Internet Explorer.

Fast forward to 2015. The button is still there (if you look at the command bar/ribbon in the Ribbon Workbench. However, if you open CRM in IE 11, it no longer shows up. The reason for this is Internet Explorer pretends to be Firefox and reports itself as Mozilla. In the words of Scott “Mr. Ribbon Workbench” Durow, “navigator.appName returns “Netscape””

Alternatives to “Copy a Link” button:

  • Click “Email a Link” and copy the URL out of the email message created.
  • Click the “pop out” button on the right side of the form and copy the URL in the browser address bar.

Screenshot 2015-10-06 13.15.26

  • Use Magnetism’s bookmarklet from your browser favorites bar. This works for IE for record forms, but not views. http://www.magnetismsolutions.com/blog/paulnieuwelaar/2014/07/23/the-return-of-copy-a-link-to-crm-2013-forms-as-bookmarklet

 Bonus semi-related tip: Dashboard URL’s

Adam Vero adds: In CRM 2015, there is no option to get the URL of a dashboard directly.

Workaround: You can use XRMToolbox SiteMapEditor to change the default dashboard for an area. To do this you select the dashboard from a list by name, but SiteMapEditor then shows you the GUID, which you can copy, then close without saving changes.

You can use this to display the dashboard directly, by replacing parts of this URL as needed, including the GUID you just copied.: http[s]://orgname.domain.com/workplace/home_dashboards.aspx?DashboardID={GUID}

With 2013 onwards, this will display the dashboard with no navigation and command bar, so this can be OK to show a display the dashboard on the wall of the sales office, but is less useful as a URL to direct users to the dashboard or use it as an IE bookmark or homepage. If you want to embed this dashboard in an iframe on another dashboard, this seems to work just fine. Old instructions would have you replace /workplace/home_dashboards.aspx with /dashboards/dashboard.aspx in the above URL, but it seems this is no longer any different.

Remember that if you want to embed a dashboard in an iframe on another dashboard, you need to turn off “Restrict cross-frame scripting” for the iframe component. You cannot do this for personal dashboards, only system ones.

 

 

Tip #491: If your appointment is disabled on mobile

Stop the presses! Scott “Captain Redlaces” Sewell, in his relentless pursuit of, er, hm, ugh, perfect CRM, has solved another mystery surrounding the world of mobility.

tl;dr

Appointments in scheduled state appear as read-only on mobile devices.

Did read

I’m sure you’re disappointed with the length of the tip, just as I am, so here’s the full story. Straight from the Scott’s mouth:

I’m perplexed.

In CRM I have some appointments that are editable in the web client – but the same appointments are locked and read-only in the Tablet/iPad/iPhone apps. (The behavior is consistent across the iPhone, iPad and Windows Tablet app. )

The user has sysadmin privs, and the activities are not ‘closed’ – but they act as if they are in the apps, but work just fine in the web client. I’ve tried updating the appointments to set the user as the owner/organizer/requiredattendee etc., but these appointments are still locked in the apps.

However, I have other appointments owned by the exact same user that are editable in the web and all three apps. – I’m baffled.

(There are no Business Rules or JavaScripts on the appointments)

Any suggestions on what I might be overlooking?

Locked appointment on mobile

Readonly on tabletsThe helpers arrived in droves. Feridun “Best Twitter Handle for CRM MVP” Kadir made a weak attempt to help by insinuating that Scott does not know his read-only settings, only to be put in line by raging Captain arguing that, had he had this setting on, all appointments would have been locked, and not some.

Suggestions were coming thick and fast. Javascript, security, PBL, you name it. Best attempt of incorrect forms order came from Roohi “Whisper” Shaikh but even that was rejected by rampant Scott who did however verify the order of the forms before sending another helper packing.

A bit of insider knowledge does help and finally Dileep Singh stepped up to the plate and served Scott with

… are all the appointments which are non-editable are in scheduled state ?? Can you check that one.

Whale oil in the storm was that as Scott went all limp but happy:

YES! That’s the pattern I was overlooking – 2 points to Team Singh!

Then the Captain left the podium but not before serving the next one:

So – why is “scheduled” valid in the web – but not ipad?

‘Tis

¯\_(ツ)_/¯

Tip #490: Do not reuse the owner field

So you are creating an entity in Dynamics CRM and you need a user lookup field. Why not just re-label the owner field? Sure, it is not specifically a record owner, but we don’t really need that for this entity anyway, as we will never tie security to it, right?

Don’t do it! Chances are you will regret it down the road.

Never say never. You never know what will happen in the future. Your little custom entity may grow, or your CRM environment may grow to be used outside of just your group. When this happens, you may well want to have security limitations on the entity, and if the owner field is used for a non-security related user lookup, this will force you to do rework in the future.

Also, if you use the “owner” field for non security related user lookups, you make “assign” permission required to change that field. This may not sound like a big deal, but it can be. Two years from now, you decide to add a child entity with a parental relationship to your custom entity. You set security on this entity, as you don’t want other people changing the data in it. Now when users try to change the user lookup on the parent, they get a “permission denied” error because the user changing the user field on the parent entity does not have assign permission the child.

So if you need a user lookup field for a user role that is not a traditional record “owner,” take a few second and create a custom relationship

Tip #489: Limitations of Retrieve plugins

Calculated fields is one of the best new features and is indispensable for simple calculations. Keyword here is simple. Range of functions available in calculated fields is limited (though it continues to expand from release to release).

One of the “traditional” methods to add calculated field is to add a simple field and then create plugin on Retrieve and RetrieveMultiple messages. If field is part of the column list in either message, perform your voodoo and return the calculated value.

Smug developer that I am, that’s what I’ve done and reported to the customer. Who was rather disappointed with the result, as it turned out. Field was calculating fine but yielded very strange results when customer tried to build some charts using that field.

Humiliated, I’m happy to report that the following functionality won’t work for the fields calculated in Retrieve and RetrieveMultiple plugins:

  • Sorting on the column in the listviews
  • Using the column as aggregate value in charts

Come to think about it, that makes perfect sense. Sorting and aggregation is done as part of the T-SQL statement that runs on the SQL Server that has absolutely no clue about your plugin magic. As long as you and your customers are aware of these limitations, using plugins for calculations “on-the-fly” is perfectly fine.

Tip #488: Tipster guide to Dynamics USD Hosted Controls

It’s Friday and another good day for both USDs, US dollar and Unified Service Desk.

In this video, we introduce you to the fundamental building blocks of USD – Hosted Controls. We talk about what they are and how to use them in the USD platform. We explore some of the different Hosted Control types and how they are created.

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.

Tip #487: Why can’t I set the default dashboard?

Got a question this morning: “Why can’t I set my default dashboard in CRM 2015 like I could in CRM 2011?”

First of all, you can set your default dashboard, if you are in your “home” sitemap area. So if your default sitemap area is “Sales,” you will be able to set the default when you click the dashboard link in the “Sales” area. However, if you go to the marketing area, you will see the dashboard specified in the sitemap for the marketing area.

This gives you the ability to have your own default dashboard when you are “home,” but have group specific dashboards when traveling to other areas.

Want an easy way to manage user’s default site map area (and other user settings)? I recommend the user settings utility in the XRM Toolbox.

Tip #486: Don’t hard code currency in workflows

If you have a workflow dealing with the entities that include money fields, avoid setting explicit currency. Instead, try to infer the currency from the related records.

Bad currency workflowGood currency workflow

For mere mortals, it’s just a bad practice, for ISVs, it’s definitely a case of spießrutenlaufen.

Why? Because if you activate your workflow and add it to a solution, then importing your solution to any CRM organization that does not use MMDDYYYY as their date format (and therefore will opt for their own currency), will complete with the warnings and the workflow on the target system will be deactivated.

Solution import warning
US currency problem

Tip #485: And inactive sneaks in

All entities in CRM have status and status reason fields. Status is either Active or Inactive (system entities, in fact, can have more than that but that’s not the subject of this tip), while status reason can hold multiple customizable values for each status. For example, if we have a custom entity Project, we’d want to specify the reason why the project was deactivated:

Project status reason

Since forever we’ve been using the behavior of these fields where, if Inactive status has more than one value, CRM would prompt users to select the status reason when deactivating the records:

Status reason prompt on deactivation

However, CRM Online 2015 Update seems to have changed the behavior. In the list view it continues to prompt users to select the status reason; in the form view it silently deactivates the record without any prompts. Some say “behavior”, I call a bug. Build 7.1.1.3138 to blame (YMMV). The only quick workaround that come to mind is to remove Deactivate from the command bar and tell users to use a list view for a time being.

Tip #484: Don’t Clutter your CRM queue mailboxes

In tip 395 I made reference to the new office 365 Clutter feature. This feature uses machine learning to separate out “graymail,” such as email subscriptions and advertisements that you opted in to. I found it does a great job on my personal inbox, with very few false positives.

Recently, however, we found that emails that our clients were sending to one of our queue email addresses were not making it into CRM. Unbeknownst to us, the clutter feature was turned on in the mailbox used by the queue. As a result, many client emails were moved to the clutter folder and did not get picked up by CRM.

See instructions for turning Clutter off on a mailbox. Also, you can hear us discuss this experience on episode 9 of CRM Audio.