Sapforum.Biz

Логистика => Техническое обслуживание и ремонт оборудования (PM) => Тема розпочата: themax від Серпень 01, 2019, 03:00:32 ПП

Назва: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Серпень 01, 2019, 03:00:32 ПП
Доброго времени суток уважаемые PM консультанты.

Возник такой вопрос. Есть определённый тип оборудования, пусть будет единиц оборудования. Так вот, этот тип единиц оборудования делится на виды объектов, т.е. в основной записи есть поле Вид объекта, который заполняется из списка, который сделан в стандартной настройке. Как сделать чтобы например для типа единиц оборудования Т в этом списке отображались только виды объектов которые относятся только к типу ЕО Т. Ну т.е. список достаточно большой и бизнес подразделения видят все эти виды объектов, хотя они к ним и не относятся, что доставляет им некоторое неудобство, когда они хотят поработать в ручную с какими то ЕО. В z отчёте я использую это поле в качестве критериев выбора, там у меня получилось сделать свой Search_help и с помощью одного функционального модуля вытаскивать только те Виды объектов которые мне нужны, а вот как быть со стандартными настройками? Может кто делал такое? Или может настройка есть какая нибудь, которая позволила бы разделить отображение этих видов объектов в транзакциях IE01 и IE02 по принципу групп полномочий или какого - нибудь другого условия?
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: Uukrul від Серпень 01, 2019, 03:04:07 ПП
Цитата: themax від Серпень 01, 2019, 03:00:32 ПП
Как сделать чтобы например для типа единиц оборудования Т в этом списке отображались только виды объектов которые относятся только к типу ЕО Т.
Ну в данном случае переписать свой код поиска объектов.
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Лютий 18, 2020, 02:03:10 ПП
Цитата: Uukrul від Серпень 01, 2019, 03:04:07 ПП
Ну в данном случае переписать свой код поиска объектов.
Добрый день Олег.

Поздновастенько продолжаю обсуждать эту тему, но я так и не нашёл средства как это сделать. Пытался в отладчике найти Search help,  который вызывается в транзакции IE02, чтобы попытаться расширить его, облазил все таблички, которые с этим могут быть связаны, а также смотрел  экран этой транзакции в редакторе экранов надеясь, что может быть там привязано к полю средство поиска, но и там нету. Видимо где то вызывается динамически в программе. Может быть вы делали что то подобное с другими транзакциями? Куда копать не пойму?
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: Uukrul від Лютий 18, 2020, 02:25:17 ПП
Цитата: themax від Лютий 18, 2020, 02:03:10 ПП
Поздновастенько продолжаю обсуждать эту тему, но я так и не нашёл средства как это сделать. Пытался в отладчике найти Search help
Ну это ты как-то далеко пошел в отладчик то зачем? Средство поиска, ну как это будет не странно но называется: EQUI. Оно комплексное, а это значит что можно добавить свое средство поиска без проблем к данному стандартному средству.
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Лютий 18, 2020, 02:33:54 ПП
Цитата: Uukrul від Лютий 18, 2020, 02:25:17 ПП
Ну это ты как-то далеко пошел в отладчик то зачем? Средство поиска, ну как это будет не странно но называется: EQUI. Оно комплексное, а это значит что можно добавить свое средство поиска без проблем к данному стандартному средству.
Я извиняюсь за интеллект, но я чот не допонимаю. EQUI это стандартная табличка, мне пытаться изменить стандартную табличку, добавив в неё свой Search Help? Просто мне врятли кто даст ключ этого объекта для его редактирования или это как то по другому делается?
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Лютий 18, 2020, 04:00:06 ПП
Я не сразу понял, что Вы имеете в виду реальное средство поиска EQUI. Но это опять же стандартный объект, чтобы его как то расширить нужен ключ доступа к объекту или как то по другому это можно сделать?
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: Uukrul від Лютий 19, 2020, 10:16:13 ДП
Цитата: themax від Лютий 18, 2020, 04:00:06 ПП
Я не сразу понял, что Вы имеете в виду реальное средство поиска EQUI. Но это опять же стандартный объект, чтобы его как то расширить нужен ключ доступа к объекту или как то по другому это можно сделать?
Нет ключ не нужен, добавление собственного элементарного средства поиска в комплексное не требует ключа на объект.  В общем как-то так как по картинкам, думаю разберетесь.
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Лютий 19, 2020, 01:17:01 ПП
Цитата: Uukrul від Лютий 19, 2020, 10:16:13 ДП
Нет ключ не нужен, добавление собственного элементарного средства поиска в комплексное не требует ключа на объект.  В общем как-то так как по картинкам, думаю разберетесь.
Спасибо Олег за разъяснение, добавил своё средство поиска, но возникает одна не большая проблема. В SearchHelp-e, который я привязал в к полю eqart прописан функциональный модуль, который отображает только нужные виды объектов. Что то вроде:
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-овскими экранами. Так вот, пытаюсь сделать так:data: x(1).
export zeqtyp to memory id x.

Затем пытаюсь в функциональном модуле, где идёт селект видов объектов в нужном мне SearchHelpe сделать:import zeqtyp from memory id x.
Все используемые переменные объявил в обоих ФМ, но значение не передаётся. Чтобы проверить наверняка, я попытался сделать в ФМ EXIT_SAPLITO0_001 и export и import, но import в переменную не срабатывает. Что я делаю не так не понятно?
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: Uukrul від Лютий 19, 2020, 02:32:59 ПП
Поробуй через SET/GET PARAMETERS сделать.
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: themax від Лютий 20, 2020, 09:30:42 ДП
Цитата: Uukrul від Лютий 19, 2020, 02:32:59 ПП
Поробуй через SET/GET PARAMETERS сделать.
Пробовал сделать как Вы посоветовали, значение параметра в переменную через get всё равно не передаётся. В итоге сделал разграничение отображения списка Вида объектов по логину юзера,
if sy-uname = 'nuser' or sy-uname = 'zuser'.
      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.

может быть не совсем удобно, но пока ничего другого не получается. Ещё раз спасибо.
Назва: Re: Разграничение уровня доступа на список поля Вид объекта
Відправлено: Uukrul від Лютий 21, 2020, 08:39:06 ДП
Цитата: themax від Лютий 20, 2020, 09:30:42 ДП
Пробовал сделать как Вы посоветовали, значение параметра в переменную через get всё равно не передаётся.
Не может это не передаваться. Значит вы не правильно делаете вызов.