SAPфорум.RU
https://sapboard.ru/forum/

Migo. Проверка полномочий.
https://sapboard.ru/forum/viewtopic.php?f=13&t=78744
Страница 1 из 1

Автор:  I.Narodoviy [ Пт, сен 21 2012, 08:51 ]
Заголовок сообщения:  Migo. Проверка полномочий.

Здравствуйте.
В тр. migo кладовщик временно создаёт документ. У него права на проводку документов только с 101 ВД. При попытке проверить введённый документ, с ВД отличным от 101, выдаёт сообщение на отсутствие полномочий на вид движения. Кладовщик проводить документ не собирается, только проверить нет ли ошибок. Можно ли обойти эту ситуацию?
Решение нашёл дать кладовщику полномочия на все ВД. А в MB_MIGO_BADI в методе IF_EX_MB_MIGO_BADI~POST_DOCUMENT поставить проверку на логин кладовщика.
Спасибо.

Автор:  hub2002 [ Пт, сен 21 2012, 09:43 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

а в чем проблема - открыть полномочия на просмотр документов, а на редактирование не давать...

Автор:  Abral [ Пт, сен 21 2012, 09:59 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Соглашусь с hub2002. В объектах полномочий:
M_MSEG_BMB Документы материала: вид движения
M_MSEG_BWA Движения материала: вид движения
M_MSEG_BWE ПМ к заказу на поставку: вид движения
M_MSEG_BWF Поступление материала к заказу: вид движения

можно указать операцию ACTVT = '03' - просмотр и перечислить виды движений, которые может просматривать пользователь BWART = ???, а для операции ACTVT = '01' указать BWART = 101, 102

Автор:  I.Narodoviy [ Пт, сен 21 2012, 10:49 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Когда отлавливал эту ошибку в отладчике, в МИГО по нажатию кнопки "Проверить" таки требовались полномочия на объект M_MSEG_BWF ACTVT='01' BWART='301' к примеру, когда ставил ВД 301. Так что не думаю что разрешив просмотр, то есть ACTVT='03' ситуация разрешиться.
Кладовщик не открывает временно сохранённый документ. А создаёт для бухгалтера. Но проверить его не может, так как для 301 и ряда других ВД нет полномочий на проводку. Так понимаю кнопка "Проверить" запускает бапи в тестовом режиме?
Версия ERP 6.0

Автор:  Abral [ Пт, сен 21 2012, 11:02 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Да, для кнопки Проверить нужны полномочия на ACTVT = 01

Автор:  hub2002 [ Пт, сен 21 2012, 11:02 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Тут надо определиться, что необходимо - Проверить в данном случае - это фактически равняется проводке.
Поэтому тут так не получится.
Если это необходимо - тогда придется использовать ABAP.
Например, создать свой объект полномочий и его проверять.

Проверка на логин - то конечно уж ... А если кладовщик поменяется..
Или он в отпуск уйдет, ну и так далее.
Свой объект полномочий, и открывайте что хотите...

Автор:  I.Narodoviy [ Пт, сен 21 2012, 11:25 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

To hub2002, Вы предлагаете для всех кладовщиков в объекте M_MSEG_BWF ACTVT='01' BWART='*', и создать свой ZM_MSEG_BWF и нарезать права как хочется, и эти права проверять в MB_MIGO_BADI в методе IF_EX_MB_MIGO_BADI~POST_DOCUMENT например.

Автор:  hub2002 [ Пт, сен 21 2012, 12:01 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Например, да...
Можно допустим проверять - если данное полномочие есть, то оно проверяется и проводить документ например не возможно.
Но можно изменить и проверить - протестировать.
Тут только вопрос, можно ли отследить разницу проводки или проверка...
А если такого полномочия нет, то в данную проверку вообще исключить, и тем самым все будет работать как ранее.
тем самым - у кладовщиков будут свои полномочия, а всех остальных они вообще не как не затронут.

Автор:  I.Narodoviy [ Пт, сен 21 2012, 13:03 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Согласен. Только таки должны быть две ветки проверки: SY-UCOMM = 'OK_CHECK' - разрешить "Проверить" если есть полномочия на "Проверку" в ZM_MSEG_BWF. И в SY-UCOMM = 'OK_POST' если есть полномочия в ZM_MSEG_BWF на проводку. А в итоге всем пользователям кто проводит материалы и кладовщикам в роль добавить объект полномочий ZM_MSEG_BWF.

Автор:  hub2002 [ Пт, сен 21 2012, 13:13 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Можно так:
делать AUTHORITY-CHECK
if sy-subrc = 4.
то проверка делается для кладовщиков, так как проверка не пройдена.
if sy-subrc = 8. - это означает что объекта нету...
делается для остальных как будто sy-subrc = 0.

тут только подводное поле - если кладовщика вновь заведут, то у него не будет этой роли и соответственно полномочия будут на все...
тут можно подумать - как лучше.
Можно сделать общую роль для кладовщиков, у которых это полномочия будет автоматически ...

ну или придумать свой вариант.

Или проверять что у кладовщиков, обязательно должна быть эта роль .. или еще как-то...

Автор:  I.Narodoviy [ Пт, сен 21 2012, 14:19 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Не могу до конца понять Вашу мысль:
Итак, мы добавляем только кладовщикам объект полномочий с ZM_MSEG_BWF в котором не разрешаем проводить документ. И разрешаем M_MSEG_BWF ACTVT = '01' BWART '*'.
Code:
* при проводке проверяем всех пользавателей
if sy-ucomm = 'OK_POST' OR  sy-ucomm = 'OK_POST1' OR sy-ucomm = 'YES'.
  authority-check object 'ZM_MSEG_BWF'
                            id 'ACTVT' field actvt
                            id 'BWART' field b-bwart.
   
  if sy-subrc initial.   " Проверку прошёл - кладовщик, документ проводить нельзя
      message e121 with b-bwart.     
  endif.
endif.

Автор:  hub2002 [ Пт, сен 21 2012, 15:04 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

object ZM_MSEG_BWF, например ACTVT = 01
Он есть у всех кладовщиков.
далее:
Code:
  AUTHORITY-CHECK OBJECT 'ZM_MSEG_BWF'
         ID 'ACTVT' FIELD '01'.

if sy-subrc = 0.
* То это кладовщик, проводку не давать делать, а редактировать и проверять можно.
endif.

if sy-subrc = 8.
* это все пользователи у которых просто нет этого объекта полномочий, и мы ничего не делаем, а просто выходим.
endif.

if sy-subrc = 4.
* Это кладовщики, у которых есть объект ZM_MSEG_BWF, но он или не равен 01, или пустой. соответственно даем ошибку.
endif.


Но тут есть одно но - для всех кладовщиков должен быть объект полномочий...
если его не будет, то он будет обладать полными правами.

Автор:  I.Narodoviy [ Пт, сен 21 2012, 15:12 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

Спасибо большое за развёрнутый ответ.
Для абаперов которые тоже столкнуться с такой ситуацией: В ERP 6.0, как в данном случае у меня, AUTHORITY-CHECK не возвращает sy-subrc = 8.
Выдержка из документации:
sy-subrc Meaning
0 Authorization successful or no check was carried out. An authorization for the authorization object was found in the user master record. It's value sets include the specified values.
4 Authorization check not successful. One or several authorizations were indeed found for the authorization object in the user master record and they include the value sets, but not the values specified, or incorrect or too many authorization fields were specified.
12 No authorization was found for the authorization object in the user master record.
24 Incorrect authorization fields or an incorrect number of authorization fields was found. This return value is no longer set since Release 6.20. Up to Release 4.6 it is set only if the profile parameter "auth/new_buffering" has a value less than 3.
40 An invalid user ID has been entered in user.

Автор:  hub2002 [ Пт, сен 21 2012, 15:15 ]
Заголовок сообщения:  Re: Migo. Проверка полномочий.

тогда вместе 8, использовать 12

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/