03 - Advanced ABAP Programming

113
7/24/2019 03 - Advanced ABAP Programming http://slidepdf.com/reader/full/03-advanced-abap-programming 1/113  Advanced Techniques in ABAP Programming

Transcript of 03 - Advanced ABAP Programming

Page 1: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 1/113

 Advanced Techniques in ABAP Programming

Page 2: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 2/113

Course Objectives

In this Course, the participant will learn:

• ABAP Workbench Environment and Tools

• An Introduction to ABAP Programming

• Advanced techniques in ABAP Programming

• BDCs and Interfacing in the SAP Environment

• Enhancements & Modifications to SAP R/3

• Designing and Using SAP Forms (SAP Script)

• Dialog Programming

 Advanced Techniques in ABAP Programming

Page 3: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 3/113

Topic Objectives

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

Page 4: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 4/113

Topic Objectives

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

To Define and Call Subroutines

Page 5: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 5/113

In this section, we will…

• Describe Subroutines

• Define and Call Subroutines

• Explain how subroutines are used

• Define Parameters

• Define Global and Local Data

• Define Local Field Values

Page 6: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 6/113

Subroutines: What and Why?

PROGRAM RSDEM001. PROGRAM RSDEM004.

Calculate tax

Calculate tax

Call calculate_tax

Call calculate_tax

Subroutine

Calculate_tax

Page 7: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 7/113

Defining and Calling Subroutines

Syntax:• Defining a Subroutine:

FORM <form_name> [tables <tab1> <tab2>…][using <var1> <var2> value(<var3>)…]

[changing <cvar1>…].ENDFORM.

• Calling a Subroutine:

PERFORM <form_name> [tables <tab1> <tab2>…][using <var1> value(<var3>)…][changing <cvar1>…].

Example:

PERFORM CALCULATE_TAX USING FL1.

FORM CALCULATE_TAX USING F1.

CLEAR ITAB.

 MOVE: F1 TO ITAB-FL1.

 APPEND ITAB.

ENDFORM .

Page 8: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 8/113

Using Parameters to Pass Data

USINGPass By Reference

Pass By Value

TABLES Pass By Reference

CHANGING Pass By Value & Result

Page 9: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 9/113

Parameters Example

 Actual Parameters

PERFORM CALCULATE_TAX USING FL1 FL2.

FORM CALCULATE_TAX USING F1 F2.

CLEAR ITAB.

 MOVE F1 TO ITAB-FL1.

 APPEND ITAB.ENDFORM . Formal Parameters

In this example, parameters are passed byreference. This is the most common, and most

cost effective, method of parameter passing.

Page 10: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 10/113

Passing Parameters

PROGRAM <name> .

TABLES: ....

DATA: ....

...PERFORM <name> USING

<a1> <a2>

<a3> <a4>.

..

.FORM <name> USING

 VALUE(<f1>)

 VALUE(<f2>)

<f3>

<f4>.

ENDFORM.

<statements>

X

YX

Y

f1 f2

a1 a2 a3 a4

Pass by value

2 Pass by reference

1 21

1

2

Internal Tables as Passed

Page 11: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 11/113

Internal Tables as Passed

Parameters

REPORT B170D094

DATA: BEGIN OF TAB,

F1 LIKE TABNA-COUNTRY,

F2 LIKE TABNA-NAME1,END OF TAB.

DATA: X.

PERFORM SUB1 TABLES TAB

USING X.

FORM SUB1 TABLES T USING Z.

LOOP AT T.

 WRITE: / T.

ENDLOOP.

 MOVE . . . TO T.

 APPEND T.

ENDFORM.

Page 12: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 12/113

Global and Local Data

REPORT B170D091

TABLES: . . .

DATA: . . .

Global Data

X1 Y1

Call Subroutine

Subroutines

Passed Parameters X Y

DATA: … local data

statements

Passes Parameters

Data: … local data X1

statements

X1 Y1

Persistent Local Variables:

Page 13: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 13/113

Persistent Local Variables:

STATICS

REPORT B170D092.

DATA: RESULT TYPE I.

PERFORM RANDOM_NUMBER CHANGING RESULT.

FORM RANDOM_NUMBER CHANGING P_RESULT TYPE I.

STATICS: L_STATE TYPE I.

L_STATE = ( L_STATE * 113 + 34 ) MOD 256.

P_RESULT = L_STATE.

ENDFORM.

Page 14: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 14/113

Topic Objectives

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

To Maintain and Call Function Modules

Page 15: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 15/113

In this section, we will…

• Define Function Modules

• Define Function Groups

• Describe Interfaces• Explain Exception Processing

• Define Global Data / Local Memory• Explain Remote Function Call (RFC)

• Search the Function Library

Page 16: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 16/113

Introduction to Function Modules

Clear import andClear import and

export parametersexport parameters

SearchSearchCreateCreate

ChangeChangeDocumentDocument

ExceptionExceptionhandlinghandling

High ReusabilityHigh Reusabili tySTRING_CONCENATE/ READ_CALENDAR/CURRENCY_CONVERSION/ ACCOUNT_CHECK/ ...

TestTestEnvironmentEnvironment

 Application Application

Remote Function CallRemote Function Call

Page 17: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 17/113

Function Groups

Tools

 ABAP Workbench

Function Builder 

Development

Page 18: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 18/113

Calling a Function Module

Function Module

Maintenance

FM_02

Interface

