Текущее время: Пн, июл 21 2025, 23:53

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: OpenFI событие 940
СообщениеДобавлено: Пт, мар 30 2007, 15:44 
Специалист
Специалист

Зарегистрирован:
Пн, сен 20 2004, 10:38
Сообщения: 152
Задача: при выравнивании документа (например тр. F-44), необходимо в зависимости от данных введенных на первом экране (счет, дата выравнивания, период, БЕ, валюта) отсеять часть выравниваемых позиций (при этом пользователь не использует ни каких других ограничений выбора).

Решение: пытался сделать это через использование OpenFI по событию 940 "ПРОВОДКА: проверка после выхода из ОБРАБОТКИ ОП".
В своем ФМ правлю табличку T_POSTAB - деактивирую позиции путем снятия флага в поле XAKTP.

Проблема: после отработки собственного ФМ и возврата к коду SAP мои изменения перезаписываются из таблици LT_POSTAB, в которую была скопирована таблица T_POSTAB перед запуском моего ФМ. Изучение сходных тем на форуме дало следующий результат. Везде идет речь о некой ноте которая делает невозможным сохранение своих изменений путем импорта в память. Суть ноты сводится к тому что она коментирует кусок кода, где перед запуском ФМ пользователя содержимое таблиц экспортируется в память, и добавляет кусок кода где копирование идет в резервную таблицу. Это справедливо для момента 1025 "ПРОВОДКА ДОКУМЕНТА: Окончат. проверки завершены". Но в моменте 940, который нужен мне, изначально без ноты, данные из внутренних таблиц на время работы ФМ пользователя хранятся не в памяти, а в резервных таблицах, и после отработки собственного ФМ перезеписывают измененные данные востанавливая их.

Вопрос: можно ли в таких условиях, тем не менее как то изменить таблицу T_POSTAB и сохранить внесенные изменения?

ЗЫ. Может я чего не так понял :( ?


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

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Цитата:
ЗЫ. Может я чего не так понял ?

Это уже не важно :)
Если необходимо именно это событие - меняйте значения в LT_POSTAB через ASSIGN. Пусть перезапишет вашими.

З.Ы.: Как крайний вариант. Ответсвенности не несу.


Последний раз редактировалось Пономарев Артем Пт, мар 30 2007, 15:59, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 30 2007, 15:54 
Специалист
Специалист

Зарегистрирован:
Вт, авг 17 2004, 08:47
Сообщения: 222
Пол: Мужской
Посмотри ФМ OPEN_FI_PERFORM_00000940_E.

Там вызываются ФМы OpenFI по этому событию. Причем измененные данные из этих ФМ не перезаписывают реальные данные.

По моему проще модифицировать ФМ OPEN_FI_PERFORM_00000940_E.

В конце LOOP в ФМ дописать:
Code:
  t_bkpf[] = lt_bkpf[].
  t_postab[] = lt_postab[].
  t_rsgtab[] = lt_rsgtab[].


Такая же ситуация и в событии 1025. Мы его решили как раз модифицированием. Потому что большие размеры данных гонять через память не очень хорошо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 30 2007, 16:25 
Специалист
Специалист

Зарегистрирован:
Пн, сен 20 2004, 10:38
Сообщения: 152
Да у нас как то не принято стандарт модифицировать :( ... оставлю это на самый крайний случай. а так попробую через assign или на худой конец через batch input :(


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

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


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

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


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

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