MEREQ001 - Собственные данные клиента в заявке на закупку (ME_PROCESS_REQ_CUST)

Автор Uukrul, Серпень 13, 2018, 10:50:44 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Uukrul

Так и хочется сказать, ну вот же никогда такого небыло и вот снова.  Есть расширение и есть аналогичное старое BAdI ME_PROCESS_REQ_CUST, в котором можно многое что проверить в заявке на закупку, но как-то как обычно по непонятной случайности в методе работы с позицией заявки почему-то нет доступа к контировкам обрабатываемой позиции. Хотя вернуть ошибку без проблем можно в таблице EX_MESSAGES. В функцию работы с позиций вам передают ссылку на интерфейс для доступа к позиции, а так же по старой памяти заполненные структуры, ну если вы не очень умеете работать с полученным интерфейсом. Но, почему-то не передают таблицу контировок к этой же позиции, а интерфейс так же по непонятной логике не имеет методов доступа к контировкам, хотя внутри реализации  такие методы есть.

Теперь для чего нужна таблица контировок в данном месте, Ну скажем так, чтобы красиво вывелся журнал проверки, что ошибка именно в позиции ХХХ, а не в методе CHECK вы сами перечисляете в каких позициях проблемы, там кстати таблица с контировками к позициям заявки передается.

В общем для доступа к контировкам позиции внутри ФМ/Метода пишем следующее:

    DATA : lo_obj_acc  TYPE REF TO object,
           lo_obj_cobl TYPE REF TO object,
           lt_cobl     TYPE TABLE OF cobl.
    FIELD-SYMBOLS: <lo_any> TYPE any.

***
        lo_obj_acc ?= im_req_item.
        ASSIGN lo_obj_acc->('MY_STATE->ACCT_CONTAINER') TO <lo_any>.
        lo_obj_cobl = <lo_any>.
        CALL METHOD lo_obj_cobl->('GET_COBL') IMPORTING ex_cobl = lt_cobl.
***

Все, в таблице LT_COBL получаем контировки к текущей позиции заявки, с которыми можно уже делать все что необходимо. Кстати, если вам случайно нужно что-то поменять в контировках, то после изменений таблицы LT_COBL необходимо записать данные изменения обратно в общий класс, для этого вызываем, метод записи:

CALL METHOD lo_obj_cobl->('SET_COBL') EXPORTING im_cobl = lt_cobl.

SMF spam blocked by CleanTalk