So, I am setting up our new environment and went to go change the ClassID and ProdCode on Part to Mandatory fields and that checkbox is no longer there. Instead, there is a Required when adding checkbox.
Did they change this? Based on the verbiage, required when adding sounds like a user could still go and remove a part class from an existing part. Anyone test this checkbox?
For performance and annoyance reasons, the “required” check is only performed when a record is added or the field you want to require is changed.
This is a long standing behavior but there have been questions about how it works so the verbiage change is an attempt to help with understanding how the required rule is applied and to reduce support calls / bug reports.
The support calls made in this area usually occur when there are existing records in the table and a decision is made to require a field that was previously not required. When an existing records is edited and the newly required field is empty and a field other than the new required field is changed, the user is allowed to save the record with no error on the required field being empty. Why is that? Performance and Annoyance.
Performance - for performance reasons, Epicor does not validate every field on every save. Business rules are applied to all fields on new records and to all fields changed on existing records (not entirely the case as “cross field” rules may get applied on every save).
Annoyance - the record was considered valid before the user made an unrelated change but now it is an error? From the user standpoint, they don’t understand why they are getting the error - they didn’t change that field - and they often do not know what value to enter.
If you need to make a field required and there is already data in the table, it is recommended that you use a UBAQ to update the field so it has a proper value and you save yourself from a different annoyance question - “how did this record get in the system when that field is supposed to be required?”