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范围不可用。如果是当前不使用的功能,相关的语法检查会出错。

浙公网安备 33010602011771号