1. ABAP Course
Chapter 4 – Database accesses
Lecturer: André Bögelsack, UCC Technische Universität München
Author: Valentin Nicolescu, André Bögelsack
ABAP Course André Bögelsack, Valentin Nicolescu 1
2. Copyright 2008 UCC TU München
All rights reserved
Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne
die ausdrückliche schriftliche Genehmigung durch HCC TU München nicht gestattet. In dieser Publikation enthaltene Informationen können
ohne vorherige Ankündigung geändert werden.
Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® und SQL Server® sind eingetragene Marken der Microsoft Corporation.
IBM®, DB2®, OS/2®, DB2/6000®, Parallel Sysplex®, MVS/ESA®, RS/6000®, AIX®, S/390®, AS/400®, OS/390® und OS/400® sind eingetragene
Marken der IBM Corporation.
ORACLE® ist eine eingetragene Marke der ORACLE Corporation.
INFORMIX®-OnLine for SAP und Informix® Dynamic ServerTM sind eingetragene Marken der Informix Software Incorporated.
UNIX®, X/Open®, OSF/1® und Motif® sind eingetragene Marken der Open Group.
Citrix®, das Citrix-Logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®, VideoFrame®, MultiWin® und andere hier erwähnte
Namen von Citrix-Produkten sind Marken von Citrix Systems, Inc.
HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C®, World Wide Web Consortium, Massachusetts Institute of
Technology.
JAVA® ist eine eingetragene Marke der Sun Microsystems, Inc.
JAVASCRIPT® ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und
implementierten Technologie.
SAP, SAP Logo, R/2, RIVA, R/3, SAP ArchiveLink, SAP Business Workflow, WebFlow, SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit,
mySAP, mySAP.com und weitere im Text erwähnte SAP-Produkte und -Dienstleistungen sowie die entsprechenden Logos sind Marken oder
eingetragene Marken der SAP AG in Deutschland und anderen Ländern weltweit. MarketSet und Enterprise Buyer sind gemeinsame
Marken von SAP Markets und Commerce One.
Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen.
Die Verwendung der Screenshots wurde mit dem jeweiligen Eigner abgesprochen.
ABAP Course André Bögelsack, Valentin Nicolescu 2
3. Agenda
1. Data dictionary
2. SAP flight example
3. Database operations in SAP
4. SAP OpenSQL
5. Types of database changes
6. Types of entry help
ABAP Course André Bögelsack, Valentin Nicolescu 3
4. Data dictionary
• Data dictionary = global directory for data types
• Assignment of help texts and explanations for data types in
different languages
• ERM can be shown as a figure automatically
• Most important objects: structure, table, data element and
domain
ABAP Course André Bögelsack, Valentin Nicolescu 4
5. Data dictionary
Domain ZY_ID INT4 Data type
Data element ZY_ID ZZ_ID
Field ZY_ID ZZ_ID
Structure Field
Table Field
Field
ABAP Course André Bögelsack, Valentin Nicolescu 5
6. Data dictionary
• Menu path: Tools • ABAP Workbench • Development •
Dictionary
• TA SE11
• View, edit, delete, create tables, data types, domains definitions
etc.
• Tables and views from the ABAP dictionary represent tables and
views from the database
• User interface are generated automatically when changing views,
tables etc.
• Table may be changed after they are created without losing data
• SAP tables may be extended by APPEND structures
ABAP Course André Bögelsack, Valentin Nicolescu 6
7. Data browser
• Menu path: Tools • ABAP Workbench • Overview • Data
Browser
• TA SE16
• View table content
• Add new entries to tables when adding is permitted for the table
• Browse the entry help table content
• Copy table content to transport request
• Download table content
ABAP Course André Bögelsack, Valentin Nicolescu 7
8. Overview about all objects
• Database table
• View
• Data type
– Data element
– Structure
– Database table
– Table types
– Views
– Class / interface
• Type group
• Domain
• Search help
• Lock object
ABAP Course André Bögelsack, Valentin Nicolescu 8
9. Visualization
• Foreign key relationships can be visualized in data dictionary
• Table SFLIGHT
ABAP Course André Bögelsack, Valentin Nicolescu 9
10. SAP flight example
• Created and maintained by SAP to demonstrate database
operations
• Contains exercise data for airline, flight connection number, flight
date, airfare etc.
• Report for data generation:
S_FLIGHT_MODEL_DATA_GENERATION
• SAP trainings, examples from books build refer to the flight
example
ABAP Course André Bögelsack, Valentin Nicolescu 10
12. SAP OpenSQL
• Independent from database
Application Server Database Server
ABAP-Interpreter DB-Interface SQL-Database
Select * from OpenSQL Native SQL
DB data DB data
Exec SQL. Native SQL
Select * from Data
End Exec. DB data
ABAP Course André Bögelsack, Valentin Nicolescu 12
13. OpenSQL instructions
• Select:
– SELECT / SELECT SINGLE
– * / field 1 ..field n /
– FROM table / view
– INTO structure / internal table
– WHERE condition
• Aggregation:
– MAX, MIN, AVG
– SUM, COUNT
• Joins:
– Left outer join
– Inner join
– View
ABAP Course André Bögelsack, Valentin Nicolescu 13
14. Procedure for database access
General:
• Be specific to decrease the load on the database
• Access to database takes 10,000 time longer than access to buffers
• Avoid table scans, use indexes
Procedure:
1. Read database data into internal tables
• Internal tables are tables for holding data during runtime
2. Change data per row
• Use workareas to hold one row of the table and change data in the
workarea
3. Write changes back to database
ABAP Course André Bögelsack, Valentin Nicolescu 14
15. Procedure for database access
Internal tables and workareas:
wa_spfli
Workarea • Use the workarea to modify
LH 0400 (one row) one data set
it_spfli
Internal table • Use the internal table to store
AA 0017 (selected content) the selected database content
temporarily
LH 0400 • Internal tables are deleted
after program is finished
Database Database table • Use the database to read/write
(whole content) data
ABAP Course André Bögelsack, Valentin Nicolescu 15
16. Types of database changes
Modify instruction:
MODIFY <dbtable> [CLIENT SPECIFIED] FROM <workarea>.
MODIFY <dbtable> [CLIENT SPECIFIED] FROM TABLE
<internaltable>
• Modify = Update – the command updates the database table if
the database table already contains dataset
• Modify = Insert – the command inserts new datasets into the
database table
Delete instruction:
DELETE FROM <dbtable> WHERE [SQL statement].
ABAP Course André Bögelsack, Valentin Nicolescu 16
17. Entry help
• Entry help uses a table in the background
• Predefined entry help for a table
ABAP Course André Bögelsack, Valentin Nicolescu 17