Текущее время: Пт, июл 18 2025, 03:22

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: не судите строго...
СообщениеДобавлено: Ср, апр 26 2006, 16:42 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
вот написал программку, которая должна эмулировать действия пользователя, собственно что она и делает...(на вопрос зачем, скажу сразу, что нравится транзакция sm04 и активность некоторых людей прямо таки удивляет :wink: ), ...
если есть возможность улучшить(уверен, что есть) поделитесь соображениями, может весь подход стоит изменить...


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. написано исключительно в целях самообучения...очень сырая версия...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 26 2006, 17:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
Я бы посоветовал использовать реальные транзакции, а не генерить их имена, учитывая, что ваши имена генерятся не правильно и не в одну существующую транзакцию не попал. Берите транзакции из TADIR OBJECT = 'TRAN'. Можно убрать стэйтмент TABLES, не нужна одна из подпрограмм для пакета, параметры у вас объявлены в секции START-OF-SELECTION, хотя там не должны быть... обработка должна идти в этом блоке.... это так по мелочам если... успехов в обучении;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 26 2006, 19:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
на месте базиса убил бы ... 20 таких прог убьют производительность ... на ура


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 08:51 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Snegurenok написал(а):
на месте базиса убил бы ... 20 таких прог убьют производительность ... на ура

для избежания этого и введен таймер: если поставить минут на 10 задержку, то вроде как не слишком грузишь систему...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 09:52 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Kanev написал(а):
Snegurenok написал(а):
на месте базиса убил бы ... 20 таких прог убьют производительность ... на ура

для избежания этого и введен таймер: если поставить минут на 10 задержку, то вроде как не слишком грузишь систему...

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:20 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Uukrul написал(а):
Kanev написал(а):
Snegurenok написал(а):
на месте базиса убил бы ... 20 таких прог убьют производительность ... на ура

для избежания этого и введен таймер: если поставить минут на 10 задержку, то вроде как не слишком грузишь систему...

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

смысл ваши слов для меня остался загадкой :( , я надеюсь Вы понимаете, что программа носит скорее экспериментальный и юмористический оттенок :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:34 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
угу - а первый приз в этой юморине - программе из одной строчки

DELETE FROM bkpf.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Snegurenok написал(а):
угу - а первый приз в этой юморине - программе из одной строчки

DELETE FROM bkpf.

весь смысл в том, чтоб в системе не гадить...
поэтому это изначально ясно...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:41 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
Kanev написал(а):
Snegurenok написал(а):
угу - а первый приз в этой юморине - программе из одной строчки

DELETE FROM bkpf.

весь смысл в том, чтоб в системе не гадить...
поэтому это изначально ясно...


т.е. отбирать ресурсы системы непонятно на что - ето не гадить системе ? - ну тогда число PI считайте уж -хоть какая то польза для науки будет ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:47 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Snegurenok написал(а):
Kanev написал(а):
Snegurenok написал(а):
угу - а первый приз в этой юморине - программе из одной строчки

DELETE FROM bkpf.

весь смысл в том, чтоб в системе не гадить...
поэтому это изначально ясно...


т.е. отбирать ресурсы системы непонятно на что - ето не гадить системе ? - ну тогда число PI считайте уж -хоть какая то польза для науки будет ...


ваша правда, но в эмуляции действий пользователя, наверное, можно найти и положительные моменты, просто в реальной жизни при работе с SAPом с такими задачами не сталкивался...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 10:59 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
во всем можно найти положительные моменты - особенно много их в добавлении себе в обход безопсности профиля SAP_ALL


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 11:13 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Snegurenok написал(а):
во всем можно найти положительные моменты - особенно много их в добавлении себе в обход безопсности профиля SAP_ALL

а это Вы к чему? :shock:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 11:23 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 10:49
Сообщения: 95
Откуда: 4.6C
топик можно в раздел Юмор смело переносить - посмеялся, спасибо! :D

_________________
Kind regards


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: не судите строго...
СообщениеДобавлено: Пт, апр 28 2006, 10:59 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
Kanev написал(а):
вот написал программку, которая должна эмулировать действия пользователя, собственно что она и делает...(на вопрос зачем, скажу сразу, что нравится транзакция sm04 и активность некоторых людей прямо таки удивляет :wink: ), ...
если есть возможность улучшить(уверен, что есть) поделитесь соображениями, может весь подход стоит изменить...


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. написано исключительно в целях самообучения...очень сырая версия...


Что-то я не пойму... у меня в логах только se38. может я ни туда смотрю... как посмотреть полный логв sm04? куда ткнуть то? :)))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не судите строго...
СообщениеДобавлено: Пт, апр 28 2006, 11:46 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
Preatos написал:

Что-то я не пойму... у меня в логах только se38. может я ни туда смотрю... как посмотреть полный логв sm04? куда ткнуть то? :)))

если вас понял правильно, то посмотреть , что запускалось/работает можно тут:
в SM04 кликните на пользователе...
еще есть STAT...
eще SM21...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB