SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Получить результат работы sm21 как листинг



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Fri Oct 29, 2010 4:11 pm    Post subject: Получить результат работы sm21 как листинг Reply with quote

Здравствуйте!
sm21 запускается с опцией USING bdcdata_tab для заполнения нужных полей из меню и выгружает результат своей работы как alv list.
sm21 - это пул модулей, а не репорт, поэтому запустить ее как submit не получется.
Какие есть способы вытащить листинг?
Может кто-нибудь пробовал резулльтат таких проблемных транзакцй выгружать в spool и читать из спула?
Back to top
View user's profile Send private message
Alex80
Старший специалист
Старший специалист


Age: 44
Joined: 24 Jan 2008
Posts: 129

PostPosted: Sat Oct 30, 2010 9:42 am    Post subject: Re: Получить результат работы sm21 как листинг Reply with quote

den wrote:
Здравствуйте!
sm21 запускается с опцией USING bdcdata_tab для заполнения нужных полей из меню и выгружает результат своей работы как alv list.
sm21 - это пул модулей, а не репорт, поэтому запустить ее как submit не получется.
Какие есть способы вытащить листинг?
Может кто-нибудь пробовал резулльтат таких проблемных транзакцй выгружать в spool и читать из спула?
Может как-то получиться использовать ФМ RSLG_READ_FILE_ALV ?
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 180
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Mon Nov 01, 2010 12:02 pm    Post subject: Reply with quote

Из-за этой вставки в программе SAPMSM21
Quote:
* 12.01.1994 mit Inserted several COMMIT WORK, to tell the ABAP/4-
* processor, that I am still alive and dont want to
* be killed.


она не может выполняться через batch input.

Нужно или через клонирование или через получение ключа заменять
COMMIT WORK на
CALL FUNCTION 'TH_REDISPATCH'

Потом создавать z программу, внутри которой вызывать модифицированную транзакцию SM21 (или клон ZSM21).
Эту z программу запускать в бекграунде как job и получать листинг из спула
http://www.sapnet.ru/viewtopic.php?t=3618
http://www.sapnet.ru/viewtopic.php?t=1312

_________________
Молитва - это запрос разработчику на изменение кода программы.
Back to top
View user's profile Send private message Blog Visit poster's website
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Tue Nov 02, 2010 3:19 pm    Post subject: Reply with quote

Сделал на удивление просто. В пункте меню ALV листа есть "Export to clipboard". Через batch input сэмулировал нажатие этой кнопки и результат забрал из клипборд.

Code:
*&---------------------------------------------------------------------*
*&      Form  F_SM21
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_sm21 .
  g_type = gc_sm21.

  TYPES: BEGIN of ty_clipboard,
          line(255),
         END OF ty_clipboard.

  DATA: lt_clipboard TYPE TABLE OF ty_clipboard,
        lt_clipboard_save TYPE TABLE OF ty_clipboard,
        ls_clipboard TYPE ty_clipboard,
        l_date TYPE sy-datum,
        l_bdate TYPE char10,
        l_edate TYPE char10.

  IF so_date-high IS INITIAL.
    l_date = so_date-low + 1.
  ELSE.
    l_date = so_date-high.
  ENDIF.
  WRITE so_date-low TO l_bdate DD/MM/YYYY.
  WRITE l_date      TO l_edate DD/MM/YYYY.

  CALL FUNCTION 'CLPB_IMPORT'
    TABLES
      data_tab   = lt_clipboard_save
    EXCEPTIONS
      clpb_error = 1
      OTHERS     = 2.

  CALL FUNCTION 'CLPB_EXPORT'
    TABLES
      data_tab   = lt_clipboard
    EXCEPTIONS
      clpb_error = 1
      OTHERS     = 2.

  DATA: bdcdata_wa  TYPE bdcdata,
        bdcdata_tab TYPE TABLE OF bdcdata.

  DATA opt TYPE ctu_params.

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '0200'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=TEXP'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'RSLGLAYOUT-MAXPAG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_DATE'.
  bdcdata_wa-fval = l_bdate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_TIME'.
  bdcdata_wa-fval = '00:00:00'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_END_DATE'.
  bdcdata_wa-fval = l_edate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PRONLY'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PROWAR'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-ALLMSG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGLAYOUT-MAXPAG'.
  bdcdata_wa-fval = '15000000'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '0200'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=MOS2'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'RSLGLAYOUT-MAXPAG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_DATE'.
  bdcdata_wa-fval = l_bdate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_TIME'.
  bdcdata_wa-fval = '00:00:00'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_END_DATE'.
  bdcdata_wa-fval = l_edate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PRONLY'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PROWAR'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-ALLMSG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGLAYOUT-MAXPAG'.
  bdcdata_wa-fval = '15000000'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '2030'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=SASE'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'TSL1D-SUBID(02)'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'MSGINC_OFF'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'TSL1D-AREA(01)'.
  bdcdata_wa-fval = 'A1'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'TSL1D-AREA(02)'.
  bdcdata_wa-fval = 'A1'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'TSL1D-SUBID(01)'.
  bdcdata_wa-fval = '9'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'TSL1D-SUBID(02)'.
  bdcdata_wa-fval = '4'.
  APPEND bdcdata_wa TO bdcdata_tab.

