1.1 什么是 Web Dynpro?
简单来说, Web Dynpro是 SAP 提供的一种编程模型和UI框架,能够实现基于SAP平台开发web类应用程序。SAP NetWeaver 7.0 (SAP NetWeaver Application Server 7.0) 及以上版本都可以使用 ABAP Web Dynpro。SAP自身基于WEB的产品如PLM /CRM /SRM 等都基于Web Dynpro实现。SAP 为 Web Dynpro 提供两种开发语言:ABAP 和 Java,于是就有了 Web Dynpro for ABAP 和 Web Dynpro for Java。
1.2 应用场景
Web Dynpro 应用程序可访问不同类型的数据源:
• 通过 ABAP Web Dynpro 应用程序可以直接访问所有类型的重用组件(例如,函数模块或方法)。甚至可以通过 ABAP SELECT 访问数据库。然而,这会导致流程逻辑和业务逻辑的混合使用,因此
应予以避免。
• 一旦生成了 Web Service 客户端对象,就可使用 Web Service。
• SAP Java 连接器 (JCo) 可用于调用 J2EE 引擎上的企业 JavaBean方法。ABAP Web Dynpro 不支持模型对象。使可重用的实体封装业务逻辑的最佳方式是创建包含源代码的 ABAP 类。也可以开发没有 UI(无界面)的 Web
Dynpro 组件,来仅提供可重用的功能。然后通过组件重用,利用其它Web Dynpro 组件访问这些组件。
1.3 Web Dynpro 的优点
- 使用标准UI控件,无需编写UI代码,开发人员可以将精力集中于业务逻辑处理。
- web Dynpro应用程序可以在各种设备、各类网络上运行--能够自适应多种终端设备。
1.4 基本架构
Web Dynpro采用了一种高级的架构模式,并且提供了非常友好的编程界面。Web界面可以使用拖拉的形式进行开发。Web Dynpro for abap采用了MVC(model view controller)的设计方法。
Component(组件)
• 一个Web Dynpro component包含window,views和component controller。
• window和view主要和UI相关。windows只是一种容器,在一个component内一个window可以包含任意多个view,
而component controller只有一个。如果一个component不需要view,那么windows也就相应无需存在了。
• window是多个view的组合容器,view必须在window中才能被用户看到。
• 一个window包含至少一个view,如果是多个view的话可以通过导航实现,但必须定义开始的view。
Controller(控制器)
Web Dynpro的控制器分为四类:
Component controller:这种类型的控制器在一个Web Dynpro内只存在一个
Custom controller:这类控制器是可选的,用于封装Component controller的sub-function
View controller:每一个视图都有一个对应的视图控制器,负责与视图有关的逻辑,如检查用户的输入和处理user action。每个视图只有一个视图控制器以及一个View Context
Window controller:一个窗体内只存在一个窗体控制器,用于inbound plugs传递数据
Outbound Plugs
• 链接window和view的inbound plug
Inbound Plugs
• 链接view的outbound plug到嵌入window、