Aqui tienes la funcion para bloquear una tabla por usuario igual te ayuda
CONCATENATE gv_pernr gv_fecha_parte INTO varkey.
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
mode_rstable = 'E'
tabname = 'ZCOCPPACK'
varkey = varkey
x_tabname = 'X'
x_varkey = 'X'
_scope = '3'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 1.
IF sy-msgty = 'E' AND sy-msgno = 601.
MESSAGE e055(zpco) WITH sy-msgv1.
ELSE.
MESSAGE e055(zpco) WITH 'de otro usuario'.
ENDIF.
WHEN 2.
MESSAGE e055(zpco) WITH 'por fallo en el sistema'.
WHEN 0.
WHEN OTHERS.
MESSAGE e055(zpco) WITH 'sin determinar'.
ENDCASE.
y esta para desbloquear
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
mode_rstable = 'E'
tabname = 'ZCOCPPACK'
varkey = varkey
x_tabname = 'X'
x_varkey = 'X'
_scope = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '
.
|