Import

ExportTables

Exceptions

Program

Documentation Administration

How to call a

Function Module

CALL FUNCTION

'FM_02'

EXPORTING ...

IMPORTING ...TABLES ...

(EXCEPTIONS ...)

Page 19: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 19/113

Interfaces

IMPORT

EXPORT

TABLES

Page 20: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 20/113

Exception Processing

Table Parameters/Exceptions STRING_SPLIT

Exceptions

FUNCTION STRING_SPLIT.

...IF ...

RAISE NO_DATA.

ENDIF

 NO_DATA DATA_NOT_VALID

STRING_TOO_LONG

...

CALL FUNCTION ‘STRING_SPLIT’

EXPORTING DELIMITER = ‘-’

STRING = TEXT

IMPORTING HEAD = HEAD

TAIL = TAILEXCEPTIONS NO_DATA = 01

STRING_TOO_LONG = 02

OTHERS = 03.

CASE SY-SUBRC.

 WHEN 1. .... . WHEN 2. .... .

 WHEN 3. .... .

ENDCASE.

Page 21: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 21/113

 An Example of a Function Module

Import

Parameters

Export

Parameters

Page 22: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 22/113

Global Data / Local Memory

Global Data

FUNCTION-POOL <gr >.

DATA: X.

TABLES: ... .

L<gr > TOP

FORM SUB1 USING ... .

DATA:... .

 MOVE ... TO X.

ENDFORM.

L<gr > F01FUNCTION ... .

DATA:... .

 MOVE X TO ... .

ENDFUNCTION.

SubroutinesFunction module

L<gr > U01

Page 23: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 23/113

Remote Function Call

System

R/3System

R/3System

RFCRFCRFC

RFC

RFC with

C-interface

Mainframe

R/3Presentation

server 

 AP

DB DB

 AP

R/2System

Page 24: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 24/113

Searching the Function Builder 

Tools

 ABAP Workbench

Development

Function Builder 

Function module

Short description

Function group

Development class

 ABAP Repository Information System

Standard selections

Page 25: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 25/113

Creating a Function Module

Import/Export ParametersImport/Export Parameters

Create

Table Parameters/Exceptions

Documentation

Source code

 Administration

Function module

 ABAP Function Builder: Initial Screen

Z_FUNC_DEMO1

Tools

 ABAP Workbench

Function Builder 

Development

SE37

Page 26: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 26/113

Creating a Function Module – Step 1 of 7

Initial Parameters

Page 27: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 27/113

Creating a Function Module – Step 2 of 7

General Attributes

Page 28: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 28/113

Creating a Function Module – Step 3 of 7

Import and Changing Interface Parameters

Page 29: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 29/113

Creating a Function Module – Step 4 of 7

Export Interface Parameters

Page 30: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 30/113

Creating a Function Module – Step 5 of 7

Tables Interface Parameters

Page 31: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 31/113

Creating a Function Module – Step 6 of 7

Exceptions

Page 32: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 32/113

Creating a Function Module – Step 7 of 7

Source Code and Activation

Example of Calling a FunctionM d l i P

Page 33: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 33/113

Module in a Program

Function ‘ZCONVERT_TEMPERATURE

* Local interface:

* IMPORTING VALUE (TEMP_UNIT) TYPE C

* VALUE (DEGREES) TYPE P

* EXPORTING REFERENCE (CONV_DEGREES) TYPE P

IF TEMP_UNIT = ‘F’.CONV_DEGREES = ( DEGREES - 32 ) * 5 / 9.

ELSE.

CONV_DEGREES = DEGREES * 9 / 5 + 32.

ENDIF.ENDFUNCTION.

This function can be called as follows:

DATA DEG TYPE P.CALL FUNCTION ‘ZCONVERT_TEMPERATURE’

EXPORTING TEMP_UNIT = ‘F’

DEGREES = 100

IMPORTING CONV_DEGREES = DEG.

T i Obj ti

Page 34: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 34/113

Topic Objectives

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

Selection Criteria for ABAP Report Programs

In this section we will

Page 35: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 35/113

In this section, we will…

• Describe Selection Screens

• Define Parameters

• Define Select Options• Customize the selection screen

• Describe Selecting from Tables using LogicalDatabases

• Define the Check and Reject Statement

Selection Screen

Page 36: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 36/113

Selection Screen

REPORT <name> .

TABLES: SPFLI, SFLIGHT.PARAMETERS: FLTYPE

GET SPFLI.

CHECK CARRID.

SPFLI Carrier ID to

Flight Selection

Flight Type

Search str ing

General selections

Client ID to

Date of f lights to

Declaring Fields with PARAMETERS

Page 37: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 37/113

Declaring Fields with PARAMETERS

Syntax:PARAMETERS   <name>[(<length>)] [TYPE <data type>]

[DEFAULT<default>] [ AS CHECKBOX].

REPORT ZTESTRPT1.

TABLES: SFLIGHT.

PARAMETERS: p_CARRID LIKE SFLIGHT-CARRID,

 p_CONNID LIKE SFLIGHT-CONNID,

 p_FLDATE LIKE SFLIGHT-FLDATE

DEFAULT SY-DATUM,

 p_RESV_FLG AS CHECKBOX.

SELECT *

FROM SFLIGHT

 WHERE CARRID = p_CARRID

 AND CONNID = p_CONNID

 AND FLDATE = p_FLDATE

