SAPфорум.RU
https://sapboard.ru/forum/

Смена логики пересчета цен при фактурировании RV61AFZA / STEU
https://sapboard.ru/forum/viewtopic.php?f=2&t=100313
Страница 1 из 1

Автор:  Наташа [ Вт, мар 28 2023, 14:16 ]
Заголовок сообщения:  Смена логики пересчета цен при фактурировании RV61AFZA / STEU

Доброго дня.
Экзит нашелся быстро.
В отличе от экзита для заказа, просто дать команду "пересчитать цены по правилу А (или В, или С) " тут нет.
Есть возможность изменить поведение системы при правилах рассчета цен в фактуре, указанном в правилах копирования (VTFL / VTFA транзакции),
Но (мысленное упоминание авторов экзита, не оставивших вменяемое описание шедевра) я не могу понять, как это можно сделать.
Из раскопок в интернете понятно, что нужно 1/Сменить правило перерасчета цен на кастомерский X/Y/Z и 2/ добавить строку для этого X/Y/Z в steu
Из описаний в экзите понятно, что в этой новой строке
1/ в колонке STEU-KNTYP мы должны перечислить типы условий (поставить буквы вместо точек),
для которых будет пересчет цен заново (в тч могут быть условия пользовательского типа - на тех же трех буквах)
2/ KOAID - то же самое, только для классов условий (тоже из экрана в определении условий)

Но что значит "STEU-MAUEB = ' '. "X means: manually entered" - что если условие вводили вручную, то перерасчитываем?
И все остальные колонки?
Кто-то экспериментировал?
Поделитесь, пожалуйста.


PS Кстати, полностью поняла первую часть только когда писала этот пост! Пока собираюсь ей и ограничиться.

Автор:  Наташа [ Вт, мар 28 2023, 16:38 ]
Заголовок сообщения:  Re: Смена логики пересчета цен при фактурировании RV61AFZA / STEU

Да, первая часть работает именно так, проверила.
Поставила правило перерасчета цен в копировании позиций = Z (VTFL), и
Теперь система ВСЕГДА добавляет строку с Z в steu (через мои строчки в RV61AFZA), но в тех случаях, когда это надо (для списка заказчиков),
- копирует уже имеющееся правило, которое я меняла на Z (раньше было G),
- вместо одной из точек в steu-kntyp добавляет Y (это я такой тип условий поставила в VOK0, именно для условий заголовка, которые мне надо автоматом рассчитать!)

А когда заказчик не из списка, то копирует строку с правилом G в новую строку с правилом Z без добавления типа условия Y
Все остальное, будем надеяться, не понадобится.

Примерчик моего корявого, но вполне рабочего кода (да, за 20 лет абапить красиво я так и не научилась! :) )

if komk-auart = ''. " it means we are in the invoice
data: xknprs like steu-knprs.
clear: wa_steu, xknprs.
CLEAR steu_kntyp.
<селектим из Z таблицы правило в xknprs , которое было раньше и теперь его нужно поменять на Z>

if xknprs NE ''.
READ TABLE steu WITH KEY knprs = xknprs INTO wa_steu.
else.
READ TABLE steu WITH KEY knprs = 'G' INTO wa_steu.
endif.

IF sy-subrc = 0.
<смотрим - заказчик из списка или нет>

if sy-subrc = 0.

CONCATENATE 'Y' wa_steu-kntyp INTO steu_kntyp.
wa_steu-kntyp = steu_kntyp.
wa_steu-knprs = 'Z'.
APPEND wa_steu TO steu.

else.

wa_steu-knprs = 'Z'.
APPEND wa_steu TO steu.

ENDIF.

endif.


endif.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/