LOEKZ написал(а):
То что Вы хотите сделать (добавить свои поля прям в дерево заказов) стандартными BADI не получится, тут только через неявные расширения.
Вообще, SAP для этих целей сделал BADI MD_EXPORT_TREE, при его активации в дереве заказов появляется кнопка, сама BADI содержит все данные дереве заказа, которые можно дополнить своими полями и вывести в виде отдельного отчёта, например, в ALV.
Попробовал по отладке поймать момент вызова этой badi методом, подсказанным broker.chelny, но MD_EXPORT_TREE что то не ловится среди них. Если запустить отладку с этого момента (при первом входе в транзакцию):
то ловит следующие badi (по порядку):
MD_DISPLAY_ELEMENT
MD_MRP_PARAMETERS
BADI_LAYER
MD_SUBCONT_LOGIC
MD_CHANGE_CALENDAR
MD_CHANGE_MRP_DATA
MD_ADD_ELEMENTS (вероятно здесь основная логика работы, т.к. до следующего вызова ощутимо подвисает всё)
BADI_MATN1
MD_ADD_COL_EZPS
(далее повтор, начиная с MD_MRP_PARAMETERS до MD_ADD_ELEMENTS)
MD_DISPLAY_ELEMENT
MD_ADD_COL_OVERVIEW
Если же вернуться назад и заново запустить отчёт (не выходя из транз. полностью), то ловит так:
BADI_MATN1
MD_ADD_COL_EZPS
MD_DISPLAY_ELEMENT
MD_ADD_COL_OVERVIEW
Немного отличается от предыдущего вызова вероятно тем, что данные не грузит заново, а запоминает. Ну в общем, в MD_EXPORT_TREE в итоге так и не попадает, но зато попадает в MD_ADD_COL_EZPS и MD_ADD_COL_OVERVIEW с говорящими названиями. Правда у них одинаковые методы перечислены в se18, но я предположил, что раз MD_ADD_COL_OVERVIEW вызывается позже, то за окончательную визуализацию должен он отвечать. В нём используется такая структура:
Я немного попробовал в отладке параметры этой структуры поменять, которые подсветил:
BADON = X
PLAUF = B4 (хотя помойму там должно быть B7, исходя из справочных значений для этого поля, но ни так, ни так не показывает)
COL_CHAR1_ACT = X
COL_CHAR1_NAME = test
но на экране визуально никаких изменений не произошло(хотя поидее должны были хотя бы пустые колонки добавиться).
Я, к сожалению, badi сами по себе никогда не использовал - возможно я что то не так делаю.