SAPABAP开发技术详解
更新日期:2024-07-11 00:59:58
书店:电子工业出版社京东自营官方旗舰店
出版时间:2016-08
浏览量:82
价格:0.0¥

书籍下载

内容介绍

产品特色

编辑推荐

适读人群 :投身SAP职业人士,查阅SAP ABAP开发技术的从业者

1、《SAPABAP开发技术详解(实例篇)(第2版)》从自学ABAP开发出发,全面讲解相关的技术、经典案例,Step by Step。

2、作者东方先生具有丰富的实践及教学经验,且非常认真,《SAP ABAP开发技术详解(实例篇)(第2版)》是其十年经验之总结,内容精益求精。

3、SAP就业前景良好,现在SAP的ABAP技术开发因奇缺而非常吃香一般ABAP顾问年薪较高。但是SAP相关培训价格太高,《SAP ABAP开发技术详解(实例篇)(第2版)》为读者供了一个自学的资料,也可作为培训机构的教材。


内容简介

本书对SAP ABAP开发所需的常用技术(SAP报表、批量导入、对话程序、函数)做了详尽的介绍,包括基本报表、交互式报表、复杂报表、ALV(SAP List Viewer)报表、Form(SAP Script)报表、SmartForm报表、AdobeForm报表、CALL-TRANSACTION方式批量导入、批处理SESSION方式批量导入、一般Dynpro程序、复杂Dynpro程序、从属画面、表控制控件、函数的使用,并通过大量实例详细介绍了ABAP开发所需技术的使用方法。第2版新增了ABAP数据字典相关的内容,使得本书内容更全面、系统。本书作者从事SAP开发及教学工作近10年,积累了丰富的经验。全书操作讲解精练,采用大量的实例,对重要技术点附有附录,除了可作为投身SAP职业人士的自修秘籍,还可作为从业者用于查阅SAP ABAP开发技术的字典。

作者简介

东方先生,从事SAP推广、实施、维护及教学工作近10年,本书为其丰富经验的总结,希望为“想参加ABAP培训进入SAP行业,但因各种原因望而却步的人”提供一个自学的资料,也可作为培训机构的参考用书。

精彩书评

1 很好的书,详细的语句分析,适合业务顾问对abap的学习。

2 案例是实用,平时上班时候查询使用。总体来说可看度比较高,五星好评!

3 书非常专业,讲解内容不错!!

4 挺不错的~对于SAP初学者来说很有用。


目录

