WDA入门教程Ⅰ:Web Dynpro for ABAP 入门(转)
转自:https://www.jianshu.com/p/68c1592f1a87
WDA全称Web Dynpro for ABAP,也写作WD4A或WDA,是用于在ABAP环境中开发Web应用程序的SAP标准UI技术。 它由运行时环境和图形开发环境组成,其中包含集成在ABAP Workbench(SE80)中的特殊Web Dynpro工具。
本教程提供了开发一个WDA程序的分步指南。
目录:
- 创建WDA对象
- 创建视图
- 添加UI元素和视图
- 创建组件控制器上下文
- 数据映射
- 从组件控制器访问数据
- 定义导航模式
- 创建应用
- 测试WDA应用
1. 创建WDA对象
进入事务码SE80,在左侧对象框列表中选择“Web Dynpro组件/接口”,输入对象的名称“Z_TUTORIAL1”,然后回车,系统将询问是否创建此对象,单击“是”。

输入对象描述和要创建的视图名称,回车。将会出现一个要求分配包的对话框,这里选择本地对象。

现在,WDA对象就创建好了。

2. 创建视图
视图包含用户与应用程序交互所需的UI元素,SAP提供了许多不同的类型的UI元素。
这里需要创建两个视图,第一个视图已经在创建对象的时候自动创建好了。

我们再来创建一个Result视图。


保存并激活所有对象之后,就能看到下图了。

3. 添加UI元素和视图
接下来,我们为Start视图构建用户界面。
如上图所示界面,在右侧找到ROOTUIELEMENTCONTAINER,右键选择“Inser Element”。

出现一个对话框,输入“Label1”,类型选择“LABEL”。

如此,再创建一个输入框和按钮。


为 Label1 添加显示文本:Enter Your Name。

为BUTTON1添加显示文本:Continue。

并未其创建事件触发,单击右侧新建按钮。

输入如下信息,填写描述及输出,按回车。

此时出现是否创建Outbound Plug,选择“是”。

点击“Inbound Plug”选项卡,并创建“FromResult”。

创建视图的上下文,单击“Context”选项卡,首先右键选择创建一个节点。

弹出对话框,键入如下,回车。

再在MAIN下创建一个属性,选择MAIN节点,右键创建。

输入如下,回车。

再回到Layout选项卡,给Input1元素映射到视图上下文。单击value旁边的小图标,然后从弹出的对话框选择NAME。

保存并激活所有对象。
仿照对Start视图的操作,为Result视图添加一个名为“TEXT1”的元素,类型为TextView。并添加一个名为“BUTTON1”的按钮,将动作指定为“Back”。
在Context选项卡,创建MAIN节点和NAME属性。

来到Layout,创建TEXT1。

选择TEXT1的text字段,点击右边的小方块,弹出对话框后,选择NAME,回车。

在ROOTUIELEMENTCONTAINER创建一个BUTTON1按钮并为其添加显示文本“Back”和事件触发“Back”。

在弹出的对话框填写如下,回车。在弹出的讯问中选择“是”。

在 Inbound Plugs 输入 FROMSTART。

保存并激活全部对象。
4. 创建组件控制器上下文
通过组件控制器上下文控制数据的传递。
在COMPONENTCONTROLLER,为Context创建节点和属性。

节点MAIN。

属性NAME。

保存并激活全部对象。
5. 数据映射
数据映射是组件控制器将用多个视图数据连接起来。
双击左侧的 START 视图,在Context选项卡,右键单击视图控制器的MAIN节点,然后选择“Define Mapping”。
在弹出的对话框中选择MAIN。

为Result视图做同样的操作。
保存并激活所有对象。
6. 从组件控制器访问数据
用户将在START视图中输入数据,并在RESULT视图中显示改值。
来到RESULT视图,单击Methods选项卡,找到“WDDOMODIFYVIEW”方法,双击进入。在代码中键入空行,然后在上方工具栏选择“Web Dynpro Code Wizard”按钮(快捷键Ctrl+F7)。

通过选择上下文的按钮,在弹出的对话框选择NAME,回车两次。

代码已生成。

在endmethod之前添加一段逻辑如下。
CONCATENATE 'Welcome to WDA' LV_NAME INTO LV_NAME
SEPARATED BY SPACE.
LO_EL_MAIN->SET_ATTRIBUTE(
EXPORTING
NAME = 'NAME'
VALUE = LV_NAME ).

回到 Method List ,找到 ONACTIONBACK 双击进入。在WD_THIS->FIRE_TOSTART_PLG之前插入空行,再次使用“Web Dynpro Code Wizard”按钮生产代码。

在WD_THIS->FIRE_TOSTART_PLG之前插入几行代码。
CLEAR LV_NAME.
LO_EL_MAIN->SET_ATTRIBUTE(
EXPORTING
NAME = 'NAME'
VALUE = LV_NAME ).
结果如图。

