如何使用PyRFC在RFC_READ_表查询中指定opensqlwhere子句?在
我试图从PyRFC开始,让python从SAP中提取表(在没有支持/合作的基础团队的情况下)。在这个来自http://scn.sap.com/community/scripting-languages/blog/2012/11/04/revisiting-python-and-sap-with-pyrfc的示例中,它们使用:
pyrfc.Connector.call("RFC_READ_TABLE", QUERY_TABLE=table, DELIMITER='|')
http://saplsmw.com/node/101表示需要将WHERE子句作为选项传递给RFC调用。在PyRFC中我该怎么做?(OPTIONS是SAP端RFC_READ_table的函数模块声明中table类型的导出变量)。在
EDIT:OKhttp://scn.sap.com/community/scripting-languages/blog/2014/05/05/python-for-basis有一个在OPTIONS中发送WHERE子句的示例:
^{pr2}$因此,语法看起来像是一个数组(映射SAP表类型),其中键是SAP数据类型,值是where子句。在
所以下一个问题是:如何指定要发送到RFC_READ_表的包大小,以便在不触及内部表限制的情况下提取大表?在
RFC_READ_TABLE有一个参数“ROWCOUNT”,该参数指定在单个调用中返回的最大行数。在
当然,如果您说一次限制为1000行,那么如果表中包含的行数超过1000行,那么您可能永远不会下载其他行。在
要解决这个问题,还有另一个参数“ROWSKIPS”,通过它可以指定要返回的起始行。在
所以,第一个电话 行数=1000 行跳过=0
下一个电话 行数=1000 行跳过=1000
下一个电话 行数=1000 ROWSKIPS=2000
依此类推,每次递增ROWSKIPS如下:ROWSKIPS=ROWSKIPS+ROWCOUNT。在
一个定义了ROWCOUNT和ROWSKIPS的PyRFC调用示例,该调用以10为批从TCURR读取数据(其中FCURR设置为“USD”):
相关问题 更多 >
编程相关推荐