第1章 SAP R/3概要 1
1.1 SAP简介 1
1.2 SAP R/3系统概述 2
1.3 SAP R/3的主要特点 4
1.4 SAP发展历史 5
1.4.1 SAP大事年表 5
1.4.2 SAP技术平台 6
1.4.3 SAP现状 7
第2章 SAP开发概要 8
2.1 SAP系统 9
2.1.1 Client/Server构架 9
2.1.2 结构与职能 11
2.2 SAP系统数据构成 14
2.2.1 Client(集团) 14
2.2.2 数据结构 16
2.3 SAP系统应用 18
2.3.1 蓝图 18
2.3.2 SAP实施 19
2.3.3 SAP传输 21
2.3.4 SAP开发 23
第3章 ABAP开发前提 25
3.1 服务端开发平台 25
3.1.1 Mini SAP 28
3.1.2 SAP R/3 28
3.1.3 NetWeaver 28
3.2 客户端开发平台 29
3.2.1 客户端SAP GUI的安装 30
3.2.2 客户端SAP GUI的登录 30
3.2.3 SAP画面简介 31
3.2.4 SAP基本操作 33
3.2.5 SAP GUI设定 34
3.2.6 退出SAP GUI 36
第4章 ABAP程序编辑工具 37
4.1 对象浏览器 38
4.1.1 工具集 38
4.1.2 工作台的特点 40
4.2 常用工具 41
4.2.1 ABAP编辑器 41
4.2.2 ABAP数据字典 43
4.2.3 数据浏览器 44
4.2.4 屏幕制作器 45
4.2.5 菜单绘制器 46
4.2.6 函数编制器 47
4.2.7 类制作器 48
4.2.8 消息编辑器 48
4.2.9 事务编辑器 49
4.2.10 区域菜单维护 49
4.2.11 调试器 50
第5章 ABAP数据字典 52
5.1 ABAP字典对象 53
5.1.1 表 54
5.1.2 结构体 54
5.1.3 视图 55
5.1.4 数据元素Data Element 55
5.1.5 域Domain 56
5.1.6 锁对象 57
5.1.7 搜索帮助 57
5.1.8 案例 57
5.2 域 61
5.2.1 域的创建 61
5.2.2 域的应用 66
5.3 数据元素 67
5.3.1 数据元素的创建 67
5.3.2 数据类型的应用 71
5.4 表 71
5.4.1 表的创建 72
5.4.2 简单数据维护 89
5.4.3 表的利用 91
5.4.4 表的索引 91
5.4.5 表的外键 95
5.4.6 添加子结构 99
5.4.7 数据库工具 102
5.5 结构体 103
5.5.1 结构体的创建 103
5.5.2 结构体的利用 106
5.6 表类型 107
5.6.1 表类型的创建 107
5.6.2 表类型的利用 109
5.7 视图 110
5.7.1 视图的创建 110
5.7.2 视图的利用 115
5.8 锁对象 116
5.8.1 锁对象的创建 116
5.8.2 SAP锁机制 119
5.8.3 锁对象应用 122
5.8.4 SAP LUW与数据库LUW 125
5.9 搜索帮助 127
5.9.1 搜索帮助的创建 127
5.9.2 检索帮助的应用 136
5.10 数据浏览器 137
5.10.1 查看表数据 137
5.10.2 新建数据 138
5.10.3 变更数据 141
5.10.4 删除数据 142
第6章 ABAP语言基础 144
6.1 简介 144
6.1.1 ABAP/4数据声明语法 146
6.1.2 ABAP开发类型 150
6.2 常用程序类型 151
6.2.1 报表程序 151
6.2.2 批处理 152
6.2.3 对话程序技术 153
6.2.4 函数概要 154
第7章 报表程序 155
7.1 SAP标准报表 155
7.1.1 选择屏幕 156
7.1.2 读取数据 157
7.1.3 报表输出 157
7.1.4 交互式报表 160
7.2 基本报表 162
7.2.1 程序设计 162
7.2.2 程序测试 172
7.3 交互式报表 174
7.3.1 程序设计 174
7.3.2 程序测试 184
7.4 复杂报表 186
7.4.1 程序设计 186
7.4.2 程序测试 199
7.5 ALV(SAP List Viewer)报表 200
7.5.1 ALV简介 200
7.5.2 ALV布局 200
7.5.3 程序实现 202
7.5.4 程序设计 210
7.5.5 程序测试 224
7.6 Form(SAP Script)报表 227
7.6.1 SAP ScriptForm的构成 227
7.6.2 组件 229
7.6.3 函数 234
7.6.4 编辑器设定 240
7.6.5 程序设计 241
7.6.6 程序测试 257
7.7 SmartForm报表 258
7.7.1 SmarkForm简介 258
7.7.2 程序设计 262
7.7.3 程序测试 294
7.8 AdobeForm报表 295
7.8.1 概念 295
7.8.2 工作流程及原理 296
7.8.3 AdobeForm设计 297
7.8.4 程序设计 299
7.8.5 程序测试 315
第8章 批量数据导入 316
8.1 Batch Input程序简介 317
8.1.1 Batch Input概念 317
8.1.2 创建批输入程序时的注意事项 318
8.1.3 Batch Input设计流程 319
8.1.4 分析SAP标准事务 319
8.1.5 BDCDATA的结构介绍 322
8.1.6 选择批输入的方法 324
8.1.7 事务调用 324
8.1.8 批处理SESSION 328
8.2 CALL-TRANSACTION方式 329
8.2.1 程序设计 329
8.2.2 程序测试 341
8.3 批处理SESSION方式 342
8.3.1 程序设计 342
8.3.2 程序测试 354
第9章 ABAP对话程序 357
9.1 程序构成 357
9.1.1 屏幕属性 357
9.1.2 元素清单 358
9.1.3 屏幕控制逻辑 358
9.1.4 模块池(Module)程序的结构 359
9.1.5 Dynpro画面、控制逻辑和程序间的关系 359
9.2 Dynpro要素 360
9.2.1 文本字段项目 360
9.2.2 输入/输出字段项目 361
9.2.3 复选框项目 361
9.2.4 单选按钮项目 361
9.2.5 按钮项目 362
9.2.6 框项目 362
9.2.7 子屏幕范围项目 363
9.2.8 定制控制项目 363
9.2.9 状态图标项目 366
9.2.10 OK项目 367
9.2.11 步循环(Step Loop) 368
9.2.12 表控制项目 369
9.2.13 标签页控制项目 374
9.2.14 下拉列表 378
9.2.15 Dynpro的右键菜单(Context Menu) 379

