如何通过增强(Enhancement) 的方式给 SAP ABA

2022-10-27  本文已影响0人  华山令狐冲

ABAP 系统有比较完善的修改控制权限管控,比如笔者试图修改一个 SAP ABAP 系统里标准的函数,就会遇到如下的警告消息,然后修改的尝试会被阻止:

You are not authorized to make changes (authorization object S_DEVELOP)



但有的时候,出于项目需求,我们确实需要为一些 ABAP 标准程序增添新的功能。本文介绍如何采取 ABAP 增强(Enhancement) 的方式来完成我们的目的。ABAP 标准程序和其增强程序的存储是完全独立的。SAP 负责开发 ABAP 标准程序,而项目里的 ABAP 开发人员,即学习本教程的各位朋友,负责开发 ABAP 标准程序的增强程序。即使将来被增强的 ABAP 标准程序又有了更新或者 bug 修复,也不会影响到项目里的 ABAP 开发人员编写的增强程序。反之亦然。

本文通过一个实际的例子向大家介绍如何增强一个 ABAP 标准程序。

假设我们有一个 SAP 标准 ABAP 报表:ZSTANDARD,我用这个报表来模拟 SAP 标准程序。

REPORT z.

DATA: lt_data TYPE string_table.

FORM get_output CHANGING ct_data TYPE string_table.
  APPEND 'Hello' TO ct_data.
  APPEND 'World' TO ct_data.
ENDFORM.

FORM print_output USING it_data TYPE string_table.
  DATA: lv_line TYPE string.
  LOOP AT it_data INTO lv_line.
    WRITE:/ lv_line.
  ENDLOOP.

ENDFORM.

START-OF-SELECTION.

  PERFORM get_output USING lt_data.
  PERFORM print_output USING lt_data.

执行之后,打印两行数据:

Hello
World

非常简单的一个 ABAP 报表。

假设我们的需求是,不修改这个 ABAP 报表的源代码,就能让其打印三行数据,即在 World 后,增加第三行 Jerry 的打印。

下面是采用 SAP ABAP 自带的增强开发工具对其增强的详细步骤介绍。

总结

本文通过一个实际的例子,介绍了如何不通过修改 SAP 标准 ABAP 程序源代码的方式,对其的功能进行增强,即采取 ABAP 增强开发的方式进行二次开发,这是一种在实际 SAP 项目实施过程中使用非常广泛的技术。

上一篇 下一篇

猜你喜欢

热点阅读