ENDSELECT.

Example:

The SELECT OPTIONS Statement

Page 38: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 38/113

The SELECT-OPTIONS Statement

Syntax: SELECT-OPTIONS <selection name> FOR <field>.

REPORT <name>.

TABLES: SPFLI, LFA1.

SELECT-OPTIONS:

CONNECTID FOR SPFLI-CONNID

DEFAULT '1984' TO ' 3517 '.

Internal

table

POSTCODE

SIGN OPTION LOW HIGH

I BT 1984 3517

Program selections

CONNECT ID 1984 3517

Value Sets

Page 39: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 39/113

Value Sets

from to Incl. Excl.

Connection id

0010 0400

1900 3600

3799Connection id

SIGN OPTION LOW HIGH

 ABAP ABAP

Selection Texts

Page 40: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 40/113

Selection Texts

REPORT <name> .

TABLES: SPFLI, AIRPROM.

SELECT-OPTIONS:

FLTIME FOR SPFLI-FLTIME

DEFAULT '06:01:00' TO 10:00:00',

 AIRPFROM FOR SPFLI- AIRPFROM...

.

..

Flight Time 06:01 10:00

 Airport From

Text elements/selection texts<field name> <text>

FLTIME Flight time

 AIRPFROM Airport from

Text Elements

Customizing the Selection Screen

Page 41: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 41/113

Customizing the Selection Screen

Syntax:• Selection Screen Block

SELECTION-SCREEN BEGIN OF LINE.…SELECTION-SCREEN END OF LINE.

• Selection Screen Formatting Statements

SELECTION-SCREEN SKIP <n>.

SELECTION-SCREEN POSITION <pos>.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN COMMENT <g> TEXT-<xxx>.

Customizing the Selection Screen:Example

Page 42: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 42/113

Example

REPORT <name>.

TABLES: SPFLI, SFLIGHT, SBOOK.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 10 TEXT-001.SELECTION-SCREEN POSITION 50.

PARAMETERS: CARRID LIKE SPFLI-CARRID

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN ULINE /10(50).

.

.

Text-001

Please enter carr ier ID

Text-001

Please enter carr ier ID

Please enter carrier ID

col.50col.50col.10col.10

CALL SELECTION-SCREEN

Page 43: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 43/113

CALL SELECTION SCREEN

• Additional selection screen during processing.

• Selection screen within another selection screen

• Submit a report using selection screen.

FEATURES

 APPLICATIONSReduces number of fields on the standard selection screen.

Starting reports with different selection screens.

Pop-up window.Initial screen of a regular screen painter transaction.

CALL SELECTION-SCREENExample

Page 44: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 44/113

Example

Repor t …. . .SELECTI ON- SCREEN: BEGI N OF BLOCK b1 WI TH FRAME TI TLE <var 1>.

SELECT- OPTI ONS: car r i er f or sf l i ght - car r i d.

SELECTI ON- SCREEN: END OF BLOCK b1.

SELECTI ON- SCREEN: BEGI N OF SCREEN 2000 AS WI NDOW,I NCLUDE BLOCKS b1,

BEGI N OF BLOCK b2 WI TH FRAME TI TLE a1.

SELECT- OPTI ONS: scust FOR sbook- cust omi d.SELECTI ON- SCREEN: END OF BLOCK b2,

END OF SCREEN 2000.. . .AT LI NE- SELECTI ON.

CALL SELECTI ON- SCREEN 2000 STARTI NG AT 5 5,

Repor t …. . .SELECTI ON- SCREEN: BEGI N OF BLOCK b1 WI TH FRAME TI TLE <var 1>.

SELECT- OPTI ONS: car r i er f or sf l i ght - car r i d.

SELECTI ON- SCREEN: END OF BLOCK b1.

SELECTI ON- SCREEN: BEGI N OF SCREEN 2000 AS WI NDOW,I NCLUDE BLOCKS b1,

BEGI N OF BLOCK b2 WI TH FRAME TI TLE a1.

SELECT- OPTI ONS: scust FOR sbook- cust omi d.SELECTI ON- SCREEN: END OF BLOCK b2,END OF SCREEN 2000.

. . .AT LI NE- SELECTI ON.

CALL SELECTI ON- SCREEN 2000 STARTI NG AT 5 5,

The CHECK Statement

Page 45: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 45/113

The CHECK Statement

.

.

.

Carrier id 7100 7500

Price

Work area SPFLI

D 71000

Internal Table CARRIERID

LAND1 PSTLZ ORT01

CHECK <selection name>.

CHECK <logical expression>.

REPORT <name> .

TABLES: SPFLI, SFLIGHT.

SELECT-OPTIONS:

CARRIERID FOR SPFLI-CARRID

PARAMETERS: PRICE LIKE SFLIGHT-

PRICE.

GET SPFLI.

CHECK SPFLI-CARRIER  NE 'BA'.

GET SFLIGHT.CHECK: CARRIERID...

GET SBOOK .

I BT 7100 7500

SPFLI

The REJECT Statement

Page 46: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 46/113

REJECT <name>.

REPORT ZZ70D132.TABLES: SPFLI, SBOOK.

.

.

.GET SBOOK.

IF ... .

REJECT ’SPFLI'.

ENDIF....

SPFLI SPFLI

SFLIGHT

SBOOK

SFLIGHT

 G o e s   b a

 c  k 

 t o  S  P  F  L

  I

