SAPфорум.RU
https://www.sapboard.ru/forum/

Добавление полей в транзакцию IH01
https://www.sapboard.ru/forum/viewtopic.php?f=8&t=98342
Страница 1 из 1

Автор:  Maksimka [ Чт, янв 16 2020, 07:16 ]
Заголовок сообщения:  Добавление полей в транзакцию IH01

Добрый день уважаемые консультанты ТОРО и ABAP-ы.

Вопрос 1: возможно ли в транзакции IH01 добавление z-полей? Имеется в виду поля, которые добавляются для отображения иерархической структуры через пункт меню Параметры настройки-Выбор полей и там можно добавлять поля для ЕО и ТМ, но выбирать можно конечно же только стандартные поля. Копался в инете ничего не нашёл. Все советуют использовать для этих целей листовой отчёт и я его конечно же использую, но иерархическая транзакция тоже очень удобна. Может кто делал подобное и подскажет куда копать?

Вопрос 2: возможно ли в транзакцию IH01 добавление не просто стандартных полей, но и их текстовое описание. Ну т.е. например добавил я через пункт меню Параметры настройки-Выбор полей-ЕО поле Местоположение или к примеру поле Производственный участок, а оно содержит цифровой идетификатор и это весьма не информативно. Можно ли туда как нибудь добавить поле ТекстОписание к Местоположению или Производственному участку? Может кто делал что нибудь подобное?

Автор:  Maksimka [ Ср, фев 26 2020, 07:12 ]
Заголовок сообщения:  Re: Добавление полей в транзакцию IH01

Нашёл один Badi в интернете BADI_EAM_STRUCTURE_LIST, насколько он приемлем наверняка не известно. Суть в том, что смотря в debug для отображение полей структурного списка существует структура RIHEQUI, её содержимое полностью передаётся в программу транзакции IH01. Расширить эту структуру вроде бы можно, ну т.е. я добавил дополнительную структуру с полем текстового описания Местоположения. В транзакции IH01 это поле появляется, но конечно же оно пустое.

Пытался сделать реализацию BADI_EAM_STRUCTURE_LIST в классе BADI_EAML_STRUCTURE_LIST методе IF_EX_BADI_EAM_STRUCTURE_LIST~GET_OBJECTS есть пример реализации с транспортными средствами, который кстати говоря не работает, потому что в транспортных средствах имеются z поля, которые через этот класс должны передаваться в отображение структурного списка IH01, но этого не происходит. Если я правильно понял, то мне также нужно работать с этим классом Теперь не понятно, как мне осуществить заполнение поля, которое я добавил в дополнительную структуру структуры RIHEQUI? Может кто работал с этим Badi и подскажет как с ним дальше работать?

Плюс ещё момент, при добавлении как стандартных полей так и полей Z должны ли они появляться в настройке транзакции OIWE ?

Автор:  Maksimka [ Чт, апр 09 2020, 09:43 ]
Заголовок сообщения:  Re: Добавление полей в транзакцию IH01

В общем если кому нибудь понадобится, то добавление полей в стандартный иерархический отчёт IH01 возможно. На данном примере я добавил в отчёт название местоположения единицы оборудования и название производственного участка.

1. Создать дополнительную структуру Z с полями Z к физической структуре RIHEQUI.
2. Запустить транзакцию OIWE проверив появились ли там новые z поля.
3. Открыть программу RIIFLO10 Представление структуры технического места include MIHIXF10 и вставить туда ENHANCEMENT(как создавать ENHANCEMENT я объяснять не буду, посмотрите в Интернете).
4.
Code:
ENHANCEMENT 1  ZIH01_01.    "active version     
FIELD-SYMBOLS: <z_container> TYPE X,
               <z_structure> TYPE X.
if f_object(1) = 'E' and ( RIHEQUI-stort ne space or RIHEQUI-beber ne space ).
IF RIHEQUI-EQUNR IS NOT INITIAL.

select single ktext from t499s into (RIHEQUI-ZZ_KTEXT) where stand = RIHEQUI-stort.
select single FING FROM T357   INTO (RIHEQUI-ZZ_FING) WHERE beber = RIHEQUI-beber.

ASSIGN f_data TO <z_container> CASTING.
    ASSIGN rihequi TO <z_structure> CASTING.                 "N965677
    <z_container> = <z_structure>.
ENDIF.
endif.
ENDENHANCEMENT.

5. Запустить транзакцию IH01, раскрыть дерево, пункт меню Параметры настройки - Выбор полей - Единица оборудования и там добавляете те поля, которые были созданы в Z структуре.

Автор:  alexey-3-d [ Чт, мар 04 2021, 11:25 ]
Заголовок сообщения:  Re: Добавление полей в транзакцию IH01

В дополнение если кому понадобится:
Столкнулся с проблемой отображения полей: после расширения RIHEQUI дополнительной структурой, новые поля отобразились в транзакции OIWE, но в IH01 не мог их добавить (они просто сбрасывались/исчезали из выбора).
По отладке докопался до таблицы TIH01, в ней имеется поле IHDAUSW, в котором каждый символ представляет собой одну запись/строку транзакции OIWE. Проблема заключалась в том, что длина поля IHDAUSW 120 символов, а в транзакции OIWE только стандартных записей/строк 126 + 2 мои Z.
В итоге нашел ноту 2804086, которая решила проблему (обратите внимание что просто увеличение длины поля до 200 символов недостаточно, после ручных действий необходимо накатить ноту - в коде ФМников/классов есть ограничение в 120 символов, которое также исправляется на 200).

Также в виде подсказки (для не опытных :D ): Enhancement нужно добавить в начало FORM insert_object_f10.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/