*************************************
  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '0200'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=LAYO'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'RSLGLAYOUT-MAXPAG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_DATE'.
  bdcdata_wa-fval = l_bdate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_TIME'.
  bdcdata_wa-fval = '00:00:00'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_END_DATE'.
  bdcdata_wa-fval = l_edate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PRONLY'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PROWAR'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-ALLMSG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGLAYOUT-MAXPAG'.
  bdcdata_wa-fval = '15000000'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '2010'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=SASE'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'DY_COL_PROG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_COL_TABE'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_COL_MAND'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_COL_DATE'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_COL_PROG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_SCREEN'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_PR80'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_PR120'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_PR132'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************
  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '0200'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=DOIT'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'RSLGLAYOUT-MAXPAG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_DATE'.
  bdcdata_wa-fval = l_bdate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_TIME'.
  bdcdata_wa-fval = '00:00:00'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_END_DATE'.
  bdcdata_wa-fval = l_edate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PRONLY'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PROWAR'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-ALLMSG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGLAYOUT-MAXPAG'.
  bdcdata_wa-fval = '15000000'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'SAPMSSY0'.
  bdcdata_wa-dynpro   = '0120'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=%PC'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'SAPLSPO5'.
  bdcdata_wa-dynpro   = '0110'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '=OK'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_SUBSCR'.
  bdcdata_wa-fval = 'SAPLSPO5                                0180SUBSCREEN_CONTROL'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_SUBSCR'.
  bdcdata_wa-fval = 'SAPLSPO5                                0150SUBSCREEN_STEPLOOP'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'SPOPLI-SELFLAG(05)'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'SPOPLI-SELFLAG(01)'.
  bdcdata_wa-fval = ''.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'SPOPLI-SELFLAG(05)'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'SAPMSSY0'.
  bdcdata_wa-dynpro   = '0120'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '/EBACK'.
  APPEND bdcdata_wa TO bdcdata_tab.

****************************************

  CLEAR bdcdata_wa.
  bdcdata_wa-program  = 'ZSAPMSM21'.
  bdcdata_wa-dynpro   = '0200'.
  bdcdata_wa-dynbegin = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_OKCODE'.
  bdcdata_wa-fval = '/EBACK'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'BDC_CURSOR'.
  bdcdata_wa-fval = 'RSLGLAYOUT-MAXPAG'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_DATE'.
  bdcdata_wa-fval = l_bdate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_START_TIME'.
  bdcdata_wa-fval = '00:00:00'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'DY_END_DATE'.
  bdcdata_wa-fval = l_edate.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PRONLY'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-PROWAR'.
  bdcdata_wa-fval = '.'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGTYPE-ALLMSG'.
  bdcdata_wa-fval = 'X'.
  APPEND bdcdata_wa TO bdcdata_tab.

  CLEAR bdcdata_wa.
  bdcdata_wa-fnam = 'RSLGLAYOUT-MAXPAG'.
  bdcdata_wa-fval = '15000000'.
  APPEND bdcdata_wa TO bdcdata_tab.

  opt-dismode = 'E'.
  opt-defsize = 'X'.
  opt-updmode = 'L'.

  DATA lt_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.

  CALL TRANSACTION 'ZSM21' USING bdcdata_tab
                          OPTIONS FROM opt
                          MESSAGES INTO lt_bdcmsgcoll.

  CALL FUNCTION 'CLPB_IMPORT'
    TABLES
      data_tab   = lt_clipboard
    EXCEPTIONS
      clpb_error = 1
      OTHERS     = 2.

  CALL FUNCTION 'CLPB_EXPORT'
    TABLES
      data_tab   = lt_clipboard_save
    EXCEPTIONS
      clpb_error = 1
      OTHERS     = 2.

  NEW-PAGE.
  FORMAT COLOR COL_TOTAL INTENSIFIED.
  IF NOT lt_clipboard[] IS INITIAL.
    LOOP AT lt_clipboard INTO ls_clipboard.
      WRITE:/ ls_clipboard.
    ENDLOOP.
  ELSE.
    WRITE 'No records have been found for requested period'(015).
  ENDIF.
  FORMAT RESET.

  CLEAR   g_type.

