Understanding Privilege Check and Shared Access in Dataverse / Dynamics 365


Let us understand this with a simple example.

We have the following 2 custom tables having a 1 – N relationship.

Project (1-n) Artefact.

The relationship behavior is Custom with Cascade All for all the actions except Delete.

User 1 is the System Administrator and Test User 1 has the Field Service Admin role but doesn’t have any roles that give him access to the project or artefact table.

We can see the tables are not showing up for Test User 1 in the app unlike User 1 with the System Admin role.

A screenshot of a computer

Description automatically generated

Now let us assign a custom security role – Test Sharing to test user 1 that gives him Organization Level rights on the Project table.

A screenshot of a computer

Description automatically generated
A screenshot of a computer

Description automatically generated

As expected, Test user 1 now has Projects appearing in the app, and as he doesn’t have any rights on the Artefact table, he cannot see it in the form or the app.

A screenshot of a computer

Description automatically generated

Now user 1 shares the Project 1 record with test user 1. Remember we have set Share as Cascade All in the relationship between Project and Artefact.

But still, because the user doesn’t have any privileges on Artefact, it doesn’t appear for Test User 1 on the form as well as the app.

Now let us update the Test Sharing Role and add Read Permissions – User Level for the Artefact table.

A screenshot of a computer

Description automatically generated

Now Test User 1 can see the Artefacts in the related records as well as the App.

A screenshot of a computer

Description automatically generated

We can observe 2 things here –

  • Although Test User 1 only has User-level Access to the Artefact, he can still see the Artefact records created by User 1, as the parent Project record is shared with Cascade All–Share in the relationship behavior.
  • And as Test User 1 has only Read access he can only view the artefact records shared.
A screenshot of a computer

Description automatically generated

Here if we update the Test Sharing role to provide Write access at User Level, the user will be able to edit the records.

A screenshot of a computer

Description automatically generated

Also right now if User 1 creates the Project 2 record with the related P2 A2 artefact record, Test User 1 will only have access to the Project 2 record because of Organization Access but not to the P2 A2 artefact record as he has only has the user-level access.

A screenshot of a computer

Description automatically generated

Let us now update the Relationship Behaviour between Project (1-n) Artefact, and set Share to Cascade None.

Let us share the Project 2 record with Test User 1 now through the User 1 account.

A screenshot of a computer

Description automatically generated

As expected even after sharing the Project 2 record, Test User 1 does not have access to the P2 A2 artefact record as we had updated the relationship behavior as Cascade None for Share.

A screenshot of a computer

Description automatically generated

The first check that the user needs to pass is the Privilege Check, which checks if the user has the required privileges for that table before the Shared Access check

A screenshot of a screenshot of a record

Description automatically generated

Also, Check – How access to a record is determined.

Hope it helps..

Advertisements

New Attachment features for Email – Dataverse / Dynamics 365


We can see a few new features added to attachments for email activity as part of 2024 Release Wave 1.

  • We can use drag and drop to add attachments.
  • Select (Select All) and copy the attachment(s)
A screenshot of a computer

Description automatically generated
A screenshot of a computer

Description automatically generated
  • And can paste it to another email
A screenshot of a computer

Description automatically generated
  • Bulk download and delete the attachment(s)
A screenshot of a computer

Description automatically generated
  • We can switch between Tile and Grid view which also shows the size of the attachments.
A screenshot of a computer

Description automatically generated
  • We can export attachments to Excel.
A screenshot of a computer

Description automatically generated
  • The exported Excel file will have the following details
A screenshot of a computer

Description automatically generated

Get all the details here

Hope it helps..

Advertisements

Fixed – The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running – Dataverse / Dynamics 365


Recently we were bulk updating our records, which would trigger an asynchronous plugin registered on its update. We were using the wonderful Bulk Data Updater (XrmToolBox) plugin for it. We realized if we are updating too many records at once say e.g. 100 Batch Size (total 5K records to be processed), we are getting below exception.

The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running.System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running. Microsoft.Xrm.RemotePlugin.Grpc.ExceptionHandlers.SandboxFabricHostCommunicationException: Error communicating with Sandbox Host

We than updated the Execution settings to process with a Batch Size of 5 with an interval of 60 seconds. This fixed the issue for us.

Also, check –

Hope it helps..

Fixed – Duplicate records in Azure Synapse Link (Dataverse)


Recently for some of our Dataverse environments, we found duplicate records getting created (same GUID) for Notes and Work Order Incident tables in the corresponding CSV files.

Here we were using In place update – In-place updates vs. append-only writes

This was causing the Power BI reports built on top of it to fail.

On raising the ticket, the Microsoft Support team mentioned that this is a known bug for certain regions, and they immediately ran the de-duplication scripts in the background which quickly fixed the issue for us. Also, they specified they will be deploying the fix for the issue in the coming days.

Hope it helps..

Advertisements

Custom Actions missing in the “Perform Action” step of the workflow (Dataverse / Dynamics 365)


We might see some of the custom actions not appearing in the Actions list inside the Perform Action step of the workflow.

This is because the Custom Action would be using one of the following parameter types, which is not supported for Perform Action like

  • Picklist (Optionset)
  • Entity
  • Entity Collection

E.g. we have the following actions defined few are bound to the Contact table, some are Global, and have different types specified as either Input or output parameter.

Out of the above actions defined, we can see only the following actions listed inside the perform actions step of the workflow.

The action which has input as Entity Reference are the ones listed, as it is one of the supported types. For the unsupported types, if used as an output parameter, the actions are listed.

https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/create-own-actions?view=op-9-1#execute-an-action-using-a-process

Hope it helps..

Advertisements

The user cannot write data to this table, only the integration users may write data to this table – Dynamics 365 Project Operations


We configured the Project Operations app in one of our Dataverse Environments, and while creating a Company record we got the below error.

Exception Message: OrganizationServiceFault Microsoft.Xrm.Sdk.InvalidPluginExecutionException: “The user be60d0fd-778e-ee11-be36-00224893a88b cannot write data to this table, only the integration users may write data to this table.” At Mcrosoft.Dynamics.FOCommon.Plugins.Services.ReadonlyEntityService.PreModify(LocalPluginContext localcontext) at Microsoft.Dynamics.FOCommon.Plugins.PluginBase.Execute(IServiceProvider serviceProvider)

Plugin: ExceptionFromPluginExecute: Microsoft.Dynamics.FOCommon.Plugins.ReadonlyEntityPreModify


The error is because the system doesn’t allow creating a Company in the Dataverse / Dynamics 365 Project Operations App. Ideally, it has to be created at the F&O end and integrated with the Dataverse Environment.

Company Concept in Dataverse

The steps to setup / initialize the company data

https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/dual-write/bootstrap-company-data

This was because we had unintentionally installed the dual-write application orchestration package that installs multiple solutions in their Microsoft Dataverse environment, which added the company table.

https://learn.microsoft.com/en-us/dynamics365/project-operations/environment/resource-manual-deploy-dataverse-dualwrite

So one option is to remove the Dual Write solutions installed in that environment.

https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/dual-write/uninstall-solutions

As mentioned, for Dynamics 365 Notes we got the below error, for which we need to raise a Support Ticket.

Luckily in our case, we had just created the environment a few days back, so had the option to Reset it. So we eventually took the path of resetting the environment with the Project Operations app selected.

Hope it helps..

Advertisements