P-1
第十二章 DIALOG 程序入门
前言
DIALOG 程序是在 SAP 中,专门用于设计使用者接口的 ABAP/4 程序技巧;事
实上,所有 SAP 的 FUNCTIONAL 模块的操作接口,都是透过 DIALOG 程序开
发出来的。本章将对 DIALOG 程序操作的原理以及开发工具的使用进行简介。
DIALOG 程序运作的原理
要运作一个 DIALOG 程序,要包含以下的几个要项:
1. Transaction Code :这是启动 DIALOG 程序的 T-CODE,在建立
DIALOG 程序时便要定义之。
2. Screen :在 DIALOG 程序中的运作核心。程序开发者透过SCREEN
PAINTER 定义 DAILOG 程序中每一个画面的样式与出现的字段
(FIELD),以及画面出现前后要运作的模块。
3. PAI module (Process After Input):指当使用者完成输入画面后,
需要动用到的动作的模块。
4. PBO module (Process Before Output ):指一个SCREEN 要显示
到屏幕之前,所要动用到的动作的模块。
5. Field module :所有模块、SCREEN 所使用到的 FIELD 都在这里定
义。
6. Menu :程序开发者可以透过 MENU PAINTER ,定义 MENU BAR
上值以及与程序之间连结。
7. Subroutines :程序开发者自订的子程序都定义在此。
8. 其它:如 TITLE、VARIANT 等,是在定义程序的一些细节。
在建立一个 DIALOG 程序时,必须要 INCLUDE 上述的几个 OBJECT 运作,而
这些 OBJECT 即提供 DIALOG 程序中各个 SCREEN 操作所需要的 MODULE。
因此在设计、制作 SCREEN 时,先要决定 SCREEN 中要处理的动作以及所需
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-2
的数据域位,再将其中的内容逐一建入程序中。
而 DIALOG 程序的运作方式为何?请见下图:
Transaction Code
Transaction Code
SCREEN XXX
PBO Object
PBO Object
Screen Display
Screen Display
PAI Object
PAI Object
EXIT
SCREEN YYY
SCREEN YYY
1. 透过 TRANSACTION CODE 启动 DIALOG 程序。在定义 TRANSACTION
CODE 时,会指定第一个启动的 SCREEN;假设此时指定 SCREEN 为 XXX。
2. 启动后,SAP 首先执行 SCREEN XXX 定义的 PBO MODULE,执行的顺序
就依照 SCREEN XXX 中定义的顺序。
3. PBO 执行完毕后,即将结果显示在屏幕上。
4. 使用者在屏幕上输入完数据后,按下特定的按钮或快速键(也就是所谓的
OK-CODE),随即启动 PAI MODULE 。在 PAI MODULE 中会对屏幕上的
FIELD 执行定义的 MODULE 处理之,并会分析 OK-CODE 决定,回到
SCREEN XXX 的 PBO?或是离开目前的 TRANSACTION?还是跳到另一
个 SCREEN YYY?
PBO、PAI 所有定义的 MODULE 的程序代码是存放在特定的 MODULE 里。至
于运算时所需定义的 FIELD、定义 MENU BAR 的 GUI STATU、或其它自订的
子程序,则是存在其它的 MODULE 里。
如何建立DIALOG程序
DIALOG 程序是 SCREEN、MODULE、STATU、TRANACTION CODE 等各个
OBJECT 的组合,因此建立 DIALOG 程序的过程,便是一个建立各种对象的过
程。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-3
1. 建立 DIALOG 程序的 TRANSACTION 是 ABAP/4 WORKBENCH 里的
OBJECT LIST,TCODE 是 SE80。进入后的画面如下:
2. 如果要建立时,键入新程序名称,直接按「DISPLAY」后就会出现以下画面:
按 YES 后,就会出现以下画面。这个窗口的用意是确定您新建的程序名称;
而「With TOP INCL.」选项是决定是否要建立 TOP INCLUDE MODULE。
这个 MODULE 的用途是用来定义 GLOBE FIELD 与 MODULE 用的,建议
最好建立起来。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-4
如果选择建立 TOP INCLUDE,会接着出现以下窗口,以确定这个 MODULE
的 PROGRAM NAME 。而这个 PROGRAM 是可以用 ABAP/4 EDITOR 直
接编辑的。
而后就会出现编辑 PROGRAM ATTRIBUTE的画面(如下)。值得注意的是,
PROGRAM TYPE 要设成「M」,表示是「MODULE POOL 」,也就是专门
INCLUDE MODULE 的程序。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-5
按下「SAVE」之后,就会出现下图的画面;此时一支 DIALOG 程序便建立
起来了!接下来,我们将介绍其中 MODULE 与 OBJECT 的建立。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-6
3. 此时对「Program Object Types 」Double-Click,会出现如下图的画面:
OBJECT BROWSER,在选取特定的 OBJECT 之后(如 PBO MODULE 或
SCREEN),再依据下方的 ICON 执行动作,我们就可以对指定的 OBJECT
进行动作了。
4. 在 DIALOG 程序中,SCREEN 是指个运作的核心;而运作一个 SCREEN
所 需 要 的 MODULE 、 DATA FIELD 、 SUBROUTINE 等就 可 在 特 定 的
OBJECT 中定义。如果我们 DISPLAY 一个一般 REPORTING 的程序,会
发 现 到 他 也 会 有 上 述 的 几 个 MODULE,只 是 比 较 简 单 而 已 。 而 这 些
OBJECT,都会在定义在主程序中,以「include module zXXXXXXX」的语
法定义。事实上,主程序中也只有上述的程序代码而已。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-7
5. 下图就是一个建立完成的 DIALOG 程序,在 SE80 中显示出来的情形。
我们对各个 OBJECT DOUBLE CLICK 之后,就会出现各个 OBJECT 中所
含的 MODULE 或成员。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com
P-8
SCREEN的建立
1. 我们先用 OBJECT BROWSER 建立一个 SCREEN:
接着就会出现以下的画面,确认欲建立的程序与画面。
http://www.kingbo.name
PDF created with pdfFactory Pro trial version www.pdffactory.com