slim написал(а):
Как вариант можно попробовать IWO10009 - Сохранение заказа ТОРО.

А как? Во входных парамерах поле есть. А как изменить его на экране?
Что-то не совсем понял вопрос! IWO10009 - срабатывает в момент нажатия кнопки сохранить.
Как и обещал (хотя конечно это тема АБАП-форума, там лучше это дело объяснят) на примере тр.MB1C (это чисто руководство к действию, без какой либо теории):
По поводу теории, рекомендую:
http://www.sapboard.ru/forum/viewtopic.php?t=10237 1. Во первых, нужно убедиться что в системе установлен параметр abap/fieldexit = 'yes' (тр.RZ11 - можно проверить что установлено, изменение параметра - это дело вашего админа) - иначе fieldexit работать не будут.
2. Определяем программу, экран и элемент данных (ЭД) на который хотим повесить fieldexit: запускаем MB1C; первый экран; позиция подробно; встаем на поле Сумма во ВВ и жмем F1-Техн.информация. Получаем: программа SAPMM07M, экран 0410, ЭД - EXBWR
3. Запускаем отчет (через SE38) RSMODPRF - на первом экране можно ничего не вносить - сразу на выполнение. Дальше по меню: Поле пользователя - Создать. Указываем ЭД и жмем Enter.
4. Система предлагает создать ФМ FIELD_EXIT_EXBWR, создаем.
ФМ имеет входящий параметр INPUT, и экспортный OUTPUT. В INPUT будет передаваться значение, введенное на экране. В OUTPUT мы передаем измененное значение. Вот, пример того, как можно сделать, чтобы стоимость всегда была равна 100 для 531 ВД:
Код:
FUNCTION FIELD_EXIT_EXBWR.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(INPUT)
*" EXPORTING
*" REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
field-symbols: <fs>.
assign: ('(SAPMM07M)MSEG-BWART') to <fs>.
if sy-subrc = 0.
case <fs>.
when '531'.
output = 100.
when others.
endcase.
endif.
ENDFUNCTION.
5. Активируем ФМ и возвращаемся в RSMODPRF
6. Присваиваем наше расширение экранному полю программы/экрана SAPMM07M 0410: Кнопка Присв.прогр/экран - поле пользователя оставляем пустым, ну а что внести в поля Программа и Экран думаю сам догадаешься
7. Активируем наше созданное расширение (поле пользователя, или fieldexit)
8. Запускаем MB1C и проверяем работу (правда вот с отладчиком в ФМ FIELD_EXIT_EXBWR не попадешь - это конечно минус )