Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: Victor Ghost от Март 16, 2018, 01:33:53 pm
-
Доброго дня всем живым на этом форуме :)
Столкнулся сейчас с непонятным (для меня и еще нескольких человек из консультантов и абаперов):
имеем фм 'TABCONTROL_RETRIEVE_SEL_OPTS', в котором вызывается фм 'DP_GET_TABLE', но, если зайти в отладку, то вместо 'DP_GET_TABLE' запускается 'DD_GET_NAMETAB_HEADER'. :-\
Не пойму, как такое может быть..
/вообще оно нужно по причине "средство поиска по краткому тексту материала не всегда выдает результат поиска". Пример: ввожу (в MM03), например, название материала "ФРИТЮРНИЦА FB 4+4LT BECKERS ITALY SRL", не выдает в поиске ни одного материала. Ввожу "ФРИТЮРНИЦА FB 4+4LT BECKERS ITALY *" - выдает. Посмотрел, что происходит в отладчике - вот как раз после вызова фм 'DP_GET_TABLE' от названия "ФРИТЮРНИЦА FB 4+4LT BECKERS ITALY SRL" остается только "ФРИТЮРНИЦА FB 4+4LT BECKERS ITALY S". Но почему, непонятно. Пробовал на других материалах - длина текста роли не играет, разные символы тоже. Думается мне, что преобразование где-то некорректно происходит...
-
Вообще-то:
@CG\QАктуальная позиция пакета 18 FUNCTION DD_GET_NAMETAB_HEADER
17 FORM DYN_ANALYSE_TABLE
16 FUNCTION DP_GET_TABLE
15 FUNCTION TABCONTROL_RETRIEVE_SEL_OPTS
Как-то типа так вызывается похоже.
-
это да. я потом в отладчике увидел, что за чем вызвалось.
но не пойму, как (вызвалось и отследить изменения в таблице) :)
/это получается динамический вызов фм идет?
-
/это получается динамический вызов фм идет?
Динамический вызов ФМ идет если вы видите в коде что-то типа CALL FUNCTION (function_module), т.е. вызов модуля по имени находящемуся в переменной, для этого имя переменной будет в скобах. Ну ли более сложный вариант, если где-то ранее вызывается динамическая генерация программы. В остальных случаях скорее всего у вас не включена отладка системных модулей кода.
-
точно! с новым интерфейсом непонятно, в каком месте находятся функции старые привычные.. спасибо :)
/правда, с включенной системной отладкой добрался до вызова функции 'DP_GET_CLIENT_TABLE45A', после которой как раз появляется урезанный текст в таблице, но отладчик в эту функцию не заходит.
-
/правда, с включенной системной отладкой добрался до вызова функции 'DP_GET_CLIENT_TABLE45A', после которой как раз появляется
Ну у меня такой функции вообще нет в системе. Так что тут не подскажу...
-
и на том спасибо =)