hugo788 написал(а):
Понятно, т.е. если я хочу чтобы выполнился в начале ENHANCEMENT, потом в конце ENHANCEMENT, то без прогона стандартного кода в середине я все равно не обойдусь.
А если попробовать такой вариант. Создаем класс с тремя статическими методами. Один отвечает за установление/сброс индикатора, второй выполняет проверку состояния данного индикатора, третий вызывает нужную вам форму с передачей ей необходимых параметров (их берем из входных данных метода, а сам вызов формы делаем через PERFORM <имя формы> IN PROGRAM <имя программы>). А дальше реализуем оба enhancements в таком варианте. В первом (тот, что в начале формы) проверяем индикатор. Если установлен, то переходим к выполнению стандартного кода, если нет, то устанавливаем индикатор через соответствующий метод нашего класса и вызываем второй метод для повторного вызова формы, после чего сбрасываем индикатор и выходим из формы. Во втором (тот, что в конце формы) проверяем индикатор. Если установлен, то пишем свою логику и корректируем выходные параметры формы, если нет, то выходим из формы.