Текущее время: Чт, дек 18 2025, 08:52

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


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

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


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

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