Текущее время: Чт, апр 18 2024, 08:57

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 12:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
Добрый день уважаемые Abap-еры.

В основной записи единицы оборудования есть поле Вид объекта, заполняется это поле из списка, который подтягивается из стандартной настройки. Хотел попытаться сделать ограничения отображения этого списка в зависимости от Типа оборудования, ну т.е. допустим если тип оборудования N, то отображался бы список не весь, а только с определёнными значениями.

Копался в отладчике при выборе этого списка транзакции IE02 - Изменить единицу оборудования, вроде бы нашёл функциональный модуль DD_SHLP_CALL_FROM_DYNP, который вызывает Serch help со всем списком таблицы, где храняться виды объектов. Так вот, не хватает знаний как втиснуть в этот функциональный модуль свой код, который бы передавал не всё содержимое физ. таблички, а например часть содержимого в зависимости от Типа оборудования.

Пытался вставить расширение в этот ФМ, но SAP разрешает вставлять Enhancement либо в начале ФМ, либо в конце, что мне не совсем подходит. Может кто то что подобное делал и подскажет куда копать и как такое вообще делается?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 12:49 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Этот ФМ не для отражения видов объекта, а для вызова Search Help. Расширять его не самая лучшая идея, так как он и в других областях системы используется. И там ваше расширение может помешать.

Определите какое средство поиска использется, и расширяйте средство поиска


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 14:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
Kuranov.Dmitry написал(а):
Этот ФМ не для отражения видов объекта, а для вызова Search Help. Расширять его не самая лучшая идея, так как он и в других областях системы используется. И там ваше расширение может помешать.

Определите какое средство поиска использется, и расширяйте средство поиска

Опять же не понятно как его найтить, облазил все таблички, ни где средство поиска не привязано к этому полю. Смотрел стандартный экран в редакторое на котором это поле лежит, и там средство поиска не прицеплено. Видимо где то динамически что ли вызывается?!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 15:09 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Поле экрана RM63E-EQTYP?

в структуре RM63E это поле привязано к проверочной таблице T370T


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 15:22 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
Kuranov.Dmitry написал(а):
Поле экрана RM63E-EQTYP?

в структуре RM63E это поле привязано к проверочной таблице T370T

Я может быть что то не допонимаю, я ищу поле EQART. Если смотреть табличку EQUI, где лежат основные данные единиц оборудования, то у поля EQART проверочная табличка T370K, но там нет средства поиска. Если указана проверочная таблица, то средство поиска можно не указывать? Проверочная таблица будет выступать в качестве средства поиска для поля на экране транзакции?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 15:30 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Не правильно прочитал, смотрел для ТипЕдОборуд.
Но тут та же ситуация. Да если указана проверочная таблица - то она и выводится.

Если не ошибаюсь, расширению не поддается, разве что модифицировать привязку не на таблицу, а на Z* Search Help


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 15:36 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
Kuranov.Dmitry написал(а):
Не правильно прочитал, смотрел для ТипЕдОборуд.
Но тут та же ситуация. Да если указана проверочная таблица - то она и выводится.

Если не ошибаюсь, расширению не поддается, разве что модифицировать привязку не на таблицу, а на Z* Search Help

Я так понимаю для этого нужно изменять стандартную табличку привязав к ней свой Search Help или как то по другому?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Вт, фев 18 2020, 21:01 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 13 2012, 10:16
Сообщения: 28
Добавить пустую Z append структуру в EQUI, в ней переопределить средство поиска для конкретного поля.
Пример по ссылке
https://blogs.sap.com/2014/12/18/assign ... structure/


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Ср, фев 19 2020, 11:02 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
jastfake написал(а):
Добавить пустую Z append структуру в EQUI, в ней переопределить средство поиска для конкретного поля.
Пример по ссылке
https://blogs.sap.com/2014/12/18/assign ... structure/


Спасибо. Не знал о таком расширении.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Ср, фев 19 2020, 14:11 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
jastfake написал(а):
Добавить пустую Z append структуру в EQUI, в ней переопределить средство поиска для конкретного поля.
Пример по ссылке
https://blogs.sap.com/2014/12/18/assign ... structure/

Замечательный совет, сделал всё как в примере, вроде бы сработало. Но возникает ещё одна проблема. В SearchHelp-e, который я привязал в к полю eqart прописан функциональный модуль, который отображает только нужные виды объектов. Что то вроде:
Code:
data: l_shselopt   like ddshselopt.
if callcontrol-step <> 'SELONE' and
   callcontrol-step <> 'SELECT' and
   callcontrol-step <> 'DISP'.
    exit.
  endif.
  if callcontrol-step = 'SELONE'.
    exit.
  endif.

  if callcontrol-step = 'PRESEL'.
    exit.
  endif.
