Станьте участником SAPLAND и получите доступ к самым интересным публикациям SAPPRO
Зарегистрироваться
"...запускать программу в фоновом режиме..." имеется ввиду ABAP программу или несколько ABAP программ
Олег, поясняю, суть статьи - решить задачу: "запускать программу в фоновом режиме каждые 2 часа в рабочее время, т.е. с 8 до 17 часов, и только с понедельника по пятницу. ...чтобы периодически выполняемая программа планировалась с помощью ОДНОГО фонового задания".
В статье описано решение такой нехитрой задачи и добавлено описание утилиты sapevt взятое из help.sap.com/saphelp_nw04s/helpdata
И нам действительно не нужно использовать параметр -p.
А если копнуть тему глубже, то у SAP есть свое решение такой задачи и называется оно: SAP Central Process Scheduling by Redwood (SAP CPS). Будем надеяться что и на эту тему в скором времени появится статья.
P.S. Если у вас есть свои варианты решение нашей задачи - будем рады узнать их.
-p <EVTPRM>: Опциональный аргумент для события EVT, который квалифицирует событие. EVTPRM не определён в системе SAP.
Прочитал пару раз, но так и не понял, как параметр который квалифицирует событие, может быть не определенным в системе SAP, и вообще кто кем и чем определяет это дело у вас? Что-то мне кажется что или я или вы немного не поняли что это такое. Это именно параметр, который можно передать при вызове, а зачем считать в абап программе, т.е. если бы вам нужно было например передавать каждый раз при вызове sap-события имя виндовой машины машины которая вызвала событие или путь рабочего каталога или много чего другого, то вы могли бы после ключа -p указать это значение в качестве строки и затем в программе используя:
CALL FUNCTION 'BP_EVENT_RAISE'
EXPORTING
eventid = '<имя события>'
eventparm = eventparm
EXCEPTIONS
bad_eventid = 1
eventid_does_not_exist = 2
eventid_missing = 3
raise_failed = 4
OTHERS = 5.
Получить переданное значение и соответственно дальше уже отработать в зависимости от полученного значения, ну это если у вас программа своя или стандартная которая предполагает какие-то параметры.
PS: Вообще, если честно, не заметил не стандартного подхода к планированию фоновых заданий, все полностью в рамках стандарта. А это, краткая инструкция по использованию консольной утилиты sapevt
Очень актуальная и интересная тема. С нетерпением жду следующей статьи. Единственное что непонятно так это отдельный ли это продукт (SAP PPM sute)?
Сразу возникает задача, как поставить в игнор всех кроме сисадмина
:)
Василий, да это вообще не проблема оказывается. В общем идете в программу, точнее модуль: SAPMSEM1, со строчки 881 будет нечто такое:
*---------------------------------------------------------------------
* MODULE CHECK_DIAG_SUPPBIT_NOSYSMSG
*---------------------------------------------------------------------
* Falls das Frontend keine Systemnachrichten anzeigen kann
*---------------------------------------------------------------------
form check_diag_suppbit_nosysmsg.
data: support_bit type i.
call 'C_GUI_SUPPORT'
id 'FEATURE' field 'NOSYSMSG'
id 'VALUE' field support_bit.
if sy-subrc = 0 and support_bit = 1.
* suppress system message - do not display
* no database update
* PERFORM C_DY_EXIT.
set screen 0.
leave screen.
endif.
endform. "CHECK_DIAG_SUPPBIT_NOSYSMSG
Ну т.е. оно проверяет поддерживает ли фронтэнд вывод окошка с ообщением. Если нет, тогда на выход. Ну а дальше вставляем неявный энхансмент в конец данной подпрограммки где.. ну скажем так читаем пользовательскую табличку, куда помещаем наших базисников и других людей, которых не стоит беспокоить своими сообщениями :-) ну или скажем так, можно дальше полет мысли запустить и там еще группы намутить, типа если это отправляет пользователь Х, то сообщение показывать только группе пользователей Х/Y/Z например. Короче и только компилятор может теперь ограничить пытливый ум начинающего абапера...
Сразу возникает задача, как поставить в игнор всех кроме сисадмина
:)
С помощью ФМ TH_POPUP можно отправить сообщение конкретному пользователю :-)
Илья, добрый день!
Подскажите, какими средствами можно тестировать правила формул в трансформациях BW, а также подпрограммы завершения?
Конечно, Олег, вы правы. Всё разграничивается правами и полномочиями. Но у кого они должны быть и есть, у того и может возникнуть законное желание написать сообщение всем в системе, вне зависимости от того, как этот человек именуется в социальной иерархии системы - пользователь, консультант или базисник. :)
Честно у пользователей и консультантов таких прав не встречал практически. Хотя ситуации могут быть разные.
Конечно, Олег, вы правы. Всё разграничивается правами и полномочиями. Но у кого они должны быть и есть, у того и может возникнуть законное желание написать сообщение всем в системе, вне зависимости от того, как этот человек именуется в социальной иерархии системы - пользователь, консультант или базисник. :)
"У пользователей или консультантов может появиться необходимость сообщить что-то всем пользователям системы, сделать срочное и важное заявление. :)" - Ну у пользователей и консультантов конечно же может быть такое желание, вот только в 99.9% возможности такой у них быть не должно... для этих целей вообще-то базисник должен быть, который по процедуре данные сообщения и выставляет.
Комментарий от
Андрей Красовский
| 07 октября 2014, 09:59
Олег Точенюк 06 октября 2014, 18:18
Да какое же у меня решение, небольшая программка на абапе да и всех делов... :-) хоть от фазы луны запускайся, главное до этой самой фазы достучаться.