Report Layout Report Heading Report Body Column Heading Report Title.

Slides:



Advertisements
Similar presentations
ABAP Data/Internal Tables ITP 321 Anthony Borquez & Jim Graver.
Advertisements

1 ABAP Basics III Northern Arizona University College of Business.
ABAP/4 PROGRAMMING Internal Table 講 師:呂 昇 燦 2000 年 9 月 26 日.
® Microsoft Office 2010 Word Tutorial 3 Creating a Multiple-Page Report.
ABAP Chapter 2 Report Statement Write & Format Statement Flow Control in ABAP Manipulating Character Data Report Driven : Page Report (List Header)
Lecture 1 Introduction to the ABAP Workbench
 SAP AG CSU Chico Searching and Selecting Data from R/3 ABAP/4 class Gail Corbitt - Fall 1998.
ABAP Chapter 6 Message Debugging File Transfer Type Group.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
® Microsoft Office 2010 Word Tutorial 3 Creating a Multiple-Page Report.
 SAP AG CSU Chico MINS298c ABAP/4 Programming Gail Corbitt Fall 1998 Chapter 1-3.
University of Southern California Enterprise Wide Information Systems ABAP/ 4 Programming Language Instructor: Richard W. Vawter.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Flow of Control MINS298c Fall 1998 Chapter 9. Overview ABAP Programming Structures for: –Iteration –Decisions Control Flow –If … Then –Do & While loops.
Introduction To Form Builder
Chapter 2 Querying a Database
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
8 Copyright © 2004, Oracle. All rights reserved. Creating LOVs and Editors.
ABAP Chapter 3 Open SQL Internal Table. SAP System : 3 Tier Client/Server DB Server SAP Application Server SAP GUI Presentation Server SAP GUI.
0 UMN 2011 ERP Terapan ABAP Introduction Session # 8.
Chapter 2 Querying a Database MICROSOFT ACCESS 2010.
ASP.NET Programming with C# and SQL Server First Edition
Control Break Report ALV Report
© 2002 ComputerPREP, Inc. All rights reserved. Excel 2000: Database Management and Analysis.
ABAP/4 Course. General n Workbench n Program maintenance n Screen Painter n Menu Painter n Transactions n ABAP/4 Query n Translation menu.
WEEK 3 AND 4 USING CLIENT-SIDE SCRIPTS TO ENHANCE WEB APPLICATIONS.
SAP ABAP DemoNawin's Training Acadamy1. Enterprise Wide Information Systems ABAP/ 4 Programming Language Mr. RG Nawin Krishna, Bsc(cs);Msc(psychology);MBA(HR);SAP(HCM/HR),
Data Modeling for Integrating SAP with other Applications.
Microsoft Access Lesson 1 Lexington Technology Center February 11, 2003 Bob Herring On the Web at
Automating Database Processing Chapter 6. Chapter Introduction Design and implement user-friendly menu – Called navigation form Macros – Automate repetitive.
In the next step you will enter some data records into the table. This can be done easily using the ‘Data Browser’. The data browser can be accessed via.
Creating Dialog (ABAP Dynpro) Programs. Slide 2 Introduction All of the ERP systems operate similarly with regard to transactional integrity They all.
0 UMN 2011 ERP Terapan Dialogs Programming Session # 11.
User Dialog Overview. Update Statement TABLES customers. SELECT SINGLE * FROM customers WHERE id = 1. IF sy-subrc = 0. customers-name = ‘John’. UPDATE.
Access Manual 2 By Dhawala Kovuri Elham S.Khorasani Ismail Guneydas.
Introduction to ABAP Selection Screens. Slide 2 Screens (Types) There are three types of screens Selection screens get parameter input for reports List.
MIS 3020 ABAP Programming Lecture 2 Elementary & User Defined Types Domains, Elements, Variables/Fields.
ITEC3612 Enterprise Architecture and Resource Planning (Lab) ABAP Programming (2)
McGraw-Hill Technology Education © 2004 by the McGraw-Hill Companies, Inc. All rights reserved. Office Access 2003 Lab 2 Modifying a Table and Creating.
ITEC3612 Enterprise Architecture and Resource Planning (Lab) ABAP Programming (1)
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
ABAP Programming MINS298c Fall Overview Hiding in ABAP Primitive Pagination ABAP does Windows Making Messages Assignments.
Chapter Fourteen Access Databases and SQL Programming with Microsoft Visual Basic th Edition.
Editing Basics Lesson 8. Skills Matrix SKILL #MATRIX SKILL 2.2.1Cut, copy, and paste text 2.2.2Find and replace text 4.1.1Insert building blocks in documents.
ABAP/4 PROGRAMMING Data Dictionary(1) 講 師:呂 昇 燦. Data Browser - SE16 ABAP Workbench tool for displaying information about table entries. You use the Data.
SELECT-OPTIONS. SELECT-OPTIONS Syntax TABLES customers. SELECT-OPTIONS id FOR customers-id. START-OF-SELECTION.
Mantova, September 2015 SAP ECC 6.0 DEVELOPMENT ABAP SAP develop enviroment & Transport organizer.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
SAP DEVELOPMENT BASICS Bohuslav Tesar. TRAINING OVERVIEW Amazing life of ABAP developer ;) SAP introduction ABAP basics ABAP Reporting.
Change Display of a Key Figure While in the Change Query (Local Definition) Hiding 1.Right click.
Microsoft Access Lesson 5 Lexington Technology Center February 25, 2003 Bob Herring On the Web at
Techniques for List Creation (2) Data formatting and control level processing Basics for Interactive Lists Detail lists The Program Interface Interactive.
Introduction to ABAP/4 A dvanced B usiness A pplication P rogram – Release 4 Why Use ABAP? –Programming language of SAP –Main purpose is to provide additional.
21 Copyright © 2009, Oracle. All rights reserved. Working with Oracle Business Intelligence Answers.
24 Copyright © 2009, Oracle. All rights reserved. Building Views and Charts in Requests.
1 Organizing Information in Tables A table is information arranged in horizontal rows and vertical columns When you first insert a table into a document,
 / 1 Optimize Database Access From ABAP QL.  / 2 Copyright Please note: No part of this Training Session may be reproduced or transmitted in any form.
