函数组的文件结构

初学 ABAP 函数模块的的朋友经常会被函数组整体的复杂结构搞晕,弄不清楚函数模块跟函数组有什么关系,全局数据又是什么东西,其实只要稍微整理一下,函数组的整体结构就很清楚了,下面我就用一个实例说明一下。

假设,函数组的名称为 <fgroup>,其中包含两个函数模块 <fmodule1> <fmodule2>。这里用尖括号是为了更好的区分 SAP 自动添加的命名规则和用户定义的名称。

则整个函数组就包含下列文件(ABAP 概念的文件,或者叫程序更准确一些)。

SAPL<fgroup>:这个是函数组主文件,内容如下:

Code
*******************************************************************
*???System-defined?Include-files.?????????????????????????????????*
*******************************************************************
??INCLUDE?L<fgroup>TOP.???????????????????????
"?Global?Data
??INCLUDE?L<fgroup>UXX.???????????????????????"?Function?Modules

*******************************************************************
*???User-defined?Include-files?(
if?necessary).????????????????????*
*******************************************************************
*?INCLUDE?L<fgroup>F???????????????????????
"?Subprograms
*?INCLUDE?L<fgroup>O???????????????????????"?PBO-Modules
*?INCLUDE?L<fgroup>I???????????????????????"?PAI-Modules

?

然后,包含文件 L<fgroup>TOP 中是函数组定义和全局数据,内容如下:

Code
FUNCTION-POOL?zmdtext.??????????????????????"MESSAGE-ID?..

*?Other?Globle?Data

?

而包含文件 L<fgroup>UXX 中则又包含了两个包含文件,并且它是不允许用户手工修改,而是 SAP?自动管理:

?

Code
*****************************************************************
*???THIS?FILE?IS?GENERATED?BY?THE?FUNCTION?LIBRARY.?????????????*
*???NEVER?CHANGE?IT?MANUALLY,?PLEASE!???????????????????????????*
*****************************************************************
INCLUDE?L<fgroup>U01.
????????????????????
"<fmodule1>
INCLUDE?L<fgroup>U02.
????????????????????
"<fmodule2>

?

名为? L<fgroup>Uxx 的包含程序则每个包含了一个函数模块的定义 FUNCTION?<fmodulexx> ... ENDFUNCTION

用户还可以在函数组的主程序中添加其它包含文件或代码,用来存储子程序、PAIPBO 等数据。

用一个树型结构展开如下:

SAPL<fgroup>
 L<fgroup>TOP
 L<fgroup>UXX
  L<fgroup>U01
  L<fgroup>U02
  L<fgroup>U....
 L<fgroup>F
 L<fgroup>O
 L<fgroup>I

?

?

posted on 2010-10-09 10:58  highmayor  阅读(206)  评论(0编辑  收藏  举报

导航