Текущее время: Вт, май 13 2025, 16:52

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


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

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


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

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