Programming with Microsoft Visual Basic 2012 Chapter 14: Access Databases and SQL.
SAP Tuning 실무 SK㈜ ERP TFT.
1 Chapter 6: Creating Oracle Data Block Forms. 2 Forms  Application with a graphical user interface that looks like a paper form  Used to insert, update,
ABAP Workbench Fundamentals
Running a Forms Developer Application
Do-more Technical Training
Creating LOVs and Editors
ABAP EVENTS & Interaction
Northern Arizona University College of Business
ABAP/4程序员之路——第3天 上海华和得易信息技术有限公司 王勇.
Interactive List Techniques
Unit 8 Search Help 、 Unit 7 Views
Presentation transcript:

Report Layout Report Heading Report Body Column Heading Report Title

Standard Page Heading Execute

Report Statement : Standard Heading REPORT [NO STANDARD PAGE HEADING]. REPORT ztest1 NO STANDARD PAGE HEADING.

No Standard Page Heading Execute

WRITE …Column Number… WRITE: 10 ‘Hello’, 50 ‘World’.

Report Statement : Line Size REPORT [LINE-SIZE no. of columns]. REPORT ztest LINE-SIZE 255. sy-linsz

Exercise Column : 50Column : 170

WRITE Statement * Write data WRITE ‘Hello World’. WRITE: ‘OK’, ‘Test data’. WRITE: /15(10) ‘ABCDEFGHIJKLMNOPQ’. WRITE /20 ‘Test data’.

Breaking to a New Line * Write data WRITE: / ‘First Line’, ‘Data 1’, / ‘Second Line’,‘Data 2’, /(20) ‘Third Line’,‘Data 3’, /35 ‘Fourth Line’,‘Data 4’. sy-colno

Exercise Column : 50 Line : 1 Column : 170 Line : 2

Creating Lists ABAP statement that create list WRITE ULINE SKIP The complete report list will appears automatically at the end of the processing block

List Buffer Dialog WP TaskHandler Dynpro Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer WRITE,SKIP,ULINE User Context

Inserting Blank Lines(SKIP) *Skip Statement SKIP. WRITE: ‘Hello World’, sy-linno. SKIP. WRITE: ‘Test 1’. SKIP 5. WRITE: ‘Test 2’. SKIP TO LINE 20. WRITE ‘This is line 20’.

NEW-LINE NEW-LINE WRITE ‘Hello World’. NEW-LINE. WRITE ‘OK’. WRITE ‘Hello World’. WRITE / ‘OK’. =

Exercise Column : 50 Line : 5 Column : 170 Line : 7

