
- SAP Web Dynpro 教程
- SAP Web Dynpro - 主页
- SAP Web Dynpro - 概述
- 配置与集成
- 建筑学
- 导航
- 成分
- 映射和数据绑定
- 事件与行动
- 应用
- 应用程序的 URL
- 创建应用程序
- 组件接口
- 不露面组件
- 协助班
- 应用程序中的服务调用
- 使用服务呼叫
- 调试应用程序
- 版本管理
- 留言
- 集成消息
- 个性化和配置
- 门户集成
- 将 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工作台中的组件。
要访问 Web Dynpro 运行时环境和 ABAP 工作台中的图形工具,您可以使用事务代码 - SE80


使用 Web Dynpro 的主要优点
以下是在 ABAP 环境中为开发人员使用 Web Dynpro 的主要好处 -
- 您可以轻松维护和重用组件进行开发。
- 使用图形工具减少实施时间。
- 您可以使用图形工具轻松更改布局和导航。
- 结构变化容易。
- 通过使用数据绑定,您可以使用自动数据传输。
- 易于集成到ABAP环境中。
Web Dynpro ABAP 与 Web Dynpro Java 相同,支持相同的应用程序开发功能集。
配置与集成
安装ABAP应用程序服务器后,有必要对其进行正确配置以进行应用程序开发。
要查找ABAP配置的详细信息,您可以转到SAP参考IMG → SAP NetWeaver → 应用程序服务器

如果您使用 SAP Solman,您可以通过转至 T-Code - SOLAR_LIBRARY 检查此配置。
要将 Web Dynpro 与 ABAP 应用程序开发结合使用,您必须对 Web Dynpro 编程进行额外配置。
互联网通讯经理
您需要在 ICM 服务中设置 HTTP/HTTPS。服务包含以下不同的组件 -
- 服务/端口
- 服务中使用的协议 HTTP/HTTPS
- 处理超时
- 保持存活超时
- 服务状态 - 活动/非活动
您可以选择转到 → 服务来创建、删除、激活或停用服务。要显示 ICM 服务器缓存统计信息,请选择 Goto → 统计信息
互联网通讯框架
您应该激活 Internet 通信框架 (ICF) 服务。您可以通过转到 SPRO → SAP 参考 IMG → SAP NetWeaver → 应用程序服务器 → Internet 通信框架 → 激活 HTTP 服务来激活此服务

当您安装应用程序服务器 ABAP 时,所有 ICF 服务都处于非活动状态。您可以使用 ICF 树下的 T 代码 - SICF 维护 ICF 服务。

您可以通过以下方式激活ICF服务 -
- 使用菜单选项,服务/主机 → 激活
- 使用上下文菜单并选择激活服务。


视图设计器中的布局编辑器
您应该激活 SICF for Web Dynpro ABAP 中的所有服务才能使用视图设计器中的布局编辑器。
单点登录
您应该在相关主机上设置 SSO。
完全合格域名
您应该使用完全限定的域名 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 应用程序中的后端数据。
视图- 用于确保数据在网络浏览器中的表示。
控制器- 用于控制模型和视图之间的通信,它从用户那里获取输入并从模型获取过程数据并在浏览器中显示数据。
SAP Web Dynpro - 导航
在 Web Dynpro 应用程序中,您可以使用插件从一个视图导航到另一视图。
运行 T-code - 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 中,该窗口用于多个视图或视图集。视图只有在嵌入到视图中时才能显示,并且窗口始终包含通过导航链接连接的一个或多个视图。
每个窗口都包含一个入站和一个出站插件,它们可以包含在导航链中。窗口内的入站插头从视图的出站插头通向嵌入窗口。就像所有其他入站插件一样,它们代表一个事件,从而调用分配给它们的事件处理程序。
窗口控制器


控制器
控制器用于定义 Dynpro 应用程序如何响应用户交互。每个视图都有一个控制器,负责根据用户的交互执行操作。

SAP Web Dynpro - 映射和数据绑定
在 Dynpro 应用程序中,您可以定义两个全局控制器上下文之间的映射或从视图上下文到全局控制器上下文的映射。
UI 元素属性的数据绑定是在视图布局中设置的。为此,您可以使用嵌入 UI 元素的属性表中的 Binding 列。单击该按钮可打开一个对话框,其中提供了用于元素选择的相应视图的上下文结构。

可以定义上下文元素来将上下文的一个节点链接到另一个节点。

在上图中,您可以看到视图 1 上下文中的节点 1 与组件控制器上下文中的同名节点之间的映射。它还显示从视图 2 上下文中的节点 2 到组件控制器上下文中具有相同名称的节点的映射。
组件控制器的上下文可用于对所有属性具有读写访问权限的视图控制器。

