Текущее время: Сб, апр 20 2024, 06:05

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Конкретный вопрос по WorkFlow. Проблема: Нет инстанции.
СообщениеДобавлено: Пт, сен 24 2004, 08:39 
Гость
Есть конкретный вопрос по WF. Проблема: Нет инстанции в ЭПО.
Пишу свой ЭПО:
1. Создал свой Тип объекта со ссылкой на субтип MDMKNA1;
2. Дописал методы, атрибуты;
3. Построил поток.

Так делал уже много раз. Работало. Например, всё тоже саимое с MDMLFA1 и другими MDM*.

Здесь же облом. В тесте Тип объекта и ЭПО работает, т.к. нужно укзать инстанцию для зависимых методов.
Создаю дебитора (xd01) - ЭПО запускается, но в контейнере НЕТ ИНСТАНЦИИ.

Событие инициирую на стандартном объекте изменения документов DEBI - поток поднимается, но, разумеется, WI выполняет ерунду.

Заранее благодарен. Готов к диалогу по WF :)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 24 2004, 10:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:50
Сообщения: 134
Откуда: UA->DE
Пол: Женский
Не знаю оптимально ли это, но я просто создавала метод 'Get_Instance' и вывывала его первым шагом в WF


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 24 2004, 10:16 
Гость
Как взять инстанцию, когда данных в контейнере потока нет?
Инстанция передаётся из вызывающей транзакции.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 24 2004, 10:27 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:50
Сообщения: 134
Откуда: UA->DE
Пол: Женский
Андрей.Н написал(а):
Инстанция передаётся из вызывающей транзакции.

То есть ты об этом (о создании инстанции) уже в трансакции позаботился? А то она все-таки не автоматически создается, а или в трансакции или в самом WF.


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

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

Ну так вот.
К сожалению, MDM* объектов у меня в системе нет, так что вот именно это лично проверить не могу. Но вряд ли конкретный контекст играет какую-то роль.
В своей практике сталкивался с похожей реакцией, причем зачастую были просто глюки, с WF расслабляться нельзя. :)
Процесс предельно прозрачен и прост, вопрос только в том, чтобы все тщательно продебаггить, локализовать и пофиксить. Вопрос исключительно в корректности настроек, ибо тут ничего программно не создается.

Итак, конкретные предложения:
1) проверьте наличие инстанции в самом событии - SWEL и там щелкнув дважды на соответствующей строке, посмотрите Ключ. Если нету, что-то не так с самим бизнес-объектом (на практике с таким не сталкивался, но мало ли, что-то не активировано и т.п.).
2) Если Ключ объекта имеется, то проверьте заголовок Потока, закладку 'Запуск потока операций поср. инициирующих событий'.
Помимо нужного объекта и события там ОБЯЗАТЕЛЬНО должны быть зелененькими (а не серыми!) иконки 'Активно' и 'Поток данных определен'. Если они зеленые, то проверьте Поток данных (кликните один раз на этой иконке). Там как минимум должно иметь место назначение &_EVT_OBJECT& соответствующей переменной Потока (а вообще говоря, стандарт еще включает &_EVT_CREATOR&). Вся эта беда создается и активируется автоматически, когда вы настраиваете в SWETYPV. Но помнится, в случае особых ошибочных ситуаций, эта фигня может сама деактивироваться, так что проверьте и пофиксите если что.

Если все вышесказанное не поможет, тогда будет очень интересно. :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 28 2004, 06:33 
Специалист
Специалист

Зарегистрирован:
Вт, сен 28 2004, 06:30
Сообщения: 100
Откуда: Свердловская область
Андрей.Н. - если ты тот о ком я думаю, пиши на мой мейл knoss@mail.ru


