- SAP Web Dynpro 教程
- SAP Web Dynpro - 首页
- SAP Web Dynpro - 概述
- 配置与集成
- 架构
- 导航
- 组件
- 映射与数据绑定
- 事件与动作
- 应用程序
- 应用程序的URL
- 创建应用程序
- 组件接口
- 无界面组件
- 辅助类
- 应用程序中的服务调用
- 使用服务调用
- 调试应用程序
- 版本管理
- 消息
- 集成消息
- 个性化与配置
- Portal 集成
- 在Portal中集成WDA
- 交互式表单
- SAP 列表查看器(ALV)
- 管理
- 监控应用程序
- SAP Web Dynpro 有用资源
- Web Dynpro - 问答
- SAP Web Dynpro 快速指南
- SAP Web Dynpro - 有用资源
- SAP Web Dynpro - 讨论
SAP Web Dynpro 快速指南
SAP Web Dynpro - 概述
Web Dynpro 是一种标准的 SAP UI 技术,允许您使用图形工具和与 ABAP 工作台集成的开发环境来开发 Web 应用程序。使用图形工具可以减少实现工作量,并且您可以在 ABAP 工作台中更好地重用和维护组件。
要访问 ABAP 工作台中的 Web Dynpro 运行时环境和图形工具,您可以**使用事务代码 - SE80**
使用 Web Dynpro 的主要优势
以下是使用 Web Dynpro 在 ABAP 环境中开发人员的主要优势:
- 您可以轻松维护和重用开发组件。
- 使用图形工具可以缩短实现时间。
- 您可以使用图形工具轻松更改布局和导航。
- 易于进行结构更改。
- 通过使用数据绑定,您可以使用自动数据传输。
- 易于集成到 ABAP 环境中。
Web Dynpro ABAP 与 Web Dynpro Java 相同,并支持应用程序开发的相同功能集。
配置与集成
安装 ABAP 应用服务器后,需要对其进行正确配置以进行应用程序开发。
要查找有关 ABAP 配置的详细信息,您可以转到 SAP 参考 IMG → SAP NetWeaver → 应用服务器
如果您使用的是 SAP Solman,则可以通过转到 T 代码 - SOLAR_LIBRARY 检查此配置。
要将 Web Dynpro 与 ABAP 应用程序开发一起使用,您必须为 Web Dynpro 编程进行其他配置。
Internet 通信管理器
您需要在 ICM 服务中设置 HTTP/HTTPS。服务包含以下不同的组件:
- 服务/端口
- 服务中使用的协议 HTTP/HTTPS
- 处理超时
- 保持活动超时
- 服务状态 - 活动/非活动
您可以选择转到 → 服务来创建、删除、激活或停用服务。要显示 ICM 服务器缓存统计信息,请选择转到 → 统计信息
Internet 通信框架
您应该激活 Internet 通信框架 (ICF) 服务。您可以通过转到 SPRO → SAP 参考 IMG → SAP NetWeaver → 应用服务器 → Internet 通信框架 → 激活 HTTP 服务来激活此服务
安装 Application Server ABAP 后,所有 ICF 服务都处于非活动状态。您可以使用 T 代码 - SICF 在 ICF 树下维护 ICF 服务。
您可以通过以下方式激活 ICF 服务:
- 使用菜单选项,服务/主机 → 激活
- 使用上下文菜单并选择激活服务。
视图设计器中的布局编辑器
您应该激活 SICF 中的所有服务,以便 Web Dynpro ABAP 使用视图设计器中的布局编辑器。
单点登录
您应该在相关主机上设置 SSO。
FQDN
您应该使用完全限定域名 FQDN,应避免使用简称。
SAP Web Dynpro - 架构
Web Dynpro 是一个用于 Web 开发的 ABAP 环境,基于 UI 编程的模型视图控制器 (MVC) 概念。它根据平台同时适用于 Java 和 ABAP,并支持类似的功能。
Web Dynpro 具有以下功能:
- 显示和业务逻辑分离
- 使用图形工具轻松更改布局
- 接口没有平台依赖性
以下是 Web Dynpro 架构中的关键概念:
元数据
Web Dynpro 为您提供了一个开发基于 Web 的应用程序的环境,您可以使用图形工具以应用程序开发中元数据的形式定义 Web Dynpro 应用程序。您还可以定义自己的事件;但是,事件处理应在单独的代码中定义,并且必须在触发事件时执行。
Web Dynpro 应用程序中的用户界面由使用 Web Dynpro 工具定义的小元素组成。您还可以通过在运行时更改这些元素或重新集成这些元素来更改或增强用户界面。
图形工具
您可以使用各种图形 Web Dynpro 工具来生成基于 Web 的应用程序。您无需为此创建源代码。以下是 Web Dynpro 应用程序中图形工具的关键功能:
- 定义用户界面元素的属性
- 数据流
- 用户界面布局
对于所有这些属性,您都可以使用图形工具,而无需创建源代码。
业务和应用程序逻辑
Web Dynpro 允许您在前端运行应用程序,并且可以通过本地服务或远程连接访问后端系统。您的用户界面在 Dynpro 应用程序中维护,持久性逻辑在后端系统中运行。
您可以使用自适应 RFC 服务或调用 Web 服务将 Web Dynpro 应用程序连接到后端系统。
MVC 编程模型
Web Dynpro 应用程序基于 MVC 模型:
**模型** - 这允许访问 Web Dynpro 应用程序中的后端数据。
**视图** - 用于确保在 Web 浏览器中表示数据。
**控制器** - 用于控制模型和视图之间的通信,它接收用户的输入并从模型获取处理数据,并在浏览器中显示数据。
SAP Web Dynpro - 导航
在 Web Dynpro 应用程序中,您可以使用插头从一个视图导航到另一个视图。
运行 T 代码 - SE 80 并创建一个简单的 Web Dynpro 组件:
我们创建了一个 Web Dynpro 组件,其中包含两个节点和两个视图。
VIEW_DISPLAY 以表格格式显示输出,VIEW_MAIN 执行搜索参数。在 VIEW_MAIN 中,您已配置搜索布局,VIEW_DISPLAY 包含显示布局。
在 VIEW_MAIN 中,您已配置入站插头 IN_MAIN 和出站插头 OUT_FROM_MAIN。类似地,为 VIEW_DISPLAY 创建入站和出站插头。
如何创建新的视图?
**步骤 1** - 单击对象树中的组件,然后转到上下文菜单,如下面的屏幕截图所示:
**步骤 2** - 输入视图名称并单击勾号。
SAP Web Dynpro - 组件
Web Dynpro 组件是用于创建 Dynpro 应用程序的实体。这些是可重用的实体,它们组合在一起以创建应用程序块。
每个 Web Dynpro 组件都包含一个窗口、视图和控制器页面。您还可以将 Web Dynpro 组件嵌入应用程序中的其他 Web Dynrpo 组件中,并且通信通过组件接口进行。
组件的生命周期从您第一次在运行时调用它开始,并在 Web Dynpro 应用程序结束时结束。
视图
每个 Web Dynpro 应用程序至少包含一个视图,它用于定义用户界面的布局。每个视图都包含多个用户元素以及控制器和上下文。
控制器用于处理用户请求和数据处理。上下文包含视图元素绑定的数据。
每个视图还包含一个入站和出站插头,因此您可以将视图相互连接。插头可以通过导航链接相互链接。
导航链接和插头
您可以使用入站和出站插头在不同视图之间导航。入站和出站插头是视图控制器的一部分。入站插头定义视图的起点,而出站插头指示要调用的后续视图。
视图集
视图集定义为一个预定义的部分,您可以在其中嵌入 Web Dynpro 应用程序中的不同视图。视图集允许您在屏幕上显示多个视图。
以下是视图集在应用程序设计中的一些优势:
- 您可以在 Web Dynpro 窗口中重用视图。
- 您可以在以后阶段轻松更改布局。
- 这是一种更结构化的使用多个视图的方法。
Web Dynpro 窗口
在 Web Dynpro 中,窗口用于多个视图或视图集。只有当视图嵌入窗口时才能显示,并且窗口始终包含一个或多个通过导航链接连接的视图。
每个窗口都包含一个入站和一个出站插头,并且可以包含在导航链中。窗口内的入站插头从视图的出站插头到嵌入窗口。就像所有其他入站插头一样,它们表示一个事件,因此会调用分配给它们的事件处理程序。
窗口控制器
控制器
控制器用于定义 Dynpro 应用程序如何响应用户交互。每个视图都有一个控制器,负责根据用户的交互执行操作。
SAP Web Dynpro - 映射与数据绑定
在 Dynpro 应用程序中,您可以定义两个全局控制器上下文之间的映射,或者从视图上下文到全局控制器上下文之间的映射。
UI 元素属性的数据绑定在视图布局中设置。为此,您使用嵌入式 UI 元素的属性表中的“绑定”列。您单击按钮以打开一个对话框,该对话框为元素选择提供相应视图的上下文结构。
可以定义上下文元素以将一个节点链接到上下文的另一个节点。
在上图中,您可以看到视图 View 1 上下文中 Node 1 与组件控制器上下文中同名节点之间的映射关系。它还显示了视图 View 2 上下文中 Node 2 与组件控制器上下文中同名节点的映射关系。
组件控制器的上下文可供两个视图控制器使用,并允许对所有属性进行读写访问。
绑定用户界面元素
要将上下文数据显示在浏览器中,您还可以将视图中 UI 元素的属性绑定到视图上下文的属性。您可以将多个属性绑定到一个上下文元素。
在视图上下文中,所有数据类型都可用于绑定视图的不同属性。
内部映射
内部映射定义为单个组件的上下文之间的映射。
外部映射
外部映射定义为使用接口控制器在多个组件之间进行的映射。
SAP Web Dynpro - 事件和操作
您可以创建事件以启用控制器之间的通信。您可以允许一个控制器在另一个控制器中触发事件。您在组件控制器中创建的所有事件都可在组件中使用。
入站插头也可以充当事件,因此,当您使用入站插头调用视图时,会先调用事件处理程序。
您还可以使用一些特殊事件(如按钮)来链接用户操作。
按钮元素(如按钮)可以通过单击相应的按钮来响应用户交互,这可以触发在视图控制器中调用处理方法。这些 UI 元素包含一个或多个通用事件,这些事件可以在设计时与特定操作链接。
创建操作时,会自动创建事件处理程序。您可以将 UI 元素与不同的操作关联。
您还可以通过将操作链接到多个 UI 元素来在视图中重用操作。
示例 1
按钮单击的 onAction 事件或输入字段的 onEnter 事件(当用户在字段中按下“Enter”键时)。
可以在 Web Dynpro 框架中的任何 UI 元素上创建操作。要设置操作,请转到“属性”选项卡→“事件”部分。
您也可以从视图控制器的“操作”选项卡创建操作。事件处理程序会自动创建,命名约定为 onaction<actionname>
示例 2
操作名称为 SET_ATTRIBUTES,操作的事件处理程序为 ON_SET_ATTRIBUTES。
SAP Web Dynpro - 应用程序
用户可以使用带有 Dynpro 组件窗口的 URL 访问 Web Dynpro 应用程序。Web Dynpro 应用程序通过入站插头连接到接口视图,该插头进一步连接到包含模型视图和控制器的 Dynpro 组件,以处理 Web Dynpro 应用程序的数据。
MVC 模型使您可以分离用户界面和应用程序逻辑。模型用于根据应用程序逻辑从后端系统获取数据。
下图显示了 Web Dynpro 应用程序的高级图表 -
您可以为 Web Dynpro 应用程序使用不同的数据源 -
- 使用 Web 服务
- 使用 BAPI 的 SAP 数据
- 使用工具从外部数据源获取数据
要开发 Web Dynpro 应用程序,您可以使用 Web Dynpro 资源管理器,它可以轻松集成到 ABAP 工作台中。
SAP Web Dynpro - 应用程序的 URL
在 Web Dynpro 应用程序中,URL 是自动生成的。您可以在“属性”选项卡中找到应用程序的 URL。URL 结构可以分为两种类型 -
SAP 命名空间 -
<schema>://<host>.<domain>.<extension>:<port>/sap/bc/webdynpro/<namespace>/<application name>
- 自定义命名空间 -
<schema>://<host>.<domain>.<extension>:<port>/abc/klm/xyz/<namespace>/webdynpro/<application name> <schema>://<host>.<domain>.<extension>:<port>/namespace>/webdynpro/<application name>
其中,
<schema> - 定义访问应用程序的协议 http/https
<host> - 定义应用程序服务器的名称
<domain><extension> - 在一个通用名称下定义多个主机
<port> - 如果使用标准端口 80 (http) 或 443 (https),则可以省略
您应在 Web Dynpro 应用程序 URL 中指定完全限定域名 (FQDN)。
示例
应用程序 1 http://xyz.sap.corp:1080/sap/bc/webdynpro/sap/myFirstApp/
应用程序 2 http://xyz.sap.corp:1080/sap/bc/webdynpro/sap/ mySecondApp/
要检查完全限定域名,请在 ABAP 开发环境中转到 Web Dynpro 资源管理器,使用 T 代码 - SE80 并从导航树中选择 Web Dynpro 应用程序以获取您的 Web Dynpro 组件/接口,并在管理数据中检查 URL。您还需要检查“URL”字段中的路径详细信息。它应包含完整的域名和主机名。
出于以下原因应使用完整域名 -
- 您需要一个域名来设置 Cookie。
- 在 https 模式下,您应将 FQDN 用于证书和 SSL 协议。
- 对于门户集成,使用域名关系代码。
SAP Web Dynpro - 创建应用程序
要创建 Web Dynpro 应用程序,我们将创建一个 Web Dynpro 组件,该组件包含一个视图。我们将创建一个视图上下文→链接到视图布局上的表元素,并包含来自表的数据。
表将在运行时显示在浏览器中。将为这个简单的 Web Dynpro 组件创建一个可在浏览器中运行的 Web Dynpro 应用程序。
步骤 1 - 转到 T 代码 - SE80 并从列表中选择 Web Dynpro 组件/接口。
步骤 2 - 创建一个新的组件,如下所示。
步骤 3 - 输入新组件的名称,然后单击“显示”。
步骤 4 - 在下一个窗口中,输入以下详细信息 -
- 您可以输入此组件的描述。
- 在“类型”中,选择“Web Dynpro 组件”。
- 您还可以维护默认窗口的名称。
步骤 5 - 将此组件分配给包 $TMP,然后单击“保存”按钮。
单击“保存”后,您可以在对象树下看到此新组件,它包含 -
- 组件控制器
- 组件接口
- 视图
- 窗口
展开组件接口后,您可以看到接口控制器和接口视图。
如何创建视图并将其分配给窗口?
步骤 1 - 单击 Web Dynpro 组件,然后转到上下文菜单(右键单击)→“创建”→“视图”。
步骤 2 - 创建视图 MAINVIEW,如下所示,然后单击复选标记。
这将在 ABAP 工作台中以名称 - MAINVIEW 打开视图编辑器。
步骤 3 - 如果要打开布局选项卡和视图设计器,则可能需要输入应用程序服务器用户名和密码。
步骤 4 - 单击顶部的保存图标。
保存后,它将在对象树下,您可以通过展开“视图”选项卡来检查。
步骤 5 - 要将窗口分配给此视图,请在“窗口”选项卡下选择窗口 ZZ_00_TEST,然后单击屏幕顶部的“更改”模式。
步骤 6 - 您可以右键单击→“显示”→“在同一窗口中”。
步骤 7 - 现在打开视图结构,并将视图 MAINVIEW 通过拖放移动到右侧的窗口结构中。
步骤 8 - 打开右侧的窗口结构,您将看到嵌入的 MAINVIEW。
步骤 9 - 单击屏幕顶部的保存图标进行保存。
如何为 MAINVIEW 创建视图上下文?
步骤 1 - 打开视图编辑器以查看 MAINVIEW 并切换到“上下文”选项卡。通过打开相应的上下文菜单在视图控制器中创建一个上下文节点。
步骤 2 - 在对象树中选择“视图”,然后单击“显示”。
步骤 3 - 在下一个窗口中维护“属性”。选择基数和字典结构(表)。从“结构”中选择“添加属性”,然后选择结构的组件。
步骤 4 - 要选择所有组件,请单击顶部的“全选”选项,然后单击屏幕底部的复选标记。
已创建上下文节点 TEST_NODE,它引用表的 数据结构,并且在运行时可以包含 0→n 个条目。上下文节点已在视图上下文中创建,因为没有计划与其他视图进行数据交换,因此无需使用组件控制器上下文。
步骤 5 - 单击“保存”图标保存对 MAINVIEW 的更改。
步骤 6 - 转到 MAINVIEW 的“布局”选项卡。在 ROOTUIELEMENT CONTAINER 下插入一个类型为表的 新 UI 元素,并在给定表中分配属性。
步骤 7 - 输入元素的名称和类型。
步骤 8 - 创建 TEST_TABLE 与上下文节点 TEST_NODE 的绑定。选择文本视图作为标准单元编辑器,并为所有单元激活绑定。
步骤 9 - 单击“上下文”按钮。从列表中选择上下文节点 TEST_NODE。
步骤 10 - 选择它后,您可以看到所有属性。
步骤 11 - 通过选择所有上下文属性下的“绑定”复选框来激活它们。按 Enter 键确认条目。
结果应如下所示 -
步骤 12 - 保存更改。
步骤 13 - 要向 TEST 表提供数据,请转到“方法”选项卡并双击方法 WDDOINIT。输入以下代码 -
method WDDOINIT . * data declaration data: Node_TEST type REF TO IF_WD_CONTEXT_NODE, Itab_TEST type standard table of TEST. * get data from table TEST select * from TEST into table Itab_TEST. * navigate from <CONTEXT> to <TEST> via lead selection Node_TEST = wd_Context->get_Child_Node( Name = `TEST_NODE` ). * bind internal table to context node <TEST> Node_TEST->Bind_Table( Itab_TEST ). endmethod.
在 Web Dynpro 应用程序中,您不应直接从 Web Dynpro 方法访问数据库表,而应使用供应函数或 BAPI 调用来访问数据。
步骤 14 - 单击屏幕顶部的保存图标保存更改。
如何创建 Web Dynpro 应用程序?
步骤 1 - 在对象树中选择 ZZ_00_TEST 组件→右键单击并创建一个新应用程序。
步骤 2 - 输入应用程序名称,然后单击“继续”。
步骤 3 - 保存更改。另存为本地对象。
接下来是在 Web Dynpro 组件中激活对象 -
步骤 4 - 双击组件 ZZ_00_TEST 并单击“激活”。
步骤 5 - 选择所有对象,然后单击“继续”。
步骤 6 - 要运行应用程序,请选择 Web Dynpro 应用程序→右键单击并选择“测试”。
将启动浏览器,并运行 Web Dynpro 应用程序。
调用 Web Dynpro 应用程序
在 Web Dynpro 应用程序中,组件窗口具有入站插头。此入站插头可以具有参数,这些参数必须指定为 URL 参数。
这些参数的默认值可以在应用程序中设置,并会被 URL 参数覆盖。如果既没有指定默认值也没有指定 URL 参数,则会触发运行时错误。
要创建一个新的入站插件,请将插件指定为启动项,数据类型应为字符串。激活组件。
接下来是指定要调用的组件、参数、窗口和启动插件。
调用应用程序,URL 参数会覆盖应用程序参数。
SAP Web Dynpro - 组件接口
创建 Web Dynpro 组件时,创建过程会创建一个组件接口。每个组件接口都包含一个接口控制器和一个接口视图。接口视图与接口控制器没有直接连接,并且是自动创建的。
使用组件接口,您可以定义接口结构,并可以在不同的应用程序组件中使用。
组件接口定义的接口控制器和组件的接口控制器是不同的。
您可以向组件接口定义添加多个接口视图。
创建 Web Dynpro 组件接口定义
参考上一章中的相同屏幕截图。
步骤 1 - 输入新组件的名称并点击显示。
步骤 2 - 在下一个窗口中,输入以下详细信息 -
- 您可以输入此组件的描述。
- 在“类型”中,选择“Web Dynpro 组件”。
- 您还可以维护默认窗口的名称。
步骤 3 - 将此组件分配给包 $TMP 并点击保存按钮。
点击保存后,您可以在对象树下看到这个新组件,它包含 -
- 组件控制器
- 组件接口
- 视图
- 窗口
SAP Web Dynpro - 无界面组件
Web Dynpro 中的无界面组件不包含任何图形组件、视图和窗口。它只包含一个组件控制器,您可以添加一个额外的自定义控制器。
无界面组件专门用于接收和构造数据。无界面组件可以通过组件使用嵌入到其他组件中,并且您可以向这些组件提供所需的数据。
如何创建无界面组件?
步骤 1 - 创建一个新的 Web Dynpro 组件。
步骤 2 - 选择包并点击保存按钮。
步骤 3 - 要创建无界面组件,请删除这两个元素 - 视图和窗口。
SAP Web Dynpro - 辅助类
在 Web Dynpro 组件中,您可以创建一个从抽象类继承的唯一分配的类。辅助类可以存储组件中所需但与布局无关的代码。
您可以在辅助类中存储动态文本、在运行时组合的文本或包含可以存储在文本池中的变量的文本。
在辅助类中,您还可以保存与应用程序布局或控制器无关的代码。
使用方法 _WD_COMPONENT_ASSISTANCE~GET_TEXT( ) 允许您在组件的控制器中访问辅助类的文本符号。调用该方法时,使用文本符号的 3 位 ID -
method MY_CONTROLLER_METHOD . data: my_text type string. my_text = WD_ASSIST->IF_WD_COMPONENT_ASSISTANCE~GET_TEXT( KEY = ‘001’ ). Endmethod
您可以使用每个控制器在辅助类中维护文本符号。在菜单中点击转到 → 文本符号。
注意 - 每个 ABAP 类都可以充当辅助类,但只有当辅助类派生自类 CL_WD_COMPONENT_ASSISTANCE 时,才能使用与 Web Dynpro 应用程序集成的服务。
应用程序中的服务调用
您可以使用服务调用在 Web Dynpro 组件中调用现有的功能模块。要创建服务调用,您可以在 Web Dynpro 工具中使用易于使用的向导。
您可以在 ABAP 工作台中启动向导以创建服务调用。
运行 T 代码 - SE80
步骤 1 - 选择 Web Dynpro 组件 → 右键单击以打开上下文菜单。转到创建 → 服务调用。
它将打开 Web Dynpro 向导 - 开始屏幕。
步骤 2 - 您可以选择是否将服务调用嵌入到现有控制器中或创建新控制器。
注意 - 服务调用应嵌入到全局控制器中,不能与 Web Dynpro 中的视图控制器一起使用。
步骤 3 - 在下一个窗口中,选择服务类型。点击继续按钮。
步骤 4 - 在下一个窗口中,选择一个功能模块作为服务。您可以为此使用输入帮助。
如果您选择一个远程功能模块,则可以选择指定在调用功能模块时要使用的 RFC 目标。如果您未指定目标,则功能模块将在本地调用。
注意 - 功能模块必须存在于当前系统中!向导不支持调用当前系统中不存在的远程功能模块。
步骤 5 - 点击继续。
步骤 6 - 在下一个窗口中,您可以选择使用哪种对象类型在 Web Dynpro 控制器中表示服务函数参数 -
- 作为控制器方法的参数
- 作为控制器属性
- 作为上下文节点或上下文属性
为此,请从相关行中的列表框中选择所需的对象类型。
注意 - 只有 UI 相关数据应存储在上下文中。
您还可以分别命名要创建的控制器属性和上下文节点。
将生成以下建议 -
根节点接收服务的名称。
根据其声明类型对参数进行分组的节点将接收适当的名称,例如 IMPORTING、EXPORTING 等…
参数本身的节点名称和属性名称与参数名称相同。
由于节点和属性名称的长度限制为 20 个字符,因此如有必要,将相应地缩写它们。
在下一个窗口中,选定的服务使用类型组中的类型作为参数类型和/或定义隐式表参数。
对于下面列出的所有类型,在数据字典中定义具有相同结构的(表)类型。然后,这些将用于为向导创建的控制器属性或方法参数进行类型化。
步骤 7 - 输入属性类型 - TEST 并点击继续。
步骤 8 - 在下一个窗口中,指定应执行服务的方法的名称。向导将生成用于调用服务和上下文绑定的代码。
该方法在控制器中尚不存在。
您现在已输入创建面向模型的控制器所需的所有必要信息。
步骤 9 - 点击“完成”以创建控制器或分别增强它以生成服务调用。
您也可以在此处取消向导。但是,之前输入的数据将丢失。
SAP Web Dynpro - 使用服务调用
创建服务调用后,功能模块可供组件使用。现在可以选择一个视图,以便在浏览器中显示数据库表中的元素。如果全局控制器不是组件控制器,则必须为所选视图的控制器输入全局控制器的使用页面。之后,应该有节点的映射。
FUNCMODUL1 到视图控制器上下文中具有相同名称的节点将被生成。
要使用数据库表的数据填充视图控制器上下文的上下文节点 FUNCMODUL1,将调用全局控制器的 EXECUTE_FUNCMODULE 方法及其供应函数。为此,您必须通过调用 EXECUTE_FUNCMODULE1 方法来创建这样的供应函数。
SAP Web Dynpro - 调试应用程序
ABAP 工作台中有多种工具可用于调试源代码。您可以使用调试器测试 Web Dynpro 应用程序的所有源代码。
步骤 1 - 要启动调试器,您必须在 ABAP 工作台中选择一个新的调试器。
步骤 2 - 转到实用程序 → 设置
现在将出现一个对话框,其中包含两个嵌套的选项卡页面区域。
步骤 3 - 选择“父”选项卡页面 ABAP 编辑器。
ABAP 编辑器的设置始终以子选项卡页面编辑器的内容打开。
步骤 4 - 选择前端编辑器(新)。
步骤 5 - 现在切换到 ABAP 编辑器设置中的调试选项卡页面并选择新调试器。
步骤 6 - 保存您的更改并关闭对话框。
如何启动调试过程?
如果要以调试模式运行应用程序,则需要在 Dynpro 组件中的某个方法中设置外部断点。
建议在 Dynpro 视图的“方法”选项卡下,在 WDDOMODIFYVIEW 方法中设置断点。如果视图控制器的上下文不是使用供应方法填充的,则视图将在此时段模型阶段完全实例化。
注意 - 设置断点的方法取决于测试运行的目的,建议将其设置为 WDDMODIFYVIEW。
启动 Web Dynpro 应用程序时,调试器将在另一个会话中自动启动。
SAP Web Dynpro - 版本管理
您可以使用版本管理来管理对象的旧版本,比较版本,或者也可以重置它们。在版本管理中,您可以存储 ABAP 开发对象的不同版本。
在 ABAP 工作台中,您可以比较以下对象的不同版本 -
- 视图
- 窗口
- 控制器
您还可以存储对象的版本而不发布它。要执行此操作,请在编辑器区域中选择对象,然后转到实用程序选项卡 → 版本 → 生成版本
在生成版本之前,如果您转到版本管理,则看不到数据库中的任何版本。
点击生成版本后,您将收到确认已创建版本的确认。
如何执行版本比较?
转到实用程序 → 版本 → 版本管理
它显示版本数据库中所选对象的所有存储版本。它包含所有先前发布的或所有活动版本。
要开始比较对象,请选择对象并点击屏幕顶部的比较按钮。
对于所有版本,都会执行比较,任何差异都将在表格中突出显示。
SAP Web Dynpro - 消息
在 ABAP 工作台中,您还可以创建和显示包含 Dynpro 应用程序最终用户信息的邮件。这些邮件将显示在屏幕上。这些是用户交互式邮件,显示有关 Web Dynpro 应用程序的重要信息。
要向用户提供信息、警告或错误详细信息,您可以在 ABAP 工作台中使用运行时服务对这些方法进行编程。
这些邮件在 Web Dynpro 应用程序的设置下进行配置。您可以为处理 Web Dynpro 应用程序中的邮件分配不同的设置 -
显示邮件组件 - 在这种情况下,如果邮件存在,它将被显示。
始终显示邮件组件 - 即使没有邮件,邮件组件也会显示在顶部。
邮件在没有组件的情况下显示 - 在此设置中,将显示一条邮件,并且不存在邮件日志。
所有这些用户邮件都显示在状态栏中。用户可以导航到 UI 元素以删除错误邮件中的错误。
弹出窗口中的邮件 - 在此配置中,您可以将邮件设置为显示在弹出窗口中,而不管 Web Dynpro 应用程序中配置了什么。您可以配置以下弹出窗口邮件以显示 -
- 消息属于特定窗口
- 迄今为止的所有消息
- 无消息
SAP Web Dynpro - 集成消息
您可以使用消息管理器将消息集成到消息日志中。您可以使用 Web Dynpro 代码向导打开消息管理器。
您可以从工具栏打开 Web Dynpro 代码向导。当您的 ABAP 工作台处于更改模式或编辑视图或控制器时,它可用。
要将 ABAP 工作台设置为更改模式,请选择视图并转到上下文以进行更改。
您可以使用以下方法触发消息:
IS_EMPTY - 用于查询是否存在任何消息。
CLEAR_MESSAGES - 用于删除所有消息。
REPORT_ATTRIBUTE_ERROR_MESSAGE - 用于将 Web Dynpro 异常报告到上下文属性。
REPORT_ATTRIBUTE_EXCEPTION - 用于将 Web Dynpro 异常报告到上下文属性。
REPORT_ERROR_MESSAGE - 用于报告 Web Dynpro 消息(带可选参数)。
REPORT_EXCEPTION - 用于报告可能返回的 Web Dynpro 异常。
REPORT_FATAL_ERROR_MESSAGE - 用于报告带有可选参数的致命 Web Dynpro 消息。
REPORT_FATAL_EXCEPTION - 用于报告致命的 Web Dynpro 异常。
REPORT_SUCCESS - 用于报告成功消息。
REPORT_T100_MESSAGE - 用于使用 T100 条目报告消息。
REPORT_WARNING - 用于报告警告。
个性化与配置
根据业务需求,您可以实现许多标准应用程序,并且 Web Dynpro 应用程序的 UI 可以根据需求而有所不同。
应用程序配置
要配置 Web Dynpro 应用程序,您首先需要为各个 Web Dynpro 组件配置数据记录。
使用组件配置,它允许您管理行为。
接下来是配置应用程序。所有创建的组件都需要在特定配置中使用。Web Dynpro 应用程序的配置定义了哪个组件在应用程序中配置。
如何启动组件配置器?
在 ABAP 对象列表中,选择一个 Web Dynpro 组件:
右键单击 → 创建/更改配置。
这将在浏览器中打开配置器的对话框窗口。组件配置器模式处于活动状态,您可以在其中输入新组件配置的名称。
您还可以定义隐式和显式配置。保存配置并关闭窗口。
注意 - 只有当配置实际上包含值时,才能保存新配置。不包含任何数据且具有名称的空配置文件不会存储。
由于此配置器不是 ABAP 工作台的一部分,并且在浏览器中单独运行,因此您需要在配置中完成创建或更改过程后更新工作台中对象列表的层次结构。
这允许您为每个对象存储不同的配置。
个性化中的增量处理
当您保存应用程序配置时,您无法检查管理员和最终用户所做的更改。需要存储自定义和个性化数据,以便能够管理合并后的数据。
应考虑以下几点:
应用程序用户和管理员应该能够撤消更改。
应用程序的自定义更改应该对所有页面上的用户可见。
应用程序管理员应该有权将报表标记为最终报表,并且此报表对所有用户有效。当管理员将属性标记为最终属性时,不再允许对该值进行任何更改作为单个用户的个性化设置。
SAP Web Dynpro - 门户集成
您可以将 ABAP 应用程序集成到企业门户中。您还可以从 Web Dynpro 应用程序管理门户功能。
您可以调用 Web Dynpro 代码向导以访问门户管理器方法。这可用于执行以下功能:
门户事件 - 在门户或门户内容中导航 Web Dynpro 应用程序。
支持以下导航类型:
- 基于对象的导航
- 绝对导航
- 相对导航
工作保护模式 - 对于门户集成,以下 Web Dynpro 应用程序在包 SWDP_TEST 中可用:
WDR_TEST_PORTAL_EVENT_FIRE
触发事件
WDR_TEST_PORTAL_EVENT_FIRE2
触发自由事件
WDR_TEST_PORTAL_NAV_OBN
基于对象的导航
WDR_TEST_PORTAL_NAV_PAGE
页面导航
WDR_TEST_PORTAL_WORKPROTECT
安全监控
WDR_TEST_PORTAL_EVENT_REC
接收门户事件
WDR_TEST_PORTAL_EVENT_REC2
接收自由门户事件
SAP Web Dynpro - 在门户中集成 WDA
以下是将 Web Dynpro ABAP (WDA) 集成到门户中的步骤。
步骤 1 - 使用 T 代码 - SE80 转到 ABAP 工作台并创建 Web Dynpro 组件。
步骤 2 - 保存组件并激活它。
步骤 3 - 定义数据绑定和上下文映射。创建 Web Dynpro 应用程序并保存它。
步骤 4 - 登录到 SAP NetWeaver 门户。
步骤 5 - 转到门户内容 → 内容管理选项卡。
步骤 6 - 右键单击门户内容并创建一个新文件夹。
步骤 7 - 输入文件夹名称并单击“完成”。
步骤 8 - 右键单击创建的文件夹并创建一个新的 iView。
步骤 9 - 选择 iView 模板。从现有 iView 模板创建 iView 并单击“下一步”。
步骤 10 - 选择 SAP Web Dynpro iView 作为模板并单击“下一步”。
步骤 11 - 输入 iView 名称、iView ID、iView 前缀 ID 并单击“下一步”。将定义类型输入为 ABAP 并单击“下一步”。
步骤 12 - 输入 Web Dynpro 详细信息,并创建 ECC 系统。
步骤 13 - 在同一屏幕中输入应用程序参数并单击“下一步”。系统将提示您查看摘要屏幕。单击“完成”。
SAP Web Dynpro - 交互式表单
您可以基于 Adobe 软件创建表单,并可以在 Web Dynpro 用户界面中使用上下文。您可以将 Adobe 生命周期开发工具与 ABAP 编辑器集成,以简化用户界面的开发。使用 Adobe 软件的交互式表单允许您高效且轻松地开发 UI 元素。
以下场景可用于创建交互式表单:
- 交互式场景
- 打印场景
- 脱机场景
- 使用数字签名
如何使用表单创建 Web Dynpro 应用程序?
您可以使用表单编辑器独立创建表单。转到T 代码 - SFP
单击“创建”后,系统将提示您输入表单名称、表单描述和接口。
示例
系统中交互式场景的示例组件位于包 SWDP_TEST → WDR_TEST_IA_FORMS 中。
使用场景插入表单
在 Dynpro 应用程序中,插入交互式表单的打印场景和交互式场景这两种场景类似。包含静态组件的表单可用于使用打印场景在 Dynpro 应用程序中显示数据。
使用交互式表单,您可以重用 Web Dynpro 应用程序中 Web Dynpro 上下文中的条目。
如何插入交互式表单?
步骤 1 - 创建 Web Dynpro 组件的视图。
步骤 2 - 右键单击“视图”并创建一个节点。此节点将绑定到表单。
步骤 3 - 将交互式表单从 Adobe 库拖动到设计器窗口。
步骤 4 - 设计表单,输入名称,并绑定属性。
步骤 5 - 完成表单设计后,转到工作台中的编辑模式,并定义表单是静态内容、基于 PDF 的打印表单还是交互式表单。
SAP Web Dynpro - SAP 列表查看器 (ALV)
SAP 列表查看器用于添加 ALV 组件,并提供灵活的环境来显示列表和表格结构。标准输出包括标题、工具栏和输出表。用户可以使用其他对话框调整设置以添加列显示、聚合和排序选项。
以下是 ALV 的主要功能:
它支持表元素的许多属性,因为它基于 Web Dynpro 表 UI 元素。
ALV 输出可以进行过滤、排序或应用计算。
用户可以使用工具栏中的 UI 元素执行特定于应用程序的功能。
允许用户在不同的视图中保存设置。
允许配置 ALV 输出上方和下方的特殊区域。
允许定义 ALV 输出可编辑的程度。
如何创建 ALV?
以下是创建 ALV 的步骤。
步骤 1 - 使用 T 代码:SE80。从列表中选择 Web Dynpro 组件/接口并输入名称。单击“显示”。系统将提示您创建组件。单击“是”。
步骤 2 - 选择类型为 Web Dynpro 组件。输入窗口名称和视图名称。
步骤 3 - 单击勾号。
步骤 4 - 在更改窗口中,将组件用作 ALV,组件作为 SALV_WD_TABLE,并将描述作为 ALV 组件。
步骤 5 - 转到组件控制器并右键单击上下文。然后选择使用字典结构 MAKT 创建节点 MAKT。
步骤 6 - 使用“从结构添加属性”从 MAKT 中选择所需的属性。
步骤 7 - 从节点 MAKT 中删除字典结构 MAKT,并按如下方式设置属性(基数、前导选择等)。
步骤 8 - 右键单击对象树中的组件使用 → 创建控制器使用。
步骤 9 - 转到视图 → 上下文选项卡并将 MAKT 节点拖动到视图中。
映射后,它将显示如下面的屏幕截图所示。
步骤 10 - 转到布局并右键单击“插入元素”。
布局将显示如下面的屏幕截图所示:
步骤 11 - 转到“属性”选项卡,单击“创建控制器使用”以将以下内容添加到视图中。
步骤 12 - 转到方法,使用 WDDOINIT 编写代码。
步骤 13 - 双击方法以输入代码。输入以下代码并初始化使用的组件 ALV。
在控制器中使用 GET_MODEL 方法。
步骤 14 - 使用 BIND_TABLE 方法将表绑定到上下文节点,如下所示:
步骤 15 - 转到对象树中的窗口并右键单击 C1 以将 ALV 表嵌入到视图中。
嵌入 ALV 表后,它将显示如下所示:
步骤 16 - 最后一步是在对象树下创建一个 Web Dynpro 应用程序。输入应用程序的名称。
步骤 17 - 要执行应用程序,请双击,您将看到输出。
在 ALV 输出中使用过滤器
使用过滤器,您可以限制ALV输出中的数据。您可以为每个字段创建多个过滤器条件。要创建或删除过滤器条件,您可以使用接口类IF_SALV_WD_FILTER的方法。
您可以使用以下方法来创建、获取和删除过滤器条件:
功能 | 方法 |
---|---|
获取特定过滤器条件 | GET_FILTER_RULE |
获取字段的所有过滤器条件 | GET_FILTER_RULES |
创建过滤器条件 | CREATE_FILTER_RULE |
删除特定过滤器条件 | DELETE_FILTER_RULE |
SAP Web Dynpro - 管理
在Web Dynpro ABAP管理中,您可以使用不同的工具执行各种管理任务:
- ICM跟踪
- Web Dynpro跟踪工具
- 浏览器跟踪
- 日志记录
- 安全性
跟踪工具
Web Dynpro跟踪工具可用于检查Dynpro应用程序中的错误和问题。您可以为特定用户激活Web Dynpro跟踪工具。
步骤1 - 要在SAP GUI客户端中激活跟踪工具,请使用T代码 - WD_TRACE_TOOL
步骤2 - 点击“为此用户激活”。这允许为用户设置跟踪激活。
步骤3 - 在新窗口中选择“跟踪功能”,然后点击“确定”。
步骤4 - 启动要跟踪的Web Dynpro应用程序。您可以在Web应用程序中看到一个新的区域“Web Dynpro跟踪工具”。
步骤5 - 执行应用程序。输入问题的详细信息→选择“继续”。
步骤6 - 您也可以使用“插入”发送它并添加屏幕截图,或者插入包含其他信息的的文件。转到“浏览”→选择文件,然后点击“添加文件”。
步骤7 - 您可以将跟踪文件下载为Zip格式,并通过点击“将跟踪保存为Zip文件”和“停止跟踪”来结束跟踪。
此文件可以上传到SAP门户,并可以发送给SAP进行调试。
ICM跟踪
要分析问题,您还可以跟踪SAP Web Application服务器中的数据流。
步骤1 - 使用T代码 - SMICM。在下一个窗口中,点击“转到”→“跟踪文件”→“显示文件”或“开始”。
您将看到如下所示的ICM跟踪结果:
步骤2 - 您还可以将跟踪级别从默认级别1提高。要提高跟踪级别,请点击“转到”→“跟踪级别”→“提高”。
HTTP浏览器跟踪
这用于分析代码的动态行为。这可以用作ICM跟踪的替代方法。
要使用浏览器跟踪,您需要在本地系统上安装代理工具。
SAP Web Dynpro - 监控应用程序
您可以使用ABAP监视器监视Web Dynpro应用程序。有关Web Dynpro应用程序的信息将被存储。您可以使用T代码 - RZ20查看此信息。
您可以在Web Dynpro ABAP监视器中检查以下信息:
- 会话计数
- 应用程序计数
- CPU时间
- 数据
要查看报告,请使用T代码 - RZ20
步骤1 - 转到SAP CCMS监视器模板。
步骤2 - 点击子节点“整个系统”。
步骤3 - 输入要监视的应用程序安装的当前SAP系统的系统ID。
步骤4 - 选择“应用服务器”。
步骤5 - 选择相关应用服务器的名称。例如,选择Web Dynpro ABAP,如下面的屏幕截图所示:
当调用Web Dynpro应用程序时,结果将显示以下信息:
- 数据
- 应用程序计数
- 会话计数
- 往返次数
- CPU时间