Indirect read permission is given to the Sales & Receivables Setup tabledata though user have faced the error message for read level permission during the creation of Sales Order.
Since Sales & Receivables Setup is retrieved directly (in Sales Header triggers) you need "Yes" permission.
Indirect as read permission should be used when table is accessed through other objects (e.g. Sales & Receivables Setup in posting sales orders, where is read through codeunit 80 Sales-Post).
table objects need direct access (Read permission =Yes) when it calls another table object (Object type same).
Indirect access works between two/more different types object.
When you want to use indirect permission, the object that does the access needs to have it's Permissions property set accordingly.
Answer to navuser1's last question: No. Object type does not matter here, it is the indirect access that matters. I am not sure exactly what is included in "indirect access" though. Access trough C/AL-code is considered indirect for sure, but how about SourceTable, DataItemTable and similar properties? Does anybody know?
@geordie: the first statement in your latest post is wrong. If you substitute could for should, the second is correct (or maybe I did not understand properly).
What is the meaning of Insert Permission for a Object Type - Report and Object ID - xxxxx in Navision Role & Permission Level ?
It means, that, given you have the right to design reports, you are allowed to create Report ID xxxxx. A permission line either applies to the distinct object given by Object Type and Object ID, or to all objects of a given type if the ID is 0.
If Insert Permission = Blank that's mean this role is not allowed to create a any new Report. Here Object ID does not matter.
No. It only means, that this line does not grant the rigth. There might be another line, in this or another role that grants the right to the user. You cannot revoke permissions. By default you have no permissions. If any permission line anywhere grants you access you have it.
Comments
Sales & Receivables Setup is used several times in sales order creation.
User has "Indirect" Read permission on the same tabledata (not "Yes").
And user is facing the error message like You do not.. Read permission...Sales & Receivables Setup table
when creating a SO.
Indirect as read permission should be used when table is accessed through other objects (e.g. Sales & Receivables Setup in posting sales orders, where is read through codeunit 80 Sales-Post).
Indirect access works between two/more different types object.
Am I right ?
Answer to navuser1's last question: No. Object type does not matter here, it is the indirect access that matters. I am not sure exactly what is included in "indirect access" though. Access trough C/AL-code is considered indirect for sure, but how about SourceTable, DataItemTable and similar properties? Does anybody know?
@geordie: the first statement in your latest post is wrong. If you substitute could for should, the second is correct (or maybe I did not understand properly).
What is the meaning of Insert Permission for a Object Type - Report and Object ID - xxxxx in Navision Role & Permission Level ?
If Insert Permission = Blank that's mean this role is not allowed to create a any new Report. Here Object ID does not matter.
I have not found any meaning/usage of the Object ID, if someone find anything kindly reply.
No. It only means, that this line does not grant the rigth. There might be another line, in this or another role that grants the right to the user. You cannot revoke permissions. By default you have no permissions. If any permission line anywhere grants you access you have it.
See the comment above.
What is the relation between Tabledata & its Execute Permission ? Is there any ? I have not find any relation.
Read permission,Insert Permission, Modify Permission, Delete Permission and Execute Permission.
Exp. -
Does 'Modify permission' require any read permission, something like that ?
Thank you.