具体描述
(copied from www.amazon.com)
Editorial Reviews
Product Description
The all-new 2nd Edition of this bestselling book covers ABAP development with SAP NetWeaver. Whether you are new to ABAP programming, an experienced developer, or a consultant or project team member: this in-depth reference provides you with comprehensive knowledge of all facets of ABAP technology.
Based on ABAP Objects, this 1000+ page book describes all concepts of modern ABAP up to Release 7.0 (including a "sneak preview" of Release 7.10). Brand new topics found in the new edition include SAP NetWeaver Application Server ABAP, Regular Expressions, Shared Objects, class-based exception handling, assertions, Web Dynpro for ABAP, Object Services, dynamic programming, interface technologies (RFC, ICF, XML), and test tools, among others. Procedural techniques are also covered where necessary.
Highlights:
SAP NetWeaver Application Server ABAP
Development basics: ABAP Workbench, Object Navigator, Class Builder, etc.
Basic elements of ABAP Objects
Classic modularisation and program execution
Avoiding erros and error handling
GUI programming: dynpros, lists, selection screens, controls and Web Dynpro
Persistent data: DB access, Object Services, file interface, data clusters
Dynamic programming: field symbols, RTTS, dynamic tokens and procedure calls
Data und communication interfaces: RFC, ICF, web services, XML
作者简介
(Copied from www.amazon.com)
About the Author
Dr. Horst Keller is a Knowledge Architect working in the SAP NetWeaver Foundation ABAP group at SAP in Walldorf, Germany. Here, he focuses on documentation and rollout of ABAP and ABAP Objects. As a Managing Principal, Sascha Krüger is responsible for Business Consulting in the area of EMEA and telecommunications, media and utilities industries.
目录信息
Foreword ... 19
1. Introduction ... 23
... 1.1 What Is ABAP? ... 23
... 1.2 The Objective of This Book ... 40
... 1.3 How Can I Use This Book on a Practical Level? ... 48
2. A Practical Introduction to ABAP... 53
... 2.1 Functionality of the Sample Application ... 54
... 2.2 Getting Started with the ABAP Workbench ... 54
... 2.3 Packages ... 60
... 2.4 Database Tables ... 68
... 2.5 Creating an ABAP Program ... 82
... 2.6 Implementing the Auxiliary Program ... 91
... 2.7 User Dialog ... 99
... 2.8 Application Logic ... 110
... 2.9 Summary ... 135
... 2.10 Using the Keyword Documentation ... 136
3. Basic Principles of ABAP ... 141
... 3.1 ABAP and SAP NetWeaver ... 141
... 3.2 ABAP Program Organization and Properties ... 152
... 3.3 Source Code Organization ... 167
... 3.4 Software and Memory Organization of AS ABAP ... 171
4. Classes and Objects ... 177
... 4.1 Object Orientation ... 177
... 4.2 Object-Oriented Programming in ABAP ... 180
... 4.3 Classes ... 182
... 4.4 Attributes and Methods ... 191
... 4.5 Data Types as Components of Classes ... 200
... 4.6 Objects and Object References ... 202
... 4.7 Constructors ... 213
... 4.8 Local Declarations of a Class Pool ... 219
... 4.9 Using ABAP Objects on the AS ABAP ... 221
... 4.10 Summary and Perspective ... 224
5. Basic ABAP Language Elements ... 225
... 5.1 Data Types and Data Objects ... 225
... 5.2 Operations and Expressions ... 273
... 5.3 Control Structures ... 298
... 5.4 Processing Character and Byte Strings ... 303
... 5.5 Internal Tables ... 318
6. Advanced Concepts in ABAP Objects ... 341
... 6.1 Method Interfaces and Method Calls ... 345
... 6.2 Inheritance ... 359
... 6.3 Standalone Interfaces ... 381
... 6.4 Object References and Polymorphism ... 402
... 6.5 Events and Event Handling ... 422
... 6.6 Shared Objects ... 433
7. Classic ABAP - Events and Procedures ... 449
... 7.1 Event-Oriented Program Execution ... 451
... 7.2 Procedural Modularization ... 460
8. Error Handling ... 479
... 8.1 Robust Programs ... 479
... 8.2 Exception Handling ... 481
... 8.3 Assertions ... 509
9. GUI Programming with ABAP ... 513
... 9.1 General Dynpros ... 515
... 9.2 Selection Screens ... 615
... 9.3 Classical Lists ... 645
... 9.4 Messages ... 666
... 9.5 Web Dynpro ABAP ... 671
10. Working with Persistent Data ... 705
... 10.1 Database Accesses ... 706
... 10.2 Database Access with Object Services ... 756
... 10.3 File Interfaces ... 774
... 10.4 Data Clusters ... 784
... 10.5 Authorization Checks ... 789
11 Dynamic Programming ... 795
... 11.1 Field Symbols and Data References ... 796
... 11.2 Run Time Type Services (RTTS) ... 819
... 11.3 Dynamic Token Specifications ... 829
... 11.4 Dynamic Procedure Call ... 832
... 11.5 Program Generation ... 836
12. External Interfaces ... 841
... 12.1 Synchronous and Asynchronous Communication ... 842
... 12.2 Remote Function Call (RFC) ... 845
... 12.3 Internet Communication Framework (ICF) ... 877
... 12.4 ABAP Web Services ... 890
... 12.5 ABAP and XML ... 908
13. Testing and Analysis Tools ... 939
... 13.1 Static Testing Procedures ... 941
... 13.2 Program Analysis with the ABAP Debugger ... 950
... 13.3 Module Tests with ABAP Unit ... 961
... 13.4 ABAP Memory Inspector ... 971
... 13.5 ABAP Runtime Analysis ... 980
... 13.6 Additional Testing Tools ... 984
A. Appendix ... 991
... A.1 Overview of all ABAP Statements ... 991
... A.2 ABAP System Fields ... 1003
... A.3 ABAP Program Types ... 1008
... A.4 ABAP Naming Conventions ... 1009
... A.5 Selectors ... 1010
... A.6 Auxiliary Class for Simple Text Outputs ... 1011
... A.7 References on the Web ... 1014
... A.8 Installing and Using the SAP NetWeaver 2004s ABAP Trial Version ... 1014
The Authors ... 1017
Index ... 1021
· · · · · · (收起)
读后感
用户评价
《ABAP Objects》这本书,是我在ABAP学习道路上遇到的一本里程碑式的著作。作者以其深厚的专业功底和卓越的教学能力,将ABAP面向对象编程的复杂概念,以一种非常易于理解和吸收的方式呈现出来。我尤其喜欢书中关于“多态”的章节,它通过一个生动的“计算器”模型,详细解释了接口和抽象类如何实现多态,以及多态如何带来代码的灵活性和可扩展性。这让我能够更好地理解如何在ABAP中编写更具适应性的代码,例如,在处理多种数据导入格式时,我可以通过定义一个通用的导入接口,然后让不同的数据格式处理器实现该接口,从而实现代码的统一管理和灵活切换。此外,书中对“异常处理”的讲解也极为到位,它不仅仅介绍了语法,更强调了如何设计合理的异常层级,以及如何编写清晰、易于理解的异常处理逻辑。这对于编写稳定、可靠的ABAP程序至关重要,能够有效地避免程序崩溃,并提供有用的错误信息。这本书不仅仅是知识的传授,更是思维的启迪,它让我看到了ABAP面向对象编程的无限可能,让我对ABAP的理解达到了一个新的高度。
这本书的价值,不仅仅在于它提供了ABAP面向对象编程的“是什么”,更在于它深入探讨了“为什么”和“怎么做”。作者以一种非常严谨和系统的态度,将ABAP面向对象编程的各个方面进行了细致的梳理和讲解。我特别欣赏书中对于“对象生命周期”的详细阐述,包括对象的创建、使用、销毁等各个阶段,以及与之相关的构造函数、析构函数的作用。这对于理解对象在内存中的管理和资源的释放至关重要。此外,书中对“异常处理”的讲解也极为精彩。它不仅仅停留在语法层面,更是强调了如何设计合理的异常分类和处理机制,以及如何通过try-catch-endtry块来优雅地处理运行时错误。这对于编写健壮、稳定的ABAP程序至关重要,能够有效地提高程序的容错能力。通过阅读这本书,我不仅掌握了ABAP面向对象编程的核心技术,更重要的是,我开始培养一种面向对象的编程思维,能够从更宏观的角度去思考软件的设计和实现。这本书已经成为我提升ABAP技能的必备参考。
我一直认为,学习一门技术,尤其是像ABAP这样复杂的语言,光看文档是远远不够的,更需要的是能够理解其背后的设计思想和工程实践。《ABAP Objects》这本书恰恰满足了这一需求。它不仅仅是罗列ABAP面向对象特性的语法,更是通过大量的实际案例,深入浅出地讲解了如何在ABAP中运用面向对象的设计模式来解决实际问题。我最喜欢的部分是关于“设计模式”的章节,书中对单例模式、工厂模式、策略模式等经典设计模式的讲解,都配有非常贴切的ABAP代码实现。例如,在讲解“单例模式”时,作者通过一个需要确保全局只有一个数据库连接对象的场景,演示了如何巧妙地利用ABAP类的静态属性和构造函数来创建一个单例。这让我能够更好地理解这些模式的适用场景和实现原理,从而在自己的项目中加以运用。这本书就像一个宝库,每次翻阅都能发现新的金矿。它不仅提升了我的ABAP编程技能,更重要的是,它正在重塑我的软件设计思维,让我能够写出更优雅、更具可维护性的代码。
《ABAP Objects》这本书,真的是一本“宝藏”级别的技术书籍。作者的专业知识和丰富的实践经验在这本书中得到了充分的体现。我尤其喜欢书中关于“继承”的讲解,它清晰地阐述了父类、子类之间的关系,以及如何通过继承来实现代码的复用和功能的扩展。通过书中一个“员工”类及其派生类(如经理、普通员工)的示例,我能够清晰地理解继承在构建层次化对象模型中的作用。更重要的是,书中对“多态”的讲解,让我看到了ABAP面向对象编程的强大之处。通过抽象类和接口的应用,我能够实现代码的解耦和灵活性,使得程序更易于扩展和维护。例如,在处理不同类型的报表生成时,通过定义一个抽象的“报表生成器”类,并让具体的报表生成器(如销售报表、库存报表)继承该类并实现其抽象方法,我可以在不改变报表引擎代码的情况下,轻松地添加新的报表类型。这本书真正让我看到了ABAP的另一种可能性,一种更具现代感、更高效的编程方式,它正在改变我对ABAP开发的固有印象。
阅读《ABAP Objects》这本书,给我最大的感受就是它的“系统性”和“全面性”。作者并非仅仅讲解ABAP面向对象编程的零散知识点,而是将其视为一个完整的体系,从基础概念到高级应用,层层递进,环环相扣。我尤其赞赏书中关于“继承”的讲解,它详细阐述了基类、派生类之间的关系,以及如何通过继承来复用代码,实现“is-a”的关系。通过书中提供的“形状”类及其派生类(如圆形、矩形)的例子,我能够清晰地理解继承的优势,以及如何通过继承来构建一个灵活的对象模型。此外,书中对“多态”的深入剖析,更是让我看到了ABAP面向对象编程的强大之处。通过抽象类和接口的使用,我能够实现代码的解耦和灵活性,使得程序更易于扩展和维护。例如,在处理不同类型的支付方式时,通过定义一个抽象的“支付”类,并让具体的支付方式(如信用卡支付、支付宝支付)继承该类并实现其抽象方法,我可以在不改变支付网关代码的情况下,轻松地添加新的支付方式。这本书真正让我看到了ABAP的另一种可能性,一种更具现代感、更高效的编程方式。
这本书的封面设计就足够吸引人,沉甸甸的质感,搭配上简约而富有力量的“ABAP Objects”字样,仿佛在预示着一场关于ABAP面向对象编程的深度探索即将展开。我是一名在SAP领域摸爬滚打多年的开发者,一直以来,ABAP给我留下的印象是强大、灵活,但总觉得在面向对象思想的运用上,还有许多未被完全挖掘的潜力。这本《ABAP Objects》恰恰填补了这一空白,它不仅仅是一本技术手册,更像是一位经验丰富的导师,循序渐进地引领我进入ABAP对象世界。从最基础的类、对象概念,到继承、多态、封装等核心概念的详细阐释,再到抽象类、接口、事件、异常处理等进阶话题的深入剖析,书中内容安排得井然有序,逻辑清晰。我尤其欣赏作者在讲解每个概念时,都会辅以大量的、贴近实际开发场景的ABAP代码示例。这些示例并非简单的理论堆砌,而是能够直接应用到日常工作中,帮助我理解抽象概念如何在实践中落地。阅读这本书,我感觉自己不仅在学习一门新的编程范式,更是在重塑自己对ABAP的认知,发现它原来可以如此优雅、高效。书中的很多设计模式的讲解,更是让我茅塞顿开,原来许多困扰我已久的开发难题,都可以通过巧妙运用面向对象的设计原则来解决。每一次翻开这本书,都能带来新的启发和思考,它已经成为我案头必备的工具书。
坦白说,在接触《ABAP Objects》之前,我对ABAP的面向对象特性一直停留在“知道有”的层面,实际运用中还是习惯于过程式的思维。这本书的出现,彻底改变了我的看法。它用一种非常平易近人的方式,将原本可能显得枯燥晦涩的面向对象概念,转化为易于理解的逻辑和可操作的代码。作者对ABAP对象模型的理解非常透彻,并且能够将其转化为清晰的文字和生动的例子。我印象最深刻的是关于“多态”的章节,书中通过一个生动的“动物”模型,详细解释了父类、子类以及方法重写如何实现多态,并通过具体的ABAP代码展示了多态的威力——如何在不改变调用代码的情况下,轻松替换不同的具体实现。这对于提升代码的可维护性和扩展性简直是质的飞跃。而且,书中对于“封装”的讲解也并非流于表面,而是深入剖析了如何通过私有、保护、公有访问修饰符来控制数据的可见性和行为,这对于构建健壮、安全的ABAP应用程序至关重要。我曾遇到过一个复杂的业务场景,需要处理多种不同类型的订单,并且对订单的处理逻辑有严格的要求。在读了这本书之后,我能够运用继承和多态来构建一个灵活的订单处理框架,大大简化了后续的维护和扩展工作。这本书不仅仅是知识的传授,更是思维的启迪,它让我看到了ABAP面向对象编程的无限可能。
从这本书的字里行间,我能够感受到作者对ABAP面向对象编程的热情和深刻理解。他不仅仅是知识的传授者,更是思维的引导者。我最受益的部分是书中关于“封装”的讲解,它详细阐述了如何利用私有、保护、公有成员来实现数据的隐藏和访问控制,这对于构建安全、健壮的ABAP应用程序至关重要。通过书中一个简单的“用户”类示例,我能够清晰地理解如何通过setter和getter方法来管理用户的属性,以及如何防止外部直接修改敏感信息。这种严谨的编程思想,是我在以往的ABAP开发中常常忽视的。而且,书中对“事件”的讲解也让我眼前一亮。它不仅介绍了事件的定义和触发机制,更强调了事件在组件解耦中的关键作用。通过使用事件,我能够让一个对象通知其他对象某个状态的改变,从而实现松耦合的设计。这对于构建大型、复杂的SAP系统至关重要,能够有效地降低模块间的耦合度,提高系统的灵活性。这本书让我开始重新审视我的ABAP代码,并从中找到了许多可以改进和优化的方向,它正在帮助我成为一名更优秀的ABAP开发者。
作为一名SAP顾问,技术更新迭代的速度非常快,尤其是在ABAP领域。新的版本不断涌现,新的特性层出不穷。《ABAP Objects》这本书的出现,无疑为我提供了一本宝贵的参考资料,帮助我跟上时代的步伐。我尤其欣赏作者在编写本书时,对ABAP面向对象特性的深入挖掘和系统梳理。从类和对象的生命周期,到构造函数、析构函数的作用,再到事件和异常处理机制的精妙设计,书中几乎涵盖了ABAP面向对象编程的方方面面。作者在解释“事件”时,通过一个简单的“按钮点击”场景,生动地展示了如何使用事件和响应机制来实现组件间的解耦。这对于构建大型、复杂的SAP系统至关重要,能够有效地降低模块间的耦合度,提高系统的灵活性。另外,书中关于“异常处理”的讲解也极其到位,它不仅仅介绍了语法,更强调了如何设计合理的异常层级,以及如何编写清晰、易于理解的异常处理逻辑。这对于编写稳定、可靠的ABAP程序至关重要,能够有效地避免程序崩溃,并提供有用的错误信息。我已经在我的日常开发中,积极地将书中介绍的面向对象设计原则和实践应用到实际项目中,效果显著。
在我看来,《ABAP Objects》这本书最成功之处在于它能够将抽象的编程概念,转化为生动的、可操作的实践。作者的讲解风格非常具有启发性,他能够用通俗易懂的语言,将ABAP面向对象编程的核心思想娓娓道来。我尤其喜欢书中关于“封装”的章节,它详细讲解了如何利用私有、保护、公有成员来实现数据的隐藏和访问控制,这对于构建安全、健壮的ABAP应用程序至关重要。通过书中一个简单的“银行账户”类示例,我能够清晰地理解如何通过getter和setter方法来管理账户余额,以及如何防止外部直接修改敏感数据。这种严谨的编程思想,是我在以往的ABAP开发中常常忽视的。而且,书中对“接口”的讲解也让我眼前一亮。它不仅介绍了接口的定义和实现,更强调了接口在解耦和多态中的关键作用。通过使用接口,我能够定义一套标准化的行为契约,让不同的类去实现,从而实现更高级别的抽象。这本书让我开始重新审视我的ABAP代码,并从中找到了许多可以改进和优化的方向,它正在帮助我成为一名更优秀的ABAP开发者。