Нужно описать функцию по аналогии со следующим методом:
Code:
METHOD CallSHlp.
    DATA: lsSHlp TYPE shlp_descr_t,
          ltRetVal TYPE TABLE OF ddshretval,
          lsInterface TYPE ddshiface,
          lsRetVal TYPE ddshretval,
          ltParam TYPE PassParam.
    CLEAR: lsSHlp, ltRetVal, lsInterface.
    REFRESH ltRetVal.
    CHECK sy-subrc = 0.
    CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
         EXPORTING
           SHLPNAME = lHlpName
         IMPORTING
           SHLP     = lsSHlp
         EXCEPTIONS
           OTHERS   = 1.
    READ TABLE lsSHlp-interface
        WITH KEY shlpfield = lFldName
        INTO lsInterface.
    IF sy-subrc IS INITIAL.
      lsInterface-valfield = 'X'.
      MODIFY lsSHlp-interface FROM lsInterface INDEX sy-tabix.
    ENDIF.
    CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
           EXPORTING
             SHLP          = lsSHlp
           TABLES
             RETURN_VALUES = ltRetVal
           EXCEPTIONS
             OTHERS        = 1.
    READ TABLE ltRetVal INTO lsRetVal INDEX 1.
    IF SY-SUBRC = 0.
      lRet = lsRetVal-fieldval.
    ENDIF.
  ENDMETHOD.
declaration 
CallSHlp
        IMPORTING
          lHlpName TYPE C
          lFldName TYPE C
        CHANGING
          lRet TYPE ANY.
Затем вызвать следующим образом  
Code:
REFRESH ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'RECN'.
  ltParam-DefaultVal = otab-lifnr.
  APPEND ltParam TO ltParam.
  IF NOT otab-zuonr IS INITIAL.
    CLEAR ltParam.
    ltParam-FldName = 'EXTNUM'.
    ltParam-DefaultVal = otab-zuonr.
    APPEND ltParam TO ltParam.
  ENDIF.
  CLEAR ltParam.
  ltParam-FldName = 'HBKID'.
  ltParam-DefaultVal = febko-hbkid.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'HKTID'.
  ltParam-DefaultVal = febko-hktid.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'MNUM'.
  ltParam-ValField = 'X'.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'LIFNR'.
  ltParam-ValField = 'X'.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'KUNNR'.
  ltParam-ValField = 'X'.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'BANKL'.
  ltParam-ValField = 'X'.
  APPEND ltParam TO ltParam.
  CLEAR ltParam.
  ltParam-FldName = 'BANKN'.
  ltParam-ValField = 'X'.
  APPEND ltParam TO ltParam.
  CALL METHOD cl_stuff=>CallSHlpExt
                                 EXPORTING
                                   lHlpName = 'ZDRAFT'
                                 CHANGING
                                   ltValues = ltParam[].
  READ TABLE ltParam WITH KEY FldName = 'MNUM'.
  IF sy-subrc = 0.
    otab-kidno = ltParam-retvalue.
  ENDIF.
ну и потом полученное значение после считывания из таблицы ltParam вывести на экран...
ОГраничение устанавливается через вот эту конструкцию:  
Code:
CLEAR ltParam.
  ltParam-FldName = 'HKTID'.
  ltParam-DefaultVal = febko-hktid.
  APPEND ltParam TO ltParam.
Смотреть где встречается в в коде выше...