Tip #1198: Add email address to recipients in javascript

The advantage of having access to friendly brainpower is that the problems are getting resolved much quicker. The disadvantage is that it breeds inattentive coding. Daryl “Always Raising” LaBar almost threw in a towel but recovered and redeemed himself with the snippet how to add an arbitrary email address to the list of the email recipients on the email form.

function appendToEmail(executionContext)
{
var formContext = executionContext.getFormContext();
// prior to v9: Xrm.Page

var att = formContext.getAttribute('to'); // or 'cc'
var emails = att.getValue() || [];
emails.push({name: 'george@foobar.com', type: '9206'});
att.setValue(emails);
}

Potential gotchas:

  • the property is type not entityType as one would expect
  • sending emails to arbitrary recipients must be enabled in System settings

image

(Facebook and Twitter Cover photo by Mathyas Kurmann on Unsplash)

Tip #1197: Unified Interface lookup changes

Change to how lookups behave in Unified Interface is coming in December.

&tl;dr

Up until now Unified Interface used Lookup View to perform the search. After the change is rolled out, Unified Interface will use Quick Find view (with resulting columns are still coming from the Lookup View), as the classic interface does.

With this upcoming change Unified Interface will be better aligned with the classic web interface. However, if you don’t do anything, the side effects could be loss of functionality (missing search columns) or performance implications (too many search columns).

For more details, see this blog article. Make follow the steps in the article to maintain your application’s lookup capabilities.

Tip #1196: Flow does not contain data

Being a mature product, Dynamics 365 rarely lends itself to short tips these days. Microsoft Flow, new kid on the block, on the other hand, is ripe for short bursts of wisdom. Today’s one is from Rob Dawson (and you can send your nugget to jar@crmtipoftheday.com too!)

With the drive toward use of Flow instead of background workflows, some condition operators are not the same. Like this easy but frequently used one.

It’s always good practice to check if a value exists before overwriting it in a workflow. Dynamics 365 CE or CDS Workflow condition is Does Not Contain Data. This is how to do it in Flow. Select the field from the Dynamic content then null function from the Expression builder.

clip_image002

(Facebook and Twitter cover photo by Jonas Jacobsson on Unsplash)

Tip #1195: Your D365 V9 On Premise Questions Answered

We had a chance to check out Dynamics 365 v9 On Premise, and in the process answered some of our lingering questions.

Does v9 On Premise have Unified Interface?

Yes — Unified Interface is included in V9OP. You can create new model driven apps and select between web and classic UI. Note it is the 9.0.2 version of Unified Interface — some of the goodies like Advanced Find that are available in Unified Interface online are not available in V9OP. Also, configuration of the Outlook App Module is not available in V9OP.

What about mobile?

Since Unified Interface is available in V9OP, the mobile app experience will reflect the Unified Interface. Like with V9 Online, the Mobile Express forms are also gone.

Virtual entities

Virtual entities are supported in V9OP.

Got other questions about Dynamics 365 v9 On Premise? Send them to us at jar@crmtipoftheday.com.

(Facebook and Twitter coverphoto by Dayne Topkin on Unsplash )

Tip #1194: When the App for Outlook shows a random dashboard

You provision the Dynamics 365 v9 App for Outlook and click the Dynamics 365 button in Outlook, but what you see is a random dashboard from Dynamics 365, not the Outlook App pane with the set regarding options.

The thing you need to know is that the Outlook app pane is a dashboard in Dynamics 365 v9, and like all dashboards, it can be security role enabled. If a system administrator mistakenly selects that App for Outlook dashboard in Customization and removes associated roles, the App for Outlook will not work correctly–users will see their default Dynamics 365 dashboard, not the App for Outlook.

If this happens to you, navigate to Settings->Customization->Customize The System. Click the Dashboard node, then select App for Outlook dashboard. Click the “Enable Security Roles” button.

Enable the dashboard for everyone.

Save and publish customization, now users App for Outlook should display correctly.

(Facebook and Twitter cover photo by Carson Arias on Unsplash)

Tip #1193: When Case attachments exceed your limitations

I’m setting up automatic case creation from email in Dynamics 365–what is the expected outcome if someone sends an email to my queue that has an attachment that exceeds my attachment file size limits in Dynamics?

A reader