Inserting Horizontal Lines(ULINE) * Uline WRITE: ‘Hello World’. ULINE /1(20). WRITE: /(20) sy-uline. WRITE: / sy-vline, 20 sy-vline. ULINE /(20). WRITE: / ‘This is an underline’. ULINE.

Frame Example

Frame ULINE: /1(45). WRITE: /1 sy-vline, 'Column #1', 15 sy-vline, 'Column #2', 30 sy-vline, 'Column #3', 45 sy-vline. ULINE /(45).

Exercise I sy-datum sy-uzeit

FORMAT Statement FORMAT [COLOR ]. [COLOR OFF].

FORMAT Statement FORMAT COLOR 1. WRITE: / ‘Hello World’, ‘Test’ COLOR 7. FORMAT COLOR OFF.

FORMAT COLOR FORMAT COLOR col_heading. “color 1 FORMAT COLOR col_normal. “color 2 FORMAT COLOR col_total. “color 3 FORMAT COLOR col_key. “color 4 FORMAT COLOR col_positive. “color 5 FORMAT COLOR col_negative. “color 6 FORMAT COLOR col_group. “color 7 FORMAT COLOR col_background. “color 0

Color Using Example

Exercise I

Text Symbol  Text Element  Text Symbols  Text Symbol Text Text 2 Text 1 REPORT ztest. WRITE: text-001, text

Text Symbol WRITE: / text-001.

CONSTANTS * Constant variable CONSTANTS ctext TYPE string VALUE ‘Hello World’. WRITE / ctext.

Text Symbol : Language Translation

Options of the WRITE Statement * Write Syntax WRITE var [NO-ZERO] [NO-SIGN] [NO-GROUPING] [NO-GAP] [DECIMALS no of decimals]

Suppressing Zero With Blanks (NO-ZERO) * No Zero DATA: number(10) TYPE N VALUE 23. WRITE: number, number NO-ZERO.

Suppressing Number(+ / -) Sign * No Sign DATA: v_integer TYPE i VALUE -1. WRITE: v_integer, v_integer NO-SIGN.

NO-GROUPING * No grouping DATA: v_integer TYPE i VALUE WRITE: v_integer, v_integer NO-GROUPING.

NO-GAP * No gap WRITE: ‘Hello’ NO-GAP, ‘World’.

DECIMALS * Decimals DATA: v_pack TYPE P DECIMALS 4 VALUE ‘ ’. WRITE: v_pack, v_pack DECIMALS 2.

Formatting Options * Format options of WRITE statement * LEFT-JUSTIFIED for Numeric data * RIGHT-JUSTIFIED for Character data * CENTERED DATA tmp1(20) VALUE ‘test’. WRITE: tmp1 CENTERED. test tmp1

STRLEN Built-in Function DATA: tmp(20) VALUE ‘Test String’, count TYPE i. count = strlen( tmp ). WRITE count.

Include Program You can create a program with program type include program in the program attribute Include program do not have to have an introductory statement During the syntax check and during program generation by the ABAP compiler, the INCLUDE statement is replaced by the source text of the defined include program DATA tmp(10). DATA tmp1 TYPE i. DATA tmp2 TYPE p. DATA tmp3. Include Program : ZINCLUDE1 REPORT ztest1. INCLUDE zinclude1. … REPORT ztest2. INCLUDE zinclude1. …

Flow Control in ABAP

 Branching ==> IF, CASE.  Looping ==> DO, WHILE.

IF Statement IF. ELSEIF. ELSEIF. ELSE. ENDIF.

IF Statement IF sy-mandt = ‘100’. WRITE: / ‘This is Production Client’. ELSEIF sy-mandt = ‘800’ or sy-mandt = ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt. ELSE. WRITE: / ‘This is Test Client’. ENDIF.

CASE Statement CASE. WHEN. WHEN.... WHEN OTHERS. ENDCASE.

CASE Statement CASE sy-mandt. WHEN ‘100’. WRITE: / ‘This is Production Client’. WHEN ‘800’ or ‘805’. WRITE: / ‘This is Training Client’. WRITE / sy-mandt. WHEN OTHERS. WRITE: / ‘This is Test Client’. ENDCASE.

DO Statement DO. WRITE sy-index. IF sy-index = 3. EXIT. ENDIF. WRITE: sy-index. ENDDO. Loop Counter

DO Statement DO 10 TIMES. WRITE / sy-index. ENDDO. Loop Counter

