Block unmanaged customizations (preview) – Dataverse / Dynamics 365


We were recently trying out the new block unmanaged customizations feature introduced.

Now with more and more adoption of Managed Solutions, having this feature could help the administrators to manage and control the environment.

It is still in preview, with its sets of known limitations.

To see it in action, enable it from Environment >> [Environment] >> Settings >> Features

With this feature enabled, although we can create and export unmanaged solutions in the environment, we cannot

create a new table

Or create a new column or any other unmanaged solution component

Import an unmanaged solution –

Update a form (i.e. adding unmanaged changes to existing managed components)

On trying to update a Plugin Step –

Get full details here

Hope it helps..

Advertisements

Exploring Pascalcase Data Mask App for masking data for Dynamics 365 and Power Platform Environments


You have probably used the copy environment feature in the Microsoft Power Platform admin centre to copy data and customizations between environments.


However, there is a crucial aspect to consider data privacy and security. When transferring data, especially to sandbox environments which typically have less stringent access controls, there is an inherent risk of sensitive information becoming exposed to unauthorized personnel. Such scenarios pose a threat to compliance with stringent data privacy regulations, including GDPR, HIPAA, and CCPA.

However, there is no out-of-box to mask data. Here comes Datamask App which helps with data protection by replacing sensitive information with dummy data.

Diving into the Strength of Data Masking

In the Power Platform sandbox environments, developers, and testers often grapple with the challenge of handling real data without compromising privacy and security. The Data Mask App steps in as a powerful solution to this dilemma. Its primary mission? To mask, anonymize, and obfuscate Dataverse data, offering a shield against potential data breaches.

How does Data Mask app work?


  • You can download the app from Microsoft AppSource, Download Data Mask app, and the app is available as managed solution.
  • Upon importing the solution, you need to configure the data mask app.
  • With configuration, users can selectively mask specific fields, choosing from options, such as replacing with dummy names, generating random strings, or employing asterisks for a discreet approach.


    Configuration settings for masking Account number field in Account table.

  • Various configuration options for table records provide versatile ways to protect sensitive data configurations, it collectively empowers users to customize data protection strategies based on specific needs and compliance requirements.
  • This dynamic approach ensures that sensitive information, like full names and contact details, is transformed into a secure and privacy-preserving version while retaining its integrity.
  • When a data mask run is created the masking process starts and we can track the masking of records in the logs section.


Free plan and paid plan

If you would like to test, there is a ‘Test Drive’ option. Otherwise, you can install the app in your environment, but there is a 1000-record limit. If you would like to buy the tool, you can contact https://pascalcase.com for a license.

Advertisements

Fixed – Invalid type. Expected Integer but got Number (Power Automate)


In one of our Cloud Flows, for Parse JSON action, we got the below error –

ValidationFailed. The schema validation Failed.

“Invalid type. Expected Integer but got Number”

The generated schema had data type defined as integer instead of number type for certain properties, and the response was having decimal value to it.

So replacing the “integer” with “number” in the Schema of Parse JSON action fixed the issue.

Hope it helps..

Advertisements

How to – Submit multipart/form-data using HTTP action in Power Automate (Dataverse)


Recently we were calling an API (that expects multipart/form-data) to pass the image uploaded in Dataverse’s Image Column.

We used Power Automate for this i.e. to get the image uploaded and use HTTP Action to call and pass the Image details to it.

Below is the specification of the API

https://vision.foodvisor.io/docs/#/paths/analysis/post

We used the “Download a file or an image” action to get the Image details

Below is how the HTTP action was used to pass the required details.

The successful response –

The body of the HTTP action –

{
"$content-type": "multipart/form-data",
"$multipart": [
    {
      "headers": {
        "Content-Disposition": "form-data; name=\"image\"; fileName=\"@{items('Apply_to_each_2')?['filename']}\""
      },
      "body": @{body('Download_a_file_or_an_image')}
    }
  ]
}


If we want to pass more than one data, we can have multiple headers defined as shown below

Helpful post –

Hope it helps..

Advertisements

The ‘Retrieve’ method does not support entities of type ‘fileattachment’ – Power Automate / Dataverse


We were getting the below error on using the “Get a row by ID” action on the FileAttachments table.

We were doing it to retrieve the details like the file name and the mime type for the Image Column.

The ‘Retrieve’ method does not support entities of type ‘fileattachment’. MessageProcessorCache returned MessageProcessor.Empty.

The solution here is to use List rows action instead.


The corresponding record –

Also check – https://temmyraharjo.wordpress.com/2021/09/02/dynamics-crm-plugin-development-exploring-file-and-image-datatype/

Hope it helps..

Advertisements

Fixed – To start using cloud flows, update to the latest package in the admin center (Power Pages)


Recently while trying to implement the below feature –

How to: Integrate Power Automate cloud flow with a Power Pages site

We were getting the below error –

To start using cloud flows, update to the latest package in the admin center.”

However, we could not find any portal package to apply the update.

We raised a Microsoft Support Ticket for it, and the team confirmed that there was a missing CDSBasePortal package, which they installed from the background, which solved the issue for us.

Hope it helps..

Advertisements