Posted: Fri Oct 29, 2010 4:11 pm Post subject: Получить результат работы sm21 как листинг
Здравствуйте!
sm21 запускается с опцией USING bdcdata_tab для заполнения нужных полей из меню и выгружает результат своей работы как alv list.
sm21 - это пул модулей, а не репорт, поэтому запустить ее как submit не получется.
Какие есть способы вытащить листинг?
Может кто-нибудь пробовал резулльтат таких проблемных транзакцй выгружать в spool и читать из спула?
Posted: Sat Oct 30, 2010 9:42 am Post subject: Re: Получить результат работы sm21 как листинг
den wrote:
Здравствуйте!
sm21 запускается с опцией USING bdcdata_tab для заполнения нужных полей из меню и выгружает результат своей работы как alv list.
sm21 - это пул модулей, а не репорт, поэтому запустить ее как submit не получется.
Какие есть способы вытащить листинг?
Может кто-нибудь пробовал резулльтат таких проблемных транзакцй выгружать в spool и читать из спула?
Может как-то получиться использовать ФМ RSLG_READ_FILE_ALV ?
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Mon Nov 01, 2010 12:02 pm Post subject:
Из-за этой вставки в программе 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 _________________ Молитва - это запрос разработчику на изменение кода программы.
Сделал на удивление просто. В пункте меню 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.
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.
мда интересно...Вы отдаете себе отчет, что Ваша программа будет работать только в интерактивном режиме?
Отдаю. К сожалению, через job не заработало. Потому что пришлось для заполнения части полей запускать транзакцию c использованием batch input, а в этом случае обертка ее в z программу и запуск как job вывод alv list в спул не сохранила. Спул пустой.
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Wed Nov 03, 2010 4:14 pm Post subject:
А исходно какая задача стояла?
Отправлять куда-то системный журнал с определенными параметрами?
И кстати, какая версия SAP, у меня в 4.7 SM21 нормальный список формирует... _________________ С уважением,
Удав.
А исходно какая задача стояла?
Отправлять куда-то системный журнал с определенными параметрами?
И кстати, какая версия 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.
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Wed Nov 03, 2010 5:31 pm Post subject:
Это не исходная задача, это метод решения.
Может, вы не хотите давать пользователям транзакцию SM21 и/или возможность подробного анализа журнала?
Если не хотите давать транзакцию и установить значения по умолчанию, то можно сделать вариант транзакции с помощью SHD0. Транзакцию можно вызвать из пункта меню.
Если же ленивые администраторы не хотят ставить в поле "Время" значение "00:00:00", то овчинка выделки не стоит. _________________ С уважением,
Удав.
Это не исходная задача, это метод решения.
Может, вы не хотите давать пользователям транзакцию SM21 и/или возможность подробного анализа журнала?
Если не хотите давать транзакцию и установить значения по умолчанию, то можно сделать вариант транзакции с помощью SHD0. Транзакцию можно вызвать из пункта меню.
Если же ленивые администраторы не хотят ставить в поле "Время" значение "00:00:00", то овчинка выделки не стоит.
Как раз исходная задача. Итоговый отчет должен содержать в себе данные из разных отчетов.
Пользователь имеет права на запуск sm21, но в день ему приходится запускать 10 разных отчетов, поэтому ему нужен суммарный отчет, который он запустит один раз и получит итоговые данные из 10 разных отчетов.
Насчет SHD0 - спасибо за идею, проверю. Но это не должно быть дефолтовым вариантом для транзакции.
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Wed Nov 03, 2010 5:56 pm Post subject:
мда...Все-таки админы
ИМХО:
Зачем скрещивать слонов с мухами?
Есть стандартные транзакции мониторинга системы, каждая имеет свое назначение и каждая требует своего метода анализа предоставляемых данных.
Смысл их объединять в одной программе? Только если для сбора статистики, но это же фикция. Работоспособность системы от этого не зависит
Может просто нормальное меню для роли пользователя сделать, тем более эта операция делается раз в день? _________________ С уважением,
Удав.
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.