WHILE Statement DATA: count TYPE i value 1. WHILE count <> 4. WRITE: sy-index. count = count + 1. ENDWHILE. Loop Counter WHILE sy-index <> 4. WRITE: sy-index. ENDWHILE.

Logical Expressions >,GT <,LT >=, =>, GE <=, =<, LE =, EQ <>, ><, NE BETWEEN AND IS INITIAL

Arithmetic Operators +, -, *, /, ** DIV MOD Example : 9 / 2 = DIV 2 = MOD 2 = 1 2 ** 4 = 16

ABAP : Data Retrieval Open SQL (SELECT)

SAP System : 3 Tier Client/Server DB Server SAP Application Server SAP GUI Presentation Server SAP GUI

SAP SYSTEM (3 Tier Architecture) Presentation Layer (Windows based) Application Layer (Windows Server/UNIX) Database Server Database Layer (Windows Server/UNIX) M SAP Instance Oracle Informix DB2 MS SQL Server MaxDB G Dispatcher Request Queue D D B V S E SAP Buffer (Shared Mem) SAP GUI

Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP stateme nt Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI REPOSRC Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. SAP System : Dialog Processing customers

TaskHandler DYNPRO Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer Database Server Dialog Work Process User Context Dialog Work Process Architecture Result Set Memory

Open SQL SELECT...

Data Objects : Tables Structure Memory Space Structure Tables Structure Internal Table Variable Constants

DB Interface SAP Application Server Local Memory Dialog WP TaskHandler DB Interface Result Set Database Server ~ 32 KB in length ABAP Processor DYNPRO Memory Space List Buffer

Example Tables in DB carridconnidcityfromcitytodistance LH0400LANY100 LH0402BKNY540 SQ0110SQBK250 id namecity 1JohnNew York 2PeterSingapore 3DavidLondon customers spfli

Example Tables in DB carridconnidfldateprice LH LH LH SQ sflight

SELECT Overview SELECT Which Columns? FROM Which Table? INTO Where to place? WHERE Which Lines?

SELECT Statement Select multiple records from database Select single record from database SELECT * FROM customers. … ENDSELECT. SELECT SINGLE * FROM customers WHERE id = 1. …

SELECT Multiple Records : SPFLI TABLES spfli. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli-connid, spfli-cityfrom, spfli-cityto. ENDSELECT. spfli-carrid spfli-connid spfli-cityfrom spfli-cityto

SELECT Multiple Records : SFLIGHT TABLES sflight. SELECT * FROM sflight. WRITE: / sflight-carrid, sflight-connid, sflight-fldate, sflight-price. ENDSELECT. sflight-carrid sflight-connid sflight-fldate sflight-price

Exercise CUSTOMERS-ID CUSTOMERS-NAME CUSTOMERS-CITY

SELECT Multiple Records : CUSTOMERS TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.

Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory DB Interface Result Set Memory Space List buffer User Context

SELECT Statement Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT * FROM customers. … ENDSELECT. SELECT * FROM customers; 2. Loop with data in result set and transfer each record to work area in memory space SELECT * FROM customers. … ENDSELECT. Table Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface

Select Multiple Records : SPFLI TABLES spfli. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli-connid, spfli-cityfrom,spfli-cityto. ENDSELECT.

SELECT Statement Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT * FROM spfli. … ENDSELECT. SELECT * FROM spfli; 2. Loop with data in result set and transfer each record to work area in memory space SELECT * FROM spfli. … ENDSELECT. Table Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface

SELECT Multiple Records : CUSTOMERS TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.

SELECT INTO Table Structure TABLES customers. SELECT * FROM customers INTO customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT.

SELECT … INTO Work Area DATA wa LIKE customers. SELECT * FROM customers INTO wa. WRITE: / wa-id, wa-name, wa-city. ENDSELECT.

Table TRBAT

SELECT … FROM … TABLES trbat. SELECT * FROM trbat. WRITE: / trbat-function. ENDSELECT.

SELECT Statement : No Data Found 1. Transform open SQL to DB SQL and return result set into result set work area (If no data found in DB table) SELECT * FROM trbat. … ENDSELECT. SELECT * FROM trbat; 2. Go to statement after ENDSELECT SELECT * FROM trbat. … ENDSELECT. sy-subrc > 0 ABAP Processor DB Interface

SELECT … FROM … TABLES trbat. SELECT * FROM trbat. WRITE: / trbat-function. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No data found!!!’. ENDIF.

