Текущее время: Ср, июн 18 2025, 23:15

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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
Сообщения: 806
Откуда: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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