1

我正在使用 PyRFC 对客户的 SAP 功能模块进行 RFC 调用。我已经验证了连接已经建立,并且我可以调用大多数具有正确输出的函数,但是有一个带有导入参数的函数模块和一个也需要输入的表条目。

我尝试将导入和表参数组合到一个字典中,并尝试将它们分别包含在调用中,但我不断收到 RFC_INVALID_PARAMETER 错误,声称在系统上找不到表参数键。我怀疑我的程序认为表参数值是导入参数的一部分。如何在函数调用中正确包含导入参数和表参数?下面是 SAP 上功能模块的截图和我的代码结构片段。

import_param = {
    'PARAM1':'ABC',
    'PARAM2':'DEF'
}

table_param = {
    'TAB_PARAM':'ABC',
    'TAB_PARAM2':'DEF'
}

conn = Connection(user='USER', passwd='PASSWORD', group='GROUP', ashost='HOST', sysnr='SYS_NR',client='CLIENT_NR')

result = conn.call('FUNCTION_NAME', **import_param, **table_param)

功能模块

表格条目需要输入

4

1 回答 1

0

您只需像这样指定表参数

def func():
    import pyrfc
    from pyrfc import Connection
    conn=pyrfc.Connection(user='', passwd='', ashost='', etc.)

    order_header = {u'struct_field1':'100',u'struct_field2':'40',u'struct_field3':'US01'}
    item_line = {u'table_field1':'200',u'table_field2':'50',u'table_field3':'US02'}

    result=con.call("BAPI_SALESORDER_CREATEFROMDAT2", ORDER_HEADER_IN=order_header, 
                                                      ...
                                                      ORDER_ITEMS_IN=[item_line])
    print(result['RETURN'])

所以表参数需要是列表,而不是字典。

于 2022-02-03T17:14:49.840 回答