Table update rule (Are updates allowed?) is ignored under specific conditions

Hello AppSheet Community,

I am experiencing an issue where the “Are updates allowed?” rule in a table’s settings is being ignored.

My Goal:
I want to make records in my table “Заявки” read-only for users with the role “Менеджер” if the record’s status in the [Статус периода] column is “Закрыт”.

What I Have Done:
I have set the following formula in the Are updates allowed? setting for the “Заявки” table:

IF(
AND(
[ТестРоли] = “Менеджер”,
[Статус периода] = “Закрыт”
),
“READ_ONLY”,
“ALL_CHANGES”
)

The [ТестРоли] is a working virtual column with the formula: LOOKUP(USEREMAIL(), "Сотрудники", "Email", "Роль").

The Problem:
Even when a “Менеджер” user views a record where [ТестРоли] is “Менеджер” and [Статус периода] is “Закрыт”, the user can still successfully edit and save the record without any error message.

Diagnostic Steps I Have Already Taken:

  1. Data confirmed: I have verified with virtual columns that for the user and record in question, [ТестРоли] correctly shows “Менеджер” and [Статус периода] correctly shows “Закрыт”.
  2. Robust formulas tested: I have tried using UPPER(TRIM(...)) to account for whitespace or case sensitivity issues. This did not solve the problem.
  3. No Slices: I have confirmed that there are no Slices on the “Заявки” table that could be overriding the permissions.
  4. No Action Conditions: The system “Edit” action has no formula in its “Behavior” condition.
  5. Isolation Test (Crucial Finding):
  • Setting the Are updates allowed? rule to just "READ_ONLY" correctly blocks all edits.
  • However, setting the rule to IF(CONTAINS([Статус периода], "Закрыт"), "READ_ONLY", "ALL_CHANGES") fails and does not block edits on closed records.

This indicates that the mechanism works in principle, but fails when trying to evaluate a condition based on a column value on the server side during a sync. This seems to be a platform-level issue.

Could you please advise?

App Name: [Здесь впишите имя вашего приложения]
Table Name: Заявки

Thank you.

You must have missed this message:

You can’t do that from there. You’d have to use formulas in the edit/delete actions themselves if you need to adjust the permissions on a per record basis. Or define slices.

2 Likes

This AI is incompetent.