думаю никто не посчитает плагиатом, если даный пост будет опубликован тут (тем более автор даного поста, Uukrul) а вещь действительно подезная .....
_________________________________________________ _________________________________________________ _________
Uukrul:
Тут попросили по поводу событий в системе, ну чтобы два раза не отвечать в ПМ, решил ответить один раз на форуме.
Значит так сначала создаем событие и программу которая должна вызваться при старте этого события для этого идем стандартно транзакция SM62 и там создаем пользовательское событие (системные лучше не трогать) напрмер Y_TEST_EVENT после этого идем в планирование заданий SM36 и там планируем наще фоновое задание которое должно стартовать по созданнму событию Y_TEST_EVENT, кстати не забываем ставить там галку "Выполнять задание периодически", потом пишем например программку (SE38 никто не отменял), которая должна стартовать по этому задании, в программке пишем в начале такую функцию как:
DATA: event_id LIKE tbtco-eventid,
eventparm LIKE tbtco-eventparm.
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
eventid = event_id
eventparm = eventparm
EXCEPTIONS
no_runtime_info = 1
т.е. получить по какому событию была вызвана программа и получить параметры вызова, для чего это можно прикруить, ну скажем для организации паровозика, т.е. в программе когда уже где-либо известен например номер документа проводки или еще какие важные данные, то в экзите делаем такую штуку как:
Код:
DATA: event_id LIKE tbtco-eventid,
eventparm LIKE tbtco-eventparm.
CONCATENATE xmkpf-mblnr xmkpf-mjahr INTO eventparm.
CALL FUNCTION 'BP_EVENT_RAISE'
EXPORTING
eventid = 'Y_TEST_EVENT'
eventparm = eventparm
EXCEPTIONS
bad_eventid = 1
eventid_does_not_exist = 2
eventid_missing = 3
raise_failed = 4
OTHERS = 5.
т.е. дергаем событие а в качестве параметра передаем номер документа, ну а что дальше делать с номером документа это как говорится от потребностей...