вот написал программку, которая должна эмулировать действия пользователя, собственно что она и делает...(на вопрос зачем, скажу сразу, что нравится транзакция sm04 и активность некоторых людей прямо таки удивляет

), ...
если есть возможность улучшить(уверен, что есть) поделитесь соображениями, может весь подход стоит изменить...
Code:
REPORT z_xxx.
TABLES: tstc.
DATA: random_number TYPE int4,
rnd_value LIKE datatype-char0128,
temp_num(2) TYPE c,
trans(4) TYPE c,
trans_code(4) TYPE c.
DATA: gv_counter TYPE int4.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
PARAMETERS p_module(2) TYPE c. "Выбор области(se, su, fi etc)
PARAMETERS p_time TYPE i DEFAULT 1. "Время задержки в секундах
PARAMETERS p_iter TYPE i DEFAULT 100. "Количество итераций
END-OF-SELECTION.
WHILE gv_counter LT p_iter.
PERFORM random_transactions.
gv_counter = gv_counter + 1.
ENDWHILE.
*&---------------------------------------------------------------------*
*& Form random_transactions
*&---------------------------------------------------------------------*
FORM random_transactions.
* PERFORM bdc_field USING 'BDC_OKCODE' '=N'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.
CALL FUNCTION 'SXMS_CREATE_RANDOM_NUMBER'
IMPORTING
random_number = random_number.
CALL FUNCTION 'RANDOM_C'
EXPORTING
len_min = 2
len_max = 2
char_min = 1
char_max = 26
IMPORTING
rnd_value = rnd_value.
MOVE random_number TO temp_num.
* CONCATENATE rnd_value temp_num INTO trans_code.
CONCATENATE p_module temp_num INTO trans_code.
SELECT COUNT( * ) FROM tstc WHERE tcode EQ trans_code.
IF sy-dbcnt NE 0.
WRITE: / 'Transaction code: ', trans_code.
CALL FUNCTION 'C14Z_WAIT_N_SECONDS'
EXPORTING
i_no_of_seconds = p_time.
CALL TRANSACTION trans_code USING bdcdata MODE 'N'.
ENDIF.
* WRITE: / 'Transaction code not in list: ', trans_code.
ENDFORM. "random_transactions
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF NOT fval IS INITIAL.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
CONDENSE bdcdata-fval.
APPEND bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
P.S. написано исключительно в целях самообучения...очень сырая версия...