Автор Тема: Не сохраняется фин.позиция в тр.mb21  (Прочитано 4433 раз)

0 Пользователей и 1 Гость просматривают эту тему.

HelenKai

  • Гость
Не сохраняется фин.позиция в тр.mb21
« : Август 14, 2012, 11:24:19 am »
Добрый день!
Подскажите как можно в тр. mb21 сохранить  фин. позицию, которую вводят не руками, а подставляют с помощью ФМ???
Пробовала через MB_RESERVATION_BADI метод modify обычным присвоением cs_resb-fipex = '12.1.1.4' и   
ASSIGN ('(SAPMM07R)COBL-FIPEX') TO <fs>. <fs> = '12.1.1.4'. Значание не сохраняется.
Может кто-то сталкивался с подобной проблемой?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 780
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Не сохраняется фин.позиция в тр.mb21
« Ответ #1 : Август 14, 2012, 02:49:49 pm »
You are not allowed to view links. Register or Login
Пробовала через 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 правильное, но не правильно выбрано место вызова данной конструкции. В этом месте такое изменение не актуально, опять же потому что поля контировки находятся на своем подэкране  8), но это не значит, что нельзя изменить контировку, хотя конечно стандартно она тянется из счета, а поэтому надо было искать место/экзит где это происходит.

Решение: В общем виде есть расширение: 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 присваиваете в нее нужную вам финпозицию и все типа работает. Единственное аккуратно там в экзите, а то это расширение много где вызывается, так что прверочки поставьте на то что это именно создание резервирования происходит.
« Последнее редактирование: Август 14, 2012, 03:01:12 pm от Uukrul »