九、ABAP 模块化

程序包含相同/相似的语句块,或多次需要多次调用的函数,可以应用模块化技术,避免代码冗余。

1.源代码块

(1)宏定义

①定义

DEFINE <macro>.

       <statements>

END-OF DEFINITION.

在宏中最多可以包含九个占位符(&1,&2,…,&9)。

②调用

<macro> [<p1><p2>…<p9>].

在生成程序期间,系统用已定义得语句替换<macro>,用<Pi>替换每个占位符&i。可以从宏中调用另一个宏,但宏不能调用自己。

(2)INCLUDE程序

包含程序不能独立运行,必须内置到可执行程序中,或者嵌套包含程序

INCLUDE PROGRAM_NAME.

九、ABAP 模块化

 

 九、ABAP 模块化

 

 

2.DIALOG屏幕逻辑流

①    PROCESS BEFORE OUTPUT(PBO):在屏幕事件发生前的处理逻辑

②    PROCESS AFTER INPUT(PAI):在屏幕事件发生后的处理逻辑

③    PROCESS ON HELP-REQUEST(POH):当用户查看帮助信息(F1键)时被触发,事件结束后将继续处理当前屏幕

④    PROCESS ON VALUE-REQUEST(POV):当用户按下查询帮助按钮(F4键)时被触发,事件结束后将继续处理当前屏幕

3.FORM子程序

(1)定义

FORM <程序名> [<参数>].

       <statement block>

ENDFORM.

(2)调用

①    内部调用:PERFORM <程序名> [<参数>].

②    外部调用:PERFORM <程序名>(<外部程序名>)[<参数>] [IF FOUND].

注意:[IF FOUND],当外部程序中没有所要调用的子程序时,系统忽略PERFORM语句。

(3)参数传递

①      引用传递:FORM SUBR USING P1 CHANGING P1.

②      值传递:FORM SUBR USING VALUE(P1).

③      值传递并返回最终值:FORM SUBR CHANGING VALUE(P1).

 

4.函数

函数是存储在*库内的特殊外部子程序,可调用,也可以自己创建。将可能被重复使用的功能代码放在一个模块里,提高程序透明度。

(1)创建函数组

九、ABAP 模块化

 

 九、ABAP 模块化

(2)调用函数

九、ABAP 模块化

 

上一篇:RocketMQ面试题


下一篇:jQuery Validate插件