SELECT Multiple Records TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No Data Found’. ENDIF.

Exercise I customers-id customers-name customers-city

SELECT with WHERE Clause

Loop Processing with Restriction TABLES customers. SELECT * FROM customers WHERE city = ‘Bangkok’. WRITE: / customers-id, customers-name. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘no data’. ENDIF.

Loop Processing with Restriction TABLES spfli. SELECT * FROM spfli WHERE cityfrom = ‘FRANKFURT’. WRITE: / spfli-carrid, spfli-cityto. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘no data’. ENDIF.

Select With Range TABLESsflight. SELECT * FROM sflight WHERE price BETWEEN 100 AND WRITE: / sflight-carrid, sflight-connid, sflight-price. ENDSELECT.

SELECT … With IN List TABLES sflight. SELECT * FROM sflight WHERE price IN ( 100, 1000 ). WRITE:/ sflight-carrid, sflight-connid, sflight-price. ENDSELECT.

SELECT … With Template TABLES customers. SELECT * FROM customers WHERE name LIKE ‘_r%’. WRITE: / customers-id,customers-name. ENDSELECT.

Select Single Record

TABLES customers. SELECT SINGLE * FROM customers WHERE id = 1. IF sy-subrc = 0. WRITE: / customers-id, customers-name, customers-city, customers-discount. ELSE. WRITE: / ‘Data not found’. ENDIF.

Select Column List

Select * : Example SELECT * bkpf-belnr bkpf-gjahr

Select Column : Using Structure bkpf-belnr bkpf-gjahr

SELECT …* FROM … TABLES customers. SELECT * FROM customers. WRITE: / customers-id, customers-name, customers-city. ENDSELECT. IF sy-subrc <> 0. WRITE: / ‘No data found’. ENDIF.

Reading Selected Column DATA: BEGIN OF wa, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF wa. SELECT id name city INTO wa FROM customers. WRITE: / wa-id, wa-name, wa-city. ENDSELECT. IF sy-subrc <> 0. WRITE / ‘No Data found’. ENDIF. customers-id customers-name customers-city 1 2

Exercise I customers-id customers-name customers-city ห้ามใช้ SELECT *

ABAP : Inner Join

Flight Data Model

Tables Join Question: Select carrid, connid and cityto from spfli and fldate,price from sflight where carrid = ‘ LH ’ spfli-carrid spfli-connid sflight-fldate spfli-cityto sflight-price เงื่อนไข : ให้แสดงข้อมูลเฉพาะสายการบิน ‘LH’ เท่านั้น

Open SQL – Inner Join TABLES: spfli,sflight. SELECT spfli~carrid spfli~connid sflight~fldate spfli~cityto sflight~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli INNER JOIN sflight ON spfli~carrid = sflight~carrid AND spfli~connid = sflight~connid WHERE spfli~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price. ENDSELECT.

Open SQL – Inner Join TABLES: A,B. SELECT A~a B~b B~c INTO (A-a,B-b,B-c) FROM A INNER JOIN B ON A~b = B~b. WRITE: / A-a,B-b,B-c. ENDSELECT. ab a1b1 a2b2 Table : A bc b1c1 b2c2 b3c3 Table : B A-a B-b B-c

SELECT INNER JOIN Working Steps 1. Transform open SQL to DB SQL and return result set into result set work area SELECT A~a B~b B~c …. FROM A INNER JOIN B … ENDSELECT. SELECT A.a, B.b, B.c FROM A,B WHERE A.b = B.b; 2. Loop with data in result set and transfer each record to work area in memory space SELECT A~a B~b B~c … ENDSELECT. Tables Structure in Memory Space sy-subrc = 0 ABAP Processor DB Interface

Open SQL – Inner Join ab a1b1 a2b2 Table : A bc b1c1 b2c2 b3c3 Table : B A~aB~bB~c a1b1c1 a2b2c2 Single Result Table(Result set) Select … inner join.. Endselect. Database Server Application Server 1 2

Open SQL – Alias Table Name TABLES: spfli,sflight. SELECT a~carrid a~connid b~fldate a~cityto b~price INTO (spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price) FROM spfli AS a INNER JOIN sflight AS b ON a~carrid = b~carrid and a~connid = b~connid WHERE a~carrid = ‘LH’. WRITE: / spfli-carrid, spfli-connid, sflight-fldate, spfli-cityto, sflight-price. ENDSELECT.

Exercise : Sale Document VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) ‘ ’