Not finding any official documentation about what the expected result should be, I set up a simple test to find out how this scenario would be handled. I was confident that the attachment would not be created in Dynamics (because of the limit in file size), but would the email and associated case record still get created?

I set up a queue and kept the default file size limitation of 5 MB. Note that for most real world deployments using Exchange Online, I would probably increase that to 15-20 MB.

I then sent myself two emails, one with a small attachment, and one with a large attachment.

The result was that two cases were created in Dynamics 365–the small attachment case included the attachment, the large attachment case was created, but no attachment was created.

The takeaway is that you don’t have to worry about losing cases should an email arrive that exceeds your attachment file size limitations; however, you may get cases referring to attachments that are not included in the case. If this is a concern, you should probably increase your attachment file size limitations to match the file size limitations of your email server.

(Facebook and Twitter cover photo by DiEGO MüLLER on Unsplash)

Tip #1192: Quick Create for custom entities in Unified Interface

Remember the problems with viewing custom activity in Timeline? The unified monster

Do I need to sell my left or my right kidney to make the feature X work in Unified Interface?

is back. This time, Quick Create was not showing up for custom entities neither for me nor for Guido “Future Olive Farmer” Preite. False alarm. Make sure that

  1. Entity is enabled for Quick Create (it’s a subtle checkbox on the “classic” entity properties dialog)
  2. At least one Quick Create form is included in your app (using App Designer). Apps seem to be now not showing what’s not included.

Build: 9.1.0.638

(Facebook and Twitter cover photo by David Clode on Unsplash)

Tip #1191: Where’s my App for Outlook Pin?

In Dynamics 365 v9, one of my favorite convenience features is the ability to pin the App for Outlook pane so it opens by default.

But what if you are on v 9.1 and you do not see the pin option?

  1. Verify that you are running Outlook 2016/O365 Outlook Click To Run version.
  2. If your environment was upgraded from 8.2 to v9, reinstall the app for Outlook.

(Facebook and Twitter cover photo by Lisa Woakes on Unsplash)

Tip #1190: Searchable lookup and relationship

I admit that, for a long time, I was under what turned out to be an illusion, that setting Searchable to No had the same effect whether you do it on a lookup or relationship. How wrong was I. (On unrelated note, isn’t “wrong” a binary construct? Wouldn’t that translate to “how zero was my understanding”?)

Let’s say we have ubiquitous employer (account) < employee (contact) 1:N relationship.

Searchable lookup and relationship

Hiding a lookup from Advanced Find stops the field from appearing in the condition for the entity on the N side of the relationship, i.e. contact. Users will not be able to build a condition like “find all contacts employed by Contoso” or “find all unemployed contacts without an employer”.

Hiding a relationship, on the other hand, hides the related entity, which has an impact on both entities:

  • on 1 side of the relationship it’s no longer possible to build conditions like “find companies without any employees”, or “find companies that have employees born before 1949”
  • on many side of the relationship it’s no longer possible to build conditions on the parent entity, e.g. “find contacts where employer’s turnover is greater than $1,000,000”

Now my (and, by proxy, your) understanding is an extremely solid 1.

(Facebook and Twitter cover photo by Vincent van Zalinge on Unsplash)

Tip #1189: Fill SVG files for all occasions

I thought we chewed SVG to death and even showed how to create SVG images for a Minecraft Dynamics deployment but Tom-Richard “Another CRM Viking” Follegg proved me wrong. (Would you like to earn a “George is wrong” sticker? Send your tip to jar@crmtipoftheday.com!)

By default, when we create modern .SVG files for Dynamics, these should have black fill color to work properly. Dynamics then replaces the fill color if you use it in the menu or entity. 

clip_image002
This is not the case if you want to use the same files as a Ribbon button.  If the fill color is set to black, the default CSS in the Ribbon in Unified Interface will not change the color of the image. You will end up with a black image in the App Ribbon because the fill value in the .SVG file overwrites the CSS value in Dynamics.

Here is a simple trick for using .SVG files in the Unified Interface App Ribbon that also works in all Apps including that for a phone.

Open the .SVG file in Notepad, and find the fill value of the .SVG

clip_image004

Remove the color value so that you are left with only fill=””
clip_image006

Now the standard CSS in Dynamics will fill the image with correct color in the UI App.
clip_image008

It also renders fine in the Phone App.

clip_image009

(Facebook and Twitter cover photo by Holly Stratton on Unsplash)