ebook img

SAP ABAP Objects: A Practical Guide to the Basics and Beyond PDF

273 Pages·2019·13.138 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview SAP ABAP Objects: A Practical Guide to the Basics and Beyond

SAP ABAP Objects A Practical Guide to the Basics and Beyond — Rehan Zaidi SAP ABAP Objects A Practical Guide to the Basics and Beyond Rehan Zaidi SAP ABAP Objects: A Practical Guide to the Basics and Beyond Rehan Zaidi Dubai, United Arab Emirates ISBN-13 (pbk): 978-1-4842-4963-5 ISBN-13 (electronic): 978-1-4842-4964-2 https://doi.org/10.1007/978-1-4842-4964-2 Copyright © 2019 by Rehan Zaidi This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Susan McDermott Development Editor: Laura Berendson Coordinating Editor: Rita Fernando Cover designed by eStudioCalamar Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer- sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress.com/ rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/9781484249635. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper Another book dedicated to my mother…. Table of Contents About the Author �����������������������������������������������������������������������������������������������������xi About the Technical Reviewer �������������������������������������������������������������������������������xiii Chapter 1: Creating Classes and Objects ������������������������������������������������������������������1 Classes and Their Components �����������������������������������������������������������������������������������������������������2 Local Classes ��������������������������������������������������������������������������������������������������������������������������������4 Global Classes �������������������������������������������������������������������������������������������������������������������������������6 Object Creation and Instance-Method Calls ��������������������������������������������������������������������������������10 Methods and Method Calls ���������������������������������������������������������������������������������������������������������12 Static Components ����������������������������������������������������������������������������������������������������������������������13 A Full-Fledged Demo �������������������������������������������������������������������������������������������������������������������15 The IS INSTANCE OF Predicate Expression ���������������������������������������������������������������������������������20 Deferred Class Specification �������������������������������������������������������������������������������������������������22 Summary�������������������������������������������������������������������������������������������������������������������������������������23 Chapter 2: Class Components in Detail�������������������������������������������������������������������25 Finding the Type of an Object Reference Variable: Revisited ������������������������������������������������������26 Using the New Operator to Create an Object ������������������������������������������������������������������������������27 Defining Our Own Types in Classes ���������������������������������������������������������������������������������������������31 Constants in Classes �������������������������������������������������������������������������������������������������������������������32 Dictionary Types for Global Classes ��������������������������������������������������������������������������������������������34 Static Constructor �����������������������������������������������������������������������������������������������������������������������36 Method Revisited ������������������������������������������������������������������������������������������������������������������������39 Specifying Internal Tables as Method Parameters ����������������������������������������������������������������39 Inline Declarations While Calling Methods ����������������������������������������������������������������������������������43 v Table of ConTenTs Functional Methods ��������������������������������������������������������������������������������������������������������������������44 Specifying Exporting and Returning Parameters for Functional Methods ����������������������������������47 Methods Calling Other Methods ��������������������������������������������������������������������������������������������������51 Method Chaining �������������������������������������������������������������������������������������������������������������������������51 Event Handling in ABAP Objects ��������������������������������������������������������������������������������������������������53 A Working Example ���������������������������������������������������������������������������������������������������������������������54 Triggering and Handling the PLAYER_CREATED Event ����������������������������������������������������������������54 Summary�������������������������������������������������������������������������������������������������������������������������������������60 Chapter 3: More on Object-Oriented ABAP �������������������������������������������������������������61 Inheritance: Super and Subclasses ���������������������������������������������������������������������������������������������61 Redefining Methods ��������������������������������������������������������������������������������������������������������������������66 Instance Constructors �����������������������������������������������������������������������������������������������������������������66 Working Example �������������������������������������������������������������������������������������������������������������������68 Casting and Polymorphism ���������������������������������������������������������������������������������������������������������73 Global Subclasses and Redefinition of Methods �������������������������������������������������������������������������81 Interfaces ������������������������������������������������������������������������������������������������������������������������������������87 Creating Global Interfaces �����������������������������������������������������������������������������������������������������91 Abstract and Final Classes ����������������������������������������������������������������������������������������������������������94 Friendships ���������������������������������������������������������������������������������������������������������������������������������97 Summary�����������������������������������������������������������������������������������������������������������������������������������100 Chapter 4: Class Builder ���������������������������������������������������������������������������������������101 Transaction SE80 ����������������������������������������������������������������������������������������������������������������������101 The Class Builder and Its Features �������������������������������������������������������������������������������������������104 Class Builder Tabs ���������������������������������������������������������������������������������������������������������������������106 Useful Functions of the Class Builder ���������������������������������������������������������������������������������������107 Where-Used Lists ����������������������������������������������������������������������������������������������������������������107 Class Browser ���������������������������������������������������������������������������������������������������������������������������113 Testing Classes in SE24 �������������������������������������������������������������������������������������������������������114 Testing a Static Method �������������������������������������������������������������������������������������������������������115 vi Table of ConTenTs Testing Instance Methods ���������������������������������������������������������������������������������������������������������119 Testing Methods Using Table Parameters ���������������������������������������������������������������������������������128 Summary�����������������������������������������������������������������������������������������������������������������������������������135 Chapter 5: Exceptions, Shared, and Persistent Objects ����������������������������������������137 Exception Handling and Exception Classes ������������������������������������������������������������������������������137 RAISE and TRY �� ENDTRY Statements ���������������������������������������������������������������������������������139 Resumable Exceptions ��������������������������������������������������������������������������������������������������������140 Using Message Classes for Exception Class Text����������������������������������������������������������������������144 A Working Example ��������������������������������������������������������������������������������������������������������������146 Singleton Classes ����������������������������������������������������������������������������������������������������������������������150 Persistent Objects ���������������������������������������������������������������������������������������������������������������������154 Storing and Reading Persistent Objects ������������������������������������������������������������������������������160 Shared Memory Objects ������������������������������������������������������������������������������������������������������������163 The GET_DATA and SET_DATA Methods ������������������������������������������������������������������������������164 Versioning Switched On�������������������������������������������������������������������������������������������������������168 Writing and Reading Data Into Shared Memory ������������������������������������������������������������������������169 Summary�����������������������������������������������������������������������������������������������������������������������������������172 Chapter 6: More Topics in Object- Oriented ABAP �������������������������������������������������173 Using the New Operator to Create an Object ����������������������������������������������������������������������������173 ALV Object Model ����������������������������������������������������������������������������������������������������������������������177 Adding Header Texts to ALV Columns ����������������������������������������������������������������������������������180 Method Chaining �����������������������������������������������������������������������������������������������������������������������183 Object-Oriented Transactions ����������������������������������������������������������������������������������������������������185 Refactoring Assistant ����������������������������������������������������������������������������������������������������������������192 Moving Components from a Class to its Direct Subclass ����������������������������������������������������194 Moving Components from a Class to an Implemented Interface �����������������������������������������195 Moving Components from a Class to an Associated Class ��������������������������������������������������198 vii Table of ConTenTs Enhancement of Classes �����������������������������������������������������������������������������������������������������������199 Example 1� PreExit and PostExit Methods ���������������������������������������������������������������������������200 Example 2� Overwrite Method ���������������������������������������������������������������������������������������������206 Statements/Constructs Not Allowed in Object- Oriented ABAP �������������������������������������������������208 Naming Variables �����������������������������������������������������������������������������������������������������������������208 Using Logical Operators ������������������������������������������������������������������������������������������������������209 CASE Statement Usage ��������������������������������������������������������������������������������������������������������210 Using ON CHANGE OF ����������������������������������������������������������������������������������������������������������210 Restrictions to Using the TYPES Statement �������������������������������������������������������������������������210 Restrictions to Using DATA Declarations and Constants������������������������������������������������������211 Untyped Field-Symbols��������������������������������������������������������������������������������������������������������211 Internal Table-Related Statements ��������������������������������������������������������������������������������������212 Database Table-Related Statements �����������������������������������������������������������������������������������213 Untyped Method Parameters �����������������������������������������������������������������������������������������������213 Summary�����������������������������������������������������������������������������������������������������������������������������������214 Chapter 7: ABAP Unit Test-Driven Development ���������������������������������������������������215 Testing Need and Phases ����������������������������������������������������������������������������������������������������������215 Basics of ABAP Unit Test Driven Development ��������������������������������������������������������������������������217 Unit Test Benefits ����������������������������������������������������������������������������������������������������������������������219 Demo Example ��������������������������������������������������������������������������������������������������������������������������220 Executing a Unit Test �����������������������������������������������������������������������������������������������������������������224 Methods in CL_ABAP_UNIT_ASSERT for Testing �����������������������������������������������������������������������227 ABAP Unit Results in Code Inspector ����������������������������������������������������������������������������������������230 Exceptions in ABAP Unit Tests ���������������������������������������������������������������������������������������������������233 Enabling and Executing ABAP Unit Browser �����������������������������������������������������������������������������234 Summary�����������������������������������������������������������������������������������������������������������������������������������237 Chapter 8: Creating ABAP Classes Using Eclipse �������������������������������������������������239 Installing Eclipse and Loading ABAP Perspective ���������������������������������������������������������������������239 Creating an ABAP Project in Eclipse ������������������������������������������������������������������������������������������242 Creating a Global Class in Eclipse ���������������������������������������������������������������������������������������������244 viii Table of ConTenTs Creating a Local Class in Eclipse ����������������������������������������������������������������������������������������������249 Method Wizard in Eclipse ����������������������������������������������������������������������������������������������������������251 Unit Test Templates Using Eclipse ���������������������������������������������������������������������������������������������254 Modifying Templates �����������������������������������������������������������������������������������������������������������������256 Summary�����������������������������������������������������������������������������������������������������������������������������������259 Index ���������������������������������������������������������������������������������������������������������������������261 ix About the Author Rehan Zaidi is a consultant for several international SAP clients. He started working with SAP in 1999 and writing about his experiences in 2001. He has written several articles for both SAP Professional Journal and HR Expert, and he also has a number of popular SAP- and ABAP-related books to his credit. He provides SAP consulting to companies and helps clients (both on-site and remote) with their SAP technical requirements (ABAP, Workflow, Quick development of Fiori apps, and S/4 HANA-related requirements). Rehan also creates documentation and training manuals for a number of companies based in the United States. Rehan is interested in providing publicity options to ERP consulting firms. His clients are located in a number of countries and continents, including the Middle East (GCC region) as well as North America and Europe. He is currently working on a new ERP programmer magazine. He can be reached at [email protected]. xi

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.