Use Rich-Text Control for Multiple Lines of Text in Dynamics 365 CE | Quick Tip

With the addition of the Rich Text Control, your Multiple Lines of Text field can make a lot more sense than before.

Standard Control

Your usual control for Multiple Lines of Text looks like this

Rich Text Control

Now, you can turn this into a Rich Text Editor
Here’s how you do it –

  1. Go to the Multiple Lines of Text field, in this case, Description field.
    select the inner control and click on Properties


  2. Now, look for Controls tab and click on Add Control as shown below

  3. Look for Rich Text Editor Control

  4. Make sure you select the new Control on all formats (or wherever you want to apply)

  5. Once you apply changes and publish, the new Control will be available for you to use.


Hope this was useful. Here are some more Dynamic 365 posts which you might want to check –

  1. Ribbon button visibility based on a field value in Dynamics 365 | Ribbon Workbench
  2. Get GUID of the current View in Dynamics 365 CRM JS from ribbon button | Ribbon Workbench
  3. Make On-Demand Flow to show up in Dynamics 365 | Power Automate
  4. Find deprecated JS code used in your Dynamics 365 environment | Dynamics 365 v9 JS Validator tool | XrmToolBox
  5. Remove ‘This Email has been blocked due to potentially harmful content.’ message in Dynamics 365 Emails | OrgDbSettings utility
  6. Track and Set Regarding are disabled for Appointments in Dynamics 365 App For Outlook message | Demystified
  7. Mailbox Alerts Hide/Show behavior in Dynamics 365 CRM
  8. Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]
  9. Pass Execution Context to JS Script function as a parameter from a Ribbon button in Dynamics 365 | Ribbon Workbench
  10. Find Created On date of solution components in Solution Layers | Dynamics 365 [Quick Tip]

Thank you!

Entity Icon for entities on Unified Interface | Quick Tip

Now, Unified Interface being the only interface we have to work on in Dynamics 365 CRM, Here’s a quick tip on how and where you can set the Entity Icon for the Unified Interface.

Default Icons

One each entity, Custom or otherwise, here’s where you can set the Icon.

  1. Let’s say Commissions is a custom entity which has a default Icon.


  2. This is how it appears in the Unified Interface for any custom entity which doesn’t have any Icon set.


  3. Now, let’s look at how we can set the entity icons.

Set Icons for Entity

  1. Firstly, you need to create a Web Resource of type SVG Icon.

  2. Select the entity you want to set the Icon to in the Unified Interface. Let’s say Commission entity shows the Default Icon. Select the entity and look for Update Icons on the Solution.

  3. When you click on Update Icon, you’ll need to go to the Unified Interface.


  4. Now, in the New Icon field, you’ll have to select the Name of the SVG Icon from Step #1 above, i.e. cf_commission in this case.


  5. Select OK and Publish changes.

  6. And you’ll find the Icon is now updated for the entity entirely wherever it’ll be used on the Unified Interface. Since the Classic UI has been ruled out, we don’t need to update the classic Icons anymore.

Here are some Dynamics 365 related posts which you might need to check out –

  1. Find deprecated JS code used in your Dynamics 365 environment | Dynamics 365 v9 JS Validator tool | XrmToolBox
  2. Make On-Demand Flow to show up in Dynamics 365 | Power Automate
  3. Track and Set Regarding are disabled for Appointments in Dynamics 365 App For Outlook message | Demystified
  4. Cancelled Bookings Imported in Time Entries in Dynamics 365 PSA issue | [Quick Tip]
  5. Remove ‘This Email has been blocked due to potentially harmful content.’ message in Dynamics 365 Emails | OrgDbSettings utility
  6. Get GUID of the current View in Dynamics 365 CRM JS from ribbon button | Ribbon Workbench
  7. Get Dynamics 365 field metadata in a Canvas App using DataSourceInfo function | Common Data Service
  8. Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]
  9. Debug Ribbon button customization using Command Checker in Dynamics 365 CE Unified Interface
  10. Pass Execution Context to JS Script function as a parameter from a Ribbon button in Dynamics 365 | Ribbon Workbench

Thank you!!

