abap - 最佳实践而不是硬编码的 RFC 目标?
问题描述
有没有使用非硬编码 RFC 目标的好方法?
现在我们的解决方案是检查使用哪个系统,然后将目标分配给一个变量
IF cl_role EQ 'P'.
p_dest = 'ESW300'.
ELSE.
p_dest = 'EAW300'.
ENDIF.
我们在调用目标函数时使用它。
CALL FUNCTION 'XYZ' DESTINATION p_dest
有没有不使用硬编码目的地的好方法?
感谢您的帮助!
解决方案
RFC 目的地已经是端点的抽象,所以我不建议再次抽象它。出于这个原因,我建议在系统中使用相同的名称作为主要实践,而不是将它们更改为特定于实例。
否则,如果您真的想跨系统使用不同的 RFC 目标名称(我不会),我建议您动态确定 RFC 目标,而不是硬编码。如果您查看一些 SAP 标准程序,它们使用特定格式来确定预期的 RFC 目标名称,例如<hostname>_<systemname>_<system number>
SolMan 使用的名称,但是如果您查看可以找到的标准 RFC 目标,则有很多示例。
我还建议作为最佳实践,任何硬编码值永远不要像您的示例所示那样内联填充,而是在标题常量中填充。
我意识到你可能只是想把注意力集中在你的问题上,而不是其他阅读这篇文章的人。
推荐阅读
- google-apps-script - 如何将特定工作表中 A1 范围内的 URL 设置为变量?
- java - 为什么我的程序会跳过替换方法?
- jquery - 如何检测机器是否空闲,15 秒内没有来自服务器的值?
- sql - 谁禁用了 SQL Server 代理中的作业
- r - 如何在 dplyr 中使用“sql 函数”进行查询?
- string - 如果填充了文本框,则将文本输入传输到标签
- c++ - 如何在cmake中使用宏?
- javascript - Shopify 自定义标签过滤
- vector - 有效地将大向量分块为向量的向量
- php - php cron jobs not running after moving to php 7.2