*
* This program prevents the users from logging in to a specific application server
*
DATA: BEGIN OF BDC_TAB1 OCCURS 5.
        INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB1.
DATA: BEGIN OF VERSION_INFO OCCURS 0,
        LINE(80),
      END OF VERSION_INFO.
CALL 'SAPCORE' ID 'ID' FIELD 'VERSION'
               ID 'TABLE' FIELD VERSION_INFO-*SYS*.

LOOP AT VERSION_INFO.
  IF VERSION_INFO-LINE CS 'node name'.
    SHIFT VERSION_INFO-LINE LEFT UP TO 'm'.
    SHIFT VERSION_INFO-LINE BY 2 PLACES.
    SHIFT VERSION_INFO-LINE LEFT DELETING LEADING '# '.
    EXIT.
  ENDIF.
ENDLOOP.
IF VERSION_INFO-LINE = 'nodename'.
  IF SY-UNAME <> 'SAP*' AND SY-UNAME <> 'DDIC'.
    CALL FUNCTION 'POPUP_TO_INFORM'
         EXPORTING
              TITEL = 'UNSUCCESSFUL LOGIN'
      TXT1  = 'You are not allowed to log in to the database server'
      TXT2  = 'Please log in through one of the application servers'.
    MOVE: 'SAPMSSY0' TO BDC_TAB1-PROGRAM,
            '120' TO BDC_TAB1-DYNPRO,
            'X' TO BDC_TAB1-DYNBEGIN.
    APPEND BDC_TAB1.CLEAR BDC_TAB1.
    MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
           '/nex' TO BDC_TAB1-FVAL.
    APPEND BDC_TAB1.CLEAR BDC_TAB1.
    CALL TRANSACTION 'SM04' USING BDC_TAB1 MODE 'N'.
  ENDIF.
ENDIF.