PyRFC:通过 mshost(不是 ashost)连接

PyRFC: Connect via mshost (not ashost)

我想使用 PyRFC 使用 Python 编程语言在 SAP 上进行远程过程调用。

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 服务器的默认(未修改)文件。

我自己找到了答案。您需要提供参数 "msserv"。 AFAIK 这是一个常数值。这有效:

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