绑定用户界面元素
要在浏览器中显示上下文数据,您还可以将视图中的 UI 元素属性绑定到视图上下文的属性。您可以将多个属性绑定到一个上下文元素。
在视图上下文中,所有数据类型都可与视图的不同属性绑定。


内部映射
内部映射被定义为单个组件的上下文之间的映射。
外部映射
外部映射被定义为使用接口控制器的多个组件之间的映射。
SAP Web Dynpro - 事件和操作
您可以创建事件以启用控制器之间的通信。您可以允许一个控制器触发另一控制器中的事件。您在组件控制器中创建的所有事件都可以在组件中使用。
入站插头也可以充当事件,因此当您使用入站插头调用视图时,首先调用事件处理程序。
您还可以使用一些特殊事件(例如按钮)来与用户操作链接。
像按钮这样的按钮元素可以通过单击相应的按钮来对用户交互做出反应,该按钮可以触发在视图控制器中调用的处理方法。这些 UI 元素包含一个或多个常规事件,这些事件可以与设计时执行的特定操作相关联。
创建操作时,会自动创建事件处理程序。您可以将 UI 元素与不同的操作相关联。
您还可以通过将操作链接到多个 UI 元素来重用视图中的操作。
实施例1
当用户在字段中按下“Enter”键时,按钮单击的 onAction 事件或输入字段的 onEnter 事件。

可以为 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 应用程序使用不同的数据源 -
- 使用网络服务
- 使用 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/
要检查完全限定域名,请使用 T 代码 - SE80 转至 ABAP 开发环境中的 Web Dynpro 资源管理器,然后从 Web Dynpro 组件/界面的导航树中选择 Web Dynpro 应用程序,然后检查管理数据中的 URL。您还需要检查 URL 字段中的路径详细信息。它应包含完整的域名和主机名。


应使用完整域名的原因如下 -
- 您需要一个域来设置 cookie。
- 您应该在 https 模式下使用 FQDN 作为证书和 SSL 协议。
- 对于门户集成,使用域关系代码。
SAP Web Dynpro - 创建应用程序
为了创建 Web Dynpro 应用程序,我们将创建一个由一个视图组成的 Web Dynpro 组件。我们将创建一个视图上下文→链接到视图布局上的表元素并包含表中的数据。
该表将在运行时显示在浏览器中。将创建一个针对这个简单 Web Dynpro 组件的 Web Dynpro 应用程序,该应用程序可以在浏览器中运行。
步骤 1 - 转到 T-Code - SE80 并从列表中选择 Web Dynpro 组件/intf。

步骤 2 - 创建一个新组件,如下所示。

步骤 3 - 输入新组件的名称,然后单击显示。

步骤 4 - 在下一个窗口中,输入以下详细信息 -
- 您可以输入该组件的描述。
- 在类型中,选择 Web Dynpro 组件。
- 您还可以保留默认窗口的名称。

步骤 5 - 将此组件分配给包 $TMP,然后单击“保存”按钮。

当您单击“保存”时,您可以在对象树下看到这个新组件,它包含 -
- 组件控制器
- 组件接口
- 看法
- Windows

展开组件界面时,可以看到界面控制器和界面视图。

如何创建视图并将其分配给窗口?
步骤 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 的“布局”选项卡。在 ROOTUIELMENT 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 Dypro 应用程序。

调用 Web Dynpro 应用程序
在 Web Dynpro 应用程序中,组件窗口具有入站插件。此入站插件可以具有参数,这些参数必须指定为 URL 参数。
可以在应用程序中为这些参数设置被 URL 参数覆盖的默认值。如果既没有指定默认值,也没有指定 URL 参数,则会触发运行时错误。
要创建新的入站插件,请将插件指定为启动,并且数据类型应为字符串。激活该组件。
接下来是指定要调用的组件、参数、窗口、启动插件。
调用应用程序和URL参数会覆盖应用程序参数。
SAP Web Dynpro - 组件接口
当您创建 Web Dynpro 组件时,创建过程会创建一个组件接口。每个组件接口恰好包含一个接口控制器和一个接口视图。接口视图与接口控制器没有直接联系,是自动创建的。
使用组件接口,您可以定义接口结构并且可以在不同的应用程序组件中使用。
组件接口定义的接口控制器和组件的接口控制器是不同的。
您可以将多个接口视图添加到组件接口定义中。
创建 Web Dynpro 组件接口定义
考虑与前一章相同的屏幕截图。

步骤 1 - 输入新组件的名称,然后单击显示。

步骤 2 - 在下一个窗口中,输入以下详细信息 -
- 您可以输入该组件的描述。
- 在类型中,选择 Web Dynpro 组件。
- 您还可以维护默认窗口的名称。

步骤 3 - 将此组件分配给包 $TMP,然后单击“保存”按钮。