Remove ‘This Email has been blocked due to potentially harmful content.’ message in Dynamics 365 Emails | OrgDbSettings utility

It’s annoying to see this message on every email you Track in Dynamics 365 and just how it takes all the critical space on your timeline instead of showing you the actual email message.


Let’s look at how we can disable it using OrgDbSettings tool.

Note: I wouldn’t recommended to do these changes since we are looking to by-pass security flags dictated by Microsoft for your Org. However, if you really need to so, make sure you’ve backed up your Org before proceeding.

OrgDbSettings Editor Tool [Managed Solution]

You can download OrgDbSettings Managed Solution Utility from here – https://github.com/seanmcne/OrgDbOrgSettings

The link highlighted above is where the Releases are: https://github.com/seanmcne/OrgDbOrgSettings/releases

Once you download the Managed Solution, import it in your Org

  1. Once Imported in Dynamics, it appears like this in Solutions. Open it up.


  2. In the solution, look for SecuritySettingForEmail. Click once on the row to reveal the Description at the bottom, you’ll see the legends of what each value means.
    It’s defaulted to 1, meaning, you’ll see the warning which is what we want to hide.


  3. Next, double click on the Row and on the 1 which is the Default value as shown below.

  4. It’ll open up a Dialog to set your value of choice. In our case, we can to hide it, so I’ll put the value 3 and click on Update as shown below.

  5. It’ll update in a few seconds and you can refresh and see, the warning will be gone.



Hope this is helpful! Here are some more Dynamics 365 CE related posts you might want to check –

  1. Get GUID of the current View in Dynamics 365 CRM JS from ribbon button | Ribbon Workbench
  2. Get Dynamics 365 field metadata in a Canvas App using DataSourceInfo function | Common Data Service
  3. Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]
  4. Pass Execution Context to JS Script function as a parameter from a Ribbon button in Dynamics 365 | Ribbon Workbench
  5. Find Created On date of solution components in Solution Layers | Dynamics 365 [Quick Tip]
  6. Import lookup referencing records together in Dynamics 365 CRM | [Linking related entity data during Excel Import]
  7. Add multiple Opportunity Products at once in Dynamics 365 Sales | Enhanced Experience [Preview]
  8. Mailbox Alerts Hide/Show behavior in Dynamics 365 CRM
  9. Excel Importing Notes (Annotation) entity in Dynamics 365 CRM
  10. Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.

Thank you!!

Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]

If you are using an older Dynamics 365 online/on-premise, you might likely be missing seeing the Dynamics 365 App For Outlook because it wasn’t originally added to SiteMap and you might not have added.

Use Shortcut provided by Microsoft Support

  1. Let’s say your Organization URL is https://<org&gt;.crm.dynamics.com/
    Then, append the below link to the Organization URL to make it look like this
    https://<org&gt;.crm.dynamics.com/tools/appsforcrm/AppForOutlookAdminSettings.aspx

    And this will open up the Dynamics 365 App For Outlook

  2. You can also add it permanently to your SiteMap by following this Microsoft Support article from which I picked the link for you –
    https://support.microsoft.com/en-in/help/4339287/dynamics-365-app-for-outlook-missing-from-dynamics-365-navigation

    One a side note, Dynamics 365 App For Outlook is also supported for D365 on-prem. Follow this Microsoft article to know more – https://cloudblogs.microsoft.com/dynamics365/no-audience/2016/12/13/dynamics-365-app-for-outlook-support-matrix?WT.mc_id=DX-MVP-5003911

Hope this helps!!

Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.

This is a little tricky upgrade from PSA v2 to PSA v3. I’m sure by this time of the year, most of you must have upgraded and this post by me comes a little late than it should.

Here’s my experience and what help from Microsoft Support I needed to complete the Upgrade successfully.

So usually, this is what you expect when you initiate the upgrade process. You go to the Instance Picker from Dynamics 365 Admin Center.
upgradeButton

And you can see that you are on PSA v2.4.x version and the New version available is 3.10.x. When you kick off, it starts running
upgradeInProgress
But, it fails like this.
installFailed

Let’s take a stab at it!

I usually prefer to go with the old school classic Instance Picker, if you want to have a quick access to it, check this post – D365 Admin Center: Instance Picker Link

