Try this. Used standard lock functionality.
FORM CHECK_MULTIPLE_RUN.
DATA: LV_PROGRAM LIKE INDX-SRTFD.
LV_PROGRAM = SY-REPID.
CALL FUNCTION 'ENQUEUE_ESINDX'
EXPORTING
SRTFD = LV_PROGRAM
SRTF2 = 0
EXCEPTIONS
FOREIGN_LOCK = 1 " _WAIT = 2
SYSTEM_FAILURE = 2.
IF SY-SUBRC NE 0.
MESSAGE E012(ZBHR) WITH SY-MSGV1.
ENDIF.
ENDFORM.