Open SQL – Inner Join > 2 Tables TABLES: A,B,C. SELECT A~a B~c C~y INTO (A-a,B-c,C-y) FROM A INNER JOIN B ON A~b = B~b INNER JOIN C ON C~x = B~c. WRITE: / A-a,B-c,C-y. ENDSELECT. ab …… Table : A bc …... … …… Table : B xy …... Table : C A-a B-c C-y

Flight Data Model

Open SQL – Inner Join > 2 Tables REPORT ZINNERJOIN02 NO STANDARD PAGE HEADING. TABLES: sflight,sbook,scustom. SELECT a~carrid a~connid a~fldate b~bookid b~customid c~name b~luggweight INTO (sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight) FROM sflight AS a INNER JOIN sbook AS b ON a~carrid = b~carrid AND a~connid = b~connid AND a~fldate = b~fldate INNER JOIN scustom AS c ON c~id = b~customid. WRITE: / sflight-carrid,sflight-connid,sflight-fldate, sbook-bookid,sbook-customid,scustom-name,sbook-luggweight. ENDSELECT. SFLIGHT-CARRID SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT

Exercise : Sale Document VBAK-VBELN VBAK-ERDAT KNA1-NAME1 VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) = ‘ ’

Flight Data Model

Flight Information : Inner Join SFLIGHT-CARRID SCARR-CARRNAME SFLIGHT-CONNID SFLIGHT-FLDATE SBOOK-BOOKID SBOOK-CUSTOMID SCUSTOM-NAME SBOOK-LUGGWEIGHT

Internal Table

Data Objects : Internal Table Memory Space Structure Tables Structure Internal Table Variable Constants

INTERNAL TABLE wa (Structure) idnamecity Internal Table tab (Internal Table) idnamecity Header Line Table Bodies ‘ ’ Structure

DATA:BEGIN OF wa, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF wa. wa-id = 1. wa-name = ‘John’. wa-city = ‘Bangkok’. WRITE: / wa-id, wa-name.

INTERNAL TABLE DATA:BEGIN OF tab OCCURS 10, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF tab.

INTERNAL TABLE DATA:BEGIN OF tab OCCURS 0, id LIKE customers-id, name LIKE customers-name, city LIKE customers-city, END OF tab.

USING ABAP DICTIONARY STRUCTURE DATA:BEGIN OF tab OCCURS 0. INCLUDE STRUCTURE customers. DATAEND OF tab.

INTERNAL TABLE USING LIKE DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. idnamecity Header Line Table Bodies 8 KB tab (Internal Table) ‘ ’

Append And Read Data DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. tab-id = 1. tab-name = ‘John’. tab-city = ‘Bangkok’. APPEND tab. tab-id = 2. tab-name = ‘Peter’. tab-city = ‘London’. APPEND tab. LOOP AT tab. WRITE: / tab-id, tab-name, tab-city. ENDLOOP.

Reading Data From Internal Table DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. SELECT * FROM customers INTO TABLE tab. IF sy-subrc = 0. LOOP AT tab. WRITE: / tab-id, tab-name,tab-city. ENDLOOP. ELSE. WRITE: / ‘No Data’. ENDIF.

Access Database Without Internal Table

Access Database Using Internal Table

BKPF-BELNR BKPF-GJAHR

SELECT … ENDSELECT Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface John Peter David List buffer Result Set 3 | David WA Structure 1 2

SELECT …INTO TABLE … Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface List buffer Result Set 1 2 Internal Table

Reading Data From Internal Table DATA: BEGIN OF tab OCCURS 0, id LIKE customers-id, name LIKE customers-name, END OF tab. SELECT id name FROM customers INTO TABLE tab. IF sy-subrc = 0. LOOP AT tab. WRITE: / tab-id, tab-name. ENDLOOP. ELSE. WRITE: / ‘No Data’. ENDIF customers-id customers-name

Exercise I : Change Using Internal Table

SORTING INTERNAL TABLE (SORT) DATA tab LIKE customers OCCURS 0 WITH HEADER LINE. … SORT tab BY name. SORT tab BY name ASCENDING city DESCENDING.

INTERNAL TABLE PROCESSING... LOOP AT tab. WRITE: / tab-d, tab-name. ENDLOOP. LOOP AT tab WHERE city = ‘Bangkok’. WRITE: / tab-id, tab-name. ENDLOOP. LOOP AT tab FROM 1 TO 10. WRITE: / sy-tabix,tab-id, tab-name. ENDLOOP. Record Pointer

