Friday, December 18, 2020

Team member license enforcement coming up - deadline 31th of January 2021

Technical enforcement for Dynamics 365 Team Members licenses purchased or transitioned after October 1, 2018 will come into effect on January 31, 2021 (extended from the original date of April 1, 2020) for customers with online environments.

This means that user with Team member license will not be able to access custom model-driven apps or some of the standard first party modules they now have access such as the Customer Service Hub or Sales Hub. (for more details check out  Dynamics 365 Team member licenses (Microsoft Docs).


Team member users will only be able to use specific designated app modules:

You can extend the existing apps and add  both CDS core entities or your own custom entities into the app but you are restricted to 15 entities. There is a Team Member conformance report available for download in the Power Platform Admin Center. Go to the Common Data Service area in the Analytics section, and then select Download to access the report,  use the Change filters link to filter the report by Environment and Date.


References:


Wednesday, December 16, 2020

Dynamics 365 and Power Platform Wave 2 2020 updates - learn to surf the waves

All Dataverse (the new name for Common Data Service) and Dynamics 365 online environments hosted in EMEA region recently received over 200 new updates and features as part of the wave 2 2020 release. This release cadence is a part of Microsoft's one version vision for the  Dynamics 365 platform (take a look at Dynamics 365 Customer Engagement release version transparency for more details)

Update: Just noticed that Microsoft announced the dates for the next release wave 1 for 2021 - release plan will be available on January 27 and early access will be available on February 2021



It is quite challenge to keep track of the fast pace of innovation/change on both Power Platform and Dynamics 365 so I just made this small recap of things I want to check out in the coming weeks. Luckily there are bloggers like Nishant Rana who do a lot of the hard work for you and already dive into the new releases quite early  - he delivered a whole set of blog posts on Dynamics 365 Release 2020 Wave 2
The new/updated relevance search feature is definitely something I will look into as I think it will provide a lot of value for customers:
Covid-19 has turned B2B sales into an overwhelming digital experience, so the new sales accelerator, relationship intelligence and the advanced forecasting functionality - all part of the Dynamics 365 Sales Insights module -  are  capabilities to take a look at as they will support the new reality of B2B buyers preferring a digital buying experience.

Other blog posts and pages:

Welcome to Azure PowerShell Az module, goodbye to AzureRM

As outlined on Overview of Azure PowerShell (AzureRM) - Microsoft new recommends you to use the Az PowerShell module (released in October 2018) to interact with Azure.

The Azure Az PowerShell module  introduces a number of benefits such as shorter commands, cross-platform support and increased stability.  From a supportability perspective, the AzureRM module is still officially maintained and will receive critical fixes through February 2021. I recommend keeping tabs on the supportability section of the Azure Az PowerShell module documentation page as this date has already shifted.

When you first start to use the connect-AzAccount - you might receive a warning that you still have the old AzureRm modules installed. If you have installed the AzureRM PowerShell modules using a MSI package, you must uninstall it through the Windows system rather than using PowerShell


A nice enhancement is the warning around having multiple Azure subscription linked to the account that you use to login  (something quite common for cloud consultants)  - as outlined in the warning  you can use  Set-AzContext to select another subscription.


References:

Tuesday, December 15, 2020

Provisioning Azure Automation using Az.Automation module

Azure automation is a cloud based service which allows you to automate, configure and install updates across hybrid environments. Azure Automation focuses on an infrastructure perspective and allows you to  build/deploy resources, handling updates and configuring all type of resources (not only in Azure but also on premise). 

Coming from a development background and using mostly Azure PAAS components (Azure Functions, Web Apps, Web Jobs, etc..) I had not used it until recently when I got a request from the DBA team for setting up jobs to resolve index fragmentation by reorganizing and rebuilding index for which they suggested to use Azure Automation.


The core component in Azure Automation are runbooks which contain the automation code that you want to use to perform the automation task at hand.  There are a number of runbook types:  (textual) PowerShell runbook, graphical runbook, PowerShell workflow runbook and Python runbook

You can use the Azure Az PowerShell module to create an Azure runbook using the following steps:

References:


Wednesday, December 02, 2020

Notes on getting started with GraphQL - working with Eurex data

Although I had heard the term GraphQL (www.graphql.org) before I never took a look at it. As outlined on https://graphql.org/ , GraphQL is a query language and specification for your APIs which was initially developed by Facebook as a more flexible and efficient alternative to REST (See GraphQL: a data query language for some background). 

I started looking at the GraphQL to explore the Eurex T7 Reference Data APIEurex is the largest European futures and options market and primary deals in Europe-based derivatives (interest-rate derivatives, equity index and equity derivatives and even more exotic derivatives like volatility derivatives, FX derivatives, etc...)

To learn which queries are supported you can use GraphQL introspection to get information about all available requests, filters and response - below is an example of a Postman request


Another easy way to explore the API which is also outlined on the Eurex Reference data API start page is using the GraphQL Playground for Chrome extension


You can also use graphql-voyager to visually explore GraphQL API as an interactive graph - a live demo environment is available as well where you add your own APIs - GraphQL Voyager (apis.guru)

Friday, November 20, 2020

Reminder: quickly format XML files with Notepad++

Notepad++ is one of my favorite tools but it is not always easy to remember which plugin you need to install again after moving to a new laptop. So quick reminder: if you want to format XML files in Notepad++ the easiest thing to do is installing XML Tools using the Notepad++ plugins manager. Next you can use the Plugins>XML Tools>Pretty  print


Related posts:

Tuesday, November 17, 2020

Dynamics 365 and Power Platform monthly reading list October 2020

Technical topics (Configuration, customization and extensibility)


Topics for Dynamics 365 Business Application Platform consultants, project managers and power users

Thursday, November 12, 2020

CRMUG Belux Webinar - Accelerate your Power Platform journey using Power Accelerate

Join CRMUG Belux on November 20th at 12:00 CET for a free webinar to learn about the Power Accelerate ISV solution (https://www.poweraccelerate.com)  which accelerates your Microsoft Power Platform journey and makes modernization onto the Microsoft Power Platform fast and seamless.

No preregistration required - join us by clicking this Power Accelerate webinar link on Friday November 20th or download the Outlook calendar reminder for the Power Accelerate webinar.

Agenda:

  • Introduction 
  • Power Accelerate solution overview
  • Power Accelerate solution demo
  • Learn about the free private preview program

Speaker: Bert Wijns, Co-founder of the Power Accelerate ISV solution - Experienced subject matter expert guiding enterprise customers, implementation teams and partners through implementations of the Microsoft Power Platform. 

Wednesday, November 04, 2020

Automate your PowerApps Canvas apps test in your DevOps Pipeline

Some of you are already using automated UI testing for PowerApps model-driven apps (or for Dynamics 365 App extensions) using Easyrepro - the UI automation test library for Dynamics 365 and CDS  but it is also possible to Automate your canvas app tests in your DevOps Pipeline

The PowerAppsTestAutomation project on Github abstracts the complexity of writing code to login the canvas apps, add application logging and executing a test case or a test suite.



References:

Wednesday, October 28, 2020

Access token endpoint versions in Azure AD

You might have noticed that there are two different urls that you can use for retrieving an access token in Azure AD:

  • https://login.microsoftonline.com/<tenantid>/oauth2/token
  • https://login.microsoftonline.com/<tenantid>/oauth2/v2.0/token
And although most of the time it is better to use the more recent version, I did wanted to know the difference between both. After deciding that in this case google was not my friend I reached out a colleague @KevinDockx  (Definitely check out his Pluralsight training Microsoft Azure for .NET developers - Building secure services and applications )



Evolution of Microsoft identity platform explains how Azure AD developer platform evolved towards the new Microsoft identity platform. In short the /oauth/token endpoint is part of Azure AD for developers and /oauth2/v2.0/token is linked to Microsoft identity platform.



If you need to decide whether to use Microsoft identity platform (v 2.0) or Azure Active Directory (v1.0) endpoints - definitely take a look at Why update to Microsoft platform (v2.0) and check out the limitations section as well.

In short try to use the v2 as much as possible since it provides more features and is more in line with common standards. The v1 endpoints will still exist for quite a while and as far as I know there is no end of life announced (yet) but Microsoft did already announce the deprecation of the Azure Active Directory Authentication Library (ADAL) - see Migrate applications to Microsoft Authentication Library (MSAL). Everything evolves quite fast and there even is a newer alternative for MSAL called Microsoft Identity Web 

You might also take a look at OpenID Connect (OIDC) which is an authentication protocol built on OAuth 2.0 since Microsoft Identity platform is compliant with this standard as well - see Microsoft identity platform and OpenID Connect protocol for more details

References:

Tuesday, October 27, 2020

Improve your quality assurance using the Power Platform webinar

On November 3th, the Realdolmen Power Platform team organizes a free webinar on how you can leverage Power Apps, Power Automate and Power  BI to support quality assurance processes.

Improve your quality assurance using the Power Platform webinar registration link (November 4th  - 14:00-15:15 CET) .

Session description: With low-code platforms being a trendy topic of 2020, chances are that this isn’t your first invite for a webinar on this topic. But how about a real use-case in action? Let us show you a practical approach on how to combine the ease of use of the Power Platform with common Quality Assurance tasks. We take you through the process of digitizing a paper process for quality assurance, automating manual tasks to optimize efficiency and displaying interactive overviews for audit purpose.

Friday, October 23, 2020

Understanding Dynamics 365 Power BI Template Apps vs Power BI Content Packs

Content packs were used in the past to package and share Power BI objects like datasets, reports and dashboards.  Microsoft initially also used content packs to build their own Dynamics 365 solution templates, these solution templates were made available on Microsoft AppSource

But in 2019, Microsoft introduced the concept of Power BI template apps (See Announcing Power BI template apps general availability) - this also meant that all previous content packs/solution templates became deprecated and some of them got replaced by the template app experience.  

Microsoft indeed converted some of the Dynamics 365 content packs into modern Power BI apps and published the updated Power BI apps for Dynamics 365 platform to the Microsoft AppSource.  Some of these Power BI apps are tied to a specific Microsoft first party app like Sales Analytics for Dynamics 365 Sales, others can be used by multiple first party apps like Process Analytics for Dynamics 365.



Microsoft partners  also build their own Power BI apps for the Dynamics 365 platform and published these to  Microsoft AppSource e.g. Microsoft Customer Engagement - Sales Analytics from FuturIT 

It is  important to understand that you can not modify the Power BI Template Apps easily - the pbix files which drive these Power BI Apps are not downloadable so you can not change the standard reports delivered with these Power BI Apps. Users can however change some parameters in the web view - see Let users personalize visuals in a report - this is however on a per user basis. I however was looking for a way to modify the reports in a similar way which was possible with the content packs.


The workarounds that my colleague @bennidejagere suggested for exporting the underlying model using the XMLA endpoint in Power BI is a little bit out of my comfort zone and does not allow me to get at the report files so I looked at little further.

However the existing solution templates from Microsoft were moved to open source end 2018 (See Power BI solution templates moving to open source) and added to the BusinessPlatformApps github repo. Microsoft however stopped maintaining the original reports but you can still find the original Power BI reports which were part of these packs. 

Important: The Power BI template apps for Dynamics 365 Sales and the Process Analytics for Dynamics 365 are also available for download from the Microsoft site on Customize Power BI template apps for Dynamics 365

References:

Tuesday, October 20, 2020

Dynamics 365 and Power Platform monthly reading list September 2020

Technical topics (Configuration, customization and extensibility)

Topics for Dynamics 365  Business Application Platform consultants, project managers and power users

Quick fix: SQL Server Management Studio 18.0 not installing

 My installation of SQL Server Management Studio 18.0 last week always got stuck on the initial "Loading packages. Please wait..." screen. The solution which worked for me was deleting the registry key underneath "HKLM\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server Management Studio" as outlined in Installing SSMS 18 won't go past loading packages phase.



Wednesday, October 14, 2020

Project Oakdale - the product formerly known as DataFlex

Project Oakdale (at that point Dataflex) was first announced by @clamanna at Microsoft Inspire as a low-code data platform built-into Microsoft Teams and it immediately drew a lot of attention in the community. The idea behind it - as articulated quite aptly by @Jukkan in his post Dataflex is more (and less) than CDS - is to deliver an application platform for the masses. But to be honest, Microsoft only lifted the tip of the veil at that point in time. 


Fast forward, to Microsoft Ignite only two weeks ago with  a number of big announcements with regards to Project Oakdale:






References:

Old articles (Released in July after initial announcement on July 21th):

Wednesday, September 23, 2020

Dynamics 365 and Power Platform monthly reading list August 2020

Technical topics (Configuration, customization and extensibility) 

Topics for Dynamics 365 Business Application Platform consultants, project managers and power users

Wednesday, September 09, 2020

Fixing current .NET SDK does not support targeting .Net Core 2.2 in Visual Studio 2017

 I encountered below exception when building a ASP.NET Core project in Visual Studio - "The current .NET SDK does not support targeting .NET Core 2.2. Either target .NET Core 2.1 or use a version of the .NET SDK that supports .NET Core 2.2".


Luckily this forum post pointed in the correct direction - first check the installed version of the .NET Core SDK on your machine. 

If you are using Visual Studio 2017, you will need to install 2.2.1xx of the SDK to support targetting .NET Core 2.2. You can download the different versions of the .NET Core 2.2 SDK on https://dotnet.microsoft.com/download/dotnet-core/2.2 

Thursday, September 03, 2020

Palm oil price vs SIPEF stock price in Jupyter notebooks with Quandl

Quandl also offers free commodity price data for almost 100 commodities ( See API for commodity data) so I decided to create a Jupyter notebook comparing SIPEF's stock price with the price of palm oil. Take a look at the full notebook I shared on github if you want to learn why - https://github.com/jorisp/tradingnotebooks/blob/master/Quandl_API_Euronext_SIPEFPalmOil.ipynb 

 


Remarks:

  • Be careful when embedding images in a Jupyter notebook that you want to publish on Github (see Images in Markdown not showing when uploaded to Git for a discussion on this) - filenames are case sensitive - I got it working using the url syntax
  • To store the quandl key I used the approach outlined on how to use secrets in Jupyter Notebooks with python-dotenv
  • I really like Matplotlib and its versatility in rendering capabilities  in this notebook I used the ability to visualize multiple time series (see code preview below) with different axes. (see code below)

sipcolor = 'tab:red'
fig,ax1 = plt.subplots()

ax1.plot(data['SIP'],color=sipcolor)
ax1.set_ylabel('SIPEF',color=sipcolor)
#Instantiate a second axes that shares the same x-axis
ax2 = ax1.twinx()
ax2.plot(data['PPOIL'])
ax2.set_ylabel('PALM OIL USD')
plt.gcf().set_size_inches(15,8)
plt.show()

Related posts:

Tuesday, September 01, 2020

Quick tip: workaround kernelspec module not installed with jupyter notebooks in Visual Studio Code

This weekend I tried out working with Jupyter Notebooks in Visual Studio Code. Since I already have Jupyter up and running as part of the Anaconda distro I thought this would be easy but it took me longer than expected. 

First step is to install the Python extension for VS Code  and then you can start working with existing Jupyter Notebooks by just double clicking an existing notebook. Unfortunately this immediately threw an exception "Error: Jupyter cannot be started. Error attempting to locate jupyter: 'Kernelspec' module not installed in the selected interpreter." The workaround suggested on StackOverflow Python/Jupyter notebook in VSCode does not use the right environment did not resolve the issue and also the fixes described on Github - New version tries to install kernelspec were not working.


The workaround which seems to be working for me is starting VS Code from the Anaconda Prompt in the Jupyter workspace directory by typing "code ."




Wednesday, August 26, 2020

Dynamics 365 and Power Platform monthly reading list July 2020

Technical topics (Configuration, customization and extensibility)
Topics for Dynamics 365 Business Application Platform consultants, project managers and power users

Friday, August 21, 2020

Notes on learning to work with the Microsoft Graph API

Microsoft Graph is a REST API which allows you to access Microsoft Cloud services (e.g. Office 365 service like Microsoft Teams, OneDrive,Planner, SharePoint, etc.. but also enterprise mobility and security services like Azure AD, Identity Manager, etc..) resources using a single endpoint. You can use it for example for querying data in Outlook/Exchange and OneDrive but in the past couple of weeks I mainly used it for Microsoft Teams. The easiest way to get started with the Microsoft Graph API is the Microsoft Graph Explorer.


I learned quite a lot from the 30 days of Microsoft Graph blog series - a highly recommended starting point - for other resources take a look at the references section below.


References:

Friday, August 14, 2020

Don't forget to update older client applications for Dynamics 365 to the correct .NET Framework version

I lost 30 minutes this morning when trying to troubleshoot an older console app (written in 2017) which refused to connect to Dynamics 365 Customer Engagement. It was only after updating the Nuget packages for Microsoft.CrmSdk.CoreAssemblies  that I noticed that I was still building against .NET Framework 4.5.2 which is not supported anymore.


Reference:


Thursday, August 13, 2020

Quick tip: SQL access to Common Data Service using Tabular Data Stream (TDS)

Recently Microsoft announced Power BI DirectQuery support (in preview) to the Common Data Service (CDS)  using Tabular Data Stream. You can also leverage this  CDS TDS endpoint within SQL Server Management Studio to write SQL queries against the CDS database. You can connect using the base url of your CDS instance and add the port 5558. To authenticate you will need to use Azure Active Directory - Password.


By default this functionality is not enabled, so you if you try to use SQL Server Management Studio you will get below exception.

As outlined on http://aka.ms/enablesqlforcds, you will need to to go the Power Platform Admin Center to switch on the TDS support.

References:


Tuesday, August 11, 2020

Quick tip: find duplicate records in Dynamics 365 with Deduplicator plugin for XrmToolBox

 If you want to quickly scan your Dynamics 365 or CDS instance for duplicate records, take a look at the Deduplicator plugin for XrmToolbox. It provides you with the option to specify one or more fields for a specific entity as matching criteria (with option to ignore blank values, leading and trailing white space and taking into account casing) and choose which additional fields to display for the duplicate results. 


Friday, August 07, 2020

Notes on the Power Virtual Agent in a day lab

Microsoft recently also released a Power Virtual Agent in a day and I decided to give it a try. Power Virtual Agents are one of the components in the Power Platform which allow you to built intelligent chat bots without any coding or AI experience.

Since Power Virtual Agents are built on the Power Platform and the Azure Bot Framework you still have the option to extend the capabilities to suit your organisations needs.

Some notes on the Power Virtual Agent lab:
  • The creation of a virtual agent or bot is super easy and intuitive with a simple graphical interface for authoring the logic  that will drive your bots. The authoring canvas for the conversation tree has a great user experience and enables non-developers to create a powerful chatbot experience.

  • After you import the SolutionPowerVirtualAgentInADay.zip solution file, you will need to reconfigure the connections in the different Power Automate Flows - to do this you will need to use the unique name of the CDS instance - so if you have used a Dynamics CRM instance you can not use the readable name - don't forget to add the region shorthand as well.
  • If you are familiar enough with Dynamics 365 and/or Power Platform you will be able to complete the labs in a couple of hours.
  • The built-in integration with Power Automate allows you to leverage the over 250+ external services and systems so the only limit is your imagination.

References:

Saturday, August 01, 2020

Quick tip : how to check if a Microsoft Teams channel exists in a Power Automate Flow

The new Microsoft Teams connector (Preview) in Microsoft Power Automate Flow makes Microsoft Teams automation scenarios a lot easier. The List channels action will return you a list of one or more channels for a Team. If you want to check if a channel with a specific name already exists you can  use the contains function. (For a good overview see Reference guide to using functions in expressions for Azure Logic Apps and Power Automate)