Topic Objectives

Page 47: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 47/113

p j

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

 Advanced Reporting Using ABAP

In this section, we will…

Page 48: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 48/113

,

• Explain variations of the WRITE statement

• Explain printing Icons, Lines and Symbols

• Explain other formatting options

• Describe the different events in ABAP Reports

• GUI Status and Title for reports

• Interactive (Drilldown) Reporting and its

advantages

• Define Open SQL Statements

• Explain File Handling in ABAP

WRITE Statement

Page 49: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 49/113

• Syntax:WRITE [AT] [/P(L)] v1[+O(SL)]

[UNDER v2 | NO-GAP]

[USING EDIT MASK m | USING NO EDIT MASK][mm/dd/yy | dd/mm/yy | mm/dd/yyyy |

dd/mm/yyyy | mmddyy | ddmmyy | yymmdd]

[NO-ZERO][NO-SIGN]

[DECIMALS n]

[ROUND n][LEFT-JUSTIFIED | CENTERED | RIGHT-JUSTIFIED]

[COLOR col]

WRITE Statement – Printing Symbols

Page 50: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 50/113

• Symbols are two-color pictures like Square,Circle, Folder, Document etc…

• Most symbols take one character space in theoutput list

• Include the following statement at the top of the

program:INCLUDE <symbol>.

WRITE Statement – Printing Icons & Lines

Page 51: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 51/113

• Icons are similar to Symbols, but they are multi-colored

• Most icons occupy two character spaces in theoutput list

• Include the following statement in the program:

INCLUDE <icon>.

• Horizontal and Vertical Lines can also be printed

• Include the following statement for printing lines:INCLUDE <list>.

WRITE Statement – Printing Icons & Lines

Page 52: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 52/113

• Icons are similar to Symbols, but they are multi-colored

• Most icons occupy two character spaces in theoutput list

• Include the following statement in the program:

INCLUDE <icon>.

• Horizontal and Vertical Lines can also be printed

• Include the following statement for printing lines:INCLUDE <list>.

Formatting Options – Using Colors

Page 53: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 53/113

• Format Statement –  Syntax:

FORMAT <option1> [ON|OFF] <option2> [ON|OFF]….

• Colors can be printed in List using: – FORMAT COLOR <color_code> [ON|OFF]

[INTENSIFIED [ON|OFF] ] [INVERSE [ON|OFF] ].

 – WRITE <field> COLOR <color_code> [ON|OFF].

• Generally, Background colors are changed byColor Codes, but foreground can be changed bysetting parameter INVERSE ON.

Other Formatting Options

Page 54: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 54/113

• Uline

• New-line

• New-page

• Skip

• Back

• Position

• Set blank lines

Events in ABAP Runtime Environment

Page 55: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 55/113

Events in ABAP Report Programming

Page 56: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 56/113

List Processor Events

•  AT LINE SELECTION•  AT PFn (obsolete)

•  AT USER-COMMAND

•TOP-OF-PAGE

• END-OF-PAGE

Secondary List events

Basic List events

Report Processor Events

• INITIALIZATION•  AT SELECTION SCREEN

• START-OF-SELECTION

• GET• END-OF-SELECTION

Interactive Reporting - Overview

Page 57: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 57/113

Secondary lists Windows

Calling atransaction

Calling a report

Interactive Reporting

Events in Interactive Reporting

Page 58: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 58/113

Report RSDEMO00*Basic list

START-OF-SELECTION.

END-OF-SELECTION

GET…

TOP-OF-PAGE/END-OF-PAGE

*Interactive Reporting

 AT PFnn.

 AT LINE –SELECTION.

 AT USER-COMMAND.

TOP-OF-PAGE DURING LINE-SELECTION

Page Headings

Page 59: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 59/113

Basic list

Secondary l ist

Text elements

Report RSBBB06C

.

.

.

TOP-OF-PAGE DURING LINE-SELECTION.

TOP-OF-PAGE

Choose

Secondary Lists and the System Field SY-LSIND

Page 60: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 60/113

SY-LSIND:0

SY-LSIND:1

SY-LSIND:2

Choose

Choose

Choose

Basic list

1.Secondary list

2.Secondary list 3.Secondarylist

REPORT RSBBB06A

GET SFLIGHT

.

.

.

 AT LINE-SELECTION.

CASE SY-LSIND.

WHEN ‘1’

.

.

.

WHEN ‘2’.

.

.

.

WHEN ‘3’.

SY-LSIND =

SY-LSIND = 1.

.

.

Line Selection I: System Field SY-LISEL

Page 61: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 61/113

Carrid Connid Flight date

 AA 0169 12121994

 AA 0192 26081994

LH 0108 25011995

Choose

LH 0108 25011995

SY-LISEL

 AT LINE-SELECTION.

MOVE: SY-LISEL(3) TO SFLIGHT-CARRID,

SY-LISEL+6(4) TO SFLIGHT-CONNID,

SY-LISEL+14(8) TO SFLIGHT-FLDATE.

SELECT * FROM SBOOK

WHERE CARRID = SFLIGHT-CARRID

 AND CONNID = SFLIGHT-CONNID

 AND FLDATE = SFLIGHT-FLDATE.

WRITE : SBOOK-PRICE,……….

Line Selection II

Page 62: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 62/113

Carrid Connid Flight date

 AA 0169 12121994

LH 0454 17111994

Choose

HIDE <Field>.

