Текущее время: Вс, апр 28 2024, 05:55

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


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

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


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

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