Разграничение уровня доступа на список поля Вид объекта

Автор themax, Серпень 01, 2019, 03:00:32 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

themax

Доброго времени суток уважаемые PM консультанты.

Возник такой вопрос. Есть определённый тип оборудования, пусть будет единиц оборудования. Так вот, этот тип единиц оборудования делится на виды объектов, т.е. в основной записи есть поле Вид объекта, который заполняется из списка, который сделан в стандартной настройке. Как сделать чтобы например для типа единиц оборудования Т в этом списке отображались только виды объектов которые относятся только к типу ЕО Т. Ну т.е. список достаточно большой и бизнес подразделения видят все эти виды объектов, хотя они к ним и не относятся, что доставляет им некоторое неудобство, когда они хотят поработать в ручную с какими то ЕО. В z отчёте я использую это поле в качестве критериев выбора, там у меня получилось сделать свой Search_help и с помощью одного функционального модуля вытаскивать только те Виды объектов которые мне нужны, а вот как быть со стандартными настройками? Может кто делал такое? Или может настройка есть какая нибудь, которая позволила бы разделить отображение этих видов объектов в транзакциях IE01 и IE02 по принципу групп полномочий или какого - нибудь другого условия?

Uukrul

Цитата: themax від Серпень 01, 2019, 03:00:32 ПП
Как сделать чтобы например для типа единиц оборудования Т в этом списке отображались только виды объектов которые относятся только к типу ЕО Т.
Ну в данном случае переписать свой код поиска объектов.

themax

Цитата: Uukrul від Серпень 01, 2019, 03:04:07 ПП
Ну в данном случае переписать свой код поиска объектов.
Добрый день Олег.

Поздновастенько продолжаю обсуждать эту тему, но я так и не нашёл средства как это сделать. Пытался в отладчике найти Search help,  который вызывается в транзакции IE02, чтобы попытаться расширить его, облазил все таблички, которые с этим могут быть связаны, а также смотрел  экран этой транзакции в редакторе экранов надеясь, что может быть там привязано к полю средство поиска, но и там нету. Видимо где то вызывается динамически в программе. Может быть вы делали что то подобное с другими транзакциями? Куда копать не пойму?

Uukrul

Цитата: themax від Лютий 18, 2020, 02:03:10 ПП
Поздновастенько продолжаю обсуждать эту тему, но я так и не нашёл средства как это сделать. Пытался в отладчике найти Search help
Ну это ты как-то далеко пошел в отладчик то зачем? Средство поиска, ну как это будет не странно но называется: EQUI. Оно комплексное, а это значит что можно добавить свое средство поиска без проблем к данному стандартному средству.

themax

Цитата: Uukrul від Лютий 18, 2020, 02:25:17 ПП
Ну это ты как-то далеко пошел в отладчик то зачем? Средство поиска, ну как это будет не странно но называется: EQUI. Оно комплексное, а это значит что можно добавить свое средство поиска без проблем к данному стандартному средству.
Я извиняюсь за интеллект, но я чот не допонимаю. EQUI это стандартная табличка, мне пытаться изменить стандартную табличку, добавив в неё свой Search Help? Просто мне врятли кто даст ключ этого объекта для его редактирования или это как то по другому делается?

themax

Я не сразу понял, что Вы имеете в виду реальное средство поиска EQUI. Но это опять же стандартный объект, чтобы его как то расширить нужен ключ доступа к объекту или как то по другому это можно сделать?

Uukrul

Цитата: themax від Лютий 18, 2020, 04:00:06 ПП
Я не сразу понял, что Вы имеете в виду реальное средство поиска EQUI. Но это опять же стандартный объект, чтобы его как то расширить нужен ключ доступа к объекту или как то по другому это можно сделать?
Нет ключ не нужен, добавление собственного элементарного средства поиска в комплексное не требует ключа на объект.  В общем как-то так как по картинкам, думаю разберетесь.

themax

Цитата: 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 в переменную не срабатывает. Что я делаю не так не понятно?

Uukrul


themax

Цитата: 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.

может быть не совсем удобно, но пока ничего другого не получается. Ещё раз спасибо.

Uukrul

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