HIDE area

“ SFLIGHT-CARRID” AA

“ SFLIGHT-CONNID” 0169“ SFLIGHT-FLDATE 12121994

“ SFLIGHT-CARRID” LH

“ SFLIGHT-CONNID” 0454

“ SFLIGHT-FLDATE” 17111994

REPORT RSBBB06C

.

.

GET SFLIGHT.

WRITE : SFLIGHT-CARRID, 18 SFLIGHT-CONNID,….

HIDE: SFLIGHT-CARRID,SFLIGHT-CONNID,SFLIGHT-FLDATE.

Line Selection III

Page 63: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 63/113

Carrid Connid Flight date

 AA 0169 12121994

LH 0454 17111995

Choose

HIDE <Field>.

HIDE area

“SFLIGHT-CARRID” AA

“SFLIGHT-CONNID” 0169

“SFLIGHT-FLDATE 12121994

“SFLIGHT-CARRID” LH

“SFLIGHT-CONNID” 0454

“SFLIGHT-FLDATE” 17111994

REPORT RSBBB06C

 AT LINE-SELECTION.

SELECT * FROM SBOOK WHERE…..

WRITE : SBOOK-CARRID ,SBOOK-CONNID,…..

?

SFLIGHT-PRICE

LH 0454 17111994

SY-LISEL

LH 0454 17111994

SFLIGHT

-CARRID

SFLIGHT-CONNID SFLIGHT-

FLDATE

Valid Line Selection

Page 64: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 64/113

Header 

Footer 

Hide area

“SFLIGHT-CARRID” AA

“SFLIGHT-CARRID” LH

REPORT RSBBB06D.

GET SFLIGHT.

WRITE: SFLIGHT-CARRID,HIDE: SFLIGHT-CARRID,…..

.

.

.

END-OF-SELECTION.

CLEAR SFLIGHT-CARRID.

 AT LINE-SELECTION.

CHECK NOT SFLIGHT-CARRID IS INITIAL.

.

.

.

CLEAR SFLIGHT-CARRID.

System Fields

Page 65: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 65/113

SY-CUROW

SY-CUCOL

SY-CPAGE

SY-STARO

SY-STACO

SY-LSIND=0

SY-LSIND =1

SY-LSIND =2

GUI Status and Title bar for reports

Page 66: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 66/113

• Use the “SET PF-STATUS” statement to choose aGUI Status dynamically for a report

 – Syntax: SET PF-STATUS <pfstat>.

• The button the user presses is trapped in the

system variable SY-UCOMM and handled in theevent  AT USER-COMMAND

• Use “SET TITLEBAR” statement to set a programwindow title text dynamically

 – Syntax: SET TITLEBAR <title>.

Open SQL

Page 67: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 67/113

Open SQL – SELECT Statement

Page 68: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 68/113

• Syntax:SELECT [SINGLE] [DISTINCT] <result>

INTO <target> FROM <source>

[WHERE <condition>] [GROUP BY <fields>][HAVING <cond>] [ORDER BY <fields>].

• INTO clause:

... INTO [CORRESPONDING FIELDS OF] <wa>

| INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE <itab>

| INTO (<f 1>, <f 2>,...)

• FROM clause:... FROM [<tab> [INNER]|LEFT [OUTER] JOIN] <dbtab> [AS <alias>]

[ON <cond>][CLIENT SPECIFIED][BYPASSING BUFFER]

[UP TO <n> ROWS]

Open SQL – Joins in SELECT

Page 69: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 69/113

• Inner Joins – Allow access to multiple tables with a single

SELECT statement

 – Creates a temporary table based on condition inthe ON clause

 – Multiple tables joined based on key fields specified

• Left Outer Joins – Allow access to multiple tables

 – Creates a temporary table

 – BUT, field values in driving (left-hand) table thatDO NOT correspond to values in the right-handtable are added to the temporary result table

Open SQL – INSERT Statement

Page 70: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 70/113

• Inserts a row or several rows into a databasetable

• Syntax:

INSERT <dbtab> FROM <wa>.

INSERT <dbtab> FROM TABLE <itab> [ACCEPTING DUPLICATE

KEYS].

• Possible to insert one or more rows from aninternal table

• Duplicate entries could be discarded by using theclause ‘ACCEPTING DUPLICATE KEYS’

Open SQL – UPDATE Statement

Page 71: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 71/113

• Updates a row or several rows in a databasetable

• Syntax:

UPDATE <dbtab> SET <si> = <f >

[WHERE <cond>].

UPDATE <dbtab> FROM <wa>.

UPDATE <dbtab> FROM TABLE <itab>.

Open SQL – DELETE Statement

Page 72: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 72/113

• Deletes one or more rows in a database table• Syntax:

DELETE FROM <dbtab> WHERE <cond>.

DELETE <dbtab> FROM <wa>.

DELETE <dbtab> FROM TABLE <itab>.

File Handling – OPEN DATASET

Page 73: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 73/113

• Opens a file for reading, writing or for appending• Syntax:

OPEN DATASET <dsn> [FOR INPUT|OUTPUT|APPENDING]

[IN BINARY|TEXT MODE]

[AT POSITION <pos>]

[MESSAGE <mess>]

[FILTER <filt

>].• <dsn> can be a logical or physical file names

File Handling – READ DATASET

Page 74: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 74/113

• Reads a file• Syntax:

