В общем уткнулся в проблему, что при изменении некоторых полей заявки, вызов изменения блока контировок не происходит. Точнее оказалось, что блок контировок и как следствие деривация FM отрабатывает только при изменении следующих полей или ситуации:
knttp
werks
kzvbr
sobkz
bwtar
badat
lfdat
menge
meins
matkl
vrtkz
funds_mgt
fixkz
source
service_package - изменение услуг
net_value - изменение цены
В других случаях пересчет контировки не выполняется, а тут потребовалось сделать пересчет контировки при изменении группы закупки. Если покурить написанный код, то в модуле LMEREQF55, есть вызовы которые управляют флагом, нужен или нет пересчет контировки при изменении значения в поле. К сожалению вклиниться через энхансменты в S4/HANA 1709 не вышло, поэтому пока написал петицию в гнездо, может что-то прикрутят, а пока вклинился своим кодом:
CALL METHOD add_pre_condition:
EXPORTING im_rule_base = im_rule_base
im_classname = 'lcl_r_ekgrp'
im_dependency = mmpur_rule_dep_observer.
который вызывает пересчет контировки при изменении поля группы закупка. Пока все работает, хотя хотелось бы если не настройку или BADI, то хотя бы статический энхансмент для включения своей логики добавления полей. Как формировать имя класса, который должен быть передан, думаю, кому надо, разберетесь.