SAP ABAP - 子例程

  • 简述

    子例程是可重用的代码部分。它是程序内的模块化单元,其中的功能以源代码的形式封装。您将程序的一部分调出到子例程,以便更好地了解主程序,并多次使用相应的语句序列,如下图所示。
    子程序可重用部分
    我们的 X 计划有 3 种不同的source code blocks。每个块都有相同的ABAP语句。基本上,它们是相同的代码块。为了使这段代码更容易维护,我们可以将代码封装成子程序。我们可以在程序中根据需要多次调用该子例程。可以使用 Form 和 EndForm 语句定义子例程。
    以下是子例程定义的一般语法。
    
    FORM <subroutine_name>.
      
    <statements> 
      
    ENDFORM.
    
    我们可以使用 PERFORM 语句来调用子程序。控制跳转到子例程 <subroutine_name> 中的第一个可执行语句。当遇到 ENDFORM 时,控制跳回 PERFORM 语句后面的语句。
  • 例子

    步骤 1− 转到事务 SE80。打开现有程序,然后右键单击该程序。在本例中,它是“ZSUBTEST”。
    步骤 2− 选择“创建”,然后选择“子例程”。在字段中写入子例程名称,然后单击继续按钮。子例程名称为“Sub_Display”,如下图所示。
    创建子程序
    步骤 3− 在 FORM 和 ENDFORM 语句块中编写代码。子程序已成功创建。
    我们需要包含 PERFORM 语句来调用子例程。让我们看一下代码 -
    
    REPORT ZSUBTEST. 
    PERFORM Sub_Display.
    * Form Sub_Display 
    * -->  p1 text 
    * <--  p2 text 
     
    FORM Sub_Display. 
    Write: 'This is Subroutine'. 
    Write: / 'Subroutine created successfully'. 
    ENDFORM.                    " Sub_Display
    
    步骤 4− 保存、激活并执行程序。上面的代码产生以下输出 -
    
    Subroutine Test:
       
    This is Subroutine
      
    Subroutine created successfully
    
    因此,使用子例程使您的程序更加面向功能。它将程序的任务分成子功能,以便每个子例程负责一个子功能。您的程序变得更容易维护,因为对功能的更改通常只需在子例程中实现。