我经常通过论坛、github 等分享 ABAP 代码,这些代码通常适用于任何 ABAP-based system .不幸的是,经常发生我使用的一些对象(数据库表、类型等)只存在于我正在使用的解决方案中(例如在 ABAP 系统上工作的 C/4HANA)。
重要的是要了解 SAP 开发的几个解决方案,它们独立于其他解决方案,但要安装在 ABAP 系统上,其中包括 ABAP 语言本身和紧密链接的外部对象,如 ABAP 字典中的那些。此类 SAP 解决方案有 SAP R/3、SAP CRM、SAP SRM、SAP SCM、SAP BW、S/4HANA、C/4HANA、BW/4HANA、SAP 解决方案管理器等。
例如,假设我想问一个关于 ABAP 中连接的问题,我提供了以下示例(我在 C/4HANA 系统上开发,但问题与 C/4HANA 无关):
REPORT.
DATA gt_partner TYPE TABLE OF crmd_order_index-partner_no.
SELECT DISTINCT a~partner_no
INTO TABLE gt_partner
FROM crmd_order_index AS a INNER JOIN crm_jest AS b
ON a~header = b~objnr
UP TO 10 ROWS.
cl_demo_output=>write( crmd_order_index ).
很多人有 S/4HANA,而不是 C/4HANA,所以代码不会在他们的系统上编译,因为数据库表
crmd_order_index仅存在于 C/4HANA 中。可能那些人不会回答,或者他们无法验证他们的回答,所以我想我可以努力改进这个例子,让它在任何 ABAP 系统上运行。这当然是一个非常简单的例子,但是想象一下你有几十或几百行。
我知道一种解决方案是安装 ABAP Developer Edition在我们自己的笔记本电脑上,因为它包含最小的 ABAP 配置,并在上面测试 ABAP 代码。但是安装起来比较复杂,时间长,占用磁盘空间很大,只是为了检查一个“简单的东西”。
是否有另一种方法可以轻松快速地检查 ABAP 代码是否可以在任何基于 ABAP 的系统中编译?还是有其他想法?
我还希望此解决方案适用于 abapGit 这样大的代码例如。
有关信息:
请您参考如下方法:
分享一段 ABAP 示例代码的最简洁的方法似乎是这样的:
$MY_SAMPLE , README它提供了编写代码的 ABAP 版本。 使用这些最佳实践:
README 中的依赖项. ABAP 在这里并不特别。在任何开发语言中,提供最少的工作示例始终是一项努力。它需要将受影响的代码从不必要的依赖项中分离出来,并用最少的工作 stub 替换所需的代码。这就是为什么提出好问题是一项艰巨的工作,以及为什么 StackOverflow 欣赏具有声誉的好问题的部分原因。




