PyRFC: подключение через mshost (не ashost)

Я хотел бы использовать PyRFC для удаленного вызова процедур в SAP с использованием языка программирования Python.

conn = pyrfc.Connection(user='foouser', passwd='xxxx',
    mshost='sap.example.com', sysid='TE1', client='220',
    group='EXAMPLE',
    )

Но не получается вот так:

RFC_COMMUNICATION_FAILURE (rc=1): key=RFC_COMMUNICATION_FAILURE, message=
ERROR       service 'sapmsTE1' unknown
TIME        Tue Dec 18 15:49:40 2018
RELEASE     753
COMPONENT   NI (network interface)
VERSION     40
RC          -3
MODULE      /bas/753_REL/src/base/ni/niuxi.c
LINE        1833
DETAIL      NiPGetServByName: 'sapmsTE1' not found
SYSTEM CALL getaddrinfo
COUNTER     1
 [MSG: class=, type=, number=, v1-4:=;;;]

Что случилось?

Я предполагаю, что sapmsTE1 будет найден в /etc/services. Но этот файл является стандартным (неизмененным) файлом моего Linux-сервера.


person guettli    schedule 18.12.2018    source источник


Ответы (1)


Я сам нашел ответ. Вам необходимо указать параметр «msserv». AFAIK это постоянное значение. Это сработало:

conn = pyrfc.Connection(user='foouser', passwd='xxxx',
    mshost='sap.example.com', sysid='TE1', client='220',
    msserv='3600',
    group='EXAMPLE',
    )
person guettli    schedule 18.12.2018
comment
msserv может отличаться от 3600, это зависит от вашей конфигурации SAP. Порты сервера сообщений могут быть 3600–3699. Это определяется в службах ОС. - person Sandra Rossi; 18.12.2018
comment
@SandraRossi Если я подключен через SAP-GUI, как я могу увидеть правильный номер порта, который мне нужно использовать в RFC-соединении для доступа к той же системе SAP? - person guettli; 19.12.2018
comment
Вы должны спросить администратора SAP. Я не могу вам сказать больше. Возможно, вы могли бы задать более технически ориентированный вопрос, например, как узнать порт сервера сообщений SAP. - person Sandra Rossi; 19.12.2018
comment
@SandraRossi да, вы правы. Я открыл новый вопрос: stackoverflow.com/ questions / 53847912 / - person guettli; 19.12.2018