Internal Table Template Condition DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.... LOOP AT tab WHERE name CP ‘+r*’....

Reading Single Record DATA tab LIKE customers OCCURS 0 WITH HEADER LINE.... SORT tab BY name city. READ TABLE tab WITH KEY name = ‘John’ city = ‘Bangkok’ BINARY SEARCH. IF sy-subrc = 0. WRITE: / tab-id, tab-name, tab-city, tab-telephone. ENDIF.

Reading Single Record using Index... READ TABLE tab INDEX 3. IF sy-subrc = 0. WRITE: / tab-id, tab-name. ENDIF.

DELETING Data in INTERNAL TABLE CLEAR tab. REFRESH tab. FREE tab. DATA tab LIKE sflight OCCURS 0 WITH HEADER LINE.

SELECT … INNER JOIN TABLES: scarr,spfli. SELECT spfli~carrid scarr~carrname spfli~connid INTO (spfli-carrid, scarr-carrname, spfli~connid) FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid. WRITE: / spfli-carrid, scarr-carrname, spfli~connid. ENDSELECT. SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID

Inner Join using Internal Table DATA: BEGIN OF tab OCCURS 0, carrid LIKE spfli-carrid, carrname LIKE scarr-carrname, connid LIKE spfli-connid, END OF tab. SELECT spfli~carrid scarr~carrname spfli~connid INTO TABLE tab FROM spfli INNER JOIN scarr ON spfli~carrid = scarr~carrid. … LOOP AT tab. WRITE: / tab-carrid,tab-carrname,tab-connid. ENDLOOP. SPFLI-CARRID SCARR-CARRNAME SPFLI-CONNID

Exercise : Using Internal Table VBAK-VBELN VBAK-ERDAT VBAK-KUNNR VBAP-MATNR VBAP-NETWR Document Number (VBAK-VBELN) = ‘ ’

Event-driven Programming

Application Driven Programming REPORT ztest. DATA: today TYPE D. today = ‘ ’. today = today + 1. WRITE: / today.

Event-Driven Programming DATA tmp TYPE i. AT LINE-SELECTION. WRITE: / ‘This is ’. WRITE: ‘Detail List’. START-OF-SELECTION. WRITE: / ‘This is ’. WRITE: / ‘Basic List’.

Events START-OF-SELECTION. AT LINE-SELECTION. INITIALIZATION. AT SELECTION-SCREEN.

AT LINE-SELECTION Event (Drill-down Report)

Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP statement Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI.. D010S Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. SAP System : Dialog Processing customers 12 Roll out

TaskHandler DYNPRO Processor ABAP Processor Local Memory Memory Space DB Interface List Buffer Database Server Dialog Work Process User Context Dialog Work Process Architecture Result Set Memory Server

Database Server Application Server Dispatcher Request Queue DDDB … SAP Buffer Program … User Context Area Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. 5 Execute ABAP statement Check Program in Program Buffer Roll in 8 Load&Generate Program SQL Request Send List Generate Screen(List) Send Request Request List 2 Search for free WP Store request to queue Send request to WP SAP GUI.. D010S Report zpsm1. Tables customers. Select single * from customers where id = 1. Write: / customers-name. Dialog Processing : Roll Out customers 12 Roll out

AT LINE-SELECTION START-OF-SELECTION. WRITE: ‘Basic List’. AT LINE-SELECTION. WRITE: ‘Detail List’. (Basic list) Double Click WRITE, ULINE

AT LINE-SELECTION 1. Double Click 2. Choose Button 3. Hotspot

Navigating Between Lists Basic list Detail list 20 Exit Detail list 1 Detail list 2 ABAP Editor Back Cancel

Runtime Error : Detail List > 20

Detail List and SY-LSIND START-OF-SELECTION. WRITE: ‘Basic List’. AT LINE-SELECTION. CASE sy-lsind. WHEN 1. WRITE: ‘Detail List :’,sy-lsind. WHEN 2. WRITE: ‘Detail List :’,sy-lsind. ENDCASE. Detail list : 2 SY-LSIND = 2 Detail list : 1 SY-LSIND = 1 Basic list

At Line Selection TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’, customers-name.

At Line Selection(Hide Statement) TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-name. HIDE customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’,customers- name. HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David John Peter David List Buffer