9.3 一般Dynpro程序 382
9.3.1 程序设计 382
9.3.2 程序测试 400
9.4 复杂Dynpro程序 401
9.4.1 程序设计 401
9.4.2 程序测试 414
9.5 从属画面 414
9.5.1 程序设计 414
9.5.2 程序测试 436
9.6 表控制控件 438
9.6.1 程序设计 438
9.6.2 程序测试 467
第10章 函数 470
10.1 函数组和函数的构成 470
10.1.1 函数组的构成 470
10.1.2 函数的构成 472
10.2 函数的调用 477
10.3 函数测试 478
附录A SAP NetWeaver 7.01安装指南 480
A.1 安装前提 480
A.2 安装 481
A.3 启动服务 483
附录B SAP GUI安装配置指南 485
B.1 SAP GUI for Windows 7.10 485
B.2 SAP GUI for Java 7.20 492
附录C ABAP/4程序创建指南 496
附录D 模式(Pattern)创建与使用指南 503
D.1 模式的创建 503
D.2 模式的使用 517
附录E 共通定义 518
E.1 共通Include的定义 518
E.2 Form定义 520
E.3 信息类定义 529
附录F 可执行程序类创建指南 531
附录G ABAP对话程序创建指南 541
附录H 程序调试及ABAP调试器使用指南 578
H.1 在运行程序时,测试辅助的工具 579
H.2 调试器 582
H.3 ABAP调试器分类 583
H.4 传统模式 584
H.5 新模式 597

精彩书摘

5.8.2 SAP锁机制

1.SAP为什么要设置锁

1)保持数据的一致性

如果几个用户要访问同样的资源,则需要找到一种同步访问的方法去保持数据的一致性。比如,在航班预订系统中,需要检查还有没有空座位,当检查的时候,你不想别人修改重要的数据(空座位的数量)。

2)仅仅用Database锁是不够的

数据库管理系统物理锁定了要修改的行记录,其他用户要等到数据库锁释放才能访问这个记录。在SAP系统中,当一个新屏幕显示的时候会释放掉Database锁,因为屏幕的改变会触发一个隐式的DB COMMIT。如果数据是从好几个屏幕收集来的,而且在这段时间内这些数据会分别被锁定,则仅仅用Database锁就不够了。

SAP系统在应用服务器层面有一个全局的LOCK TABLE,可以用来设置逻辑锁来锁定相关的表条目,并由ENQUEUE工作进程来管理这些锁。SAP锁是一种逻辑意义上的锁,有可能你锁定的表条目在DATABASE上根本就不存在。

2.锁对象和其对应的Function Module

在SE11里创建锁对象,自定义的锁对象都必须以EZ或者EY开头来命名。一个锁对象里只包含一个PRIMARY TABLE,可以包含若干个SECONDARY TABLE,锁的模式有三种:E、S、X。LOCK PARAMETERS里填写需要根据哪些字段来锁定表条目。

◎ 模式E:当更改数据的时候设置为此模式。

◎ 模式S:本身不需要更改数据,但是希望显示的数据不被别人更改。

◎ 模式X:和E类似,但是不允许累加,完全独占。

你在一个程序里成功地对一个锁对象加锁之后,如果模式为E,则其他用户不能再对这个锁对象加E、X、S模式的任意一种锁。你在一个程序里成功地对一个锁对象加锁之后,如果模式为X,则其他用户不能再对这个锁对象加E、X、S模式的任意一种锁。你在一个程序里成功地对一个锁对象加锁之后,如果模式为S,则其他用户不能再对这个锁对象加E、X模式的锁,但是可以加S模式的锁。你在一个程序里成功地对一个锁对象加锁之后,如果模式为E,则在这个程序中,你还可以再对这个锁对象加E、S模式的锁,X模式的则不可以。你在一个程序里成功地对一个锁对象加锁之后,如果模式为X,则在这个程序中,你不可以再对这个锁对象加E、X、S模式的锁。你在一个程序里成功地对一个锁对象加锁之后,如果模式为S,则在这个程序中,你还可以再对这个锁对象加S模式的锁,如果没有别的用户对其加S模式的锁,则你还可以对其加E模式的锁,X模式的则不可以。

