Advanced ABAP Programming2
-
Upload
writeme670 -
Category
Documents
-
view
235 -
download
2
Transcript of Advanced ABAP Programming2
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 1/49
Advanced Techniques in ABAP Programming 2
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 2/49
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 3/49
Overview
88MHz
Applicationserver
Application server files
88MHz
Presentationserver
Presentation server files
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 4/49
Overview
ABAP program ABAP program Application server
files
READ DATASET
TRANSFER
Presentation server
files
UPLOAD
DOWNLOAD
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 5/49
File Handling – OPEN DATASET
• 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 6/49
File Handling – READ DATASET
• 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 7/49
File Handling – TRANSFER DATASET
• Syntax:
– Writing to a datasetTRANSFER <f > TO <dsn> [LENGTH <len>].
– Closing a dataset
CLOSE DATASET <dsn>.
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 8/49
DOWNLOAD and UPLOAD
CALL FUNCTION
’GUI_DOWNLOAD’
File name:
File type:
CALL FUNCTION
’GUI_UPLOAD’
File name:
File type:
Convertaccording to
file type
Convertaccording to
file type
Convertaccording to
file type
Convertaccording to
file type
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 9/49
Function Module ’GUI_DOWNLOAD’
CALL FUNCTION ’DOWNLOAD’CALL FUNCTION ’DOWNLOAD’
EXPORTING
BIN_FILESIZE = <file length with binary files>
CODEPAGE = <do not use>
FILENAME = <default value for fi le name>FILETYPE = <default value for f ile type>
ITEM = <heading for file dialog>
MODE = <write mode>
WK1_N_FORMAT = <value column format for file type WK1>
WK1_N_SIZE = <value column width for fi le type WK1>WK1_T_FORMAT = <text column format for file type WK1>
WK1_T_SIZE = <text column width for file type WK1>
IMPORTING
ACT_FILESIZE = <file name - value entered> ACT_FILETYPE = <file type - value entered>
FILESIZE = <number of bytes transferred>
TABLES
DATA_TAB = <transfer fi le>
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 10/49
Function Module ’GUI_UPLOAD’
CALL FUNCTION ’GUI_UPLOAD’CALL FUNCTION ’GUI_UPLOAD’
EXPORTING
CODEPAGE = <do not use>
FILENAME =<default value for file name>
FILETYPE =<default value for f ile type>
ITEM =<heading for f ile dialog>
IMPORTING
FILESIZE= =<file length>
TABLES
DATA_TAB =<transfer table for file content>
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 11/49
Sequential File and Local File
TRANSFERTRANSFER
READ DATASETREAD DATASET
CALLFUNCTION
’GUI_DOWNLOAD’
CALLFUNCTION
’GUI_DOWNLOAD’
CALLFUNCTION
’GUI_UPLOAD’
CALLFUNCTION
’GUI_UPLOAD’
Sequential
file
Local sequential
file
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 12/49
Topic Objectives
In this Topic, the participant will learn:
• To Define and Call Subroutines
• To Maintain and Call Function Modules
• Advanced Reporting using ABAP
• File Handling
• ALV Reporting
• Logical Databases and usage
• Background Processing of Programs
ALV Reporting
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 13/49
In this section, we will…
• 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 ALVreports
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 14/49
The Concept of ALV Reports
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 15/49
The Data Declaration
Type Pool SLIS for ALV Reporting
Type 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 16/49
Saving the VARIANT
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 17/49
Database selection, Events and Forms
Calling Function
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 18/49
Calling Function
REUSE_ALV_GRID_DISPLAY
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 19/49
Dynamic calling of form top_of_page
Call Function
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 20/49
Call Function
REUSE_ALV_COMMENTARY_WRITE
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 21/49
Topic Objectives
In this Topic, the participant will learn:
• To Define and Call Subroutines
• To Maintain and Call Function Modules
• Interactive Reporting using ABAP
• File Handling
• ALV Reporting
• Logical Databases and usage
• Background Processing of Programs
Logical Databases and usage
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 22/49
In this section, we will…
• Explain Logical Databases• Describe Report Driven Reading of Vendor
Master Data
• Describe Reading Data
• Compare Logical Databases v. Select
• Define the structure of a Logical Database• Explain Event Keywords
• Describe the interaction of Logical Databasesand Reports
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 23/49
What are Logical Databases?
• Database within a database, but logically stored within existing(physical) tables.
Physical Database
LogicalDatabase
LogicalDatabase
LogicalDatabase
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 24/49
Structure of a Logical Database
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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 25/49
Reading Data
ABAP Dictionary
1 2
REPORT ... .
TABLES: SPFLI,SFLIGHT.
SELECT SPFLI.
SELECT SFLIGHT.
........
ENDSELECT.
ENDSELECT.
Processing
Without Logical
Database
Processing
Processing
Logical DatabaseREPORT ... .
TABLES:SPFLI,SFLIGHT.
GET SPFLI.
GET SFLIGHT.
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 26/49
Event Key Words: Overview
START-OF-SELECTION Introduces any init ial processing to be done
prior to next event keyword (usually GET).
END-OF-SELECTION Introduces any statements that are to be
processed 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 processed
once subordinate tables have been read and
processed. These statements are processed
before the next loop is performed.
Interaction of Logical Databases
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 27/49
and Report
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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 28/49
Report-Driven Reading of Vendor
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 29/49
Master Data
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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 30/49
The STOP Statement
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 !’.
L i l D t b S l t
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 31/49
Logical Database vs. Select
GET• The functional connection
already exists
• Beginners can find thedatabase they are aftereasier
• The logic is reusable
• Select-Options are flexible
• Authority check is madeautomatically
SELECT• Faster than logical
databases
• More powerful than logicaldatabases -
– select into
– order by• More flexible
• More specific coding iseasier 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 becoded
Classic Scenario verses FunctionM d l LDB PROCESS
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 32/49
Module LDB_PROCESS
Classic Scenario
LDB_PROCESS
T i Obj ti
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 33/49
Topic Objectives
In this Topic, the participant will learn:
• To Define and Call Subroutines
• To Maintain and Call Function Modules
• Advanced Reporting using ABAP
• File Handling
• ALV Reporting
• Logical Databases and usage
• Background Processing of ProgramsBackground Processing of Programs
I thi ti ill
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 34/49
In this section, we will…
• Describe the Process Flow of BackgroundJobs
• Define the Scheduling and Processing ofBackground 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 35/49
Background Processing
Characteristics
Execution of ABAP programs without
dialog (no specific job-control languagefor operating system required)
Execution of ABAP programs without
dialog (no specific job-control languagefor 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 36/49
Process Flow Overview
BackgroundWork
process
BackgroundWork
process
ABAP
PROGRAM.
PROCESSPROCESS OVERVIEWOVERVIEWSCHEDULESCHEDULE
VARIANT
Date & Time
JOBJob Log
Scheduling Background Jobs
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 37/49
Scheduling Background Jobs
Function " Job definition"Function " Job definition"
StepsSteps
Job name ............
.
.
.
Print dataPrint data
Start dateStart date
PeriodPeriod
SaveSave
Processing Jobs Job Status
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 38/49
Processing Jobs – Job Status
ScheduledScheduled
CancelledCancelled
Active Active
FinishedFinished
ReleasedReleased
ReadyReady
Job Results Job Log
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 39/49
Job Results – Job Log
Job LogJob Log
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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 40/49
Job Results – Spool Request
Job name
User name
Start date
Job name
User name
Start date
Job listJob list
WRITE...
JOBA
Smith
10/29/92
Spool
Passing Data To Memory
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 41/49
Passing Data To Memory
Global
ABAPMemory
Global
ABAPMemory
REPORT. . .
DATA FLAG, F1, BEGI N OF TAB OCCURS.
I F SY- BATCH NE SPACE
IMPORT FLAG TAB LFA1 F1
FROM MEMORY.
I F SY- SUBRC NE SPACE
AND FLAG NE SPACE.
. . .
Step 1:
Step 2:
TABLES: LFA1.
REPORT…
DATA FLAG, F1, BEGI N OF TAB OCCURSI F. . .
EXPORT FLAG TAB LFA1 F1 TO MEMORY.
ENDI F.
Job:
FLAG
F1
TAB
Authorizations and BackgroundProcessing
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 42/49
Objects Fields Values DescriptionObjects Fields Values DescriptionS_BTCH_JOB Job activities DELE Delete job
PLAN Schedule job
LIST Display job list
PROT Display job logRELE Release job
SHOW Display job
S_BTCH_NAM User name <User names> User names that can
be specified whenscheduling a job
S_PROGRAM Authorization <Auth. group> Programs that belong
group to the authorizationgroups entered here can
be specified when
User action BTCSUBMIT scheduling a job.
S_BTCH_JOB Job activities DELE Delete job
PLAN Schedule job
LIST Display job list
PROT Display job log
RELE Release job
SHOW 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 authorizationgroups entered here can
be specified when
User action BTCSUBMIT scheduling a job.
S_BTCH_ADM <Usernames>
Batch Administrator ID
User names that can
be specified tomaintain batch jobs
Processing
Generating Jobs Automatically
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 43/49
Generating Jobs Automatically
Create jobCreate job
Insert job stepsInsert job steps
Complete jobComplete job
Function Modules for GeneratingJobs
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 44/49
Jobs
JOB_OPENJOB_OPEN
Job name JOBNAME
Job number JOBCOUNT
JOB_SUBMITJOB_SUBMIT
Job name JOBNAME
Job number JOBCOUNT
Report name REPORT
Variant VARIANT
JOB_CLOSEJOB_CLOSE
Job name JOBNAMEJob number JOBCOUNT
Function Module ‘JOB OPEN’
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 45/49
Function Module JOB_OPEN
CALL FUNCTION ’JOB_OPEN’CALL FUNCTION ’JOB_OPEN’
EXPORTINGDELANFREP = <delete internal report>
JOBNAME = <job name>
IMPORTING
JOBCOUNT =<job number>
EXCEPTIONSCANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3..
.
EXPORTING DELANFREP = <delete internal report>
JOBNAME = <job name>
IMPORTING
JOBCOUNT =<job number>
EXCEPTIONSCANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3...
Function Module ‘JOB SUBMIT’
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 46/49
_
CALL FUNCTION ’JOB_SUBMIT’CALL 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’
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 47/49
_
CALL FUNCTION ’JOB_CLOSE’CALL 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
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 48/49
REPORT B180D025.
DATA: JOBCOUNT LIKE TBTCO-JOBCOUNT.
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 = JOBCOUNTJOBNAME = JOBNAME.
Other Function Modules forGenerating a Job
7/24/2019 Advanced ABAP Programming2
http://slidepdf.com/reader/full/advanced-abap-programming2 49/49
g
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 jobBP_JOB_DELETEBP_JOB_DELETE
Delete jobDelete job
BP_CHECK_EVENTIDBP_CHECK_EVENTIDBP_EVENT_RAISEBP_EVENT_RAISE
Check event nameCheck event nameTrigger eventTrigger event