PS. конечно к WF это мало относится..... :?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 09:03 
Гость
Abaper, СПАСИБО. Всё получилось. Действиледьно слетео назначение &_EVT_OBJECT&. Вообще-то - это впервые. Буду внимательнее. И ёще, поделись. Вопрос: В ЭПО два объекта - один по умолчанию попадает в Приложения с методом также по умолчанию. А как добавить другой, кот. в потоке или вообще в контейнере потока. Хотелось бы различные Приложения добавлять в методах, как это осуществляется ручками в WI. Заранее благодарен.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 09:25 
Гость
Если "Приложения" - это табличный элемент _Attach_Objects контейнера потока операций, то можно в методе добавить туда свое приложение (объект SOFM). Хотя этот элемент объявлен по умолчанию в контейнерах, лучше, наверное, в явном виде задать потоки данных.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 09:39 
Гость
C элементом _Attach_Objects ПОНЯЛ. Спасибо. А вот "в явном виде задать потоки данных" - УВЫ. Что ты имел ввиду. :?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 11:06 
Гость
Потоки данных - это я про Binding - передача параметров между контейнером шага и задачи, задачи и метода, и обратно.
Просто если элемент имеет имя по умолчанию, то логично предположить что его значения будут копироваться в нижестоящий контейнер автоматически.. Я всегда в явном виде задаю имена.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 11:34 
Гость
Точно, тогда поток становится прозрачен. Сергей, а как на счёт - кусочка кода по добавлению объектов в элемент _Attach_Objects. :D


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 11:56 
Гость
Это я, abaper.
Отвечаю на вопрос.
/В ЭПО два объекта - один по умолчанию попадает в Приложения с методом также по умолчанию. А как добавить другой, кот. в потоке или вообще в контейнере потока. Хотелось бы различные Приложения добавлять в методах, как это осуществляется ручками в WI. /

Насколько я понимаю, под Приложением вы имеете в виду - раздел Объекты и приложения в ЭПО. Сразу хочу Вас поправить - о методах речь не идет, там находятся приаттаченные к ЭПО объекты, которые можно просто посмотреть (а не какие-то мифические методы по умолчанию). Ну так вот, чтобы добавить в приложение еще один объект - просто создайте в контейнере ЗАДАЧИ соответствующую переменную (типа объект), и передайте ей значение из потока (уж как - надеюсь это объяснять не надо). Вот и все, причем импорт/экспорт и прочие галки для этой переменной контейнера роли не играют - соответствующий объект попадет в приаттаченные Объекты и приложения ЭПО данной задачи.

И раз уж зашла речь о добавлении объектов в _Attach_Objects - то обычная операция контейнера (слышали про такое?), прикол разве что в том, что для многострочных переменных присваивание (насколько я помню) осуществляется не через =, а через => (а может ->, точно не помню, а SAP временно под рукой нету).

А вообще совет: пригласите опытного Abaper-а, он вам WF внедрит по полной программе, за вполне умеренную плату.... :))


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 12:31 
Гость
Уже всё робит. Приятно общаться с умным человеком. А по поводу "опытного Abaper-а, он вам WF внедрит по полной программе" скажу следующее: 1. На каждую задачку не на нанемаешься; 2. Опыт в WF пригодится и самоиу, тем более сам уже 5-тый год в ABAP-е.
Спасибо за диалог.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 14:05 
Гость
сорри за непристойное предложение.
5-й год в абапе - это респект!!


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 29 2004, 15:51 
Гость
Если в контейнере потока уже есть инстанция объекта типа SOFM, то добавить ее в _Attach_Objects проще через шаг типа "Операция контейнера" - надо только выбрать операцию <- (добавление строки в табличный элемент).

Другой способ - ручками, в коде

data Attach_Objects type swc_object
occurs 0 with header line.
data new_attachment type swc_object.

* если инстанции еще нет,
* то создаем инстанцию нового приложения
data sofm_key type swo_typeid.
swc_create_object
new_attachment 'SOFM' sofm_key.

* считать из контейнера
SWC_GET_TABLE
CONTAINER '_Attach_Objects' Attach_Objects.

* добавить новое приложение
append new_attachment to Attach_Objects

* записать обратно в контейнер
SWC_SET_TABLE
CONTAINER '_Attach_Objects' Attach_Objects.

если не в коде метода, то
дополнительно объявляем инклюд
INCLUDE <CNTN01>.

sorry за возможные опечатки - первый день из отпуска ;))


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

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


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

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


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

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