RDML I/O Return CodesThis is a featured page

Return Code Description/Meaning
OK OKAY. Operation completed normally. No errors detected.
ER FATAL ERROR. Fatal file error detected. Error is probably irrecoverable. Locate cause of problem, correct, and re-attempt the operation.
VE VALIDATION ERROR. Insert, update or delete operation failed to satisfy a file or dictionary level validation check.
NR NO RECORD. No record(s) could be found matching the request.
EF END OF FILE. End of file detected during read operation.
BF BEGINNING OF FILE. Beginning of file detected during a read backwards.
EQ EQUAL KEY FOUND. A record with a key equal to the key specified was found in the file.
NE NO EQUAL KEY FOUND. No record could be found with a key equal to the key specified.

There are various ways of checking the return code after an I/O operation has been performed.
  1. The first is to always use the IO_STATUS(*STATUS) default parameter on an I/O command. In this case the return code is mapped into a field called #IO$STS which can be referenced just like any other field.
    For example:
    FETCH FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER)
    IF COND('#IO$STS *NE OK')
    MESSAGE MSGTXT('Order not found in current order file')
    ENDIF
  2. The second is to use the IO_STATUS parameter to map the return code into a user defined field.
    For example:
    DEFINE FIELD(#RETCODE) TYPE(*CHAR) LENGTH(2)
    FETCH FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER) IO_STATUS(#RETCODE)
    IF COND('#RETCODE *NE OK')
    MESSAGE MSGTXT('Order not found in current order file')
    ENDIF
  3. The third, and probably the best, is to use the IF_STATUS command to test the last return code automatically. The example already used would become:
    FETCH FIELDS(#ORDERHEAD) FROM_FILE(ORDHDR) WITH_KEY(#ORDER)
    IF_STATUS IS_NOT(*OKAY)
    MESSAGE MSGTXT('Order not found in current order file')
    ENDIF



petewood
petewood
Latest page update: made by petewood , Oct 28 2008, 8:32 AM EDT (about this update About This Update petewood reformatted table - petewood


view changes

- complete history)
More Info: links to this page
There are no threads for this page.  Be the first to start a new thread.

Related Content

  (what's this?Related ContentThanks to keyword tags, links to related pages and threads are added to the bottom of your pages. Up to 15 links are shown, determined by matching tags and by how recently the content was updated; keeping the most current at the top. Share your feedback on Wetpaint Central.)