SAP系统中ABAP程序运行示例
• 上图说明了在各个服务层之间的数据交互,需要说明的是,实际处理时应用层与数据库的交互 比上图中更为频繁,不仅仅在处理用户操作时才 读写数据库。后面的例子会详细说明这一过程。 • 当用户触发一个操作,例如按了回车、功能键、菜单、按钮等时,就会把控制权从表示层传递给 应用层。 • 只有跟用户操作相关的那部分程序会被执行。 • 如果在程序中触发了其他会话,系统会把屏幕传递给表示层,同时交出控制权。
1、程序开始 – 用户登录到系统之后,就会出现初始屏幕,在初始 屏幕里,可以通过菜单路 径或事务码来启动ABAP 程序。 – 知识库(Repository), 它是SAP 系统中非常重要的组成部分,负责存储 系统运行的基本数据,例 如:程序库、数据字典、 ABAP 对象等,被保存在数据库中,后面会专题讲 解它。
2、系统读取程序上下文 – 上下文(Context),在汉语里面还真没什么合适的词可以跟这个英文单词对应的,只可意会不可言传。 – 系统在程序开始后,会把所有程序上下文读到应用服务器上。程序上下文包括:存储变量和复杂对象的内 存区,用户会话的屏幕信息,ABAP程序块等。上述的这些东西都存储在知识库中。 – 上页的例子里,用到了一个选择屏幕与用户交互,一个变量和一个结构,还有一个ABAP程序块。显示数据的清单则根据用户输入动态生成。 – ABAP 运行时环境控制后面的程序流。
3、运行时系统发送选择屏幕 – 如果运行时系统包含了选择屏幕,ABAP运行时系统就会把屏幕发送给表示层服务器,在用 户没有输入完成前,表示层服务器就控制着程 序流。 – 选择屏幕可以做一些基础的输入有效性检查, 如必输字段、日期/数值格式等。
4、输入的值被插入数据对象 – 用户完成了在选择屏幕的输入后,就可以通过触发执行来处理程序。 – 输入的数据自动被保存到程序相应的数据对象中, ABAP 运行时系统又重新获得程序的控制权。 – 在我们的示例中,只有一个程序块,运行时系统就顺序处理ABAP程序块。 – 如果用户输入的类型不对,会自动触发错误消息,用户必须纠正他的输入。(这里的类型与选择屏幕的有 效性检查不同,包含例如2月30日这种日期超范围等错误。)
5、程序从数据库请求数据记录 – 在示例中,读数据库的操作写在ABAP程序过程块中。关于取哪张数据表哪些字段的信息都 被传递给数据库。
6、数据库把数据记录返回给程序 – 数据库把数据记录返回给程序,ABAP运行时系统确保把数据保存在相应的数据对象中。 – 如果只读一条记录,则通常使用一个包含了所需字段的结构。
7、运行时系统发送清单 – 在程序块中,也编写了关于清单布局显示格式的代码,在生成了清单后,运行时系统就把清 单发送给表示层服务器。转载请注明来源诚信在线开户 www.ttt8888.com