Yo tengo el siguiente código y funciona perfectamente
Código COBOL:
MOVE "Text" OF CAMPO1 TO ARTCOD.
START ARTICULOS KEY LESS THAN XACOD
INVALID KEY
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "*ERROR: Principio de fichero ..."
WS-ATENCION
ESTILO
END-INVOKE
INVOKE BTANT "SetFocus"
EXIT PROGRAM
END-START.
READ ARTICULOS PREVIOUS RECORD WITH NO LOCK
AT END
INVOKE POW-SELF "Alarm"
ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
INVOKE POW-SELF "DisplayMessage"
USING "*ERROR: Principio de fichero ..."
WS-ATENCION
ESTILO
END-INVOKE
INVOKE BTANT "SetFocus"
EXIT PROGRAM
NOT AT END
MOVE ARTCOD TO "Text" OF CAMPO1
CALL "EXISTE"
END-READ.
Lo único que se me ocurre, es que no hagas correctamente el START, y en vez de
LESS THAN, pongas
GREATER THAN ...
Un saludo.-