ABAP to the Future, 4th Edition
- Length: 845 pages
- Edition: 4
- Language: English
- Publisher: SAP Press
- Publication Date: 2021-11-22
- ISBN-10: 1493221566
- ISBN-13: 9781493221561
- Sales Rank: #711373 (See Top 100 Books)
ABAP to the Future is back, and better than ever! Looking for the latest in ABAP syntax? The code examples are fully rewritten. Need to start working in the cloud with the ABAP RESTful application programming model? We’ve got you covered. Got a new IDE like SAP Business Application Studio? We’ll show you the ins and outs of your environment. From abapGit and ABAP2XLSX to SAPUI5 and Web Dynpro ABAP, this new edition has everything you need to be on the cutting edge!
*Get up to date on ABAP 7.55 and 2020
*Learn about the latest features of the ABAP RESTful application programming model, core data services, abapGit, SAPUI5, and more
*Explore new development environments and test frameworks
Coding Best Practices
Implement test-driven development in all of your coding using test doubles, unit tests, and strategies for breaking up dependencies. See how exception classes and the design by contract concept improve your code.
ABAP RESTful Application Programming Model
ABAP in the cloud is here to stay, so learn how to use the new paradigm to develop business objects―like CDS entities―and tell those objects to display text, respond to user actions, and more. Create service layers using SAP Gateway and the ABAP RESTful application programming model.
User Interfaces
Create SAPUI5 applications with SAP Web IDE or SAP Fiori elements, and find out how to develop web-based UIs with Web Dynpro ABAP. Walk through the new SAP Business Application Studio and Visual Studio Code IDEs.
*ABAP 7.55 and ABAP 2020
*ABAP in Eclipse
*SAPUI5
*ABAP RESTful application programming model
*Core data services (CDS)
*Test-driven development
*Business Object Processing Framework (BOPF)
*Service layer with SAP Gateway
*SALV
*abapGit
*ABAP2XLSX
*Web Dynpro ABAP
Dear Reader Notes on Usage Table of Contents Acknowledgments Introduction Structure of the Book The Example Application 1 Integrated Development Environment 1.1 Installation 1.1.1 Installing Eclipse 1.1.2 Installing SAP-Specific Add-Ons 1.1.3 Connecting Eclipse to a Backend SAP System 1.1.4 Upgrading Eclipse 1.2 ABAP-Specific Features 1.2.1 Initial Tour and Basic Tasks 1.2.2 Working on Multiple Objects at the Same Time 1.2.3 Creating a Method from the Calling Code 1.2.4 Extracting a Method 1.2.5 Refactoring: Moving Methods and Attributes 1.2.6 Deleting Unused Variables 1.2.7 Creating Instance Attributes and Method Parameters 1.2.8 Quick Fixes for Classes 1.2.9 Extracting Conditional Logic 1.2.10 Seeing Message Details 1.2.11 Renaming Repository Objects 1.2.12 Magic Numbers 1.2.13 ABAP 7.5+ Features 1.3 Eclipse-Specific Features 1.3.1 Neon (2016) 1.3.2 Oxygen (2017) 1.3.3 Photon (2018) 1.3.4 Eclipse 2020-03 1.4 Testing and Troubleshooting 1.4.1 Unit Testing 1.4.2 Debugging 1.4.3 Dynamic Log Points 1.4.4 Runtime Analysis 1.5 Customization Options with User-Defined Plug-Ins 1.5.1 Favorites List 1.5.2 Continuous Integration 1.5.3 Code Insight 1.5.4 Custom Quick Fixes 1.5.5 Custom Quick Fixes for ABAP Test Cockpit 1.6 The Future of IDEs for ABAP Development 1.6.1 SAP Web IDE 1.6.2 SAP Business Application Studio 1.6.3 Visual Studio Code 1.7 Summary 2 abapGit 2.1 Theory 2.2 Installation 2.2.1 Installing the abapGit Repository in Your SAP System 2.2.2 Keeping Your abapGit Version Up to Date 2.2.3 Watching the abapGit Repository 2.3 Storing and Moving Objects 2.3.1 abapGit versus SAPlink 2.3.2 Using Online Repositories 2.3.3 Using Offline Repositories 2.4 Dependency Management 2.4.1 APACK: Theory 2.4.2 APACK: Installation 2.4.3 APACK: Example 2.5 Branching 2.5.1 Project Collaboration: Sharing Solutions 2.5.2 Production Support 2.5.3 Utopian Dream 2.6 abapGit for Customizing 2.7 Summary 3 New Language Features in ABAP 3.1 Declaring and Creating Variables 3.1.1 Omitting Data Type Declarations 3.1.2 Creating Objects Using NEW 3.1.3 Filling Structures and Internal Tables while Creating Them Using VALUE 3.1.4 Filling Internal Tables from Other Tables Using FOR 3.1.5 Creating Short-Lived Variables Using LET 3.1.6 Enumerations 3.1.7 New Mathematical Operators 3.2 String Processing 3.3 Calling Functions 3.3.1 Avoiding Type Mismatch Dumps when Calling Functions 3.3.2 Using Constructor Operators to Convert Strings 3.3.3 Functions Expecting TYPE REF TO DATA 3.4 Conditional Logic 3.4.1 Omitting ABAP_TRUE 3.4.2 Using XSDBOOL as a Workaround for BOOLC 3.4.3 The SWITCH Statement as a Replacement for CASE 3.4.4 The COND Statement as a Replacement for IF/ELSE 3.5 Internal Tables 3.5.1 Table Work Areas 3.5.2 Reading from a Table 3.5.3 CORRESPONDING for Normal Internal Tables 3.5.4 MOVE-CORRESPONDING for Internal Tables with Deep Structures 3.5.5 Dynamic MOVE-CORRESPONDING 3.5.6 New Functions for Common Internal Table Tasks 3.5.7 Internal Table Queries with REDUCE 3.5.8 Grouping Internal Tables 3.5.9 Extracting One Table from Another 3.5.10 Virtual Sorting of Internal Tables 3.6 Object-Oriented Programming 3.6.1 Upcasting/Downcasting with CAST 3.6.2 Finding the Subclass of an Object Instance 3.6.3 CHANGING and EXPORTING Parameters 3.6.4 Changes to Interfaces 3.7 Search Helps 3.7.1 Predictive Search Helps 3.7.2 Search Help in SE80 3.8 Assorted 3.8.1 Unicode 3.8.2 ABAP Language Versions 3.8.3 Deprecation Concept 3.8.4 Clean ABAP 3.9 Summary 4 Exception Classes and Design by Contract 4.1 Types of Exception Classes 4.1.1 Static Check: Local or Nearby Handling 4.1.2 Dynamic Check: Local or Nearby Handling 4.1.3 No Check: Remote Handling 4.1.4 Deciding Which Type of Exception Class to Use 4.2 Designing Exception Classes 4.2.1 Creating the Exception 4.2.2 Declaring the Exception 4.2.3 Raising the Exception 4.2.4 Cleaning Up after the Exception Is Raised 4.2.5 Error Handling with RETRY and RESUME 4.3 Design by Contract 4.3.1 Preconditions and Postconditions 4.3.2 Class Invariants 4.3.3 Handling Violations 4.4 Summary 5 ABAP Unit and Test-Driven Development 5.1 Eliminating Dependencies 5.1.1 Identifying Dependencies 5.1.2 Breaking Up Dependencies Using Test Seams 5.1.3 Breaking Up Dependencies Properly 5.2 Implementing Test Doubles 5.2.1 Test Injection for Test Seams 5.2.2 Creating Test Doubles 5.2.3 Injection: Good Method 5.2.4 Injection: Better Method 5.3 Writing and Implementing Unit Tests 5.3.1 Test-Driven Development 5.3.2 Defining Test Classes 5.3.3 Implementing Test Classes 5.4 Optimizing the Test Process 5.4.1 Eclipse Support for the Unit Test Process 5.4.2 ABAP Support for the Unit Test Process 5.4.3 Test Double Framework 5.4.4 ABAP Unit Authority Check 5.4.5 Unit Tests with Massive Amounts of Data 5.4.6 Combinatorial Test Design 5.5 Summary 6 Database Programming with SAP HANA 6.1 The Three Faces of Code Pushdown 6.2 ABAP SQL 6.2.1 New Commands in ABAP SQL 6.2.2 Creating while Reading 6.2.3 Buffering Improvements 6.2.4 INNER JOIN Improvements 6.2.5 UNION 6.2.6 Code Completion in SELECT Statements 6.2.7 Filling a Database Table with Summarized Data 6.2.8 Common Table Expressions 6.2.9 IS INITIAL in SELECT Statements 6.2.10 Stricter Syntax Check 6.2.11 The Death of FOR ALL ENTRIES 6.2.12 Unit Testing ABAP SQL Statements 6.3 CDS Views and CDS Entities 6.3.1 Creating a CDS Entity in Eclipse 6.3.2 Choosing an Entity Type 6.3.3 Coding Annotations in the CDS Entity 6.3.4 Adding Authority Checks to a CDS Entity 6.3.5 Reading a CDS Entity from an ABAP Program 6.3.6 Creating Special Types of CDS Entities 6.3.7 Using Special CDS Entity Features 6.3.8 Unit Testing CDS Entities 6.4 ABAP Managed Database Procedures 6.4.1 Defining an AMDP in Eclipse 6.4.2 Implementing AMDP in Eclipse 6.4.3 Calling AMDP from an ABAP Program 6.4.4 Calling AMDP from inside a CDS Entity 6.5 Locating and Pushing Down Code 6.5.1 Finding Custom Code that Needs to Be Pushed Down 6.5.2 Which Technique to Use to Push Code Down 6.5.3 Example 6.6 Summary 7 Business Object Processing Framework 7.1 Manually Defining a Business Object 7.1.1 Creating the Object 7.1.2 Creating the Header (Root) Node 7.1.3 Creating an Item Node 7.2 Automatically Defining a Business Object Based on a CDS View 7.3 Using BOPF to Write a Dynpro-Style Program 7.3.1 Creating a Model Class 7.3.2 Queries: Checking Object Existence 7.3.3 Locking Objects 7.3.4 Performing Authority Checks 7.3.5 Determinations: Deriving Values from Other Values 7.3.6 Validations: Checking Data Integrity 7.3.7 Actions: Responding to User Input 7.3.8 Saving to the Database 7.3.9 Tracking Changes in BOPF Objects 7.4 Unit Testing BOPF Objects with BUnit 7.5 Using a Custom Interface (Wrapper) 7.6 Summary 8 Business Logic Using the ABAP RESTful Application Programming Model 8.1 ABAP RESTful Application Programming Model versus BOPF 8.1.1 Business Definition Language 8.1.2 Business Objects as First-Class Citizens 8.2 Coding Business Object CDS Entities 8.2.1 Coding Data Definitions 8.2.2 Coding CDS Projections 8.2.3 Coding Metadata Extensions 8.3 Coding Behavior Definitions and Projections 8.4 Coding Behavior Implementations 8.4.1 Creating a Behavior Class 8.4.2 Creating or Changing Objects 8.4.3 Locking Objects 8.4.4 Performing Authority Checks 8.4.5 Determinations: Deriving Values from Other Values 8.4.6 Validations: Checking Data Integrity 8.4.7 Actions: Responding to User Input 8.4.8 Feature Control 8.4.9 Saving the Changed Business Objects 8.4.10 Tracking Changes in ABAP RESTful Application Programming Model Objects 8.5 Calling CRUD Operations from ABAP 8.6 Summary 9 Service Layer 9.1 What Is SAP Gateway? 9.2 Transaction SEGW Service Layer: Manual Creation 9.2.1 Configuration 9.2.2 Coding 9.3 Transaction SEGW Service Layer: Automatic Creation 9.3.1 Creating an SAP Gateway Service by Pulling from a CDS View 9.3.2 Creating an SAP Gateway Service by Pushing from a CDS View 9.4 ABAP RESTful Application Programming Model Service Layer: Manual Creation 9.4.1 Creating a Service Definition 9.4.2 Creating a Service Binding 9.4.3 Creating Automated Unit Tests for the OData Service 9.5 ABAP RESTful Application Programming Model Service Layer: Automatic Creation 9.5.1 Making Sure the RAP Generator Is Available in Your System 9.5.2 Creating a JSON Configuration File 9.5.3 Pressing a Big, Red Button 9.6 Summary 10 ALV SALV Reporting Framework 10.1 Getting Started 10.1.1 Defining an SALV-Specific (Concrete) Class 10.1.2 Coding a Program to Call a Report 10.2 Designing a Report Interface 10.2.1 Report Flow Step 1: Creating a Container (Generic/Optional) 10.2.2 Report Flow Step 2: Initializing a Report (Generic) 10.2.3 Report Flow Step 3: Making Application-Specific Changes (Specific) 10.2.4 Report Flow Step 4: Displaying the Report (Generic) 10.3 Adding Custom Command Icons with Programming 10.3.1 Creating a Method to Automatically Create a Container 10.3.2 Changing ZCL_BC_VIEW_SALV_TABLE to Fill the Container 10.3.3 Changing the INITIALIZE Method 10.3.4 Adding the Custom Commands to the Toolbar 10.3.5 Sending User Commands from the Calling Program 10.3.6 Adding Separators 10.4 Editing Data 10.4.1 Creating a Custom Class to Hold the Standard SALV Model Class 10.4.2 Changing the Initialization Method of ZCL_BC_VIEW_SALV_TABLE 10.4.3 Adding a Method to Retrieve the Underlying Grid Object 10.4.4 Changing the Calling Program 10.4.5 Coding User Command Handling 10.5 Handling Large Amounts of Data with CL_SALV_GUI_TABLE_IDA 10.5.1 Basic Example 10.5.2 Complex Example 10.6 Open-Source Fast ALV Grid Object 10.7 Making SAP GUI Look Like SAP Fiori 10.8 Summary 11 ABAP2XLSX and Beyond 11.1 The Basics 11.1.1 How XLSX Files Are Stored 11.1.2 Downloading ABAP2XLSX 11.1.3 Creating XLSX Files Using ABAP 11.2 Enhancing Custom Reports with ABAP2XLSX 11.2.1 Converting an ALV to an Excel Object 11.2.2 Changing Number and Text Formats 11.2.3 Establishing Printer Settings 11.2.4 Using Conditional Formatting 11.2.5 Creating Spreadsheets with Multiple Worksheets 11.2.6 Using Graphs and Pie Charts 11.2.7 Embedding Macros 11.2.8 Emailing the Result 11.2.9 Adding Hyperlinks to SAP Transactions 11.3 Tips and Tricks 11.3.1 Using the Enhancement Framework for Your Own Fixes 11.3.2 Creating a Reusable Custom Framework 11.4 Beyond Spreadsheets: Microsoft Word Documents 11.4.1 Installing the Tool 11.4.2 Creating a Template 11.4.3 Filling Out the Template Programmatically 11.5 Summary 12 Web Dynpro ABAP and Floorplan Manager 12.1 The Model-View-Controller Concept 12.1.1 Model 12.1.2 View 12.1.3 Controller 12.2 Building the WDA Application 12.2.1 Creating a Web Dynpro Component 12.2.2 Declaring Data Structures for the Controller 12.2.3 Establishing View Settings 12.2.4 Defining the Windows 12.2.5 Navigating between Views inside the Window 12.2.6 Enabling the Application to be Called 12.3 Coding the WDA Application 12.3.1 Linking the Controller to the Model 12.3.2 Selecting Monster Records 12.3.3 Navigating to the Single-Record View 12.4 Using Floorplan Manager to Create WDA Applications 12.4.1 Creating an WDA Application using FPM Manually 12.4.2 Creating a WDA Application Using FPM via BOPF Integration 12.5 Unit Testing WDA Applications 12.6 Making WDA Look Like SAP Fiori 12.6.1 Enabling SAP Fiori in WDA via Classic Configuration 12.6.2 Enabling SAP Fiori in WDA via New Customizing UI 12.7 Touch Enablement of WDA Applications 12.8 Summary 13 SAPUI5 13.1 Basics 13.1.1 What Is SAPUI5? 13.1.2 SAPUI5 versus SAP Fiori 13.2 Modern IDEs 13.2.1 VS Code 13.2.2 SAP Business Application Studio 13.3 Creating an SAPUI5 Application Manually 13.3.1 VS Code 13.3.2 SAP Business Application Studio 13.4 Creating an SAPUI5 Application Automatically 13.4.1 VS Code 13.4.2 SAP Business Application Studio 13.5 Extension Tools 13.5.1 Guided Development 13.5.2 Adding Elements with OpenUI5 13.6 Importing SAPUI5 Applications into SAP ERP 13.6.1 Storing the Application inside SAP 13.6.2 Testing the SAPUI5 Application from within SAP ERP 13.7 Unit Testing SAPUI5 Applications 13.7.1 ESLint 13.7.2 QUnit 13.7.3 OPA 13.7.4 Gherkin 13.7.5 UIVeri5 and the Test Recorder 13.8 Summary 14 ABAP Channels 14.1 General Concepts 14.1.1 ABAP Messaging Channels 14.1.2 ABAP Push Channels 14.1.3 ABAP Daemons 14.2 ABAP Messaging Channels: SAP GUI Example 14.2.1 Coding the Sending Application 14.2.2 Coding the Receiving Application 14.2.3 Watching the Applications Communicate 14.3 ABAP Push Channels: SAPUI5 Example 14.3.1 Coding the Receiving (Backend) Components 14.3.2 Coding the Sending (Frontend) Application 14.4 Internet of Things Relevance 14.5 Summary A Conclusion B The Author Index Service Pages Legal Notes
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.