FAAAL21 UF A E K DISK
F RENAME(REC:arec)
D jkdata E DS extname(aaal21)
c read arec jkdata
after compiling, the error message is :
RNF7701 20 The data structure is not allowed for the operation
according to the book <ILE RPG Reference?SC09-2508-4?>, the above operation should be allowed. I want to know WHY. Thank you very much! :)
Software/Hardware used:
ASKED:
August 1, 2005 11:49 PM
UPDATED:
October 31, 2009 7:57 AM
Without knowing what you’re trying to do, there’s a few things you have to look at. First off, the book says (for READ):
“If the data-structure operand is specified, the record is read directly into the data structure. … If name refers to an externally-described file or a record format from an externally described file, the data structure must be a data structure defined with EXTNAME(…:*INPUT) or LIKEREC(…:*INPUT)”.
Your file is defined as update/add so you could read, write or update a record. You may need more than one data-structure. The following would work…
D jkDataIn ds likerec(arec: *input) //for reads
D jkDataOut ds likerec(arec: *output) //for writes and updates
However the error you got says: “Recovery: For an input operation, define the data structure using keyword LIKEREC, with the record name as the first parameter and *INPUT as the second parameter. For output operations, code *OUTPUT as the second parameter of LIKEREC. Compile again”.
So again, you may want to read up on the other opcodes, likerec() and extname().
Hope that helps!