当您单击“保存”时,您可以在对象树下看到这个新组件,它包含 -
- 组件控制器
- 组件接口
- 看法
- Windows
SAP Web Dynpro - Faceless 组件
Web Dynpro 中的无面组件不包含任何图形组件,没有视图,也没有窗口。它仅包含一个组件控制器,您可以添加额外的自定义控制器。
无面组件专门用于接收和构建数据。Faceless 组件可以使用组件用法嵌入到其他组件中,并且您可以向这些组件提供所需的数据。
如何创建不露面的组件?
步骤 1 - 创建一个新的 Web Dynpro 组件。

步骤 2 - 选择包并单击“保存”按钮。

步骤 3 - 要创建 Faceless 组件,请删除两个元素 - 视图和窗口。

SAP Web Dynpro - 协助课程
在Web Dynpro组件中,您可以创建从抽象类继承的唯一分配的类。辅助类可以存储组件中所需的编码,但不与布局链接。
您可以在辅助类中存储动态文本、在运行时组合的文本或包含可以存储在文本池中的变量。
在 Assistance 类中,您还可以保存不与应用程序布局或控制器直接链接的代码。
使用方法 _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 - 输入属性类型 - 测试,然后单击继续。
步骤 8 - 在下一个窗口中,指定应执行服务的方法的名称。该向导生成用于调用服务和上下文绑定的代码。
该方法必须尚不存在于控制器中。

您现在已经输入了创建面向模型的控制器所需的所有信息。
步骤 9 - 单击“完成”创建控制器,或分别增强控制器以生成服务调用。
您也可以在此位置取消向导。但是,之前输入的数据会丢失。

SAP Web Dynpro - 使用服务调用
当创建服务调用时,功能模块可供组件使用。现在可以选择一个视图以便在浏览器中显示数据库表的元素。如果全局控制器不是组件控制器,则所选视图的控制器必须进入全局控制器的使用页面。之后,应该有节点的映射。

生成 FUNCMODUL1 到视图控制器上下文中具有相同名称的节点。
为了用数据库表的数据填充视图控制器上下文的上下文节点FUNCMODUL1,全局控制器的方法EXECUTE_FUNCMODULE被称为它的供应函数。为此,您必须通过调用方法 EXECUTE_FUNCMODULE1 创建这样的供应函数。
SAP Web Dynpro - 调试应用程序
ABAP Workbench 中有多种工具可用于调试源代码。您可以使用调试器测试 Web Dynpro 应用程序的所有源代码。
步骤 1 - 要启动调试器,您必须在 ABAP 工作台中选择一个新的调试器。
步骤 2 - 转到实用程序 → 设置

现在出现一个对话框,其中包含两个嵌套的选项卡页区域。
步骤 3 - 选择“父”选项卡页面 ABAP 编辑器。
ABAP 编辑器的设置始终以子选项卡页编辑器的内容打开。
步骤 4 - 选择前端编辑器(新)。
步骤 5 - 现在切换到 ABAP 编辑器设置中的“调试”选项卡页面,然后选择“新建调试器”。
步骤 6 - 保存更改并关闭对话框。
如何开始调试过程?
如果要在调试模式下运行应用程序,则需要在 Dynpro 组件中的方法之一设置外部断点。
建议在 Dynpro 视图的 METHODS 选项卡下的方法 WDDOMODIFYVIEW 中设置断点。如果视图控制器的上下文没有使用供应方法填充,则视图此时在阶段模型中完全实例化。

注- 设置断点的方法取决于测试运行的目的,建议在 WDDMODIFYVIEW 中设置。
当您启动 Web Dynpro 应用程序时,调试器会自动在另一个会话中启动。
SAP Web Dynpro - 版本管理
您可以使用版本管理来管理对象的旧版本、比较版本,也可以重置它们。在版本管理中,可以存储不同版本的ABAP开发对象。
在 ABAP 工作台中,您可以比较不同版本 -
- 意见
- Windows
- 控制器
您还可以存储对象的版本而不释放它。要执行此操作,请在编辑器区域中选择对象,然后转到“实用程序”选项卡→“版本”→“生成版本”

在版本生成之前,如果你去版本管理,你在数据库中看不到任何版本。

当您单击生成版本时,您会收到版本已创建的确认信息。

如何进行版本比较?
转到实用程序 → 版本 → 版本管理

它显示版本数据库中所选对象的所有存储版本。它由所有以前发布的或所有活动的版本组成。

要开始比较对象,请选择对象并单击屏幕顶部的比较按钮。

对于所有版本,都会进行比较,并在表格中突出显示任何差异。

