新書推薦:
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
《
一个英国军事顾问眼中的二战
》
售價:NT$
1265.0
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
《
股票大作手回忆录
》
售價:NT$
254.0
《
秩序四千年:人类如何运用法律缔造文明
》
售價:NT$
704.0
《
民法典1000问
》
售價:NT$
454.0
|
編輯推薦: |
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章 SAP R3概要1
1.1 SAP简介1
1.2 SAP R3系统概述2
1.3 SAP R3的主要特点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 ClientServer构架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 SAP28
3.1.2 SAP R328
3.1.3 NetWeaver28
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 GUI36
第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 Element55
5.1.5 域Domain56
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与数据库LUW125
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 ABAP4数据声明语法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 批处理SESSION328
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.10485
B.2 SAP GUI for Java 7.20492
附录C ABAP4程序创建指南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
|
內容試閱:
|
前言
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的编辑等,这些在本书的程序实例及注意点中有比较详尽的介绍。
编著者
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.上锁的一般步骤先上锁,上锁成功之后,从数据库取数据,然后更改数据,接着更新到数据库,最后解锁。按照这个步骤,才能保证更改完全运行在锁的保护机制下。
|
|