We have a user getting the error message “Access denied to method processReport in class PurchReceiptsListDP” when he is trying to print a receipts list for a PO. This method seems to be called by SSRS at runtime and the data in the report comes from two sources.
1. PurchReceiptsListDetailsTmp table
2. PurchReceiptsListHeaderTmp table
So far, I cannot seem to figure out what might be causing this message. Has anyone else seen this before or know of any possible solutions?
Thanks in advance for any assistance.
To see how access to this server method is typically granted, please inspect the SSRS report named PurchReceiptsList in the AOT. If you expand the Designs node, then the Report node, you'll find the Permissions node, under which there are Table, Server Methods, and Associated Forms branches.
The Server Methods branch contains a reference to PurchReceiptsListDP.processReport. It's properties allow you to specify an EffectiveAccess of Invoke. I suspect in your case this permission has somehow been removed from the SSRS report.
This works very much like how a Form can grant access to its underlying tables.
If you were having this problem across all SSRS reports, I would suspect a problem with your BC Proxy Account and its setup within SSRS itself.
Hope this helps, and good luck!
Add the processReport method of the class to the previleges permission under server methods.If you get empty data returned then you might need to add the query's datasource tables also under permissions.
Thanks for the response. I took a look at the report as you suggested below in the AOT. I found the reference to PurchReceiptsListDP.processReport in the Server Methods branch. The properties were already set as follows.
System Managed: Yes
So, it appears that there must be something else going on here. I'm continuing to investigate, but am stumped on this one at the moment. I'm not sure what caused it to stop working.
Check that output menu item property LinkedPermissionObject points to the correct SSRS report.
Hope this helps.
I am experiencing something similar with R2 CU1 - the permissions defined under the SSRS report are honoured in my development environment as Brandon suggests, but when the model is moved to a different environment and SSRS reports are redeployed, the report permissions no longer seem to be inferred.
I have to explicitly add Invoke access on the processReport method (and any other required tables) to the associated privilege to make this work consistently (even though it works in my development environment when launching ax32 as a different user.)
Similar problem here with SalesPackingSlipDP.processReport and R2 CU7. It works in system A, but in system B (which is a copy of system A) we get the sccess denied for method message.
Thanks to Noakesey for the tip with explicitly setting the invoke access on the privilege.
try deleting all the CIL generated file from the AOS folder of the server where it is not running.
After that, regenerate the full CIL.
Hope this can help.
If the permission node under the design of the SSRS report seems OK, as Brandon explained, you can try to export and re-import the SSRS report by XPO. For us, it solved the problem (on AX2012 R2 CU7) without having to add any permission on roles or privileges.
Under the hood, we found out that re-importing the report (re)generate data in the ModelSecurityPermission table of the model database, especially the permissions links between the report and the tables that it uses, and the data provider class.