Field List

Specifies the component entity fields that Uniface manages at runtime. Valid values are Automatic (default), All Fields, and User-defined.

Value Description
Automatic Uniface determines the fields that are included in the field list.
All Fields All fields are included in the field list.

User-defined

Load fields in addition to those specified in the Automatic field list.

Description

The Component Entity field list specifies the fields that are loaded into the component at runtime, and managed and formatted by Uniface. By limiting the number of fields that are loaded (known as field subsetting), you can enhance performance.

Automatic Field Lists

If the Field List property of a component entity is set to Automatic, the compiler includes fields in the field list if the field meets one of the following conditions:

  • It is included in the component data structure
  • It is part of a foreign, candidate, or primary key.
  • It is referred to in a ProcScript statement. Only fields referred to by their literal name are included. A field is not included if it:
    • Is referred to in a 3GL routine.
    • Is referred to by indirection.
    • Occurs as a substitution in a global message.
    • Is implicit in a putlistitems/occ instruction.
    • Is referred to in a global ProcScript module that is not available to the compiler when the component is compiled.
  • It contains a ProcScript instruction in the formatToDbms or formatFromDbms trigger in the modeled field.

Prior to Uniface 9.2.01, the automatic field list also included segmented string fields (packing codes SC and SU).

If the compiler determines that at least four consecutive fields are not necessary, the unnecessary fields are excluded. After compiling, Uniface sends more detailed information to the message frame, if the information level is set accordingly.

Be aware of the following:

  • If a ProcScript statement refers to a field without the entity name as qualifier, all fields with the same name in every component entity are included.
  • If you modify a Global ProcScript so that it refers to a field that was previously excluded, you must recompile all components that use this module. Ensure that the Global ProcScript is available in the repository during this recompilation.
  • The component compiler cannot find references to fields in 3GL programs activated by a perform instruction.
  • When a variable-length field is excluded, this stops that field from being written to the database. Therefore, the length and all other indicators specified in the Variable-length techniques definition in the Field Interface template are not updated.
  • If you use release or release/e to allow the user to modify and store an existing occurrence with a different primary key and the occurrence in the component contains fields that are excluded from the field list, the new occurrence after release and store will not contain the excluded fields.
  • If you build a component and define a field list, and then run another component from this one, it uses the same list of fields, even if you have defined a separate field list definition for that component.
  • If you use the Uniface Server, it manages the fields in the entity.
  • Field subsetting is disabled if stored procedures are used.

Related Topics