Lo que hace el RECID es leer una tabla en base a un número de registro generado por PROGRESS. Cuando das de alta un registro en una tabla, PROGRESS lleva un consecutivo y le da un número de identificación único. De tal manera que en base a ese número de identificador puedas acceder al registro de una tabla.
Por ejemplo, si doy de alta un registro en la tabla xxuno_mstr y quisiera, posteriormente leer ese mismo dato, pero accesandolo por medio de su identificador de registro, entonces haría lo siguiente:
DEF VAR lv-recid AS RECID. /* Creo variable que contenga el identificador. */
CREATE xxuno_mstr.
ASSIGN xxuno_llave = "unico".
xxuno_campo = "A"
xxuno_campo = "B"
lv-recid = RECID(xxuno_mstr). /* Guardo el ID que se genera */
FOR EACH xxotra_tabla NO-LOCK:
.
.
.
FIND xxuno_mstr WHERE RECID(xxuno_mstr) = lv-recid NO-LOCK NO-ERROR.
/* Por último leo el registro que guarde anteriormente */
Lo anterior sería lo mismo a guardar en lugar de recid la llave de la tabla a buscar:
DEF VAR lv-llave LIKE xxuno_llave.
CREATE xxuno_mstr.
ASSIGN xxuno_llave = "unico"
xxuno_campo = "A"
xxuno_campo = "B"
lv-llave = xxuno_llave.
FOR EACH xxotra_tabla NO-LOCK:
.
.
.
FIND xxuno_mstr WHERE xxuno_llave = lv-llave NO-LOCK NO-ERROR.
SALUDOS.