Автор Тема: REPOST - Работа с событиями в системке...  (Прочитано 5711 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
REPOST - Работа с событиями в системке...
« : Ноябрь 21, 2008, 12:45:13 pm »
думаю никто не посчитает плагиатом, если даный пост будет опубликован тут (тем более автор даного поста, Uukrul) а вещь действительно подезная .....
_________________________________________________ _________________________________________________ _________

Uukrul:

Тут попросили по поводу событий в системе, ну чтобы два раза не отвечать в ПМ, решил ответить один раз на форуме.

Значит так сначала создаем событие и программу которая должна вызваться при старте этого события для этого идем стандартно транзакция SM62 и там создаем пользовательское событие (системные лучше не трогать) напрмер Y_TEST_EVENT после этого идем в планирование заданий SM36 и там планируем наще фоновое задание которое должно стартовать по созданнму событию Y_TEST_EVENT, кстати не забываем ставить там галку "Выполнять задание периодически", потом пишем например программку (SE38 никто не отменял), которая должна стартовать по этому задании, в программке пишем в начале такую функцию как:

Код: You are not allowed to view links. Register or Login
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

т.е. получить по какому событию была вызвана программа и получить параметры вызова, для чего это можно прикруить, ну скажем для организации паровозика, т.е. в программе когда уже где-либо известен например номер документа проводки или еще какие важные данные, то в экзите делаем такую штуку как:
Код:

Код: You are not allowed to view links. Register or Login
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.

т.е. дергаем событие а в качестве параметра передаем номер документа, ну а что дальше делать с номером документа это как говорится от потребностей...
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login