Ну в общем с этим BADI что-то у меня завести ничего нормально не вышло. но есть userexit ACCOBL01, который срабатывает на блок контировки в заявке. Одна проблема в нем к возврату ожидаются только пользовательские поля контировки, а если их нет, то данный экзит не отрабатывает. Ну если надо сделать, а не помучиться, то есть два варианта:
1.1 Делаем пользовательское поле в контировке, путем расширения структуры
ci_cobl, поле любое хоть CHAR(1).
1.2 Далее активируем экзит ACCOBL01 через транзакцию SMOD.
1.3 Используя технологию FIELD-SYMBOLS в функции экзита получаем доступ к переменной (SAPLKACB)COBL меняем там требуемые нам поля, я проверил для ПФМ, все красиво сработало. Описание как это делается можно посмотреть: You are not allowed to view links.
Register or
Login2.1 Используем технологию Enhancement Spot (You are not allowed to view links.
Register or
Login) идем в модуль SE38: LKACBF03.
2.2 Далее находим там сразу же подпрограмму
FORM customer_exit_pbo CHANGING p_cobl TYPE cobl. и внедряем в самом начале подпрограммы неявный Enhancement Spot в этом расширении меняем нужные нам переменные в структуре
p_cobl, и получаем требуемый нам эффект.
И в том и другом случае это все вызывается для каждой позиции заявки, так что как делать ваше дело, но отлаживаемся аккуратно. Кстати, я бы наверное использовал сценарий 1.