READ DATASET <dsn> INTO <f > [LENGTH <len>].

• <dsn> can be a logical or physical file names

• Logical file names can be created in customizing

File Handling – TRANSFER DATASET

Page 75: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 75/113

• Syntax:

 – Writing to a datasetTRANSFER <f > TO <dsn> [LENGTH <len>].

 – Closing a datasetCLOSE DATASET <dsn>.

Topic Objectives

Page 76: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 76/113

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

 ALV Reporting

In this section, we will…

Page 77: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 77/113

• Explain the concept of ALV Reports• The Data Declaration for ALV Reports

• Database Selection, Event Handling and FormHandling in ALV reports

• Different Function Modules for displaying ALV

reports

The Concept of ALV Reports

Page 78: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 78/113

The Data Declaration

Page 79: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 79/113

Type Pool SLIS for ALV ReportingType Pool SLIS for ALV Reporting

 ALV Tables to passevents and triggers to ALV Function Modules

 ALV Tables to passevents and triggers to ALV Function Modules

Saving the VARIANT

Page 80: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 80/113

Database selection, Events and Forms

Page 81: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 81/113

Calling FunctionREUSE_ALV_GRID_DISPLAY

Page 82: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 82/113

Dynamic calling of form top_of_page

Page 83: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 83/113

Call FunctionREUSE_ALV_COMMENTARY_WRITE

Page 84: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 84/113

Topic Objectives

Page 85: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 85/113

In this Topic, the participant will learn:

• To Define and Call Subroutines

• To Maintain and Call Function Modules

• Selection Criteria for ABAP Report Programs

• Interactive Reporting using ABAP

• ALV Reporting

• Logical Databases and usage

• Background Processing of Programs

Logical Databases and usage

In this section, we will…

Page 86: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 86/113

• Explain Logical Databases• Describe Report Driven Reading of VendorMaster Data

• Describe Reading Data• Compare Logical Databases v. Select

• Define the structure of a Logical Database• Explain Event Keywords

• Describe the interaction of Logical Databases

and Reports

What are Logical Databases?

D b i hi d b b l i ll d i hi i i

Page 87: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 87/113

• Database within a database, but logically stored within existing(physical) tables.

Physical Database

LogicalDatabase

LogicalDatabase

LogicalDatabase

Structure of a Logical Database

L i l D t b Di l St t f KDF

Page 88: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 88/113

Vendor master data

Documents

LFB5 LFC1 LFC3

LFAS LFB1LFBK

LFA1

BKPF

BSIK

BSEG

GSEG

LFAS

LFBK

LFB5

LFC1

LFC3

BSIK

LFB1

LFA1

BKPF

BSEG

GSEG

Logical Databases: Display Structure of KDF

Reading Data

Page 89: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 89/113

 ABAP Dictionary

1 2

REPORT ... .

TABLES: SPFLI,SFLIGHT.

SELECT SPFLI.

SELECT SFLIGHT.

....

....ENDSELECT.

ENDSELECT.

Processing

Without Logical

Database

Processing

Processing

Logical Database

REPORT ... .TABLES:SPFLI,SFLIGHT.

GET SPFLI.

GET SFLIGHT.

Event Key Words: Overview

START OF SELECTION Introduces any init ial processing to be done

Page 90: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 90/113

START-OF-SELECTION Introduces any init ial processing to be doneprior to next event keyword (usually GET).

END-OF-SELECTION Introduces any statements that are to beprocessed after all logical database records

have been read and processed.

GET <dbtab > Retrieves the table <dbtab> for processing via the logical database

program SAPD<db><a>.

GET <dbtab > LATE Introduces statements that are only processedonce subordinate tables have been read and

processed. These statements are processed

before the next loop is performed.

Interaction of Logical Databasesand Report

Read programRead program KDF

Page 91: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 91/113

Read programRead program

REPORT RSDEMO00.

TABLES: LFA1,

LFBK,

LFB5 .

GET LFA1.

REPORT SAPDBKDF...

FORM PUT LFA1 .

SELECT * FROM LFA1... .

PUT LFA1 .

ENDSELECT .

ENDFORM .

FORM PUT_LFBK .

SELECT * FROM LFBK... .

PUT LFBK. GET LFBK.

ENDSELECT.ENDFORM.

FORM PUT_LFB1.

SELECT * FROM LFB1... .

PUT LFB1.

ENDSELECT.ENDFORM.

FORM PUT_LFB5.

SELECT * FROM LFB5... .

PUT LFB5. GET LFB5.

ENDSELECT.

ENDFORM.

KDF

LFB5 LFC1 LFC3 BSIK

LFB1LFBK

LFA1LogicalLogical

database KDFdatabase KDF

Overview: Events in the Context ofLogical Databases

Page 92: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 92/113

START-OF-SELECTION

END-OF-SELECTION

LFA1

LFB1

LFC1 LFC1 LFC1 LFC1 LFC1

LFA1

LFB1

GET LFA1

GET LFB1

GET LFC1

GET LFB1 LATE

GET LFA1 LATE

1

2

3

4

5

1 1

2 2

3 3 3 3 3

4 4

5 5

Report-Driven Reading of VendorMaster Data

REPORT ZZ70D121

Page 93: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 93/113

REPORT ZZ70D121.TABLES: LFA1, LFB1, LFC3.

SELECT * FROM LFA1

 WHERE LIFNR ...

SELECT * FROM LFB1

 WHERE LIFNR = LFA1-LIFNR.

SELECT * FROM LFC3

 WHERE LIFNR = LFA1-LIFNR

 AND BUKRS = LFB1-BUKRS.

ENDSELECT.

ENDSELECT.

ENDSELECT.

Processing LFA1

Processing LFB1

Processing LFC3

The STOP Statement

REPORT ZZ70D124

Page 94: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 94/113

REPORT ZZ70D124.

TABLES: LFA1.

DATA: COUNTER TYPE I.

GET LFA1. WRITE: ‘GET LFA1’, 15 LFA1-LIFNR,

LFA1-NAME.

COUNTER = COUNTER + 1.

SKIP.IF COUNTER > 1.

STOP.

ENDIF.

END-OF-SELECTION. WRITE: / ‘END-OF-SELECTION’,

TEXT-001.

* TEXT-001: ‘That’s it buddy !’.

Logical Database vs. Select

GETTh f i l i SELECTF h l i l

Page 95: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 95/113

GET• The functional connectionalready exists

• Beginners can find the

database they are aftereasier 

• The logic is reusable

• Select-Options are flexible

• Authority check is madeautomatically

SELECT• Faster than logicaldatabases

• More powerful than logical

databases - – select into

 – order by

• More flexible• More specific coding is

easier work for the database.

BUT:

Logical databases are slower 

Changes to a logical database

affect all programs that use it

BUT:  Authority check missing

Parameters for select-options have to be

coded

Classic Scenario verses FunctionModule LDB_PROCESS

Classic Scenario

Page 96: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 96/113

Classic Scenario

LDB_PROCESS

Topic Objectives

In this Topic the participant will learn:

Page 97: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 97/113

In this Topic, the participant will learn:• To Define and Call Subroutines

• To Maintain and Call Function Modules• Selection Criteria for ABAP Report Programs

• Advanced Reporting using ABAP• ALV Reporting

• Logical Databases and usage• Background Processing of ProgramsBackground Processing of Programs

In this section, we will…

• Describe the Process Flow of BackgroundJ b

Page 98: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 98/113

• Describe the Process Flow of BackgroundJobs

• Define the Scheduling and Processing of

Background Jobs• Describe the Job Results for a Job Log and

Spool Requests

• Define the Authorization Objects

• Describe the Automatic Generation of Jobs

• Define the Function Modules forGenerating Jobs

Background Processing

Characteristics

Page 99: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 99/113

Characteristics

Execution of ABAP programs without

dialog (no specific job-control language

for operating system required)

Execution of ABAP programs without

dialog (no specific job-control language

for operating system required)

Complete integration in the SAP SystemComplete integration in the SAP System

Parallel background and online operationParallel background and onl ine operation

Ease of useEase of use

Distributed processingDistributed processing

Process Flow Overview

PROCESS

PROCESS OVERVIEW

OVERVIEWSCHEDULE

SCHEDULE

Page 100: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 100/113

Background

Workprocess

Background

Workprocess

 ABAPPROGRAM.

VARIANT

Date & Time

JOBJob Log

Scheduling Background Jobs

Function " Job definition"

Function " Job definition"

Page 101: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 101/113

StepsSteps

Job name ............

.

.

.

Print dataPrint data

Start dateStart date

PeriodPeriod

SaveSave

Processing Jobs – Job Status

Scheduled

Scheduled

Page 102: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 102/113

CancelledCancelled

 Active Active

FinishedFinished

ReleasedReleased

ReadyReady

Job Results – Job Log

Job Log

Job Log

Page 103: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 103/113

Date Time Msg. ID Message

07.21.1998

07.21.1998

.

.

.

.

.

07.21.1998

14:00:20

14:00:21

.

.

.

.

.

14:00:56

00516

00550

.

.

.

.

.

00517

Job Started

step001 started

