Пробовала через MB_RESERVATION_BADI метод modify обычным присвоением cs_resb-fipex = '12.1.1.4' и
ASSIGN ('(SAPMM07R)COBL-FIPEX') TO <fs>. <fs> = '12.1.1.4'.
Ну как вам сказать, в данном BADI система формирует список модифицируемых полей исходя из того какие поля открыты для ввода на экране резервирования, кроме блока контировок, так как данные элементы физически размещены на другом подэкране и поэтому не обрабатываются в этом BADI. Использование второго варианта через ASSIGN правильное, но не правильно выбрано место вызова данной конструкции. В этом месте такое изменение не актуально, опять же потому что поля контировки находятся на своем подэкране
, но это не значит, что нельзя изменить контировку, хотя конечно стандартно она тянется из счета, а поэтому надо было искать место/экзит где это происходит.
Решение: В общем виде есть расширение:
ACCOBL01, которое вы можете активировать через транзакцию CMOD (You are not allowed to view links.
Register or
Login) и далее используем появившуюся функцию расширения:
EXIT_SAPLKACB_002 - PAI exit for customer fields in coding block (или метод PBO), хотя в данном расширении на прямую нельзя изменить поле финпозиции FIPOS (стандартно экзит обрабатывает только созданные пользователем контировки), но через использование конструкции ASSIGN, можно дотянутся до p_cobl в которой и меняем FIPOS, точнее брать нужно переменную
(SAPLKACG)L_COBL-FIPOS присваиваете в нее нужную вам финпозицию и все типа работает. Единственное аккуратно там в экзите, а то это расширение много где вызывается, так что прверочки поставьте на то что это именно создание резервирования происходит.