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.

 

 

Consuming Dynamics AX 365FO Data entities using Web API (Part 2)

In this part of blog we will discuss, how we can create App on Azure, which is mandatory for creating this integration, if you have not gone through my last blog about setting up projects for creating this integration then please go through that

Consuming Dynamics AX 365FO Data entities using Web API (Part 1)

Now to start this:

1. We need to login to https://portal.azure.com we need Azure subscription, without Azure subscription we can not do this integration with D365FO

2. We could also create Trial subscription for demo purpose
Create an Azure trial

Once we are logged in to Azure then we will have interface like this and we will do these steps for creating Web Api App on Azure.

We need to click Azure Active Directory on Left pane, and then click App registration on center pane

Click New Application registration
Fill out App name, type (Native or WebApi) and Url that could be http://localhost. Click create to create the App.
Once app is created, click settings for giving access. Also note down the Application Id, This will be used in the Web api project we will create for consuming the data entity.

Click Add on Required permission page and add Microsoft Dynamics ERP permission and Grant it also.

Create private Key also, this is needed form Web Api apps. Please take a note of this also, this will be used as ActiveDirectoryClientAppSecret key in you web api application project.
We also need to list this application inside dynamics ax 365, In system administration module> Setup > Azure Active Directory applications. We need to place the Application id on this form

This concludes the Azure configuration part and listing of App on Azure portal, in the next blog we will see how we can consume Odata entities inside Web api project and how to make this integration happen.

Thanks

Amir 🙂 Happy Daxing.

 

 

 

 

 

%d bloggers like this: