Получение списка блокированных объектов, так как это делает SM12, можно воспользоваться ФМ ENQUEUE_READ. Так как записи блокирования находятся не в таблице, то другим способом типа прочитать из БД это сделать никак.
DATA: BEGIN OF lt_sec OCCURS 1.
INCLUDE STRUCTURE seqg3.
DATA: END OF lt_sec.
CALL FUNCTION 'ENQUEUE_READ'
* EXPORTING
* GCLIENT = SY-MANDT
* GNAME = ' '
* GARG = ' '
* GUNAME = SY-UNAME
* LOCAL = ' '
* FAST = ' '
* IMPORTING
* NUMBER =
* SUBRC =
TABLES
enq = lt_sec
EXCEPTIONS
communication_failure = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
По умолчанию читаются данные блокирования для текущего манданта и пользователя под которым запущен процесс. Но если поле манданта передать как space, то получите данные блокирования в целом по всем мандантам, как впрочем и всем пользователям, ну если надо. Какая польза? Ну это уже каждый сам смотрит куда это можно применить.