Q. I’m having problems using /Copy in a free format RPG block. The compiler error I get is:
RNF0257 Form-Type entry not valid or out of sequence.
What am I doing wrong?
A. When you’re coding in free format, this error message almost always means that the compiler ran into fixed format syntax in a free format block.
/Copy members are considered to be fixed format syntax, even if you code the /Copy statement in a free format block of code. If the /Copy member contains free format syntax, you should enclose the free format code in the /Copy member in its own /Free and /End-free delimiters.
Similarly, if you are coding using “fully free” format (with a **Free in the first statement), /Copy members are considered to be fixed format unless you also include the **Free directive in the first statement of the /Copy member.
In the primary source member, you need not code /End-free before you code the /Copy directive:
/Free
... (Free format code)
/Copy library/srcfile, member
... (More free format code)
/End-free
You can also indent the /Copy directive, if you wish, instead of beginning in column 7.
Incidentally, the conditional compilation directives(/Define, /Undefine, /If, /Elseif, /Else, /Endif, and /Eof) also work in free format syntax. And, contrary to IBM’s documentation, you can also indent these directives in free format syntax.