点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好社区,
我尝试将ActiveX" wdtfuncs.ocx"与Python 3配合使用,但是当我调用FM RFC_READ_TABLE时,语法检查器向我显示一条错误消息。 代码下方:
从win32com.client导入*
LogonControl = Dispatch(" SAP.LogonControl.1") Y_objConnection = LogonControl.NewConnection
Y_objConnection.Client = X_MANDANTE
Y_objConnection.ApplicationServer = X_APPLICATION_SERVER Y_objConnection.User = X_USER
Y_objConnection.Password = X_PASSWORDY_objConnection.SystemNumber = X_NUMERO_ISTANZA Y_objConnection.UseSAPLogonIni = False SilentLogon =真 Y_errore_connessione ="" 如果不是Y_objConnection.Logon(0,SilentLogon): Y_errore_connessione =" KO" 其他: Y_errore_connessione ="确定"
功能= Dispatch(" SAP.Functions") Functions.Connection = objConnection objRfcFunc = Functions.Add(" RFC_READ_TABLE") objRfcFunc.Exports(" QUERY_TABLE")。Value =" QPCD" objRfcFunc.Exports(" ROWCOUNT")。Value =" 99999" objRfcFunc.Exports(" DELIMITER")。Value =";" objRfcFunc.Tables(" OPTIONS")。FreeTable() objRfcFunc.Tables(" OPTIONS")。Rows.add objRfcFunc.Tables(" OPTIONS")(objRfcFunc.Tables(" OPTIONS")。RowCount," TEXT")=" CODE ='ZPROVA'" objRfcFunc.Tables(" FIELDS")。FreeTable() objRfcFunc.Tables(" FIELDS")。Rows.Add objRfcFunc.Tables(" FIELDS")(objRfcFunc.Tables(" FIELDS")。RowCount," FIELDNAME")=" CODE"
如果objRfcFunc.Call == False: 通过
width_Mymatrix = 1 行索引= 0 output_Matrix = {} 对于objRfcFunc.Tables(" DATA")。Rows()中的objDatRec: 对于范围(width_Mymatrix)中的columindex: output_Matrix [rowindex,columindex] = str(objDatRec(" WA"))。strip()。split(";")[columindex] 打印(output_Matrix [rowindex,columindex]) 行索引+ = 1
语法检查器返回以下语句错误:
objRfcFunc.Tables(" OPTIONS")(objRfcFunc.Tables(" OPTIONS")。RowCount," TEXT")=" CODE ='ZPROVA'"
错误消息是"无法分配给函数调用"。
我不明白要使用的正确语法是什么。
请帮帮我
嗨Danilo,
外部应用程序不应调用功能模块RFC_READ_TABLE FM。 请参阅SAP注释
382318 -常见问题解答|功能模块RFC_READ_TABLE
最诚挚的问候,
Antal
您好Danilo
这里有同样的问题(顺便说一句,您同时找到了解决方案吗?)
该函数调用有效,但是我不能在调用之前将值放在OPTIONS和FIELDS表中。 一切都可以在VBA和PHP中完美运行,而不是Python。
按照示例
输出为0。
@Antal:是的,RFC_READ_TABLE可能不是最好的方法,但是它确实有效,至少从15年以来就存在了。 我同意该功能不应在生产代码中使用,但是它仍然是从SAP检索快速数据的最佳方法,而无需每次需要从DB读取某些行时都需要程序员的参与。
任何帮助将不胜感激
一周热门 更多>