0

我在 SAP 系统 X 中更改了一个 ABAP RFC 模块,并将更改传输到 Y。现在,当我调用 RFC 时,SAP 仍然执行旧代码。

我用差异工具比较了 X 和 Y 的两个版本,没有发现任何差异,所以它看起来像是传输的变化。激活我的 ABAP RFC 代码是否需要特殊步骤?

我使用PyRFC作为客户端库。

4

3 回答 3

1

我们的 RFC FM 之一也遇到了同样的问题。原因是连接一旦建立就保持打开状态。在这种情况下,二进制文件不会在 RFC 上下文中刷新。只需重新启动连接,一切都会按预期工作。

于 2018-11-07T09:41:30.303 回答
1

这是一个已知问题:https ://github.com/SAP/PyRFC/issues/89

引用问题:

Python 脚本结束后,应自动关闭连接并初始化 SAP NW RFC SDK。在集线器下会发生什么。

Python 解释器和 PyRFC 实例共享同一个 SAP NW RFC SDK lib 实例,当第一次调用远程启用功能模块 (RFM) 时,RFM 元数据缓存在 SAP NW RFC SDK 中。当第二次调用 Python/PyRFC 请求的同一 RFM 时,SAP NW RFC SDK 从缓存中返回元数据,而不是从 ABAP 系统再次读取,从而节省了一次 Python/ABAP 往返和一些性能,尤其是在复杂 RFM 的情况下。如果 RFM 签名同时更改,缓存的 RFM 元数据不会更改,Python 会“看到”旧的 ABAP 代码。

我希望将来会使用开发人员友好的解决方案。

于 2018-12-07T12:55:15.070 回答
0

不需要激活任何东西。运输时应该没问题。你可以试试这些;

  • 再次传输所有内容。(包括相同请求的其他任务)
  • 检查呼叫中的目标字段,看看您呼叫的系统是否正确
  • 清除缓冲区 => TCode /$sync
于 2018-11-06T08:13:18.923 回答