有没有办法用SAP将大的结果分成几个较小的部分呢?
根据这些链接,您似乎需要自己实现分块:
我想避免这种情况,我希望有一种方法让SAP库进行分块。
用例:
结果是100 K行。我想取1k行,直到收到所有行为止。
我想这并不重要,但我将使用PyRFC作为代码。
发布于 2018-04-06 11:21:03
根据这个第60期,sap-rfc不能进行分块。您需要打几个较小的RFC电话。
太可悲了。我想在专有的封闭源代码中有几百个脏的本地块解决方案,它们都是一次又一次地解决相同的问题。
发布于 2018-08-15 16:36:03
RFC库在这里不能做什么:它只发出一个请求,然后接收来自R/3系统的响应。因此,如果R/3系统返回100 k行,库将接收这100 k行,如果R/3系统返回这些行中的一组,库将只接收到此块.
为了进行分块(或“分页”),双方(外部程序和被调用的ABAP代码)必须以某种方式进行合作。这是一个通用库所不能做的。
RFC基本上遵循“请求-响应”模式,如果您想要更小的响应数据,那么客户端必须发出多个请求,而服务器必须只返回每个请求的“总体数据”的一部分。
编辑:我现在也读过你的第60号问题,如果你主要关心的是性能,那么你最好直接使用C/C++ NW库而不是Python包装器?
我不太熟悉Python是如何工作的,但是如果它有点类似于Java/JNI,那么我希望内存中总共有两个数据副本:首先,RFC库接收来自线路的数据并将其存储在C堆中,然后一些C <-> Python互操作层需要将数据复制到Python虚拟机?!如果是这样的话,您可以通过用C/C++编写提取程序来保护50%的内存消耗。
https://stackoverflow.com/questions/49691298
复制相似问题