Текущее время: Чт, мар 28 2024, 21:23

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Создать новое событие
СообщениеДобавлено: Вт, май 13 2008, 11:17 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2007, 18:22
Сообщения: 27
Добрый день, всем!
Необходимо создать ПО, для которого инициирующим событием должно стать создание входящей поставки (объект BUS2015). В стандарте никаких инициирующих событий для объекта BUS2015 нет. С помощью ФМ "SWE_EVENT_CREATE" генерирую нужное событие, которое вижу при просмотре трассировки событий (тр. SWEL). Вопрос в следующем: как теперь я могу выбрать созданное событие в построителе потока операций в качестве начального события? Оно там не отображается. Если я его создаю руками при помощи тр. SWO1, то оно также не отображается в построителе ПО.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 13 2008, 13:42 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
У меня SWE_EVENT_CREATE не стартовал ПО, воспользовался пакетным вводом транзакци SWUE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 13 2008, 14:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
А может ну его, это событие? Если Вы откуда то его через ФМ генерите, то можно просто оттуда же ПО запустить.
Обсуждалось здесь - Как запустить ПО из отчета ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 14 2008, 17:02 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2007, 18:22
Сообщения: 27
А как мне передать в поток (в контейнер) номер входящей поставки, если я его запущу с помощью ФМ "SWW_WI_START_SIMPLE"?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 15 2008, 07:50 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
_Andr_ написал(а):
А как мне передать в поток (в контейнер) номер входящей поставки, если я его запущу с помощью ФМ "SWW_WI_START_SIMPLE"?
Заполнить таблицу WI_CONTAINER нужными данными.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 15 2008, 15:14 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2007, 18:22
Сообщения: 27
Уважаемый, John Doe!
А ты не мог бы подсказать как правильно заполнить WI_CONTAINER. Мне надо передать номер поставки (BUS2015.DELIVERY). Как мне правильно заполнить поля ELEMENT, TAB_INDEX, ELEMLENGTH, TYPE, VALUE? VALUE как я понимаю - это номер поставки. В поле ELEMENT писал и BUS2015, и BUS2015.DELIVERY, и DELIVERY, и InboundDelivery.Delivery, ничего не передает в контейнер.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 15 2008, 17:13 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Попробуйте так:
Code:
* Этот инклюд содержит WorkFlow макросы
INCLUDE <CNTN01>.

DATA: ID TYPE SWW_WIID,                  " Номер инстанции ПО
      LT_AGENTS TYPE TABLE OF SWHACTOR,  " Обработчики
      DELIVERY TYPE SWC_OBJECT,          " Поставка
      RETURN TYPE SWOTRETURN,
      RESULT TYPE SWWWIRES.

PARAMETERS: VBELN LIKE LIKP-VBELN.       " Номер поставки

START-OF-SELECTION.
* Объявляем контейнер ПО
* SWC_CONTAINER <Container>.             "Declaration
  SWC_CONTAINER WI_CONTAINER.

* Создаем контейнер ПО
* SWC_CREATE_CONTAINER <Container>.      "Initialization
  SWC_CREATE_CONTAINER WI_CONTAINER.

* Создаем инстанцию объекта BUS2015 Поставка
* SWC_CREATE_OBJECT <Object> <ObjectType> <ObjectKey>.
  SWC_CREATE_OBJECT DELIVERY  'BUS2015'      VBELN.

** Передаем инстанцию объекта в контейнер ПО
** SWC_SET_ELEMENT <Container>  <ContainerElement> <Object>.
  SWC_SET_ELEMENT WI_CONTAINER    'BUS2015'       DELIVERY.
** либо к примеру предаем только номер
  SWC_SET_ELEMENT WI_CONTAINER    'VBELN'       VBELN.

* Запускаем поток
  CALL FUNCTION 'SWW_WI_START_SIMPLE'
       EXPORTING
            TASK                         = 'WS91000007'
       IMPORTING
            WI_ID                        = ID
            RETURN                       = RETURN
            RESULT                       = RESULT
       TABLES
            AGENTS                       = LT_AGENTS
            WI_CONTAINER                 = WI_CONTAINER
       EXCEPTIONS
            ID_NOT_CREATED               = 1
            READ_FAILED                  = 2
            IMMEDIATE_START_NOT_POSSIBLE = 3
            EXECUTION_FAILED             = 4
            INVALID_STATUS               = 5
            OTHERS                       = 6.
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создать новое событие
СообщениеДобавлено: Чт, май 29 2008, 16:45 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 11 2006, 10:33
Сообщения: 17
_Andr_ написал(а):
Добрый день, всем!
Необходимо создать ПО, для которого инициирующим событием должно стать создание входящей поставки (объект BUS2015). В стандарте никаких инициирующих событий для объекта BUS2015 нет. С помощью ФМ "SWE_EVENT_CREATE" генерирую нужное событие, которое вижу при просмотре трассировки событий (тр. SWEL). Вопрос в следующем: как теперь я могу выбрать созданное событие в построителе потока операций в качестве начального события? Оно там не отображается. Если я его создаю руками при помощи тр. SWO1, то оно также не отображается в построителе ПО.


Решается все проще:
1. Создай подтип на основании BUS2015. В подтипе делай свое событие. Не забываем о делегировании.
2. Находишь куда вклиниться по созданию и прописываешь создание события (SWE_EVENT_CREATE). заполнение контейнеров ищи по аналогии
3. Делаешь поток с инициацией по твоему событию

Предложенное решение "прямого" запуска не очень корректно. Если и делать подобное, то необходимо работать через настроечную таблицу с возможностью отключения запуска и изменения имени потока


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

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


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

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


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

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