!ERROR=20 is a general error indicating bad statement syntax or meaningless information. Some !ERROR=20(s) are issued by the compiler and some are issued during execution.
Illegal punctuation or a misspelled verb.
Executing a user-defined function (FNx) where the number of arguments in the FNx list does not match the DEF argument list.
REMOVE with no KEY=.
Invalid operation in an EDIT statement, such as an illegal parameter option.
Duplicating an I/O option in an I/O statement.
Invalid string template descriptor.