ENDFORM.                                                    " F_SM21
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Nov 03, 2010 11:27 am    Post subject: Reply with quote

мда интересно...Вы отдаете себе отчет, что Ваша программа будет работать только в интерактивном режиме? Wink
_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Wed Nov 03, 2010 1:38 pm    Post subject: Reply with quote

Удав wrote:
мда интересно...Вы отдаете себе отчет, что Ваша программа будет работать только в интерактивном режиме? Wink


Отдаю. К сожалению, через job не заработало. Потому что пришлось для заполнения части полей запускать транзакцию c использованием batch input, а в этом случае обертка ее в z программу и запуск как job вывод alv list в спул не сохранила. Спул пустой.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Nov 03, 2010 4:14 pm    Post subject: Reply with quote

А исходно какая задача стояла?
Отправлять куда-то системный журнал с определенными параметрами?
И кстати, какая версия SAP, у меня в 4.7 SM21 нормальный список формирует...

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Wed Nov 03, 2010 4:32 pm    Post subject: Reply with quote

Удав wrote:
А исходно какая задача стояла?
Отправлять куда-то системный журнал с определенными параметрами?
И кстати, какая версия SAP, у меня в 4.7 SM21 нормальный список формирует...


Исходная задача - создать отчет, одним из пунктов которого является
получить данные, точно такие же, как формирует sm21 с определенным набором селекционных параметров (Как такового селекционного экрана у sm21 нет, нужно перейти по меню в эксперт моду и заполнить часть фильтров, выставить галочки и т.д. В примере выше с batch input это видно). При этом, как писал vga, пришлось исходный код sm21 модифицировать... сделал clone.
Логика sm21 достаточно наворочена, поэтому раскрутить ее в набор селектов - задача достаточно сложная.

Ну есть вариант совсем в тупую, раз уж sm21 клонирован, заполнить нужными значениями все фильтры внутри программы, чтобы не использовать batch input (без batch input думаю удастся запустить как job), но это уж совсем изврат... сложно будет поддерживать.

Версия ECC 6.00. При обычном запуске все нормально, но через batch input до вызова REUSE_ALV_LIST_DISPLAY даже не доходит, вываливается на COMMIT WORK.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Nov 03, 2010 5:31 pm    Post subject: Reply with quote

Это не исходная задача, это метод решения. Smile
Может, вы не хотите давать пользователям транзакцию SM21 и/или возможность подробного анализа журнала?
Если не хотите давать транзакцию и установить значения по умолчанию, то можно сделать вариант транзакции с помощью SHD0. Транзакцию можно вызвать из пункта меню.
Если же ленивые администраторы не хотят ставить в поле "Время" значение "00:00:00", то овчинка выделки не стоит.

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Wed Nov 03, 2010 5:42 pm    Post subject: Reply with quote

Удав wrote:
Это не исходная задача, это метод решения. Smile
Может, вы не хотите давать пользователям транзакцию SM21 и/или возможность подробного анализа журнала?
Если не хотите давать транзакцию и установить значения по умолчанию, то можно сделать вариант транзакции с помощью SHD0. Транзакцию можно вызвать из пункта меню.
Если же ленивые администраторы не хотят ставить в поле "Время" значение "00:00:00", то овчинка выделки не стоит.


Как раз исходная задача. Итоговый отчет должен содержать в себе данные из разных отчетов.
Пользователь имеет права на запуск sm21, но в день ему приходится запускать 10 разных отчетов, поэтому ему нужен суммарный отчет, который он запустит один раз и получит итоговые данные из 10 разных отчетов.

Насчет SHD0 - спасибо за идею, проверю. Но это не должно быть дефолтовым вариантом для транзакции.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Nov 03, 2010 5:56 pm    Post subject: Reply with quote

мда...Все-таки админы Rolling Eyes
ИМХО:
Зачем скрещивать слонов с мухами?
Есть стандартные транзакции мониторинга системы, каждая имеет свое назначение и каждая требует своего метода анализа предоставляемых данных.
Смысл их объединять в одной программе? Только если для сбора статистики, но это же фикция. Работоспособность системы от этого не зависит Smile
Может просто нормальное меню для роли пользователя сделать, тем более эта операция делается раз в день?

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.