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

Работа с фоновыми событиями



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Batch Input (BDC), Background processing and Jobs
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Thu Oct 04, 2007 9:09 pm    Post subject: Работа с фоновыми событиями Reply with quote

Сразу оговоримся, события имеют смысл только для фоновой обработки. С помощью событий можно стартовать только фоновые задания (background jobs).

Возникновение события сообщает системе фоновой обработки (the background processing system ) что оперделенное событие случилось. Система фоновой обработки реагирует на событие стартом Jobs, которая была назначена в качестве обработчика данного события и ожидала его возникновения (ключевое слово - ожидала, то есть у задание (jobs) стояла галочка "Выполнять задане переодически").

Шаг первый:
- Cоздаем событие. Идем в транзакцию SM62 и создаем пользовательское событие (не системное), например Z_FI_CREATE_EVENT.
- Идем в планировщик заданий SM36 и планируем фоновое задание, которое должно стартовать по событию Z_FI_CREATE_EVENT.
У задания ставим галку "Выполнять задание периодически".
- Пишем программу, которая должна стартовать по этому задании. В начале программы вызываем функцию:

Code:
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


т.е. получаем по какому событию была вызвана программа и параметры вызова. Из переметров вызова, можно получить, например, номер финансового документа, который был передан из экзита, стартующего событие.

Шаг 2.
Непосредственный вызов события.
Например, в экзите, после создания финансового документа, хотим передать его для обработки в фоновое задание.

Code:
DATA: event_id LIKE tbtco-eventid,
          eventparm LIKE tbtco-eventparm.

  CONCATENATE xmkpf-mblnr xmkpf-mjahr INTO eventparm.
  CALL FUNCTION 'BP_EVENT_RAISE'
       EXPORTING
            eventid                = 'Z_FI_CREATE_EVENT'
            eventparm              = eventparm
       EXCEPTIONS
            bad_eventid            = 1
            eventid_does_not_exist = 2
            eventid_missing        = 3
            raise_failed           = 4
            OTHERS                 = 5.


Шаг 3
Отладка
смотрим sm64

http://help.sap.com/saphelp_470/helpdata/en/fa/096e5e543b11d1898e0000e8322d00/frameset.htm
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 -> Batch Input (BDC), Background processing and Jobs 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.