Supported RPG Features

The %FIELDS built-in function restricts which fields an UPDATE writes back to the record. Without %FIELDS, all fields in the record format are updated; with it, only the named fields are written and the remaining fields retain their on-disk values.

UPDATE INVMASTR %FIELDS(QTY:PRICE);  // only QTY and PRICE are updated
UPDATE(E) SFLREC %FIELDS(OPT);       // (E) and %FIELDS can coexist

Field names are colon-separated and case-insensitive. %FIELDS is free-format only; there is no fixed-format equivalent.