Текущее время: Пт, апр 19 2024, 01:55

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Использование дополнительных ОО методов
СообщениеДобавлено: Чт, июн 14 2007, 12:54 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Предыстория: Написал свой класс, создал там методы display / change (обычный вызов транзакции со скипом первого экрана). В потоке создал шаг типа "Решение пользователя", в дополнительных методах (модальный вызов перед запуском ЭПО) прописал свой метод display.

Проблема: Метод отрабатывает как часы, но по выходу из транзакции не отрабатывает сам шаг, а у ЭПО меняется статус на Еггог.

Если у кого есть соображения что делать и как дальше жить - буду очень признателен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 14 2007, 14:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
Делал такие методы, но не использовал их как дополнительные.
К сожалению идей нет.
Я думаю отладка тебе поможет!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование дополнительных ОО методов
СообщениеДобавлено: Пт, июн 15 2007, 15:50 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
John Doe написал:
...
Проблема: Метод отрабатывает как часы, но по выходу из транзакции не отрабатывает сам шаг, а у ЭПО меняется статус на Еггог.

Очень похоже на то, что самописный метод display что-то не возвращает в ЭПО, например не сигнализирует о том, что он завершился или как минимум не возвращает куда следует результат своего выполнения, т.е. не передается решение, которое принял пользователь или результат метода не связан с потоком данных, от этого ЭПО видит что метод отработал, но не получив никакого результата валится в Error, имхо так.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 16:06 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
Если не получится с доп.методом, можно попробовать сделать другим способом - переопределить свой объект "Решение пользователя", переопределить метод Display (или что-то типа ProcessDecision) и там сначала вызвать свой код, а потом стандартный метод.

Вообще, если тут не важно - модальный вызов своего кода или нет, то можно оформить этот вызов как метод к-л объекта и приаттачить его как приложение к шагу.


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Проблема несколько проясняется, но решения пока не нашел.
Еггог получался из-за ошибки метода cl_swf_run_wim_dialog->get_main_object (нельзя определить ведущий объект ЭПО). Подумалось, что необходим объект. Был написан метод, создающий инстанцию моего класса и вставлен в фоновую задачку в начале потока опций (чтобы вместо инстанции БО в потоке юзать абап-инстанцию, а не только ключ).
Теперь ситуация другая - эта фоновая задачка стартует и зависает в статусе Готово, поток соответственно тоже висит.
Связи внутри задачи для передачи в контейнер из метода инстанции класса вроде определены. Как бы растолкать эту задачку?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 17:09 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
может метод асинхронный и ждет события завершения ?

первая ошибка могла быть из-за того, то где-то в параметрах есть объект как обязательный параметр и поток встает, если почему-то не находит его (инстанция не создана)

раньше работала такая фича - если в обязательный параметр-объект передать ключ, а не саму инстанцию, то инстанция создается сама.
это работало для объектов с ключами из одного поля, если ключ состоит из нескольких, то проще его создать через свой фоновый шаг.

еще инстанцию можно создавать через БО system->createinstance, но опять же только для ключа из одного поля...


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Метод синхронный. А инстанция при использовании своего класса у меня изначально не создается млин. Ключ принимает, а толку нет. То бишь та фича у меня с собственным классом не срабатывает.
В потоке нет никакого использования БО, только АБАП-класс.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 21:31 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
Короче, все надо делать не так :D :D :D
Коль скоро у тебя транзакция с самодельной экранной формой и должно быть принято решение да, нет, все в сад, я занят или еще что-то, то делается это через обычный шаг, в котором вызывается метод БО который запускает твою УНИКАЛЬНУЮ транзакцию для принятия сложного решения (казнить нельзя помиловать :)) а на ее выходе генерируется одно из вышеперечисленных событий, оти события ставятся как события выхода в ЭПО и фсе!
Юзер, получая на мэйл уведомление мол примите решение ё-маё, открывает полученное письмо, запускается твоя УНИКАЛЬНАЯ :D транзакция и по нажатию, соитию, лобызанию, надавливанию :D кнопки генерится EVENT который ловит ПО и идет по одной из веток.

з.ы. Guinness forever 8) :lol: :D :pivo:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июн 16 2007, 09:49 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Bkmz написал:
Короче, все надо делать не так :D :D :D
Коль скоро у тебя транзакция с самодельной экранной ....
:oops: Транзакция не самописная, а стандартная. Заказчика не устраиват стандартный подход к управлению инвестициям, пришлось смешивать до кучи в потоке объект BUS2104 (кста по нему даже поток стандартный присутствует, но не подходит) и ABAP-класс. Потом в классе продублировал методы EDIT и DISPLAY (из БО), и вообще повычеркивал использование БО. Но тем не менее транзакции в классе вызываются обычные, чуть расширенные за счет юзер-экзита (но без варианта использования своего gui-статуса и без модификации стандартного). Поэтому МОИ кнопки пользователи не жмут, EVENT соответственно стоит в стороне и нервно курит...
Был бы БО самописный, да транзакция самописная, да счет в шфейцарском банке, :shock: о чем это я? :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 18 2007, 10:21 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
Инстанция БО вроде как хранится в abap-memory, и имеет проблемы при передаче ее в контекстах всяких ОО.

Может оформить все это виде банального ФМ и создавать инстанцию в общих переменных группы функций ? Или вообще внутри кода метода БО ? ))


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

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


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

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


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

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