WRITEPERMISSION Function (Record)
Determines whether a user can write to a table. This function can test for both full write permission and partial write permission that has been granted with a security filter. A write permission consists of Insert, Delete, and Modify permissions. The WRITEPERMISSION functions checks for both direct and indirect permissions on these operations.
Ok := Record.WRITEPERMISSION
A record in the table from which you want to determine if you have write permission.
Property Value/Return Value
Specifies whether you have permission to write to the table using any of the following record functions:
true if you have direct or indirect permission to insert, modify, and delete all or some records in the table; false if you cannot write to the table. For example, if a permssion set grants indirect Insert and Modify permission to a table, but not Delete permission, the function will return false. If you change the permission set to grant Insert permission also, the function will return true.
This function uses the filter that is currently applied to the Record to determine whether you have write permission. If no filter is applied, the function tests for full write permission. If a filter has been set, the function only tests for write permission within the range of the filter.
To determine whether the user has a partial read permission, because a security filter has been applied, view the Permissions page. For more information, see How to: Set Security Filters.
If you do not have permission to write to a table and you attempt to write, a run-time error occurs. This function allows you to determine in advance if you have write permission. When the permissions are checked, the combination of permissions in the license file and the user's permissions in the Permission table is considered.
The following example uses a record from the Vendor table to check whether the user is granted write permission to the Vendor table. The return value from the WRITEPERMISSION function is stored in the varHasWrite variable and displayed in a message box. The value, Yes is displayed because the user can write to the Vendor table. This example requires that you create the following variables in the C/AL Globals window.
MyRecord.GET('10000'); varHasWrite := MyRecord.WRITEPERMISSION; MESSAGE('Table has Write permission? %1', varHasWrite);