Текущее время: Пн, июл 28 2025, 20:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Объект полномочий
СообщениеДобавлено: Вт, июн 22 2010, 16:47 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 28 2010, 15:25
Сообщения: 89
Подскажите как можно выбрать данные из объекта полномочий ?ъ

В частности в ТЗ задача стоит так:

1.1 полномочия на планирующий завод ТОРО и группу планирования
Объект полномочий I_INGRP
Условия выбора
I_INGRP-TCD = ‘IW32’ Код транзакции

Выбрать поля:
I_INGRP-IWERK Завод, планирующий ТОРО
I_INGRP-INGRP Группа плановиков для сервиса клиентов и ТОРО

Сравнить значения <Завод> с I_INGRP-IWERK и <ГрПлан> с I_INGRP-INGRP. Если есть расхождения, то выдать предупреждающие сообщение «Не на все Плзаводы/Гр. План. есть полномочия» и удалить из <Завод> значения, не найденные в I_INGRP-IWERK для пользователя, удалить из <ГрПлан> значения, не найденные в I_INGRP-IWERK для пользователя.

Если не найдено ни одного значения, то выдать сообщение об ошибки «Нет полномочий».


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект полномочий
СообщениеДобавлено: Вт, июн 22 2010, 17:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Надо выбрать все заводы, соответсвующие условиям выборки вашей программы, затем в цикле для каждого проверить полномочия оператором AUTHORITY-CHECK.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объект полномочий
СообщениеДобавлено: Вт, июн 22 2010, 18:08 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 28 2010, 15:25
Сообщения: 89
Спасибо!

Я правильно понял:

заводы в тем_тав

loop at тем_тав.
AUTHORITY-CHECK
OBJECT ‘werks’
ID ‘I_INGRP-TCD’ FIELD ‘IW32’
ID ‘ACTVT’ FIELD ‘02’.
IF SY-SUBRC NE 0.
....
endif.
endloop.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Объект полномочий
СообщениеДобавлено: Ср, июн 23 2010, 05:21 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Kurier1979 написал(а):
Спасибо!

Я правильно понял:

заводы в тем_тав

loop at тем_тав.
AUTHORITY-CHECK
OBJECT ‘werks’
ID ‘I_INGRP-TCD’ FIELD ‘IW32’
ID ‘ACTVT’ FIELD ‘02’.
IF SY-SUBRC NE 0.
....
endif.
endloop.

Такого объекта полномочий не существует.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объект полномочий
СообщениеДобавлено: Ср, июн 23 2010, 15:33 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Kurier1979 написал(а):
Спасибо!

Я правильно понял:

заводы в тем_тав

loop at тем_тав.
AUTHORITY-CHECK
OBJECT ‘werks’
ID ‘I_INGRP-TCD’ FIELD ‘IW32’
ID ‘ACTVT’ FIELD ‘02’.
IF SY-SUBRC NE 0.
....
endif.
endloop.

Неправильно.
ADD1: Точнее идея про сам цикл верная, а вот то что внутри цикла - абсолютно неправильно.
Из F1
Code:
Example
Check as to whether the current user has the authorization required for displaying the airline that he specifies on the selection screen. The used authorization object is called S_CARRID and includes the authorization fields CARRID for the name of an airline and ACTVT for the activity. The abbreviation "03" stands for the "Display" activity and is one of the activities that are assigned to the authorization object S_CARRID.

PARAMETERS carr TYPE spfli-carrid.

AT SELECTION-SCREEN.
  AUTHORITY-CHECK OBJECT 'S_CARRID'
    ID 'CARRID' FIELD carr
    ID 'ACTVT'  FIELD '03'.

  IF sy-subrc <> 0.
    MESSAGE 'No authorization' TYPE 'E'.
  ENDIF.



И уточните постановку задачи - что имели ввиду под термином "Объект полномочий I_INGRP"

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объект полномочий
СообщениеДобавлено: Чт, июн 24 2010, 00:30 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Объект полномочий I_INGRP можно найти в транзакции SE21 в разделе "РМ". IMHO ТЗ несколько неудачно сформулировано и может легко смутить начинающего. Мне часто доводилось сталкиваться с такой задачей в отчетах, где, например, Sales Org (VKORG) не параметр, а SELECT-OPTION и юзеры могут там навводить чего угодно, а полномочия у них могут быть, например, только на 2 организации из 10.

Решается это, как уже правильно заметили, выборкой основных данных (в вашем случае IWERK и INGRP) и затем проходом с AUTHORITY CHECK по всем возможным комбинациям. Кстати, рекомендую использовать кнопочку Pattern - AUTHORITY CHECK там один из вариантов. Там сразу станет ясно, что к чему (у вас код действительно совершенно неправильный).

Долго думала, как на пальцах эту систему объяснить, в результате сваяла такой примитивный прототип:

Code:
SELECT-OPTIONS: SO_IWERK FOR IWERK,
                SO_INGRP FOR INGRP.
               
SELECT IWERK
INTO TABLE ITAB_IWERK
FROM ...
WHERE IWERK IN SO_IWERK.

SELECT INGRP
INTO TABLE ITAB_INGRP
FROM ...
WHERE INGRP IN SO_INGRP.

LOOP AT ITAB_IWERK.
  LOOP AT ITAB_INGRP.
  AUTHORITY-CHECK OBJECT 'I_INGRP'
           ID 'TCD' FIELD 'IW32'
           ID 'IWERK' FIELD ITAB_IWERK-IWERK,
           ID 'INGRP' FIELD ITAB_INGRP-INGRP.
  IF SY-SUBRC <> 0.
    <DO STUFF>
  ENDIF.
  ENDLOOP.
ENDLOOP.


Где хранится списочек всех IWERK и INGRP (например, все VKORG лежат в таблице TVKO), я даже не знаю - спросите у тех, кто ТЗ писал. Если между ними есть какая-то связь, то может даже можно обойтись одной сводной ITAB вместо двух.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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