NetWeaver Application Server 是三层架构: Presentation layer 、Application layer 、Database layer 。
上图来自于 help.sap.com
当用户登录进 SAP 系统后,可以通过多种方式启动程序,并做数据输入、查询、保存等工作。这一些系列操作在 NetWeaver Application Server 中是如何执行的?不同的 layer 分别做什么工作?
当用户登录进 SAP 系统后,首先是 Presentation layer 显示给用户一个登录后的 SAP 欢迎界面。用户输入一个 TCode 后,Presentation layer 将用户在屏幕中输入的值( TCode )传给 Application layer ,进行一些运算后,向 Database layer 要求做数据查询,随后 Database layer 将查询结果返回给 Application layer ,后者将查询结果做进一步处理后,返回给 Presentation layer ,最终由 Presentation layer 将 TCode 的起始界面显示给用户。
来一个更具体些的例子:
用户运行某一个 ABAP 程序。这个 ABAP 程序有一个选择屏幕( Selection Screen)、几个变量( Variable )和一个结构数据对象( Structure )、一个 ABAP 处理块( ABAP processing block )。
当用户启动这个 ABAP 程序后,会由 Presentation layer 将执行请求发送给 Application layer ,而 Application layer 会要求 Database layer 发送出存储在 Repository (注1)中的选择屏幕的相关数据。当 Application layer 接受到该信息后,会传递给 Presentation layer ,由后者将选择屏幕显示给用户。
用户在选择屏幕中输入查询条件后, Presentation layer 将用户输入的条件传递给 Application layer ,在 Application layer 的 ABAP 处理块中运行至对应的 SQL 语句,由后者向 Database layer 发出查询请求, Database layer 将查询结果反馈给 Application layer 并继续执行 ABAP 处理块的后续代码。当 Application layer 的数据处理及显示方式的处理过程都结束后,将结果传递给 Presentation layer ,由后者显示给用户。