Hide Area in List Dialog WP TaskHandler DYNPRO Processor ABAP Processor Database Local Memory Memory Space DB Interface Lis t b uffer Result Set Memory Database Server Application Server 3 | David |.... Customers Structure John Peter David Basic List HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David

At Line Selection(Hide Statement) HIDE area of list level 1 line Field name Value 1 customers-name John 2 customers-name Peter 3 customers-name David JohnPeter David You choose : Peter Basic List Detail List SY-LILLI = 2 3 | Peter |.... Customers Structure At Line-selection 5

HIDE area of list level 1 line Field name Value 1 customers-id customers-name John 2 customers-id customers-name Peter … At Line Selection(Hide Statement) TABLES customers. START-OF-SELECTION. SELECT * FROM customers. WRITE: / customers-id,customers- name. HIDE: customers-id,customers-name. ENDSELECT. AT LINE-SELECTION. WRITE: ‘You Choose :’, customers-id, customers-name John Peter David List Buffer

At Line Selection(Hide Statement) HIDE area of list level 1 line Field name Value … … … 2 customers-id customers-name Peter 3 customers-id … John Peter David You choose : Peter Basic List Detail List SY-LILLI = 2 2 | Peter |.... Customers Structure At Line-selection 5

At Line Selection TABLES: spfli,sflight. START-OF-SELECTION. SELECT * FROM spfli. WRITE: / spfli-carrid, spfli- connid, spfli-cityto. HIDE: spfli-carrid, spfli- connid. ENDSELECT. AT LINE-SELECTION. SELECT * FROM sflight WHERE carrid = spfli-carrid AND connid = spfli-connid. WRITE: / spfli-carrid, spfli- connid,sflight-fldate. ENDSELECT. Basic List (SPFLI) Detail List (SFLIGHT) ZATLINE4

Exercise : Flight Information Basic List Drill-down Level 1 SCARR SPFLI

Good Program DATA: BEGIN OF tab_spfli OCCURS 0, carrid LIKE spfli-carrid, connid LIKE spfli-connid, cityto LIKE spfli-cityto, END OF tab_spfli. DATA: BEGIN OF tab_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, END OF tab_sflight. START-OF-SELECTION. SELECT carrid connid cityto FROM spfli INTO TABLE tab_spfli. IF sy-subrc = 0. LOOP AT tab_spfli. WRITE: / tab_spfli-carrid,tab_spfli-connid, tab_spfli-cityto. HIDE: tab_spfli-carrid,tab_spfli-connid. ENDLOOP. ELSE. WRITE: / 'No data found'. ENDIF. AT LINE-SELECTION. CASE sy-lsind. WHEN 1. SELECT carrid connid fldate INTO TABLE tab_sflight FROM sflight WHERE carrid = tab_spfli-carrid AND connid = tab_spfli-connid. LOOP AT tab_sflight. WRITE: / tab_sflight-carrid,tab_sflight-connid, tab_sflight-fldate. ENDLOOP. ENDCASE.

Exercise : Sale Document Basic List Drill-down Level 1 VBAK VBAP

Selection Screen

PARAMETERS Statement SELECT-OPTIONS Statement

PARAMETERS

PARAMETERS: tmp1(10) TYPE c, tmp2(10) TYPE c LOWER CASE, tmp3 LIKE sy-datum DEFAULT sy-datum, tmp4 TYPE d DEFAULT ' ', tmp5 TYPE i, tmp6 TYPE p DECIMALS 2, tmp7(5) TYPE n, airline1(3), airline2 LIKE spfli-carrid. DATA id LIKE customers-id. START-OF-SELECTION. WRITE: / tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,airline1,airline2,id.

PARAMETERS Example TABLES customers. PARAMETERS pid LIKE customers-id. START-OF-SELECTION. SELECT SINGLE * FROM customers WHERE id = pid. IF sy-subrc = 0. WRITE: / customers-name. ELSE. WRITE: / ‘No data found’. ENDIF.

Selection-Text By default, the System displays the name of the selection as text on the Selection Screen You Should use the Text element/Selection texts function to store a text line for each Selection Criterion.

PARAMETERS : Check box PARAMETERS tmp AS CHECKBOX DEFAULT ‘X’.

PARAMETERS : Radio Button PARAMETERS: test1 RADIOBUTTON GROUP grp1, test2 RADIOBUTTON GROUP grp1.

RADIOBUTTON : SAP ECC 6.0

Required Field with PARAMETERS PARAMETERS tmp LIKE sy- datum OBLIGATORY.

ABAP Exercise