Текущее время: Вт, апр 23 2024, 23:32

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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