Текущее время: Пн, июн 30 2025, 23:40

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание нового события (WORKFLOW)  Тема решена
СообщениеДобавлено: Ср, ноя 03 2004, 12:28 
Гость
Кто нибудь создавал событие для объекта MKPF?
Если я создаю событие через функциональный модуль SWE_EVENT_CREATE и вставляю его в расширение MB_CF001, то без COMMIT WORK, все отрабатывает, но нет ключевых данных по объекту. Если ставлю COMMIT WORK приходит сообщение, что обновление прервано.
Спасибо


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 03 2004, 16:38 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2004, 17:54
Сообщения: 67
не хочу начинать очередной ликбез по WF, скажу лишь пару замечаний:

1) события объекта создаются в SWO1, а не через функциональный модуль SWE_EVENT_CREATE - с помощью этой функции оно программно генерируется в системе.

2) обычно при вызове упомянутой функии вы сами даете ей на вход ключ объекта :)
что-нибудь в таком роде:
INCLUDE <cntain>.
DATA: l_objkey LIKE sweinstcou-objkey,
l_objtype LIKE nast-objtype,
l_event LIKE nast-event,
l_event_creator LIKE swhactor,
BEGIN OF mkpf_key,
mblnr LIKE mkpf-mblnr,
mjahr LIKE mkpf-mjahr,
END OF mkpf_key.

swc_container l_cont.
l_event_creator-otype = 'US'.
l_event_creator-objid = sy-uname.
l_objtype = 'MKPF'.
l_event = 'CREATED'.

mkpf_key-mblnr = mkpf-mbnr.
mkpf_key-mjahr = mkpf-mjahr.
l_objkey = mkpf_key.
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
objtype = l_objtype
objkey = l_objkey
event = l_event
creator = l_event_creator
TABLES
event_container = l_cont.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 04 2004, 09:06 
Гость
То что события создаются в SWO1 я это прекрасно знаю, но при этом это событие нужно еще и инициировать. Стандартными способами я это сделать не смогла, поэтому речь зашла о ФМ SWE_EVENT_CREATE для создания нужного события для бизнес-объекта MKPF. Но при вставке этого ФМ в нужное расширение возникла проблемма, что нельзя использовать commit work. А без него нет присвоения objkey, то есть он нулевой, а если ставишь commit work, то система говорит, что обновление прервано.
Спасибо.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 04 2004, 10:54 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2004, 17:54
Сообщения: 67
не падайте духом.
я на MIGO вешал не то что генерацию события - прямо оттуда нужные потоки запускал....

только приведенное Вами расширение использовать неудобно (и правда, не видно там нифига).

рекомендую использовать BADI 'MB_DOCUMENT_BADI'.
(se19, Имя определения = 'MB_DOCUMENT_BADI', метод MB_DOCUMENT_BEFORE_UPDATE).

информация mkpf / mseg там вся есть.

мне, например, нужно было считывать по ссылке данные поставки, а их в таблице еще не было - обновление еще не прошло. решил проблему таким способом: запускаю задачу в асинхронном режиме, а там крутится цикл ожидания (естественно не бесконечный). вот примерчик:
METHOD if_ex_mb_document_badi~mb_document_before_update.
CALL FUNCTION 'ZZ_MIGO_SD010' IN BACKGROUND TASK AS SEPARATE UNIT
TABLES
xmkpf = xmkpf
xmseg = xmseg
xvm07m = xvm07m.

CALL FUNCTION 'START_OF_BACKGROUNDTASK'
EXPORTING
startdate = sy-datum
starttime = sy-uzeit
EXCEPTIONS
OTHERS = 1.
ENDMETHOD.


.....
l_count = 1.
DO.
SELECT SINGLE waerk FROM likp INTO l_waerk
WHERE vbeln = xmkpf-xblnr.
IF sy-subrc = 0.
EXIT.
ENDIF.
WAIT UP TO 10 SECONDS.
l_count = l_count + 1.
IF l_count > 60.
EXIT.
ENDIF.
ENDDO.
......

ну может и не стопроцентно хорошо, но идея правильная......


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 04 2004, 12:51 
Гость
Спасибо, попробую


Пометить тему как нерешенную
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB