Precedence of Default Values, Shorthand Entry Values,
and COPY Values in Key Flexfields
There are four ways you can put a value into a key flexfield segment (in order of precedence, where the first overrides the second, which overrides the third, which in turn overrides the fourth):
1. Enter a value manually into the segment once the flexfield window has popped open.
2. Insert a value using a shorthand flexfield entry alias
3. Copy a value into the segment from a form field using the COPY parameter to POPID (Implementing Key Flexfields)
4. Define a default value for the segment using the Key Flexfield Segments form
The value you copy using the COPY parameter in POPID overrides any default value you set for your segment(s) using the Key Flexfield Segments form. COPY does not copy a NULL value over an existing (default) value. However, if the value you copy is not a valid value for that segment, it gives the appearance of overriding a default value with a NULL value: the invalid value overrides the default value, but the flexfield then erases the copied value because it is invalid. You should ensure that the field you copy from contains valid values. However, shorthand flexfield entry values override COPY values.
If your key or descriptive flexfield has required segments (where a value set requires values and, for a key flexfield, the REQUIRED parameter in POPID is set to Yes), the flexfield uses your default values in certain cases. If you try to save a record without ever entering the flexfield pop-up window, then the flexfield (in the VALID or VALDESC routine) attempts to fill in all the required segments with your default values. If you have not specified valid default values for all your required segments, the flexfield generates an error message and requires your user to enter any missing values before saving the row. The default values never override a value your user enters manually.