Нужно при сохранении техкарты (тр.IA02) проходить по списку операций техкарты и проверять одно из полей (PLPOD-INDET, ключ вычислений).
Использую для проверок одну из бади (BAdI Interface IF_EX_IMRM_TL_WORKFLOWS).
Там метод есть IF_EX_IMRM_TL_WORKFLOWS~REQUEST_MP_SCHEDULING.
Вот такой экран в IA02.
При сохранении вызываю ФМ
Code:
CALL FUNCTION 'PMTL_GET_CPBT_CONTENT'
EXPORTING
i_plnty = ls_plko-plnty
i_plnnr = ls_plko-plnnr
i_plnal = ls_plko-plnal
* i_read_from_buffer = abap_true
* i_refresh = abap_true
IMPORTING
et_plpo = lt_oper.
И вот тут странно. Для каких-то техкарт этот ФМ вытягивает уже изменённые на экране данные (то есть видит обновление полей). А для каких-то техкарт почему-то ФМ возвращает данные из БД. Пробовал играть с параметрами, пробовал вызывать другой ФМ на очистку буффера. Что-то ничего не помогает.
Вообще, возможно, не в том месте пытаюсь правки добавить? Может, есть какое-то ещё стандартное место для проверки ТК при сохранении? Пытался гуглить, как-то не особо. Видел ещё CPAU001. Пробовал туда засунуть проверки, такая же проблема - для каких-то техкарт обновление полей видно, а для каких-то - нет.
Причём пока заметил закономерность, что для счётчика групп техкарт самого первого - работает корректно всё. А как только беру карты с большим счётчиком, то начинаются косяки.