SAP NW RFC 在文件系统中的哪个位置缓存其元数据



我遇到了一个问题,当我尝试获取客户编写的自定义函数模块的元数据时,调用RfcGetStringLength时出现以下错误:

Return code: RFC_ILLEGAL_STATE
RFC error group: EXTERNAL_RUNTIME_FAILURE
Error Key: RFC_ILLEGAL_STATE
Error message: Trying to access row values in a table which does not have any rows yet

在客户更改其中一个(结构(参数之前,我的代码针对客户的函数模块工作。更改后,我们看到此错误。

我越来越确信 SAP NW RFC 元数据缓存保存的是结构更改之前的过时元数据,我想删除缓存的元数据以确认我的假设。但是,我不确定元数据在文件系统中的缓存位置。我的客户端程序在Windows Server 2016上运行。

元数据仅缓存在内存中 - 但在应用程序进程的运行时持续时间内永久缓存。在运行时,您可以通过 API 调用清除元数据缓存,例如通过 RfcClearRepository .

无论如何,您的错误消息显示您正在访问的表为空。在访问当前表行中的字段之前,请始终确保表不为空,以便隐式行游标有效,即使用 API RfcGetRowCount 进行检查。

最新更新