if callcontrol-step = 'SELECT'.
    clear: gt_eqart[].
select * from t370k_t into corresponding fields of gs_eqart where spras = 'RU' and  ( eqart = 'SERVERS' or eqart = 'CONSOLE'
        or eqart = 'NTWRKEQUIP' or eqart = 'AIRCOOLSYS' or eqart = 'HDD' or eqart = 'POWERSUPL' or eqart = 'STWRKOP' or eqart = 'SETCOMPON'
        or eqart = 'NETWRKCARD' or eqart = 'BACKUPSYS' ).
        append gs_eqart to gt_eqart.
      endselect.
    endif.

    record_tab[] = gt_eqart[].

    if not gt_eqart[] is initial.
      callcontrol-step = 'DISP'.
    else.
      callcontrol-step = 'EXIT'.
    endif.
  endif.

  if callcontrol-step = 'DISP'.
    exit.
  endif.

Проблема в том, что список отображаемых видов объектов согласно селекту выше для Типа оборудования N, отображается также и для всех остальных типов оборудования. Пытаюсь сделать так, чтобы селект шёл в зависимости от типа открываемого оборудования. Для этого иду в ФМ под названием EXIT_SAPLITO0_001, где я добавлял z-поля для основной записи единицы оборудования, там есть поле zeqtyp, которое заполняется значением поля Тип оборудования открываемого транзакцией на данный момент времени. Это же поле я использую потом для работы с z-овскими экранами. Так вот, пытаюсь сделать так:
Code:
data: x(1).
export zeqtyp to memory id x.

Затем пытаюсь в функциональном модуле, где идёт селект видов объектов в нужном мне SearchHelpe сделать:
Code:
import zeqtyp from memory id x.

Все используемые переменные объявил в обоих ФМ, но значение не передаётся. Чтобы проверить наверняка, я попытался сделать в ФМ EXIT_SAPLITO0_001 и export и import, но import в переменную не срабатывает. Что я делаю не так не понятно?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Ср, фев 19 2020, 22:51 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 13 2012, 10:16
Сообщения: 28
У вас overhead как мне кажется, причем тут ФМ и export/import to memory id?
Если я правильно понял - вам надо отображать EQART в зависимости от EQTYP.
Заведите Z-таблицу из двух полей, привяжите средство поиска, в нем укажите значение по умолчанию EQT для поля EQTYP и немедленный просмотр значений. Будет работать на ура.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Пт, фев 21 2020, 08:40 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
jastfake написал(а):
У вас overhead как мне кажется, причем тут ФМ и export/import to memory id?
Если я правильно понял - вам надо отображать EQART в зависимости от EQTYP.
Заведите Z-таблицу из двух полей, привяжите средство поиска, в нем укажите значение по умолчанию EQT для поля EQTYP и немедленный просмотр значений. Будет работать на ура.

Мне не понятно, что Вы имеете в виду под overhead? При открытии транзакции IE03 срабатывает ФМ EXIT_SAPLITO0_001, из него я пытаюсь export-om забрать значение переменной import-om в ФМ который срабатывает при открытии моего SearchHelp. Ваш совет мне понятен, возможно его и применю, спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Пт, фев 21 2020, 10:17 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
overhead - излишние сложности для решения задачи.

Ваш export вообще выполняется?

переменная x заполнена?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей
СообщениеДобавлено: Пт, фев 21 2020, 14:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 780
Откуда: South Kazakhstan
Пол: Мужской
Kuranov.Dmitry написал(а):
overhead - излишние сложности для решения задачи.

Ваш export вообще выполняется?

переменная x заполнена?

Смотрю в debug в ФМ EXIT_SAPLITO0_001 Export выполняется, т.е. значение в переменную х передаётся, но import в другой ФМ не срабатывает, значение переменной в принимаемом ФМ пустое.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение стандартных функциональных модулей  Тема решена
СообщениеДобавлено: Сб, фев 22 2020, 02:45 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 13 2012, 10:16
Сообщения: 28
Средство поиска стандарт или Z? Если Z, то попробуйте пойти тем же путем - добавить признак EQTYP в средство поиска, значение по умолчанию EQT для поля EQTYP, и в параметрах ФМ поискать это значение в структуре SHLP-INTERFACE.

Export/import to memory id использовать не рекомендуется - это обычно крайняя мера, когда никакой другой вариант не найден.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB