Back
Featured image of post Exam PL-400 Revision Notes: Implementing Data Synchronisation using Microsoft Dataverse

Exam PL-400 Revision Notes: Implementing Data Synchronisation using Microsoft Dataverse

Welcome to the nineteenth and penultimate post in my series focused on providing a set of revision notes for the PL-400: Microsoft Power Platform Developer exam. Previously, we examined what events are and how they can provide a streamlined mechanism for executing complex business logic outside of Microsoft Dataverse. In today’s post, we conclude our review of the Develop Integrations area of the exam by looking at our final exam topic - Implement data synchronisation. For this, Microsoft expects candidates to demonstrate knowledge of the following:

Implement data synchronization

  • configure and use entity change tracking
  • read entity change records by using platform APIs
  • create and use alternate keys

For a long time now, Microsoft has provided tools that can perform complex or straightforward integrations involving data that resides within Microsoft Dataverse. In some situations, the out of the box capabilities offered to us can negate the need to implement solutions to track data changes or lookup table rows based on alternative identifiers. In discussing the topics listed above today, we will see how these features can achieve these objectives and more.

As with all posts in this series, the aim is to provide a broad outline of the core areas to keep in mind when tackling the exam, linked to appropriate resources for more focused study. Ideally, your revision should involve a high degree of hands-on testing and familiarity in working with the platform if you want to do well in this exam.

Change Tracking Overview

If you have any previous experience working with SQL Server, you may be familiar with a built-in capability called Change Tracking. You may infer what this involves quickly from the title. Still, to explain clearly, this is a feature you can enable within your databases/tables to more straightforwardly track when your database records are added, modified or removed. Change Tracking can be beneficial for us in several different scenarios. For example, let’s say we have a batch data synchronisation activity. It will typically be more efficient only to process any actual changes that have taken place instead of processing thousands if not millions of records each day. Using Change Tracking, we can easily append the appropriate filters to our query to get the precise set of changes we want. Also, by leveraging this “out of the box” capability, we don’t need need to spend time building out our own change tracking capability, meaning we can focus our development efforts on more critical activities.

So you may be wondering at this stage - why are we talking about something that’s nothing to do with the Power Platform? Well, fun fact - Microsoft Dataverse uses SQL Server behind the scenes, and the change tracking capability available to us here is based on the same one we can leverage in SQL Server. We can enable this for any table by simply ticking the appropriate option on the relevant properties page:

We can then query change tracking information via the Web API and the RetrieveEntityChangesRequest if we are working with a C# application. Based on the actual changes that have occurred, we will then receive back a list of new rows, updated rows (along with the columns that have changed) and any rows that users may have removed since we last checked. The critical element as part of this is either our delta token (for Web API) or version number (for the Organisation Service), which we include as part of any subsequent requests we make to our Microsoft Dataverse to detect the changes made since the last time. The platform supports multiple token/version numbers existing at any time but, keep in mind that tokens will expire after 90 days. In theory, if your integration processes changes daily or weekly, this should never be a problem; simply ensure you store the relevant portions of the delta link to continue to return only changes you need.

Demo: Working with Change Tracking in the Microsoft Dataverse Web API

To see how to enable change tracking capability and then query delta changes from Microsoft Dataverse using this, please watch the video below where I showcase the steps involved:

Alternate Keys: What are they, and why should I use them?

Typically, when integrating alongside an external system, it will contain unique record identifiers that differ from the globally unique identifier (GUID) for each Microsoft Dataverse row. It could be this identifier is an integer, string or a mixture of different attribute values (e.g. the address and name of a customer). Due to the myriad of different systems available not just through Microsoft but also through other vendors, it can be challenging to find a straightforward solution to handle this.

Enter stage left alternate keys, a helpful feature we can enable on one or several columns on a table. By creating them, you are informing Microsoft Dataverse that the contents of this field must always be unique within the system. After an alternate key is defined, the application will create a unique index in the database, covering the specified columns. Therefore, the hidden benefit of this is that queries targeting alternate key values will always run faster. When writing this post, it was possible to use both the Power Apps maker portal and classic interface to create alternate keys; where possible, I would advise you to use the maker portal. An additional benefit with alternate keys is that the SDK supports several capabilities that developers can easily leverage alongside them. For example, it’s possible to create new records by specifying its alternate key value and execute Web API Retrieve requests using one or multiple Alternate Key values.

Keep in mind some of the limitations concerning alternate keys:

Demo: Working with Alternate Keys in the Microsoft Dataverse Web API

To understand how to define and then query data from the platform using alternate keys, check out the video below:

And that’s a wrap…

…you might expect me to say at this stage. True enough, we’ve now covered all of the content within the PL-400 exam. What I wanted to do in next week’s post is perform a round-up post that collects together all of the posts/videos published during the series and share some general advice relating to the exam. Catch you again next week! 😉

comments powered by Disqus