(program ZTEST, variant

ZVAR, . ..

.

.

.

Job Finished

Job Results – Spool Request

Job list

Job list

Page 104: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 104/113

Job name

User name

Start date

Job name

User name

Start date  WRITE...

JOBA

Smith

10/29/92

Spool

Passing Data To Memory

Step 1:

Job:

Page 105: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 105/113

Global

 ABAP

Memory

Global

 ABAP

Memory

REPORT. . .DATA FLAG, F1, BEGI N OF TAB OCCURS.I F SY- BATCH NE SPACE

IMPORT FLAG TAB LFA1 F1FROM MEMORY.I F SY- SUBRC NE SPACEAND FLAG NE SPACE.

. . .

p

Step 2:

 TABLES: LFA1.REPORT…DATA FLAG, F1, BEGI N OF TAB OCCURSI F. . .EXPORT FLAG TAB LFA1 F1 TO MEMORY.

ENDI F.FLAG

F1

 TAB

Objects Fields Values Description

Objects Fields Values Description

S_BTCH_JOB Job activities DELE Delete job

S_BTCH_JOB Job activities DELE Delete job

 Authorizations and BackgroundProcessing

Page 106: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 106/113

PLAN Schedule job

LIST Display job list

PROT Display job log

RELE Release jobSHOW Display job

S_BTCH_NAM User name <User names> User names that can

be specified when

scheduling a job

S_PROGRAM Authorization <Auth. group> Programs that belong

group to the authorization

groups entered here canbe specified when

User action BTCSUBMIT scheduling a job.

PLAN Schedule job

LIST Display job list

PROT Display job log

RELE Release jobSHOW Display job

S_BTCH_NAM User name <User names> User names that can

be specified when

scheduling a job

S_PROGRAM Authorization <Auth. group> Programs that belong

group to the authorization

groups entered here canbe specified when

User action BTCSUBMIT scheduling a job.

S_BTCH_ADM <Usernames>Batch

 Administrator ID

User names that can

be specified to

maintain batch jobs

Generating Jobs Automatically

Page 107: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 107/113

Create jobCreate job

Insert job stepsInsert job steps

Complete jobComplete job

Function Modules for GeneratingJobs

JOB_OPEN

JOB_OPEN

Job name JOBNAME

Page 108: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 108/113

Job number JOBCOUNT

JOB_SUBMITJOB_SUBMIT

Job name JOBNAME

Job number JOBCOUNT

Report name REPORT

Variant VARIANT

JOB_CLOSEJOB_CLOSE

Job name JOBNAME

Job number JOBCOUNT

Function Module ‘JOB_OPEN’

CALL FUNCTION ’JOB OPEN’

CALL FUNCTION ’JOB OPEN’

Page 109: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 109/113

CALL FUNCTION JOB_OPENCALL FUNCTION JOB_OPEN

EXPORTING

DELANFREP = <delete internal report>JOBNAME = <job name>

IMPORTINGJOBCOUNT =<job number>

EXCEPTIONS

CANT_CREATE_JOB = 1INVALID_JOB_DATA = 2

JOBNAME_MISSING = 3...

EXPORTING

DELANFREP = <delete internal report>JOBNAME = <job name>

IMPORTINGJOBCOUNT =<job number>

EXCEPTIONS

CANT_CREATE_JOB = 1INVALID_JOB_DATA = 2

JOBNAME_MISSING = 3...

Function Module ‘JOB_SUBMIT’

CALL FUNCTION ’JOB SUBMIT’

CALL FUNCTION ’JOB SUBMIT’

Page 110: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 110/113

CALL FUNCTION JOB_SUBMITCALL FUNCTION JOB_SUBMIT

EXPORTING

 AUTHCKNAM = <user>JOBCOUNT = <job number>

JOBNAME = <job name>

REPORT = <report name>

VARIANT = <report variant>

EXCEPTIONS..

.

EXPORTING

 AUTHCKNAM = <user>JOBCOUNT = <job number>

JOBNAME = <job name>

REPORT = <report name>

VARIANT = <report variant>

EXCEPTIONS...

Function Module ‘JOB_CLOSE’

CALL FUNCTION ’JOB CLOSE’

CALL FUNCTION ’JOB CLOSE’

Page 111: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 111/113

CALL FUNCTION JOB_CLOSECALL FUNCTION JOB_CLOSE

EXPORTING

JOBCOUNT = <job number>JOBNAME = <job name>

SDLSTRTDT = <start date>

SDLSTRTTM = <start time>

STRTIMMED = <immediate start>

..

.

IMPORTING

JOB_WAS_RELEASED = <job released indicator>

EXCEPTIONS...

EXPORTING

JOBCOUNT = <job number>JOBNAME = <job name>

SDLSTRTDT = <start date>

SDLSTRTTM = <start time>

STRTIMMED = <immediate start>

..

.

IMPORTING

JOB_WAS_RELEASED = <job released indicator>

EXCEPTIONS...

Example: Program to Generate aJob

REPORT B180D025.

DATA: JOBCOUNT LIKE TBTCO-JOBCOUNT.

PARAMETERS: JOBNAME LIKE TBTCO-JOBNAME

Page 112: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 112/113

PARAMETERS: JOBNAME LIKE TBTCO JOBNAME,REPORT LIKE SY-REPID, VARIANT LIKE RALDB-VARIANT,BTCHUSER LIKE SY-UNAME.

START-OF-SELECTION.

CALL FUNCTION ’JOB_OPEN’EXPORTING JOBNAME = JOBNAMEIMPORTING JOBCOUNT = JOBCOUNT.

CALL FUNCTION ’JOB_SUBMIT’EXPORTING AUTHCKNAM = BTCHUSER 

JOBCOUNT = JOBCOUNTJOBNAME = JOBNAMEREPORT = REPORT

 VARIANT = VARIANT. WRITE: / JOBNAME, JOBCOUNT,

REPORT, VARIANT, BTCHUSER.

CALL FUNCTION ’JOB_CLOSE’EXPORTING JOBCOUNT = JOBCOUNT

JOBNAME = JOBNAME.

Other Function Modules forGenerating a Job

BP JOBLOG READ

BP JOBLOG READBP JOBLOG SHOW

BP JOBLOG SHOW

Page 113: 03 - Advanced ABAP Programming

7/24/2019 03 - Advanced ABAP Programming

http://slidepdf.com/reader/full/03-advanced-abap-programming 113/113

BP_JOBLOG_READBP_JOBLOG_READBP_JOBLOG_SHOWBP_JOBLOG_SHOW

Display job logDisplay job log Read job logRead job log

BP_JOB_COPYBP_JOB_COPY

Copy jobCopy job

BP_JOB_DELETEBP_JOB_DELETE

Delete jobDelete job

BP_CHECK_EVENTIDBP_CHECK_EVENTIDBP_EVENT_RAISEBP_EVENT_RAISE

Check event nameCheck event nameTrigger eventTrigger event