Extensible Data Security (XDS) with Dynamics 365 Finance and Operation

XDS is one of the sparkling features in Dynamics. It takes you beyond the forms achieving the ultimate data control. It is one of the key features that captivate the customer heart and mind. It is a great dramatic closing for your demos.

So for example you have Buyer who only work with selective suppliers and deals on selective items, in such data security scenarios we can use XDS Extensible Data Security.

for example on one of the demo i have created this XDS policy where i am filtering the items based on Buyer group (we can do Buyer group settings on different levels, Worker, Items, Supplier ). We are using custom security roles and policies (using XDS Framework) in this implementaion. We have created a security policy query on ECORESPRODUCT table as shown below. It filters the item based on Buyer group assigned to current logged in worker.

Then we have created the security policy and added the constraints tables, Property settings related to this security policy is shown below. Lastly we associate the role with the security policy to apply the data security/filter on that specific role. So now when we assign that custom role to any user, that user will see the filtered items.

  • Set the PrimaryTable property on the policy to EcoResProduct.
  • Set the Query property on the policy to custom query we have created above.
  • If you want the primary table to be secured using this policy, set the ConstrainedTable property to Yes.
  • Set the Enabled property to Yes or No. This property can be used to control whether the policy will be enforced by the extensible data security runtime.

Setting the context

Set the ContextType property to one of the following:

  •  ContextString – Set the property to this value if a global context is to be used to determine whether the policy should be applied. When required, this context string needs to be set by the application using the XDS::SetContext API.
  • RoleName – Set the property to this value if the policy should be applied only if a user in a specific role accesses the constrained tables.
  •  RoleProperty – Set the property to this value if the policy is to be applied only if the user is a member of any one of a set of roles that have the ContextString property set to the same value.

 

When adding a constrained table, you must also choose the relationship to be used to join the primary table with this constrained table.

Now build , synchronize the AOT Query and Security policy, Refresh browser and open Released product form.

Thank you for reading

Happy Daxing 🙂

D365FO Financial reports (Management reports) error “The Operation could not be completed because the item no longer exists.”

Hi Guy – i hope you are doing great,

Today i am sharing my experience on one of the problem i have faced recently on Financial reports in D365FO, when we edit the report it opens the designer and shown this error “The Operation could not be completed because the item no longer exists.”

This environment we have created by replicating the data and code based from another environment and after that cloning work all components are working fine except this Financial report thing.

After some research and through search i came to know that we have to refresh the data mart to solve this problem.

These steps are for a sandbox/UAT environment. If you need to reset the data mart in your production environment, contact support.

To rebuild the data mart using the steps found here:

https://mix.office.com/watch/36g9prxvg885

The basic steps are as follows:

  1. Run PowerShell as Administrator.
  2. Browse to .\MRInstallDirectory.

    For a demo or DEV deployment, this will typically be J:\MROneBox\MRInstallDirectory

    For Production or HA deployments, this will typically be J:\MRProcessService\MRInstallDirectory for the BI machine and F:\MRApplicationService\MRInstallDirectory for the AOS.

  3. In the PowerShell window type the following command to import the MRDeploy.psd1 module: Import-Module .\Server\MRDeploy\MRDeploy.psd1
  4. You can then run the following command to reset the data mart:

    Reset-DatamartIntegration -Reason OTHER -ReasonDetail “Testing reset”

  5. Stop MR Process Service.
  6. Answer Yes when prompted in PowerShell to continue.
  7. Start MR Process Service.