In Receipt Entry, if we make the Arrival Date field read-only access, we get an error “a valid arrival date is required” when trying to do a receipt. If we make the field Full access, the error doesn’t come up using the same process. Anyone run into issues when changing field security levels?
One of the concerns with field security is that there can be unintended consequences downstream and those consequences can bubble up in unexpected ways like what you’re experiencing. If at all possible, my recommendation is to use any other mechanism before field security to accomplish a goal for that reason.
If the process that the user is doing would populate this field with a value and field security is preventing it, the business logic would produce this error message.
A few ways to prevent a user from changing the value of a field instead of field security (assuming that is the end goal):
- remove field security on this field, and create a BPM to prevent the change of this field from any to another for updated rows by users in XYZ security group.
- set the field to read-only via a UI customization instead of via field security. The business logic will still allow this field to be set by the method call, but prevent the end user from changing it.
- Extended Properties may be an option as well. It’s been a while since I’ve worked in that area.
Seems like Field Security will work only if it is a free form field that doesn’t get pre-populated. Does this seem correct?
If one is trying to use read-only with field security in a way that only prevents the user from changing a value, the system can’t try to populate the read-only field during a transaction that is triggered by the user that is restricted to read-only.
Customize the UI and change Visible to False.
Arrive date will still be seen in the tracker and not entry. Then you can display the base UI to the Warehouse manager only.
Receipt Entry [ hidden field ]
Receipt Entry - Manager Only [base version]
Similar Example: Restriction set at Menu Maintenance
We’re trying to minimize customizations. We may have to go the BPM route.
FWIW -
When when customize a screen (form, window, whatever you call it), we:
-
Name the customization like PG_01 (for the first customization to the Product Group screen).
-
Add the customization name to the window’s title
-
Rename the Menu to display the customization used
Note that this menu shows both the base “Part”, and customized “Part (PE_02)”. Menu security is used to determine which is shown. Only Security Managers can see “Part”. Everyone else only sees “Part (PE_02)”.