Looking for input on managing the various ways of making a UD field required.
We have several UD fields (via Extended UD Table Maint), that we consider “required”. By “required” We mean that folks must enter the info during data entry. But may be blank for pre-existing records, or when records are updated via other processes.
1. The “Required” field in Extended UD Table Maint.
I generally avoid making UD fields required this way, as it’s tough to know all the potential processes that could create or update the record. And unless all those processes are customized to populate that field, you have the potential for a process to get hung up.
For example, A required UD field on the InvcHeader would be easily handled by a custom field on the AR Invoice Entry screen. But a Counter Sale order (set to Auto Invoice), would fail as there’d be no values in the UD field when the record was created.
2. Form event customization to prevent saving record on blank (or invalid) value
This requires customizing every form that might create the record. Maintaining these customizations can be a real pain. And there’s always the chance that a menu item didn’t get updated to use the latest customization.
3. BPM to Raise an Exception
This is usually my go to method. Seems to provide the most flexibility. The exception can display a message guiding the user to exactly what needs to be corrected. However, it does suffer a similar problem as #1, as if the process is called from some unexpected initiator, it may prevent the process from completing - unless the BPM code dynamically determines if a blank is acceptable, based on the calling context.
A very nice thing about BPM’s over form customization’s, is that independent BPM’s can exist for the same process, and can easily be disabled one at a time.
And although not a “hard stop”, I’ll often customize the forms to highlight UD fields (or even builtin ones) to aid data entry in not missing a field that we’d really, really , really, like to be populated.
Thoughts?