Solution Health Hub

Note: Please be aware that below mentioned steps that involve Project Service & Project Service Upgrade Rule Set can only be provisioned by Microsoft Support and we need to create a Support Request with Microsoft for them to provide this Rule Set. These comes in a Managed Solution Microsoft Support installs from their end into your environment.

  1. Assuming Microsoft Support has enabled this Rule Set for your organization, you can go to Solution Health Hub
    createNewAnalysisJob
  2. Then, select either Project Service or Project Service Upgrade
    ruleSet
  3. It will automatically run asynchronously as and when you create it. It should display results in a few moments.
    failedValidation
    In this case, my failures were that Resource Requirement records didn’t have Hours & Resources were not filled in. Some Project Tasks didn’t have Project attached to them which resulted in corrupted PSA data according to the Rule Set and hence, the upgrade fails.
  4. Now, in my case, I cleaned this data manually. Post that, I created another Analysis Job to ensure that there are no more failures.
    passedRuleSet
    Also, there’s another Rule that isn’t mentioned here but is a reason for failure. That is – Project Name (msdyn_Subject) should NOT be Blank. Use Advanced Find to find these records and correct manually.  Please ensure this manually as it won’t appear here. 
  5. Now, there’s a workflow called as Update User Work History. It should have shown 3.3 or higher in the version to select, unfortunately, this will come once the upgrade fails 1 time.
    oldWF
  6. Now, you are all set to kick off Upgrade Once again. It will fail due to the incorrect workflow mentioned above in #5.
    installFailed
  7. Now, you can go back and check that workflow, it should have the correct version appearing (due to the partial upgrade that happened in #6 above, which eventually failed)
    updateUserWorkHours
    Set this to 3.3 and Activate the workflow again.
  8. Now, trigger the Update to PSA v3 one more time. And this time it should go through correctly.
    installedPlease note, due to constant upgrades in the platform/PSA, there could still be some undetected issues which could result in failure. Hence, I tried to put what I experienced in general.

    Post this, also ensure that all SDK Message Process Steps and related Workflows related to PSA are enabled.

In case you are also looking to find out about dependencies about failed Solution Upgrades, you can check this post too – Check Managed Solution failures in Solution History in D365 CE

Hope this helps!

Create new Sandbox and copy Production over to it in PowerPlatform Admin Center

This is one of the standard approaches if you want to copy over a Production instance over to a Sandbox one. Most common scenarios being when you’ve on-boarded a new client to Dynamics 365 / PowerPlatform and you’re nearing Go Live for the first time!

You need a Sandbox to then follow new customization on the Sandbox and avoid doing anything on the Production. Here’s how you copy over from Production to Sandbox!

 

Creating a Sandbox

  1. Create a new Environment by clicking on the +New button as below
    newButton.png
  2. Now, you can directly create a new Sandbox environment in the PowerPlatform Admin Center (https://admin.powerplatform.microsoft.com/environments)
    Remember: Both the source and target environments need to be in the same region to copy.
    createSandbox.png
  3. Additionally, I’ve selected the Create a Database option too since I want to speed up the process.
    addingDatabase.png
    Note that you can chose which all apps you want to deploy if you chose Enable Dynamics 365 apps

And that’s it. You’ll need to wait for some time until this is processed!

If you’re also looking to create a Database explicitly for an existing environment using a previous method, you can check this post – Create new CDS Environment and Database quickly from PowerApps Admin Center

While this happens in the background, you can see the message on the Environments section on the Power Platform Admin Center
preparing.png

 

And upon completion, you’ll see the below message
completedCreation.png

Copying From Production to Sandbox

Next step is to copy over the Production to the newly created Sandbox environment.

  1. Select the Production environment you want to copy over and look at the ribbon, you’ll see a copy button.
    copyButton.png
  2. Once you click on the Copy, you’ll be asked about the target environment, chose the created Sandbox.
    selectTarget.png
  3. Once you confirm, the copying process will start. And you’ll be taken to this page which tells you what stage the process is in –
    currentProcess.png
  4. Once all the copying is completed, this notification will appear. Now, the next step is to turn off Administration Mode. Click on settings link as shown below by arrow.
    copySuccess.png
  5. Once you flick the switch and Save, Administration Mode will be disabled letting others to log in as well. Additionally, now we have the option to keep Background Operations On as well while keeping Administration Mode On as well.
    disableAdminMode.png

Now, you are all set. Hope this helps!

Modified By (Delegate) & Created By (Delegate) in D365

These fields which are everywhere but you don’t really pay attention to really mean something worth.

So if you feel you want to get hold of someone for modifying a record. Maybe also take a look at Modified By (Delegate) just in case so that the actual user might be someone else who wanted to do another thing on that record. 🙂

Impersonation is one of the basic aspects of a plugin step that you need to carefully design to let another user (usually Admins for most implementations) make the plugin run under their context instead of giving more security roles/privileges to every other new user.

Well, same goes for Created By & Created By (Delegate) also!

Modified By

Usually, when you update something on a record, the Modified By is updated as expected. But notice that Modified By (Delegate) is not updated.
noDelegate.png

That’s because you are the rightful owner of the record and there’s no other person involved.

But what is someone else is modifying the record (who don’t have access to that record)?

In that case, Modified On (Delegate) field is populated with the name of that user. In such scenarios, Modified By (Delegate) user is the one who caused changes to the record.

delegatedUser

Why Modified By (Delegate) was populated

The reason this was populated was because the record was updated through a plugin by a user who doesn’t have Write access to the record.

But because the user invoked a plugin which was Impersonating as a User who has rights to the records, the record was successfully updated. And this, the actual user who called the plugin is the one who will be populated in the Modified By (Delegate) field.

impersonatingOtherUser

Hope this quick tip helps!

Enable Flow button on D365 Ribbon

This is a pretty simple tweak to either show or hide the Flow button on the entity Forms’ Ribbon.

flowButtonVisible

Flow Button Not Visible

nowFlow

System Settings

Navigate to Settings > Administration. Go to System Settings
systemSettings

In System Settings, under Customization tab, look for Enable Microsoft Flow option.
customizationTab

You’ll be asked for permission
permission.png

Now, this is turned on
turnedOn.png

Flow Button Visible

Now, once you have enabled this setting, you’ll be able to see the Flow button on the View and Form ribbons across Dynamics 365 CE
flowButtonVisible

That was quick!!

Solving ‘The record could not be deleted because of an association’ error in D365 CE

Restricting Delete for child records is something customizers should start paying special attention towards defining 1:N relationships for entity records.

System Customizers often design this on purpose so that you are aware that the record you are deleting has child records associated with it and cannot be deleted.

Let’s consider this scenario  – Account is a parent of Subscription (which is a custom entity)

relationship

 

Error

Assume, Subscription 1 record has Account lookup to record A. Datum Corporation. When you attempt to Delete the Account, you get this error message.

actualError

And when you download the Log File from the button on the error message, you can see at the very bottom on the Log that Cascade Delete failed due to the restriction.

It also mentions what child entity is causing it
highlightError

Reason

The reason being 1:N relationship on the Account entity to Subscription entity.

deleteRestrictionInRelationship

Workaround

Now, since this is a Restriction on Delete, you can either change it if you are allowed to modify the behavior and it should be fine
changeableBehavior
However, some system relationships can’t be changed. Example – Opportunity to Quote relationships
systemRestricted.png

To overcome this, you can remove the Opportunity Lookup value on the Quote entity and save the record.

Then, the parent Opportunity can be deleted.

Hope this helps!

D365 Quick Tip: Simple & Detailed Mode in Advanced Find

If you ever wanted to refine your Personal Settings and ever came across this setting that asks your to set the default mode in Advanced Find
setting

But didn’t observe the Advanced Find well? Here’s what it does

Simple Mode

As per Advanced Find behavior, the view which you are on is pre-selected in the Advanced Find.

And observe that the query is locked and you actually need to click on Details to expand it or make it editable
simpleMode

And then it expands like this
expanded

Detailed Mode

In Detailed mode, if you click on Advanced Find button, the query will already be in detailed view ready for you to be edited directly without you needed to click on Details as in Simple mode
advancedMode

 

Hope this quick tip saves you that extra bit of second. 🙂