当激活锁对象的时候,系统会自动创建两个FM:ENQUEUE_<锁对象名>和DEQUEUE_<锁对象名>,分别用来锁定和解锁。

单击菜单项,如图5-128所示,结果如图5-129所示。

图5-128 菜单项

图5-129 激活锁对象

3.锁定和解锁

当用逻辑锁来锁定表条目的时候,系统会自动向LOCK TABLE中写入记录。

当调用设置锁的FM时,LOCK PARAMETERS如果没有指明,系统则会锁定整个表。当然,LOCK PARAMETER:CLIENT有点特殊,如果不指定,则默认是SY-MANDT;如果指定相应的CLIENT,则会锁定对应CLIENT上的相应表记录;如果设置为SPACE,则锁定涉及所有的CLIENT。当逻辑锁设置失败后,一般会有两种例外:一种是EXCEPTION: FOREIGN_LOCK,意思是已经被锁定了;另一种是EXCEPTION:SYSTEM_FAILURE。

有些情况下,程序中设置成功的逻辑锁会隐式地自己解锁。比如说程序结束发生的时候(MESSAGE TYPE为A或者X的时候),使用语句LEAVE PROGRAM、LEAVE TO TRANSACTION或者在命令行输入/N回车以后,在程序的结束可以用DEQUEUE FUNCTION MODULE来解锁(当然如果你不写这个,程序结束的时候也会自动解锁),这个时候,系统会自动从LOCK TABLE把相应的记录删除。使用DEQUEUE FUNCTION MODULE来解锁的时候,不会产生EXCEPTION。要解开你在程序中创建的所有逻辑锁,可以用FM:DEQUEUE_ALL。

4.上锁的一般步骤

先上锁,上锁成功之后,从数据库取数据,然后更改数据,接着更新到数据库,最后解锁。按照这个步骤,才能保证更改完全运行在锁的保护机制下。


前言/序言

前言

SAP ABAP编程语言最初被SAP的开发者用于开发SAP产品及平台,但它也用于定制开发SAP客户的软件应用。

客户可以用ABAP编程开发自定义的报表和界面。这个编程语言对于程序员、运维人员、网络技术人员来说很容易学习,但对于非程序设计人员并不是一个可以直接使用的工具。这是因为编写ABAP程序需要良好的编程技巧和关系数据库方面的知识,熟悉面向对象设计的概念更好。

学习SAP,就开发而言要掌握四个要领:运行环境、编辑操作、程序套路、编程规范。

运行环境

所有的ABAP程序都驻留在SAP数据库里。它们不像Java或者C++程序那样存储在一个单独的外部文件里,用一般记事本编辑器就可以编辑查看源代码,而是用ABAP Workbench工具集查看和编辑源代码,由ABAP运行环境载入和解释“编译”代码。关于选择何种环境,如果初学者条件有限,则可以选择Mini SAP或者Netweaver For ABAP的7.0版本(可在SAP官方网站下载),本书从Netweaver For ABAP的安装讲起。

编辑操作

编辑ABAP程序不同于Java或C++的文本编辑方式,ABAP开发工具集中有几种不同的工具用于编辑程序的不同部分。这些工具可以为你提供涵盖整个软件开发周期中各阶段的辅助,如ABAP Editer用于编写程序代码,Menu Painter用于设计用户界面(包括菜单栏、标准工具栏、应用栏、配置功能键),Screen Painter为用户对话框设计屏幕(动态程序)等,如何使用这些工具,在本书中有详尽的介绍。

程序套路

根据客户的需求,SAP定制了几种基本的程序类型,如ABAP类型模块池(这些程序使用一系列的屏幕来定义复杂的用户交互模式)、报表程序(遵循一个相对简单的编程模型,用户可有选择地输入一系列参数,然后程序根据输入的参数以一个交互式列表的形式产生一张报表)。每一种类型的程序在具体应用中又可以分为几种不同的模式,其程序结构根据相应的应用模式也不尽相同,这些在本书的程序实例中都有很好的体现。

编程规范

没有规矩,不成方圆。无论在程序的设计上还是书写上都有一定的规范,一方面,便于后继者维护;另一方面,也便于代码的重用及更少缺陷的产生,例如注释、公用Form的编辑等,这些在本书的程序实例及注意点中有比较详尽的介绍。



编著者