SAP NW RFC 在文件系统中的什么地方缓存了它的元数据?

Where in the filesystem does the SAP NW RFC cache its metadata?

我遇到了一个问题,当我尝试获取我的客户编写的自定义功能模块的元数据时,调用 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.

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