Skip to main content

Posts

Async Plugins vs. Power Automate Flows

Retrieve Object Type Codes via WebAPI Url

To quickly retrieve the object type codes you can add the following URL part to your CRM instance URL: /api/data/v8.2/EntityDefinitions?$select=LogicalName,ObjectTypeCode&$filter=ObjectTypeCode%20gt%209999 The output looks like this: { "@odata.context":"https://orgname.crm4.dynamics.com/api/data/v8.2/$metadata#EntityDefinitions(LogicalName,ObjectTypeCode)","value":[ { "LogicalName":"msdyn_quotebookingproduct","ObjectTypeCode":10076,"MetadataId":"eabdb23d-67d9-4c20-b72e-7358079a1afd" },{ "LogicalName":"msdyn_requirementresourcepreference","ObjectTypeCode":10017,"MetadataId":"d63ce867-9bd1-45ee-aedc-459394bedf35" },{ "LogicalName":"msdyn_rmareceiptproduct","ObjectTypeCode":10086,"MetadataId":"5b57cb66-3728-4987-8b95-ab78d5dfcf9a" },{ "LogicalName"...

CRM Email description or body is wrapped with <pre class="mscrmpretag">YOUR CONTENT</pre> tag

Today I intended to process the email description field which contains the body of an email, but got nerved by CRM’s logic. Out of the box CRM does wrap the email body with: <pre class="mscrmpretag">YOUR CONTENT</pre> My plugin code did not expect that as I planned to parse the email’s body of certain email types as XML string (customer’s requirement). To work around this you can use this fix helper class using your own implementation of your deserialized entity class: public static class EmailXmlHandler { /// <summary> /// Gets a serialized Incident instance from a XML string. /// </summary> /// <param name="xmlString">The XML string.</param> /// <returns>Incident instance</returns> public static Incident GetIncidentFromString( string xmlString, ITracingService tracer) { XDocument xmlDoc = null ; Incident ...

How to uninstall / remove project service automation

Important Note: Please be reminded that the removal of the project service automation solution might be different for every new published version! This blog covered base version 1.2.0.69 of the PSA solution. In solutions, first delete the Project Service Anchor solution (if present), next the patches (highest first), lastly delete the main solution. If removal of one of the managed solutions fails you can retrieve a list of dependencies that you need to remove with the following steps: 1. First open the solution you want to remove. 2. Go to Actions menu –> select Email a Link Paste the URL into Notepad. It will look something like this: https://[YOUR_CRM_URL].crm4.dynamics.com/tools/solution/edit.aspx?id=%7b 22B859E3-395D-4560-B366-79C2CC43AB6B %7d       4.  The GUID in the URL is located between the first %7b and %7d (see the highlighted GUID above) Now that we have the GUID of the solution, we use the following ...

Bing Maps in Microsoft Dynamics 365 Mobile Apps for Phone and Tablets not working / supported, but…

Currently it looks like that the Bing Maps form control cannot be rendered in the Microsoft Dynamics 365 Mobile Apps for Phone and Tablets. I added it to my form and published the changes to my Lumia 950 Windows Mobile 10 device and still missed the Bing Maps. Looks extremely like it not supported! BUT… … I found out that if you click on one of the blueish links of the Address section if will open the native Maps app of my device:

Bing Maps is not working or does not show the map at all

Todays I made a classical mistake. I assumed that the Bing Maps in CRM is activated by default and I was wondering why I did not see the map of my opened account record. Simple enough was the solution: Go to Settings > Administration > System Settings > Open General tab Check Yes on the “Show Bing Maps on forms” setting.

Turn off CRM Outlook Syncronization

The Outlook CRM add-in includes the diagnostics tool. This allows various configuration options. For some cases it might be useful to deactivate the Outlook Synchronization. Usually, this tool is installed in this path: C:\Program Files\Microsoft Dynamics CRM\Client\res\web\bin you can open the tool from command line if you want: Microsoft.Crm.Outlook.Diagnostics.exe If you want to configure multiple machines or use policies to deactivate synchronziation you can also use a registry key for that: The key you want to look for is “ RunOutlookScheduledSync ” or “ RunOfflineScheduledSync ” if you use offline functionality. Setting to 0 (zero) disables it. Setting to 1 enables this feature. Remark: Replace ORG_ID with your actual organization id. Create Windows Registry deactivate.reg file for deactivation of sync: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSCRMClient\{ORG_ID}] "RunOutlookScheduledSync"=dword:...

CRM Portals – Customer Self-Service – Invitation flaw

I recently had the situation that with Dynamics 365 Online Portals not all parts are self-explaining, especially the first setup. The customer required to have multiple CRM users from multiple business units. Out-of-the-box behavior is that only the system administrator is able to create invitations in general. But what if you want to enable mulitple users to fulfill this task? I recognized that users with the system administrator role still were not able to generate the invitation code that is triggered by the worklfow below. The reason is that by default this workflow’s scope is set to “User” level. Instead it must be on “Organization” to make it fire for all portal inviters. Next step was to create a new role “Portal Inviter” which only has the permissions for the “Invitation” entity completely enabled: (whole Organization-wide with exception to the delete permission, which should be on “User”-level) So this gave me the freedom to enable certain users from ...