SAP Web Dynpro - 消息
在 ABAP Workbench 中,您还可以创建并显示包含 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 组件配置数据记录。
使用组件配置,它允许您管理Behave。
接下来是配置应用程序。创建的所有组件都需要在特定配置中使用。Web Dynpro 应用程序的配置定义了应用程序中配置的组件。
如何启动组件配置器?
在 ABAP 对象列表中,选择 Web Dynpro 组件 -
右键单击 → 创建/更改配置。

这将打开一个浏览器,其中包含配置器的对话框窗口。组件配置器模式处于活动状态,您可以输入新组件配置的名称。

您还可以定义隐式和显式配置。保存配置并关闭窗口。
注意- 仅当新配置实际包含值时,您才能保存它。不存储不包含任何数据且具有名称的空配置文件。
由于此配置器不是 ABAP 工作台的一部分,而是在浏览器中单独运行,因此在完成配置中的创建或更改过程后,您需要更新工作台中对象列表的层次结构。
这允许您为每个对象存储不同的配置。
个性化中的 Delta 处理
保存应用程序配置时,您无法检查管理员和最终用户所做的更改。需要存储允许管理合并数据的定制和个性化数据。
应考虑以下几点 -
应用程序用户和管理员应该能够撤销更改。
应用程序的自定义更改应该对所有页面的用户可见。
应用程序管理员应该有权将报告标记为最终报告,并且这应该对所有用户有效。当管理员将属性标记为最终属性时,不得再允许对单个用户的个性化值进行任何更改。
SAP Web Dynpro - 门户集成
您可以将 ABAP 应用程序集成到企业门户中。您还可以从 Web Dynpro 应用程序管理门户功能。
您可以调用Web Dynpro代码向导来访问门户管理器方法。这可用于执行以下功能 -
门户事件- 在门户或门户内容内的 Web Dynpro 应用程序之间导航。
支持以下导航类型 -
- 基于对象的导航
- 绝对导航
- 相对导航
工作保护模式 - 对于门户集成,SWDP_TEST 包中提供以下 Web Dynpro 应用程序 -
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 List Viewer 用于添加 ALV 组件,并提供灵活的环境来显示列表和表格结构。标准输出由标题、工具栏和输出表组成。用户可以使用附加对话框调整设置以添加列显示、聚合和排序选项。
以下是 ALV 的主要特点 -
它支持表格元素的许多属性,因为它基于 Web Dynpro 表格 UI 元素。
ALV 输出可以被过滤、排序,或者您可以应用计算。
用户可以使用工具栏中的 UI 元素执行应用程序特定功能。
允许用户在不同的视图中保存设置。
允许配置 ALV 输出上方和下方的特殊区域。
允许定义 ALV 输出的编辑范围。
如何创建ALV?
以下是创建 ALV 的步骤。
步骤 1 - 使用 T 代码:SE80。从列表中选择 Web Dynpro comp/intf 并输入名称。单击显示。系统将提示您创建组件。单击“是”。

步骤 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的方法。
您可以使用以下方法来创建、获取和删除过滤条件 -
功能 | 方法 |
---|---|
获取特定的过滤条件 | 获取过滤规则 |
获取某个字段的所有过滤条件 | 获取过滤规则 |
创建过滤条件 | 创建_过滤_规则 |
删除特定过滤条件 | 删除_过滤_规则 |
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应用程序服务器中的数据流。
步骤 1 - 使用 T 代码 - SMICM。在下一个窗口中,单击 GOTO → 跟踪文件 → 显示文件或启动。

您将看到 ICM 跟踪结果,如以下屏幕截图所示 -

步骤 2 - 您还可以从默认级别 1 增加跟踪级别。要增加跟踪级别,请转至 → 跟踪级别 → 增加。

HTTP 浏览器跟踪
这用于分析代码的动态Behave。这可以用作 ICM 跟踪的替代方案。
要使用浏览器跟踪,您需要在本地系统上安装代理工具。
SAP Web Dynpro - 监控应用程序
您可以使用 ABAP 监视器来监视 Web Dynpro 应用程序。存储有关 Web Dynpro 应用程序的信息。您可以使用 T 代码 - RZ20 查看此信息。
您可以在 Web Dynpro ABAP 监视器中检查以下信息 -
- 会话数
- 申请数量
- 中央处理器时间
- 数据
要查看报告,请使用T 代码 - RZ20
步骤 1 - 转到 SAP CCMS 监视器模板。
步骤 2 - 单击子节点“整个系统”。
步骤 3 - 输入安装要监控的应用程序的当前 SAP 系统的系统 ID。

步骤 4 - 选择应用程序服务器。
步骤 5 - 选择相关应用程序服务器的名称。例如,选择 Web Dynpro ABAP,如以下屏幕截图所示 -

当调用 Web Dynpro 应用程序时,结果将显示为以下信息 -
- 数据
- 申请数量
- 会话数
- 往返
- 中央处理器时间
