ABAP基础-程序描述

作者: 常威爆打来福 | 来源:发表于2018-10-16 14:59 被阅读19次

    1 概述

    ABAP程序的源代码结构包括数据定义和处理块两个部分。

    • 数据定义部分包含整个程序中可见的全局数据类型和数据对象,选择屏幕元素以及ABAP Objects自定义的类和接口。
    • 处理块是ABAP程序的主要结构单元

    Event Block (事件块)

    每一个事件块都需要有一个事件关键字引导,这些事件关键字单独构成一个语句,其后续语句隶属于该关键字代表的事件块,直到下一个事件关键字出现为止,该事件块自动结束,因此没有显示的事件块结束关键字。事件块包括报表事件,列表事件,屏幕事件等。

    • INITIALIZATION(初始化)
    • START-OF-SELECTION(数据选择开始)
    • ATLINE-SELECTION(列表行选择)
    • PROCESS BEFORE OUTPUT(屏幕输入前处理)
    • PRICESS AFTER INTPUT(屏幕输入后处理)

    Dialog Modules(对话模块)

    这种处理快代码部分的开始和结束都有相关的关键字作为标志,是相对独立的单元。

    Procedures(过程 )

    代码部分的开始和结束也有相关的关键字作为标志,是相对独立的程序单元。过程则包括功能模块和子程序,以及ABAP对象中的类方法,可以被其他的模块调用,以实现程序模块化和代码复用。

    REPORT z_first_program.
    DATA: text1(10) TYPE c VALUE 'Basic List',
          text2(14) TYPE c VALUE 'Secondary List'.
    
    START-OF-SELECTION .
      DO 5 TIMES.
        PERFORM output_line USING sy-index.
      ENDDO.
    
    
    AT LINE-SELECTION.
      WRITE: text2, sy-lsind.
    
    
    FORM output_line USING p_index.
      WRITE: / text-001,
      p_index.
    ENDFORM.
    
    ABAP处理块

    对话模块和时间模块是在ABAP程序外部调用,过程则是通过程序语句内部调用。

    2 程序类型

    1 应用程序类型

    • Executable program(可执行程序,类型代码为1)
      常常用于创建通常意义上的报表,整个程序由REPORT关键词引导,在ABAP编辑器中进行编辑,并可以直接在ABAP编辑器中执行。除此之外,还可以通过SUBMIT语句或者分配报表事务代码来运行。可执行程序可以包含所有类型的ABAP处理块,但不能在其中定义功能模块(可以调用)。
    • Moudel pool(模块池程序,类型代码为M)
      在程序创建时由系统自动生成PROGRAM关键字语句进行引导,一般包含程序自身定义的屏幕和对话模块,在ABAP编辑器中进行编辑,且必须通过事务代码运行。可以包含除报表事件和功能模块所有类型的ABAP处理块。

    2 其他程序类型
    其他程序类型的程序不能直接(或通过事务代码)执行的,但这些类型作为代码容器,可以作为ABAP程序提供各种各样的模块化代码单元。

    • Function groups(功能组,类型代码F)
      由FUNCTION-POOL 语句引导,包含一个或多个功能模块。
    • Class pools(ABAP类库,类型代码K)
      由CLASS-POOL语句引导,是APAB对象的定义部分。
    • Interface pools(ABAP接口库,类型代码J)
      由INTERFACE-POOL引导,与K类型程序相似,用于定义ABAP对象的接口。
    • Subroutine pools(子程序池,类型代码S)
      由PROGRAM语句引导,包含一个或多个子程序代码模块或类方法。
    • Type groups(无类型代码)
      由TYPE-POOL语句引导,在数据字典中定义。
    • Include programs(包含程序,类型代码F)
      不需要任何语句引导,也不需要包含完整的处理模块。

    3 程序元素

    • Source code(源代码)
    • Variants(变式)
      与选择屏幕有关,用于用户存储在选择屏幕中输入的数据,类比变量
    • Attributes(属性)
    • Text Elements(文本元素)
      一种特殊的程序元素,储存在文本池中的文字,包括文本符号(Text symbols),选择文本(Selection texts),列表标题(List Headings)
    • Documentation(文档)

    4 屏幕

    • Screens(普通屏幕)
    • Selection Screens(选择屏幕)
    • Lists(传统列表屏幕)

    5 语句类型

    • 声明语句,用于数据元素的定义和声明,常用的关键字有TYPES,DATA,PARAMETER,TABLES
    • 模块化语句,用于定义程序运行时内处理的代码块,还可以细分为事件关键字语句和过程关键字语句。
      事件关键字:
      AT SELECTION-SCREEN
      AT USER-COMMAND
      INITIALIZATION(初始化)
      START-OF-SELECTION(数据选择开始)
      ATLINE-SELECTION(列表行选择)
      PROCESS BEFORE OUTPUT(屏幕输入前处理)
      PRICESS AFTER INTPUT(屏幕输入后处理)
      事件关键字:
      FORM/ENDFORM
      FUNCTION/ENDFUNCTION
      MODULE/ENDMODULE
    • 控制语句,控制程序流程
    • 调用语句,用于调用已经定义好的处理块,例如子程序,功能模块等,常用语句包括PERFORM,CALL,SUBMIT,LEAVE TO
    • 操作语句,程序内数据操作或输出,WRITE,MOVE,ADD
    • 数据库语句

    3 程序运行

    1 直接运行

    在Transcation SE38 or SA38 中运行

    2 调用执行

    功能 报表调用 事务调用
    无返回调用 SUBMIT LEAVE TO TRANSACTION
    调用并返回 SUBMIT AND RETURN CALL TRANSACTION

    内部调用可以从另一个程序通过SUBMIT语句进行。

    REPORT z_calling_program.
    
    START-OF-SELECTION.
      WRITE 'This program calls other program'.
    
      SUBMIT Z_DATA_MANIPULATION.
    
    image.png

    通过Transcation code 调用的程序语句为LEAVE TO TRANSACTION OR CALL TRANSACTION

    3 事务代码

    • SE80 对象导航器
    • SE81 仓库信息系统
    • SE84 仓库对象
    • SE38 ABAP编辑器
    • SE11 数据字典

    相关文章

      网友评论

        本文标题:ABAP基础-程序描述

        本文链接:https://www.haomeiwen.com/subject/drjhzftx.html