$FunSkip
Skip to next output record for $FunImg, $FunsStr
This skips the current Fast/Unload output record for a request, so subsequent $FunImg and $FunsStr calls operate on the next record.
The $FunSkip function accepts one argument and returns a numeric result.
Syntax
%result = $FunSkip(req_num)
The only argument is the request identifier returned by $FunLoad for the request from which data is to be retrieved. This is a required argument.
%result is set to either of these:
- 1
- An error code, if there is no record to skip:
1 — Record skipped 0 — Fast/Unload completed with return code 0; no more data -1 — Request not found <-1 — Fast/Unload completed with non-zero return code, value returned is negative of return code; no more data
Usage notes
- If Fast/Unload has not unloaded any records yet, $FunSkip waits for the first record. If $FunSkip returns a value less than or equal to 0, the request has completed.
- $FunSkips can be mixed with $FunsStr and $FunImg calls for the same request. In addition, multiple unloads can be performed simultaneously with $FunSkip calls for the different requests mixed freely.
Example
The following example compares the first two bytes of each unloaded record with XX
. If they are equal, the record is copied into image IMAGE
and then processed; otherwise the record is simply skipped.
%REQ = $FunLoad('DATA', , , '*') IF %REQ LE 0 THEN STOP END IF %RC = 1 REPEAT WHILE %RC > 0 %TEST = $FunsStr( %REQ, 1, 2) IF %TEST EQ 'XX' THEN %RC = $FunImg( %REQ, %IMAGE:ITEM ) CALL PROCESS ELSE %RC = $FunSkip END IF END REPEAT