对话编程教程:模块池 SAP ABAP
SAP-ABAP 支持两种类型的程序 - 报告程序和对话程序。
如果您的 ABAP 程序需要用户输入,则使用对话框编程。
在本教程中你将学习:
用户对话是用户和程序之间任何形式的交互,可以是以下任何一种
- 输入数据
- 选择菜单项
- 单击一个按钮
- 单击或双击某个条目
当我们需要在屏幕之间来回导航时,也会使用对话框程序
对话程序以“M”类型创建(模块池)。它们不能独立执行,并且必须附加到至少一个指定初始屏幕的事务代码。
报告和对话程序之间的差异
报告程序:
报告是一种程序,它通常读取和分析数据库表中的数据,而不会更改 数据库.
对话程序:
对话程序允许您与系统交互并更改数据库表的内容。每个对话程序都具有一定的屏幕顺序,系统会逐个处理这些屏幕。
对话编程中的事务处理示例
对话程序的组成部分
不比 报告 这通常需要创建一个可以独立于其他对象执行的自主程序,对话程序开发需要开发多个对象,这些对象都不能单独执行。 相反,所有对象都按层次链接到主程序,并按照对话主程序规定的顺序执行.
对话程序的组成部分包括:
交易代码
- 事务代码启动一个屏幕序列。
- 您可以在 ABAP 工作台的存储库浏览器中或使用事务 SE93 创建事务代码。
- 事务代码与 ABAP 程序和初始屏幕相链接。
- 您可以使用 CALL SCREEN 语句从任何 ABAP 程序启动屏幕序列。
屏幕
- 每个对话 SAP 系统由一个或多个屏幕控制。
- 您可以使用 Screen Painter 在 ABAP Workbench 中通过事务 SE51
- 每个屏幕都属于一个 ABAP 程序.
- 这些屏幕由“屏幕掩码”或“布局”及其流程逻辑组成。屏幕具有布局,可确定输入/输出字段和其他图形元素(如复选框和单选按钮)的位置。流程逻辑确定屏幕内的逻辑处理。
GUI 状态
- 每个屏幕都有一个 GUI 状态,它们是程序的独立组件。
- 它控制菜单栏、标准工具栏、应用程序工具栏,用户可以用它们来选择应用程序中的功能。
- 您可以使用菜单在 ABAP 工作台中创建它们 Painter.
ABAP 计划
- R/3 系统中的每个屏幕和 GUI 状态都属于一个 ABAP 程序。
- ABAP 程序包含由屏幕流逻辑调用的对话模块,还处理来自 GUI 状态的用户输入。
- 使用屏幕的 ABAP 程序也称为对话程序。
- 在模块池(M 型程序)中,要调用的第一个处理块始终是对话框模块。但是,您也可以在其他 ABAP 程序(例如可执行程序或功能模块)中使用屏幕。然后以不同的方式调用第一个处理块;例如,通过运行时环境或过程调用。然后使用 CALL SCREEN 语句启动屏幕序列。
屏幕流程逻辑
屏幕流逻辑主要分为四个部分。
- 输出前处理 (PBO) 事件:在屏幕显示之前处理
- 输入后处理 (PAI) 事件:用户在屏幕上执行操作后处理
- 帮助请求的处理(聚氧乙烯): 当按下 F1 键时进行处理
- 按价值请求处理 (POV):按下 F4 键时进行处理
德普罗
- 屏幕及其流程逻辑称为 Dynpro(“动态程序”,因为屏幕流程逻辑影响程序流程)
- 每个 dynpro 只控制对话程序的一个步骤。
- 属于程序的屏幕包括 编号。屏幕流顺序可以是线性的,也可以是循环的。您甚至可以在屏幕链中调用另一个屏幕链,并在处理完后返回到原始链。您还可以在 ABAP 程序的对话模块中覆盖静态定义的下一个屏幕。
ABAP 模块池
- 在 PBO 或 PAI 事件中,Dynpro 调用 ABAP 对话程序。此类程序的集合称为 ABAP 模块池。
- 例如,在 PAI 事件中调用的模块用于检查用户输入并触发适当的对话步骤,例如更新任务。
- 所有 dynpro 都从内部调用 一种 交易指的是一个公共模块池。
对话程序的结构
对话程序的流程