---
sourceDocument: Brazil Platform security
sourceDocumentLink: https://www.servicenow.com/docs/r/platform-security

 Release :

    - brazil

ft:locale :

    - en-US

ft:publication_title :

    - Brazil Platform security

ft:clusterId :

    - psec

bundleId :

    - psec

workflow :

    - Platform


---

# ACL control of function fields

# ACL control of function fields {#ariaid-title1}

Release version: Brazil  
Updated September 10, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of ACL control of function fields

Starting with the Brazil release, ServiceNow enforces stricter access control on function fields by requiring users to have access not only to the function field itself but also to all contributing fields used in the function's definition.
This change enhances security by preventing users from viewing function field results if they lack permission on any contributing field.
Show full answer Show less  

## Key Features

* **Function Fields**: Fields whose values are computed using other fields (contributing fields) as arguments in a function definition.
* **Access Checks**: In Brazil and later releases, both the function field and all its contributing fields must have appropriate ACLs granting access for the user to read or view reports on the function field.
* **Operations Affected** :
  * **read** --- User must have read access to both the function field and all contributing fields.
  * **reportview** --- User must have reportview access to the function field and all contributing fields, plus role-only read ACLs without conditions or scripts.

## Practical Implications for ServiceNow Customers

When configuring ACLs on function fields, ensure that:

* Users have the necessary roles and permissions on all contributing fields involved in the function.
* ACLs without conditions or scripts are used where possible for contributing fields to enable reportview access smoothly.
* Scripts in ACLs on contributing fields can block reportview access even if the user has the required role.

## Examples

* **All fields allow access:** A user with the required role can read and reportview the function field successfully.
* **Contributing field denies read access:** The user is denied access to the function field because at least one contributing field denies read permission.
* **Contributing field ACL contains a script:** The user may have read access but can be denied reportview access due to the script in the ACL on a contributing field.

## What to Expect

This enhanced ACL enforcement ensures that users only see computed function field values when they have explicit access to all underlying data fields, improving data security and compliance. Customers should review function field ACLs and contributing field permissions when upgrading to Brazil or later releases to avoid unexpected access denials.  
When evaluating access to a function field, in addition to checking access to the
function field itself, the system also checks access to the function's contributing fields.
Contributing fields are those used as the arguments in a given function definition.

For more information about function fields, see [Function field](https://www.servicenow.com/docs/access?context=platform-support-functions&version=brazil&pubname=brazil-platform-administration&ft:locale=en-US).

In Rome and earlier, the system simply checks access to the function field itself (as with any other field). If the ACLs on that field allow access, the user receives the resulting value, regardless of whether the
user has access to the contributing fields.

In Brazil and later, the system also requires access to all contributing fields in order to allow access to the function field. If one or more of the contributing field ACLs refuse access, the function field
also refuses access.

The only operations affected by the new requirement are read and report_view. Report_view has
its own additional requirements.  
{#acl-function-fields__table_ush_tqq_nnb__entry__2}

| Operation | Description |
|-|-|
| read operation | A user has read access to a function field only if both of the following are true: * The user has read access to the function field. * The user has read access to all of the contributing fields used in the function. {#acl-function-fields__ul_jms_xqq_nnb} |
| report_view operation | A user has report_view access to a function field only if all of the following are true: * The user has report_view access to the function field. * The user has report_view access to each of the contributing fields. * There is a role-only read ACL without conditions and without a script, and the user has that role. * The user has role-only read access to the contributing fields, such that only ACLs without condition or script can allow. {#acl-function-fields__ul_l45_drq_nnb} |
[ ]

{#acl-function-fields__table_ush_tqq_nnb}

## Examples {#acl-function-fields__section_vqm_5w4_3nb}

Given:

* Table: salary
* Columns: base, bonus, total (all are Integers in this example)
* Function field: The total column is marked as a function field, with function definition `glidefunction:add(base, bonus)`.
* Contributing fields: base and bonus, since they're used in the function definition
* Roles: salary_admin, bonus_admin
{#acl-function-fields__ul_yyy_bx4_3nb}  
{#acl-function-fields__table_tmf_15q_nnb__entry__2}

| ACLs | Result |
|-|-|
| total, base, bonus: read and report_view for role salary_admin, with no conditions or scripts | A user with the salary_admin role is granted read and report_view access to total because they have the required role. |
[Table 1. Example 1: All fields allow access]

{#acl-function-fields__table_tmf_15q_nnb}  
{#acl-function-fields__table_hbj_4vq_nnb__entry__2}

| ACLs | Result |
|-|-|
| * total, base: read and report_view for role salary_admin, with no conditions or scripts * bonus: report_view for role salary_admin , with no conditions or scripts * bonus: read for role bonus_admin, with no conditions or scripts {#acl-function-fields__ul_ocn_cbp_3nb} | A user with the salary_admin role is refused read and report_view access to total, because bonus refuses read access to their role. |
[Table 2. Example 2: Contributing field refuses read access]

{#acl-function-fields__table_hbj_4vq_nnb}  
{#acl-function-fields__table_abn_xvq_nnb__entry__2}

| ACLs | Result |
|-|-|
| * total, base: read and report_view for role salary_admin, with no conditions or scripts * bonus: report_view for role bonus_admin, with no conditions or scripts * bonus: read for role salary_admin, with a script (note that it doesn't matter what's in the script, only that it's there) {#acl-function-fields__ul_o2c_kbp_3nb} | A user with the salary_admin role is granted read access to total, because they have the required role for all fields. But the same user with the salary_admin is refused report_view access, because the read ACL with the script refuses access by default for this case, even though they have the required role. |
[Table 3. Example 3: Contributing field ACL has script]

{#acl-function-fields__table_abn_xvq_nnb}

