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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пт, мар 18 2016, 18:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Вызываю по RFC ФМ из другой системы. В той системе такого пользователя нет и все падает в дамп.
Можно как-то проверить наличие пользователя в этой другой системе перед тем как вызвать ФМ?

p.s.варианты вида: завести пользователя - не подходят. В принципе все варианты, которые связаны с настройкой чего-то - не подходят. Ищется решение через ABAP


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пт, мар 18 2016, 19:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Вы эксепшены ФМ-а обрабатываете? Отсутствие пользователя не вызывает дамп при вызове ФМ по RFC. Должно возвращаться исключение.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пт, мар 18 2016, 20:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Обрабатываю.

Вызов ФМ-а происходит в системе X и ФМ вызывается из системы Y. дамп в системе Y. В системе X все обрабатывается и пользователь его даже не замечает. Зато замечают админы, которым не нравится огромное количество дампов в системе. Возникает дамп CALL_FUNCTION_SINGLE_LOGIN_REJ


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пт, мар 18 2016, 20:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Ну в общем-то - правильно им не нравится.
Есть пачка нот
128447 - Trusted/trusting systems
1491645 - Unauthenticated system access via RFC or HTTP
1605516 - Update #1 to Security Note 1491645
2021691 - CALL_FUNCTION_SINGLE_LOGIN_REJ and trusted RC=1
По ним выходит, что через абап решения нет. Что-то решается накатом ноты, что-то корректными настройками и раздачей прав.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 08:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Валерка написал(а):
Вызываю по RFC ФМ из другой системы. В той системе такого пользователя нет и все падает в дамп.
Можно как-то проверить наличие пользователя в этой другой системе перед тем как вызвать ФМ?

p.s.варианты вида: завести пользователя - не подходят. В принципе все варианты, которые связаны с настройкой чего-то - не подходят. Ищется решение через ABAP

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

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 10:40 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Удав написал(а):
Можно создать другое RFC-соединение, указать там технического пользователя из системы B с правами на запуск ФМ BAPI_USER_GETLIST, вызывать этот ФМ для проверки существования пользователя.
Либо сразу вызывать нужный ФМ с RFC-соединением, в котором указан технический пользователь.
Сейчас остановились на вызове ФМ-а для проверки существования пользователя. Хотя тут возникает вопрос: а почему сразу нельзя вызывать нужный ФМ под техническим пользователем? Самое очевидное - для пользователей там идет какая-то проверка прав, но вроде поиск по нужному ФМ-у таких проверок не выявил.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 12:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Валерка написал(а):
Сейчас остановились на вызове ФМ-а для проверки существования пользователя. Хотя тут возникает вопрос: а почему сразу нельзя вызывать нужный ФМ под техническим пользователем? Самое очевидное - для пользователей там идет какая-то проверка прав, но вроде поиск по нужному ФМ-у таких проверок не выявил.

Самая очевидная причина - не все пользователи должны вызывать этот ФМ, а только те, кто есть в этой системе.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 12:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Удав написал(а):
Самая очевидная причина - не все пользователи должны вызывать этот ФМ, а только те, кто есть в этой системе.

Ага. Трастинг жеж.. как сказал классик
Цитата:
не все могут смотреть. Вернее смотреть могут не только лишь все, мало кто может это делать

Или все ходят через траст-соединение с тех.юзером, или должно быть соответствие юзеров в системе. Похоже, что у ТС используется второй вариант.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 13:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Кодер написал(а):
Или все ходят через траст-соединение с тех.юзером, или должно быть соответствие юзеров в системе.

Одно другому не мешает. :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Сб, мар 19 2016, 13:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Удав написал(а):
Валерка написал(а):
Самая очевидная причина - не все пользователи должны вызывать этот ФМ, а только те, кто есть в этой системе.
Так ведь никто не мешает вызывать ФМ под техническим пользователем и передавать в параметре пользователя, который это делает. В этом ФМ-е проверять наличие пользователя в целевой системе и если его нет - то ничего не возвращать. Тем более что в данном случае вызывается RFC ФМ-прослойка, который затем вызывает нужный ФМ уже в целевой системе, который не является RFС фм-ом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Ср, авг 24 2016, 11:19 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Вываливается следующая ошибка при вызове RFC ФМ-а. Как можно программно проверить, что пользователь не может вызвать этот ФМ из удаленной системы?
(Есть возможность под техническим пользователем запускать ФМ в удаленной системе. На текущей момент так и делается и в этом ФМ-е проверяется наличие пользователя в системе + через AUTHORITY_CHECK права S_RFC на возможность пользователя этот ФМ запускать - и результат положительный)
Code:
Указания по устранению ошибки
    The error code of the trusted system (T-RC) was 0.

    Meaning:
      0   Correct logon via trusted system.
      1 No trusted system entry for the caller system "RNP "
          with the installation number " ", if this exists, or
          the security key entry for system "RNP " is invalid.
      2 User "<USER> " does not have RFC authorization (authorization object
          (S_RFCACL) for user "<USER> " with client 400.
      3   The time stamp of the logon data was invalid.

    The error code of the SAP logon procedure (L-RC) was 2.

    Meaning:
      0   USER_OK                    Login was correct
      1   USER_NOT_ALLOWED           User or password incorrect
      2   USER_LOCKED                User locked
      3   STOP_SESSION               Too many attempts to log on
      5   BAD_BUFFER                 Error in the authorization buffer
      6   CUA_MASTER_RECORD          No external user check
      7   BAD_USER_TYPE              Invalid user type
      8   USER_NOT_VALID             Validity of user exceeded
      9   SNC_MAPPING_MISMATCH       User does not correspond to SNC name
     10   SNC_REQUIRED               Secure connection required
     11   SNC_NAME_NOT_IN_ACL        User not found in USRACL(EXT)
     12   SNC_SYST_NOT_IN_ACL        System not found in USRACL(EXT)
     13   SNC_MAPPING_NO_MATCH       No matching user found
     14   SNC_MAPPING_AMBIGUOUS      Multiple user matches found


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пн, авг 29 2016, 12:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Валерка написал(а):
Вываливается следующая ошибка при вызове RFC ФМ-а.

А где сама ошибка?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пн, авг 29 2016, 18:58 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Ошибка зеленым, дамп в удаленной системе. Судя по всему у пользователя нет прав на RFC запуск ФМ-ов. Но не очень понятно, почему проверка под системным пользователем успешна.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Вт, авг 30 2016, 08:22 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Валерка написал(а):
Ошибка зеленым, дамп в удаленной системе.

Я к тому, что в приведенном сообщении нет текста ошибки, есть только указания по устранению.
Да, и в них написано:
Code:
   The error code of the SAP logon procedure (L-RC) was 2.

    Meaning:
      0   USER_OK                    Login was correct
      1   USER_NOT_ALLOWED           User or password incorrect
      2   USER_LOCKED                User locked

Т.е. полномочия у пользователя есть, но он заблокирован :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить наличие пользователя в другой системе
СообщениеДобавлено: Пт, сен 09 2016, 09:17 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Блокировку пользователя можно проверить через ФМ SUSR_USER_LOCKSTATE_GET


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

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


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

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


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

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