Какие минимальные разрешения / права доступа необходимы пользователю SAP, чтобы иметь возможность совершать RFC-вызовы с помощью JCo?

Я пытаюсь вызвать функцию SAP RFC_SYSTEM_INFO из приложения Java. Для этого я использую JCo 3.0. Я использую пример кода из документации JCo.

Я получаю исключение

Caused by: RfcException: [IA1|CZVBIIN101] 
message: No RFC authorization for function module DDIF_FIELDINFO_GET. 
Return code: RFC_SYS_EXCEPTION(3) 
error group: 104 
key: RFC_ERROR_SYSTEM_FAILURE 
message class: 00 
message type: X 
message number: 341 
message parameter 0: RFC_NO_AUTHORITY 

По словам моего коллеги, который просматривал журнал SAP (я ничего не знаю о SAP, он знает), перед вызовом функции RFC_SYSTEM_INFO JCo выполняет около 7 вызовов, некоторые из которых требуют «разрешений разработчика». Итак, чего мы не понимаем, так это зачем нам нужны разрешения разработчика для такого простого вызова? Почему JCO делает так много звонков вместо одного звонка?

Например, я не понимаю, зачем нам вызывать функцию из модуля DDIF_FIELDINFO_GET? Я просто хочу вызвать RFC_SYSTEM_INFO, а не DDIF_FIELDINFO_GET. Можно ли вызвать RFC_SYSTEM_INFO без вызова RFC_SYSTEM_INFO?

Какие минимальные права доступа должны быть у пользователя для выполнения вызовов RFC?


person Zhenya    schedule 09.09.2013    source источник


Ответы (5)


Все это в документации. :-)

Коннектору Java требуются некоторые базовые разрешения для чтения метаданных функционального модуля - в противном случае он не знал бы, как кодировать и декодировать данные для этой конкретной серверной системы. DDIF_FIELDINFO_GET является частью этого процесса.

(Следует иметь в виду, что помимо изменений, зависящих от выпуска, многие структуры могут быть расширены или изменены, поэтому даже если вы вызываете один и тот же функциональный модуль в разных системах, нет гарантии, что структуры будут точно такими же. )

person vwegert    schedule 11.09.2013
comment
Спасибо! Документация - это именно то, что мне нужно! - person Zhenya; 17.09.2013

Для вызова RFC существует специальный объект авторизации.

В своей роли вы добавляете объект S_RFC (RFC вызывает аутентификационную проверку) в класс AAAB (аутентификационный объект, все приложения). Вы заполняете его объектом 'FUGR' и набором функциональной группы, которую хотите использовать (как всегда, '*' возможно, но не рекомендуется)

Это ограничивает вызов функции RFC, которую вы можете выполнить, определенным вами списком.

Кроме того, как сказал Никколо, вызываемый вами функциональный модуль должен иметь RFC.

Кроме того, abbaper может также использовать транзакцию ST01, чтобы получить системную трассировку проверки авторизации вашего пользователя для вызовов RFC и получить список необходимых вам функциональных модулей.

person PATRY Guillaume    schedule 10.09.2013

Поскольку SAP удалила документацию SAP, указанную в ответе vwegert, добавив доступную информацию, разбросанную по «archive.sap.com», в ответ на этот вопрос.

Контрольный пользователь JCO, который должен проверить необходимую роль, - SAPJCF. Роль закрытия, которая, кажется, работает для многих, - это SAP_BC_JSF_COMMUNICATION. У пользователя также не должно быть диалоговой авторизации.

Использованная литература:

https://archive.sap.com/discussions/thread/631020 https://archive.sap.com/discussions/thread/375125

person snipersap    schedule 04.05.2018

За кулисами SAP выполняет несколько вызовов в рамках одного запроса RFC. Кроме того, SAP выполняет вызовы безопасности, чтобы убедиться, что у вас есть права на запуск того, что вы вызываете. Он делает это для любого вызова функционального модуля, а не только для RFC.

Я не знаю, что конкретно делает DDIF_FIELDINFO_GET - это может быть один из вызовов SAP, чтобы удовлетворить ваши общий вызов RFC_SYSTEM_INFO.

Кроме того, чтобы иметь право на вызов как часть RFC, функциональный модуль SAP должен быть «удаленно включен» (это может быть в SE37, но не цитируйте меня по этому поводу ).

person niccolo    schedule 09.09.2013

SAP подробно задокументировал необходимые минимальные полномочия пользователей RFC для нескольких сценариев использования в следующем примечании:

person Trixx    schedule 05.05.2018