7. 定义导航模式
导航模式允许定义师徒之间的导航流。定义入站和出站插件提供的入口和出口点。导航连接定义视图的显示顺序。
双击窗口下的 Z_TUTORIAL1 ,然后将视图Result拉入Z_TUTORIAL1。

结果如图。

在ToResult上右键“创建导航连接”。

在弹出的对话框中,“目标视图”输入框通过F4选择“RESULT”,回车。

在ToStart上右键“创建导航连接”,在弹出的对话框中,“目标视图”输入框通过F4选择“START”,回车。
结果如图。

保存并激活所有对象。
8. 创建应用
本程序是允许在浏览器中通过URL寻址和显示的WDA对象,通过右键单击左侧对象树中的WDA对象来创建应用程序。

输入描述,并保存为本地对象。

9. 测试WDA应用
此时在下方出现一个Web Dynpro 应用程序,打开后右键单击测试,就会弹出浏览器界面。

在输入框输入一段文字,单击按钮。

结果如图。

至此,恭喜你完成了第一个WDA程序的创建。
错漏之处,欢迎指正。
WDA入门教程Ⅰ:Web Dynpro for ABAP 入门(转)的更多相关文章
- 《JavaScript语言入门教程》记录整理:入门和数据类型
目录 入门篇 js介绍 历史 基本语法 数据类型 概述 null 和 undefined 数值 字符串 对象 函数 数组 本系列基于阮一峰老师的<JavaScrip语言入门教程>或< ...
- JSP/SERVLET入门教程--Servlet 使用入门
现在的JSP书籍有的是直接讲述JSP的使用,然后再讲解SERVERLET的使用;也有书籍是先讲述SERVERLET的使用,然后讲解JSP使用.个人认为第二种相对好一些,至于原因大家可以在学习体会到!所 ...
- Unity3D开发入门教程(二)—— Lua入门
五邑隐侠,本名关健昌,12年游戏生涯. 本教程以 Unity 3D + VS Code + C# + tolua 为例. 如果你还没有编程基础,建议你先学习一些编程基础.本文不是完全菜鸟教程,主要针对 ...
- 无废话WCF入门教程六[一个简单的Demo]
一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
- Docker入门教程(二)命令
Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...
- node.js Web应用框架Express入门指南
node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...
- WebGL入门教程(五)-webgl纹理
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 WebGL入门教程(四)-webgl颜色 这里就需要用到 ...
- WebGL入门教程(四)-webgl颜色
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 颜色效果图: 操作步骤: 1.创建HTML5 canva ...
随机推荐
- js里面的键盘事件对应的码值
键盘事件对应的码值keyCode 8 = BackSpace BackSpacekeyCode 9 = Tab TabkeyCode 12 = ClearkeyCode 13 = EnterkeyCo ...
- mysql分布式
一,复制,对数据进行备份,实现搞可用,提高吞吐量,实现高性能. 1,主从架构 2,多主架构 3,主主从从 4,主备 (实际用得多) 二,分片/分库分表 () 1,垂直拆分 1,垂直分表 2,垂直分库 ...
- 国产处理器的逆袭机会——RISC-V
前言 今天天气阴沉,刚才又下起了小雨,温度骤降,前几天脱下的秋裤,今天又穿上了,这天气真是变化无常.上周六(4.20)参加了一场关于RSIC-V的技术沙龙,第一次真正了解了RISC-V架构,正好今天不 ...
- Razor_01 第一个应用程序
自己开始从头深造 自己看了一下,开头真的不适合初学者,没有重点,对不起各位了 . 但你可以在5 分钟以后看,对于初学者还时有深大的用处的 链 接: https://pan.baidu.com/s/1V ...
- CSS学习笔记-背景属性
一.背景尺寸属性: 1.含义: 背景尺寸属性是CSS3中新增的一个属性,专门用于设置背景图片大小 2.格式: 1.1具体像素: backgro ...
- Python升级PIP
用pip list的时候.发现最后有两行黄颜色的.提示你可以用‘python -m pip install --upgrade pip’升级你的pip 当时我直接就复制粘贴上去运行了.但是报了一堆红的 ...
- Day7 - Python基础7 面向对象
本节内容: 1:概述 2:类.对象和方法的创建 3:面向对象三大特性,封装.继承和多态. 4:面向对象中高级篇:类成员:字段.方法.属性 5:类成员的修饰符 6:类的特殊成员 1.概述 面向过程:根据 ...
- AcWing 166. 数独
题目地址 https://www.acwing.com/problem/content/description/168/ 题目描述 数独是一种传统益智游戏,你需要把一个9 × 9的数独补充完整,使得图 ...
- macOS 安装 Docker Desktop CE(转)
现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...
- 大学ACM学习笔记
高斯消元 该来的总会来的系列 int gauss() { for(int i=1;i<=n;i++)//按照列来枚举,当前之前i-1列全消完了 { int k=i; for(int j=i+1; ...