首先,你的 get BAPI 也有点不正确,也许在旧版本的 PyRFC 上它可以工作,但现在 pyrfc 模块有Connection
对象,而不是connection
你的代码抛出编译错误。它应该如下:
import pyrfc
from pyrfc import Connection
RIS=pyrfc.Connection(user='USER', passwd='pw', ashost='hostey.com', sysid='KEK', sysnr='00', client='200', lang='EN', trace='3')
result=RIS.call("BAPI_USER_GET_DETAIL", USERNAME='MUELLER')
print(result['ADDRESS']['FULLNAME'])
其次,更改 BAPI 的调用与获取 BAPI 相同,对我而言,此代码有效
ADDR = { "E_MAIL": 'wazawaza@mail.com'}
ADDX = { "E_MAIL": 'X'}
changed=RIS.call("BAPI_USER_CHANGE", USERNAME='MUELLER', ADDRESS=ADDR, ADDRESSX=ADDX)
print(changed["RETURN"])
如果正确执行,它应该向您显示此输出
[{'TYPE': 'S', 'ID': '01', 'NUMBER': '039', 'MESSAGE': '用户 MUELLER 已更改' , 'LOG_NO': '', 'LOG_MSG_NO': '000000 ','MESSAGE_V1':'MUELLER','MESSAGE_V2':'','MESSAGE_V3':'','MESSAGE_V4':'','PARAMETER':'','ROW':0,'FIELD':'BNAME ','系统':'T90CLNT090'}]
奇怪的新电子邮件在BAPI 调用和 SE37 中均未显示,但在 SU01 中完美显示。
我认为这是因为 BAPI 结构中的长字符字段会阻止它正确显示。也许这就是你认为你的电话不成功的原因?