Wednesday, January 17, 2018

Dynamics 365 monthly reading list December 2017

Technical topics (Configuration, customization and extensibility)
Topics for Dynamics 365 business analysts, project managers, power users and end users

Monday, January 15, 2018

Speaking at Dynamics 365 Saturday Amsterdam

I will be delivering a session about chat bots and Dynamics 365 at Dynamics 365 Saturday Amsterdam on the 3d of February. Registration is free.
Dynamics 365 Saturday is a Technical & Strategy event organized by the community with the following credo: “Learn & share new skills while promoting best practices, helping organizations overcome the challenges of implementing a successful digital transformation strategy with Microsoft Dynamics 365”.

Searching in knowledge base articles in Dynamics 365

Knowledge base articles are a base component of the Service Management module in Dynamics 365. The knowledge base is a repository of informational articles that can be used to help customer service representatives resolve cases. Knowledge base articles can be emailed to a customer, which can be sent either through the Dynamics 365 interface or through the Microsoft Dynamics apps for Outlook.
With the introduction of the new knowledge articles entity data model (KnowledgeArticle) in Dynamics CRM Online 2016 Update 1   and Microsoft Dynamics CRM 2016 SP1 (for on premise) (Release documentation 8.1 – January 2017) , the existing entities for knowledge management: KbArticle, KbArticleComment and KbArticleTemplate were deprecated.

You should now use the newer KnowledgeArticle in your code  (See Important changes coming in future releases of Microsoft Dynamics 365), which also support versioning and translation support.
In version 8.1, these knowledge articles became visible in the interactive service hub which was revamped into the Customer Service Hub in version 9.0 (Dynamics 365 July 2017 update). The Customer Service  Hub also contains a number Knowledge Base dashboard - one with "your knowledge base articles" and one specifically for a knowledge manager (see screenshot below).

If you want to learn more about how to work with knowledge base articles, you should really take a look at Reduce call handling times with knowledge articles in the Customer Service Hub . Knowledge base articles are also directly shown in a tab on a case form (see screenshot below).

It is also possible to execute full-text searches against the new knowledge articles using the FullTextSearchKnowledgeArticleRequest which uses the following parameters:
  • QueryExpression: used to set additional query criteria and for which you also need to set the PagingInfo otherwise no results are returned
  • RemoveDuplicates: remove duplicate versions of the same Knowledge Article
  • SearchText: the text to search for in Knowledge Articles
  • StateCode: required parameter which accepts an integer for the different statuses of a knowledge article such as Published, Draft, Approved, etc…
  • UseInflection: searches for all different tenses of a verb or both the singular and plural forms of a noun. Underlying SQL full-text search is used (For more details see Searching for the inflectional form of a specific word
Code sample: searching within knowledge base articles using FullTextSearchKnowledgArticleRequest


Monday, January 08, 2018

Quick tip: finding all users with Dynamics 365 Service Administrator role in Office 365 tenant with PowerShell

Unfortunately the Office 365 Admin Portal, does not contain a predefined view to show all users who have the Dynamics 365 Service Administrator role – this role allows you to manage Dynamics 365 at tenant level (See Use the service admin role to manage your tenant for more details). But luckily you can also retrieve this information using PowerShell.

First make sure that you install the different prerequisites as outlined in Connect to Office 365 PowerShell – next open Windows Azure Active Directory Module for Windows PowerShell. To connect to Office 365, simply type connect-msolservice . Get-MsolRole will give you a list of all administrator roles. You will see that the internal role name which is listed is still "CRM Service Administrator". The last line will export all users with this role to a CSV file

 get-msolrole | select name, description  
 $role = get-msolrole -rolename "CRM Service Administrator"  
 get-msolrolemember -roleobjectid $role.objectid | export-csv d:\temp\serviceadmins.csv  

Sunday, January 07, 2018

Fix for unable to login to Dynamics CRM 9.0 with CrmServiceClient and .NET 4.7

When you try to connect to Dynamics 365 9.0 from within a console app using the CrmServiceClient, you might still encounter an error “Unable to login to Dynamics CRM” even though you have updated to the latest version of the different assemblies ( at the moment of writing).

This might be caused by the fact that you compiling against .NET 4.7 where the default value of the ServicePointManager.SecurityProtocol is SecurityProtocolType.SystemDefault (See What’s new in .NET 4.7 for more details).

If this is the fact, you might need to explicitly change the protocol to TL1.2 - which is a requirement for Dynamics 365 9.0 as announced in September 2017 in Updates coming to Dynamics 365 Customer Engagement connection security  - by adding a line ServicePointManager.SecurityProtocol.SecurityProtocol = SecurityProtocolType.Tls12