hhhhhh.

ABAP-程序开始语句(Introductory Statements)(六)——PROGRAM

ABAP开始语句包含以下6种:

    CLASS-POOL:开始一个类池

     FUNCTION-POOL:开始一个函数组

     INTERFACE-POOL:开始一个接口池

     PROGRAM:开始一个模块池或者子例程池

     REPORT:开始一个可执行程序

     TYPE-POOL:开始一个类型池

PROGRAM

         引入一个模块池(只包含屏幕和对话框模块的ABAP程序,并且通过事务码启动)和一个子例程池(包含子例程的ABAP程序,可以被从其他ABAP程序调用,不支持他自己的dynpros)。

语法:PROGRAM prog [list_options] [MESSAGE-ID mid] [REDUCED FUNCTIONALITY]

    语句PROGRAM初始化一个模块池或者子例程池。它必须是在触发可能的包含程序之后出现在独立程序的第一个语句。必须直接指定名字prog。以下是附加条件的应用。

  • 在模块池,PROGRAM语句的附加条件list_options和MESSAGE-ID和在语句REPORT中使用有同样的含义。附加条件REDUCED FUNCTIONALITY只有在子例程池中才有效,否则会被忽略。

  • 在子例程池,在模块池或子例程池,REPORT也和PROGRAM有相同的含义并且可以带有他自己的条件。

  • 作为一个规则,应该通过使用PROGRAM初始化模块池和子例程池。

  • 模块池的名字不固定,但是但是应该符合abap工作台的命名约定。这些指定模块池应该以“SAPM”开始。

附加条件:   

    ... REDUCED FUNCTIONALITY

这个附加条件只会对子例程池有效。在一个子例程池用条件REDUCED FUNCTIONALITY开始,不是所有的组件会随着ABAP程序加载。这导致在在程序加载的时候的弱化并且会在回滚区 降低内存的占用。

  • 嵌入的结构syst不会被加载,取代syst的是结构sy可以被使用,他们具有相同含义。

  • 嵌入的结构screen不会被加载。语句LOOP AT SCREEN和MODIFY SCREEN是不可用的。

  • 当前程序组中的主程序的dynpros是不能够编辑的。

  • 不支持list printing.语句NEW-PAGE和SUBMIT相关的条件不能不被改变。

如果缺失的功能不是必须的,可以使用REDUCEDFUNCTIONALITY条件避免子例程池不必要的资源消耗。

说明

  • REDUCED FUNCTIONALITY条件也在子例程池(使用GENERATE SUBROUTINEPOOL创建)有效。

  • 对于小的只包含简单帮助过程的子例程池强烈推荐使用REDUCED FUNCTIONALITY。

  • REDUCED FUNCTIONALITY在子例程池中的使用导致语法检查的警告,指出整个ABAP范围不可用。如果是当前不使用的功能,相关的语法检查会出错。

posted @ 2022-03-11 15:55  iceyou  阅读(267)  评论(0)    收藏  举报