首页 > 解决方案 > 最佳实践而不是硬编码的 RFC 目标?

问题描述

有没有使用非硬编码 RFC 目标的好方法?

现在我们的解决方案是检查使用哪个系统,然后将目标分配给一个变量

IF cl_role EQ 'P'.
      p_dest = 'ESW300'.
   ELSE.
      p_dest = 'EAW300'.
   ENDIF.

我们在调用目标函数时使用它。

CALL FUNCTION 'XYZ' DESTINATION p_dest

有没有不使用硬编码目的地的好方法?

感谢您的帮助!

标签: abapsaprfchardcoded

解决方案


RFC 目的地已经是端点的抽象,所以我不建议再次抽象它。出于这个原因,我建议在系统中使用相同的名称作为主要实践,而不是将它们更改为特定于实例。

否则,如果您真的想跨系统使用不同的 RFC 目标名称(我不会),我建议您动态确定 RFC 目标,而不是硬编码。如果您查看一些 SAP 标准程序,它们使用特定格式来确定预期的 RFC 目标名称,例如<hostname>_<systemname>_<system number>SolMan 使用的名称,但是如果您查看可以找到的标准 RFC 目标,则有很多示例。

我还建议作为最佳实践,任何硬编码值永远不要像您的示例所示那样内联填充,而是在标题常量中填充。

我意识到你可能只是想把注意力集中在你的问题上,而不是其他阅读这篇文章的人。


推荐阅读