SAP ABAP TRAINING MODULE ���SAP ABAP TRAINING� ABAP : ADVANCED BUSSINESS APPLICATION PROGRAMMING ��Santanu Boral�Santanu.dec@gmail.com�
SYSTEMS, APPLICATIONS, PRODUCTS FOR DATA PROCESSING
2.MODULES :
3.PEOPLE:
1.TECHNICAL : SYSTEM : BIW: DATABASE ADMIN
BC: BASIS :SYSTEM ADMIN
ABAP/CA: PROGRAMMING IN SAP
WORKFLOW: CONTROLLING OF JOBS
2.FUNCTIONAL: DOMAIN: SD,MM,HR,FI,CO, TR,,
3.TECHNO-FUNCTIONAL : ABAP-CRM, ABAP-HR, ABAP-WORKFLOW, ABAP-WEBDYNPRO
ABAP: features
IT IS THE ONLY LANGUAGE USED IN THE SAP
IT IS A SEQUENTIAL LANGUAGE LIKE C, C++
IT IS A EVENT-DRIVEN LANGUAGE (EVENTS: FIRED IN A PARTICULAR POSITION/PLACE)
IT IS NOT CASE-SENSITIVE LANGUAGE
IT USES TOP-DOWN APPROACH
R/3 ARCHITECTURE�
ABAP BASICS� LANGUAGE CONSTRUCTIONS
2.COMMENTS:
* AT THE BEGINNING OF LINE BECOMES LINE COMMENT
" PART OF LINE COMMENT EX: WRITE / 'HARI'. "HARI IS GOOD
KEY BOARD SHORTCUTS
CNTRL + A : TO SELECT ALL THE LINES
CNTRL + < : TO COMMENT ALL THE LINES
CNTRL + > : TO UN-COMMENT ALL THE LINES
CNTRL + X : CUT
CNTRL + V : PASTE
CNTRL + C : COPY
LEARNING VERSION��SAP IDES ECC 6.0��ENTERPRISE CENTRAL COMPONENT�
3.NAMING CONVENTION FOR ABAP PROGRAMS
4.TRANSACTION CODES (T-CODES)
server does 5 work processes�
LOG IN…
Create: my first program in abap
title: my first program in abap
type: executable program
press save the program as local objects (non-transportable : client dependent)
REPORT Zsantanu1.
*my first program
WRITE / 'MY FIRST STATEMENT IN ABAP'.
SKIP 3.
ULINE.
WRITE /50 'SECOND STATEMENT IN ABAP'.
ULINE.
WRITE / 'THIRD STATEMENT IN ABAP' COLOR 4.
ULINE.
SAVE : SAVE THE PROGRAM IN SAP REPOSITORY
CHECK: CHECK FOR SYNTAX ERRORS
ACTIVATE: TO MAKE THE PROGRAM READY FOR EXECUTION IN THE MEMORY
DIRECT PROCESSING: TO EXECUTE THE RESULT OF THE PROGRAM
Output:
DATA TYPES
1.ELEMENTARY DATA TYPES 1.PRE-DEFINED DATA TYPES : N,C,I,P,F,X,D,T,STRING
2.USER-DEFINED DATA TYPES : TYPES (KEYWORD)
2.STRUCTURED DATA TYPES 1.PRE-DEFINED DATA TYPES: TABLES (KEYWORD)
2.USER-DEFINED DATA TYPE: INTERNAL TABLES
DATA OBJECTS : VARIABLES: THEY CHANGE THEIR VALUE DURING RUNTIME/EXECUTION TIME.
EX: A A IS ONE CHARACTER BY DEFAULT.
DATA TYPE: WHAT TYPE OF DATA, DATA OBJECT IS GOING TO STORE IN IT IS KNOWN AS DATA TYPE
A I (INTEGER IS DATA TYPE)
DATA: KEYWORD TO DEFINE DATA OBJECTS
SYNTAX:
DATA <DATA OBJECT NAME> TYPE <PRE-DEFINED DATA TYPE>.
DATA: <DATA OBJECT NAME> LIKE <EXISTING DATA OBJECT>.
EX: DATA: A TYPE I.
DATA: B LIKE A.
EX: DATA: CNO LIKE KNA1-KUNNR.
KNA1: CUSTOMER TABLE, KUNNR : CUSTOMER NUMBER
CONSTANTS: HAS FIXED VALUE
EX: CONSTANTS : A = 20.
ELEMENTARY DATA TYPES 1.PRE-DEFINED DATA TYPES : N,C,I,P,F,X,D,T,STRING�
n: numeric : (0-9) digits. it is not used for calculations. it is used to represent sequence of numbers such as
empno, vendno, matno etc.,
ex: '1000', 1000.
c: character (a-z, alphanumeric a333) default data type is allways a character
'ravi'.
i: integer (-3,-2,-1,0,1,2,3,,,) no-decimals. it is used for calculations.
p: packed decimals : keyword : decimals . max decimals : 14
data: numb type p decimals 2.
f: float : exponential result is displayed with the float. '0.0000000000000000+e01'
it is not used to give input to any program
x: hexa decimals: binary nos, system nos
d: date : yyyy mm dd ( 8chars)
t: time: hh mm ss
string : ' '
Prog on data types:�
Prog: 1
Prog: 2/move
�prg for i data type
*prg using packed decimals
3.STRUCTURE DATA OBJECTS
type-pools : contains structure data objects that are used in several programs.�
Se11>type group>zsan>create
short text: my type-pools�save as local object�
step2: calling is done in any executable program in abap editor��go to se38: abap editor/program: zshancalltyp create��title: calling program for type pool
standard type-pool: SLIS (it is used in ALV REPORTING) SAP LIST VIEWER/ ABAP LIST VIEWER��types: is a reserved word to define user-defined objects.�DATA TYPES: ELEMENTARY DATA TYPES 1.PRE-DEFINED� 2.USER-DEFINED : TYPES (KEYWORD)���
WRONG USAGE OF TYPES KEYWORD
NUMB, NAME ARE RESERVED WORDS IN SAP
LOOPS:�
Se38>zsantanu1>create
Check results..
�2.IF...ELSEIF...ELSEIF...ELSEIF...ELSE...ENDIF�
Se38>zsantanu1>change>�Write prog>save>check>act.
Next..
Case..endcase..
Case..endcase..
FAQ: �DO.�WRITE:/ 'RAJU'.�ENDDO.�SAVE/CHECK/ACTIVATE�/RESULT???: IT GOES TO INFINITE LOOP. IT IS KNOWN AS RUN-TIME ERROR.�
STOP/EXIT/CONTINUE. STATEMENTS CAN BE USED FOR TERMINATING THE PROGRAM�
WHILE...ENDWHILE�
STRINGS
shift to number of places
String lenth and condense.
STRINGS PART 2
Overlay…
Search..
Search..output..
�MODULARIZATION TECHNIQUES
1.INCLUDE
2.SUBROUTINES
3.FUNCTION MODULES
4.MACROS
1.MACROS�
macros is abrreviation of code.
advantage: it can be called multiple times in the same program.
it cannot be called from other programs
no debugging (tool that tells how system executes the program result)
no nesting of loops is possible
no error handling is possible
syntax:
1.DEFINE MACRO:
DEFINE <MACRO NAME>.
<STMT BLOCK>.
END-OF-DEFINITION.
2.CALL A MACRO:
<MACRO NAME>.
NOTE: MACROS ARE ABSOLATE IN LATEST VERSION SAP 6.0
2.SUBROUTINES�
SEQUENCE OF STEPS THAT MAY OR MAY NOT GIVE ANY RESULT IS A SUBROUTINE.
ADVANTAGES:
IT CAN BE CALLED FROM OTHER PROGRAMS.
IT CAN BE CALLED MULTIPLE TIMES IN THE SAME PROGRAM.
NO NESTING OF LOOPS IS POSSIBLE
NO ERROR HANDLING IS POSSIBLE
NO DEBUGGING IS POSSIBLE.
DEFINE A SUBROUTINE
FORM <SUBROUTINE NAME> [FORMAL PARAMETERS].
<STMT BLOCK>.
ENDFORM.
CALL A SUBROUTINE
PERFORM <SUBROUTINE NAME> [PARAMETERS].
Internal subroutine
*PRG FOR INTERNAL SUBROUTINE
Se38>zsantanu1>change
3 differences between actual parameters and formal parameters�
3.by value and return�
**prg for by VAUE AND RETURN (internal subroutine)
DATA: A TYPE I VALUE '20'.
WRITE:/ 'BEFORE CALLING SUBROUTINE VALUE OF A IS', A.
PERFORM SUBA CHANGING A.
WRITE:/ 'AFTER CALLING SUBROUTINE VALUE OF A IS', A.
FORM SUBA CHANGING VALUE(P_A).
P_A = 15.
WRITE:/ 'IN THE SUBROUTINE VALUE OF A IS', A.
ENDFORM.
RESULT:
BCSUB INSUBR AFTSUBR
20 20 15
external subroutine
step1: create subroutine in subroutine pool to define the subroutine
go to se38: abap editor
program: zshanextsubr create
title: external subroutine
type: subroutine pool
save as local object
Save-check-activate the following..
step 2: calling program (executable program) for the external subroutine�
go to se38: abap editor
program: zshancallextsubr create
title: calling program for external subroutine
type: executable program
save as local object
REPORT ZSHANCALLEXTSUBR.
*calling program for external subroutine
PARAMETERS: A TYPE I.
DATA : B TYPE I.
PERFORM SAMPLE(ZSHANEXTSUBR).
PERFORM SQRS(ZSHANEXTSUBR) USING A B.
SAVE-CHECK-ACTIVATE-TEST
3.FUNCTION MODULES
FUNCTION MODULE RETURNS SOME RESULT ALLWAYS.
ADVANTAGES:
IT IS A GLOBAL OBJECT.
IT IS CLIENT DEPENDENT BY DEFAULT .
IT CAN BE CALLED FROM ANY PROGRAM.
IT CAN BE CALLED MULTIPLE TIMES IN THE SAME PROGRAM.
ERROR HANDLING IS POSSIBLE.
DEBUGGING IS ALSO POSSIBLE.
NESTING OF LOOPS IS POSSIBLE.
BUSSINESS LOGIC IS WRITTEN IN FUNCTION MODULE ITSELF.
12,000 PRE-DEFINED FUNCTION MODULES ARE AVAILABLE TO THE USERS IN THE PROGRAMS.
Se80>select package..zsantanu1>press enter..
�CREATION OF FUNCTION MODULE
FUNCTION GROUP: ALL THE RELATED FUNCTION MODULES ARE PLACED IN ONE FUNCTION GROUP.
FUNCTION GROUP SAVE AS PACKAGE WILL BECOME TRANSPORTABLE
FUNCTION GROUP SAVE AS LOCAL OBJECT IT WILL BECOME NON-TRANSPORTABLE.
FUNCTION MODULE IS ALLWAYS ATTACHED TO A FUNCTION GROUP
ZSHANFGP {FM1, FM2, FM3...}
function group creation is mandatory.
STEP 2: CREATE FUNCTION MODULE (se37: function builder)�
Se37>function builder>zshanfmadd1>create
1.attributes: general properties of a function module��normal function module (default) client dependent��remote enabled function module (client independent) : rfc client programs�
2.import: input values into the function module��a type i�b type i
3.export: output values from the function module��c type i�
exceptions: error handling in the function module��allz all zeroes
source code: to write the bussiness logic of the function module�
Save check act.-test
STEP 3: CREATE ABAP EDITOR CALLING PROGRAM (EXECUTABLE PROGRAM)�
Se38>zshancalladdfm1
Write prog..click on pattern button..
Then select fm zshan..
Put A= x�B= y, C= z..save check act.-test.
Results..put x=10, y=4..
�INCLUDE PROGRAM
Save the include prog
step 2: go to se38: abap editor�
program: zshancallinclude create
title; calling program for include
type: executable program
REPORT ZSHANCALLINCLUDE.
INCLUDE ZSHANINCLUDE.
WRITE:/ KNA1-KUNNR, 20 KNA1-NAME1, 50 KNA1-LAND1.
ENDSELECT.
SAVE THE PROGRAM
STEP 3: GO TO ZSHANINCLUDE PROGRAM�SAVE-CHECK-ACTIVATE�STEP 4: GO TO ZSHANCALLINCLUDE PROGRAM CHANGE��SAVE-CHECK-ACTIVATE-TEST�
tables�
Se38>zsantables>executable prog>save as local object.
Save check activate-test.
*2ND IN-DIRECT ACCESS OF DATABASE TABLE 50%�
*IN-DIRECT ACCESS OF DATABASE TABLE 60%�
*IN-DIRECT ACCESS OF DATABASE TABLE USING INTERNAL TABLES 70%�
Tables contd..
� Internal tables
zemp�eno ename sal�1 a 9000�2 b 8000�3 c 7000
*PRG USING INTERNAL TABLES WITH HEADER LINE�
*internal table without header line�
�SYNTAX FOR INTERNAL TABLES
Contd..
Contd..
Se38>zsantables>create>prog using internal tables>save as local object.
Save check activate test..sales displayed in descending order..
*program using collect on internal tables�
Total is added and computed in the collect statement..
REFRESH, FREE ITAB�
Check results and analyze..
Without refresh itab..see results.
Do..end do..
*NESTED SELECT ON INTERNAL TABLES�
Cust no 1 to 1200: execute
internal tables using nested select logic��CONTROL BREAK EVENTS: This is used for formatting report�
Cust: 1 to1200: execute..
JOINS PROGRAM
Se38>zshanjoins>create
Prog on inner join..se38>zshanjoins >change
Cust:1 to 1200: execute
LEFT OUTER JOIN LOGIC ON INTERNAL TABLES
Save check act.-test>execute
Flights from frankfurt to ny
DATA DICTIONARY
CREATION OF TRANPARENT TABLE DATA ELEMENT WAY�
SPECIFICATION:�
Primary and unique Keys..
CREATION OF TRANPARENT TABLE DATA ELEMENT WAY�
Se11>zdoenosan>employee no
similary create all the domains>employee name
Dept no
Employee salary
STEP 2: CREATE DATA ELEMENTS�
SELECT DATA ELEMENT CONTINUE��SHORT DESC: EMPLOYEE NUMBER��DOMAIN: ZDOENOSAN
CLICK ON FIELD LABEL�SHORT : ENO�MEDIUM : ENO�LONG : EMPLOYEE NUMBER�HEADING: EMPLOYEE NUMBER�SAVE-CHECK-ACTIVATE
SIMILARY CREATE ALL THE DATA ELEMENTS:�ZDEENAMESAN1
Contd..
Dept no
Salary..
STEP 3: CREATE FIELDS:se11>data dictionary>�database table>zempsan1>create�
Afer this,�click on fields tab
short desc: employee table
delivery class: a application table
delivery class specifies what type of table is created in database
ex: application table, system table, customizing table, temporary table etc
database table maintenance : allways allowed
Contd..fields add
fields data elements
eno pk uk zdeenosan
ename zdeenamesan
deptno zdedeptnosan
sal zdesalsan
SAVE AS CLIENT SPECIFIC TABLE CONTINUE
�STEP 4: CLICK ON TECHNICAL SETTINGS BUTTON
DATA CLASS: SPECIFY WHAT TYPE OF DATA IS CREATED IN THE TABLE
APPL0 : MASTER DATA : RARELY CHANGED DATA IS MASTER DATA
APPL1: TRANSACTION DATA: FREQUENTLY DATA IS CHANGED
SYSTEM DATA: SYSTEM PURPOSE
ORGANIZATIONAL DATA: ORGANIZATION PURPOSE
SIZE : 0 (0-7600)
BUFFERING: IS NOT ALLOWED (DEFAULT)
IT CREATES A LOG FILE TO STORE ALL THE OPERATIONS SUCH AS INSERT, UPDATE, DELETE ARE RECORDED IN THE BUFFER.
TYPES OF BUFFERING
SINGLE RECORD BUFFERING: ONLY FEW RECORDS ARE LOCATED IN BUFFER
GENERIC BUFFERING: GENERIC AREA IS GIVEN FOR BUFFERING. GENERIC AREA CONTAINS GENERIC KEY. GENERIC KEY CONTAINS PRIMARY KEY AND ANY OTHER KEY
FULL BUFFERING : TOTAL TABLE IS LOCATED IN BUFFERING
SAVE THE TECH.SETTINGS
STEP 5: CREATE TABLE�
SAVE-CHECK-ACTIVATE
(TO AVOID WARNING ENHANCEMENT CATEGORY IS MISSING
EXTRAS - ENHANCEMENT CATEGORY - CONTINUE
SELECT OPTION : CAN BE ENHANCED DEEP COPY
SAVE-CHECK-ACTIVATE
SIMILARLY CREATE ZDEPTSAN1 TABLE:�specifications..see slide 145
Save check activate..the 2nd table
step-6�CREATE RELATIONSHIP BETWEEN TABLES�
GO TO ZEMPSAN1 TABLE
PLACE THE CURSOR ON DEPTNO FIELD
CLICK ON FOREIGN KEYS BUTTON
SHORT TEXT: FKEY
CHECK TABLE: ZDEPTSAN1(CONNECTING TABLE TO CURRENT TABLE)
CLICK ON GENERATE PROPOSAL BUTTON
CLICK ON COPY
SAVE-CHECK-ACTIVATE
step-7��1.CREATE RECORDS TO THE TABLE zdeptsan1�
UTILITIES - TABLE CONTENTS - CREATE ENTRIES
2.TO DISPLAY RECORDS
CLICK ON CONTENTS BUTTON
OR) UTILITIES - TABLE CONTENTS - DISPLAY
3.UPDATE RECORDS
SELECT RECORD AND CLICK ON UPDATE
4.DELETE RECORDS
SELECT RECORD CLICK ON TABLE ENTRY - DELETE
CONFIRM DELET
Go to zemsan1 table : utilities>create entries
Zempsan1 table > click on contents>see the relationship between the tables created with details information.
Execute>
structures
Click on predefined button..
click on tech.settings
data class: appl0 : master data : rarely changed data
size: 0
save the tech.settings
press back
go to extras - enhancement category
select (can be enhanced deep) copy
save-check-activate
2nd step..create structure
Save check activate.
step 2: create include structure�
go to se11: data dictionary
database table : zshancust change
fields data element
.include zshanstr
save-check-activate the table
3.creation of append structure�
go to se11: data dictionary
database table: zshancust change
click on append structure button
save..yes
client specific table continue
no append structure is defined continue
append name: zshenappnd continue
short desc: my append structure
component click on pre-defined type button
faxno numc 10 fax number
addr char 60 address
go to extras - enhancement category
can be enhanced deep copy
save-check-activate
Press back> expand structure
Click on contents button
Example: se11> kna1>view
KNA1>View the append structure>expand
SE11>K*>F4 KEY PRESS�all customer tables are displayed
Select any table>Click on contents button.
Append and include..conclude..
data dictionary��search help, lock objects�
search help is used to locate table and field
it is created along with the table creation
database table: zempsan
fields data elements
eno zdeenosan
ename zdeenamesan
deptno zdedeptnosan
similarly create elementary search helps on ename, deptno fields�
Se11> search help >ZENameSANESHLP1
Se11> ZdeptnoSANESHLP1
creation of collective search help�
Execute>collective search..
LOCK OBJECTS: SIMULTANEOUSLY MORE THEN ONE USER WANTS TO ACCESS THE SAME INFORMATION .AT THE SAME POINT OF TIME ONLY ONE USER IS GIVEN ACCESS AND OTHER USERS ARE LOCKED WITH THE HELP OF LOCK OBJECTS�
creation of lock objects�
Se38>calling lock eyenosan
Save check activate-test.
See table is locked.
�Views:�views are used to display data from multiple tables��it is created for read-only purpose (display)�
4 types of views
1.projection view: single table selected fields are displayed
2.database view: multiple tables information is displayed and it performs inner join of the tables
3.maintenance view : multiple tables information is displayed and it performs left outer
join of the tables
4.help view: it is created for help purpose.
Click on contents
execute
database view
go to se11: data dictionary
select the option view: zsandbv create
select the option database view and click on copy
short desc: my database view
tables
kna1
vbak
place the cursor on vbak and click on relationships button
save-check-activate��click on contents to view the contents�
result
maitenance view
REPORTING:�DATA IN A PRESENTABLE FORM IS KNOWN AS REPORT.��ABAP PROGRAMS ARE KNOWS AS REPORTS.�
EVENTS : SEQUENCE OF STEPS THAT ARE TRIGGERED IN PARTICULAR POSITION/PLACE/TIME.
EVENTS ARE DEFINED IN CAPITALS ONLY.
VALIDATIONS : CONDITIONS BASED ON WHICH REPORT IS BEING EXECUTED
�1.CLASSICAL REPORT:�IT IS CONSIDERED AS DRAFT(NOT FORMATTED).�IT DISPLAYS DATA FROM MULTIPLE TABLES.�
EVENTS:
1.STANDARD EVENTS:
1.INITIALIZATION: IT IS USED TO GIVE DEFAULT VALUES/ INITIAL VALUES TO THE REPORT.
2.AT SELECTION-SCREEN.
3.AT SELECTION-SCREEN ON <FIELD NAME> : ARE USED FOR WRITING VALIDATIONS FOR THE REPORT.
4.START-OF-SELECTION. : START OF THE BUSSINES LOGIC
5.END-OF-SELECTION : TO END THE BUSSINES LOGIC
Definitions..
LINE-COUNT 25(4) : LINE COUNT IS GOING TO SPECIFY THE NUMBER OF LINES USED IN THE REPORT
IT DISPLAYS 25 LINES OUT OF WHICH 4 LINES ARE RESERVED FOR FOOTER INFORMATION
LINE-SIZE 120: IT DISPLAYS NO.OF CHARACTERS PER LINE OF THE REPORT, INCLUDING SPACES. (270 PER SCREEN)
3.CONTROL BREAK EVENTS (LOOP AT ITAB...ENDLOOP)
THERE ARE 4 CONTROL BREAK STATEMENTS
1.AT FIRST.
<STMT BLOCK>.
ENDAT.
IT WILL DISPLAY COL.HEADINGS
Se38>zsanclassical
2.DRILL-DOWN REPORT��INTERACTIVE REPORT
WE ARE INTERACTING WITH RUN-TIME VALUES IN THIS REPORT.
THE FIRST REPORT GENERATED IS KNOWN AS BASIC LIST.
THE SECOND REPORT GENERATED FROM BASIC LIST IS KNOWN AS SECONDARY LIST NO 1.
IT WILL DISPLAY INTERACTIVELY IN DRILL-DOWN MANNER UPTO MAX SECONDARY LIST NO 20.
SY-LSIND : SYSTEM LIST INDEX: IT IS USED TO NAVIGATE IN THE INTERACTIVE REPORT
SY-LSIND = 0 (WE ARE IN BASIC LIST)
SY-LSIND = 1 (SECONDARY LIST NO 1)
SY-LSIND = 2 (SECONDARY LIST NO 2)
....
SY-LSIND = 20 (MAX LIST AVAILABLE)
*interactive report using AT LINE-SELECTION:�se38>zsaninteractive>executable�
*interactive report using AT LINE-SELECTION�
*INTERACTIVE REPORT USING AT LINE-SELECTION�
Click on vendor information
AT PF<KEY>: AT PRESS OF FUNCTION KEY IT WILL EXECUTE THE REPORT�
Se38>write prog>save check act>test
Click on f4: cust info displayed
AT USER-COMMAND: USER WANTS TO EXECUTE THE COMMAND IN COMMAND PROMPT�
AT USER-COMMAND: USER WANTS TO EXECUTE THE COMMAND IN COMMAND PROMPT
SY-UCOMM: SYSTEM USER COMMAND IS A VARIABLE USED TO CAPTURE THE COMMAND GIVEN BY THE USER.
*at USER-COMMAND AT THE COMMAND PROMPT
TABLES: KNA1, LFA1, MARA.
WRITE:/ 'C01: CUSTOMER INFO, V01 : VENDOR INFO, M01: MATERIAL INFO, EXI: EXIT'.
START-OF-SELECTION.
AT USER-COMMAND.
CASE SY-UCOMM.
Save check activate test
C01>enter
menu painter t-code se41 �t is used to design menu options for the abap reports��
status: menu1 create��short text : my menu continue�
1.menu bar :� click on (+) icon� display standards� san menu1 san menu2 san menu3� d.clic� code text code text code text� C01 CUSTOMER INFO V01 VENDOR INFO M01 MATERIAL INFO� EXI EXIT��
2.CLICK ON APPLICATION TOOL BAR ��ITEMS (1-7) C01 V01 M01 EXI� F5 F6 F7 F9 (D.CLICK ATTACH FUNCTION KEYS)�� ICON NAME : SELECT FROM THE LIST OF ICONS� ICON TEXT : CUSTOMER INFO��SIMILARY ATTACH ICONS FOR ALL THE BUTTONS��CLOSE THE APPLICATION TOOLBAR (-)�
CHOOSE AN ICON NAME AND TEXT FOR EACH ENTRY
3.CLICK ON FUNCTION KEYS��STANDARD TOOL BAR�SAVE BACK EXIT��SAVE-CHECK-ACTIVATE MENU PAINTER�
STEP 2: CALLING MENU PAINTER IN THE ABAP REPORT PROGRAM��GO TO ZSANINTERACTIVE: WRITE THESE TWO LINES AS GIVEN>�*INVOKE THE MENU PAINTER>SET PF-STATUS 'MENU1'.>START-OF-SELECTION.��SAVE-CHECK-ACTIVATE-TEST�
SEE HERE..SAVE CHECK ACT TEST.
TYPE C01, PRESS ENTER
Same result
3.SAP QUARY REPORT
THIS IS USED BY FUNCTIONAL PEOPLE.
IT GENERATES THE REPORT IN DIFFERENT FORMATS SUCH AS
ALV (SAP LIST VIEWER)
WORD DOCUMENT
EXCEL SHEET
TABLE
ABC ANALYSIS
GRAPHIC
STEP1: GO TO T-CODE SQ03: TO CREATE USER GROUP�
USER GROUP CONTAINS LIST OF USERS WHO WANT TO SHARE THE REPORT.
user group ; zshefusrgp create
short text: my user group
save as local object
STEP 2: GO TO T-CODE SQ02: TO CREATE INFOSET�
INFOSET CONTAINS INFORMATION TO BE DISPLAYED IN THE REPORT
INFOSET: ZSHEFINFSET CREATE
NAME: MY INFOSET
SELECT OPTION : TABLE JOIN USING BASIS TABLE : LFA1
CLICK ON CONTINUE
CLICK ON INSERT TABLE BUTTON
TABLE: EKKO AND CONTINUE�
DRAG AND THE DROP TO THE LIFNR(OF EKKO TABLE)
COMMON FIELD TO JOIN LFA1 AND EKKO IS LIFNR
CLICK ON INSERT TABLE BUTTON: TABLE: EKPO AND CLICK ON CONTINUE�
RIGHT CLICK DELETE THE LINK PERTAINING TO EBELP FIELD
COMMON FIELD TO JOIN EKKO AND EKPO TABLES IS EBELN
PRESS BACK BUTTON
CLICK ON INCLUDE ALL TABLE FIELDS AND CONTINUE
SAVE-CHECK-GENERATE THE INFOSET�
STEP 3: ATTACH USER GROUP TO INFOSET��GO TO T-CODE SQ03
USERGROUP: ZSHEFUSRGP
INFOSET: ZSHEFINFSET
CLICK ON ASSIGN USERS TO INFOSET (BUTTON)
SAPUSER (GIVE UPTO 17,000 USERS TO SHARE YOUR REPORT)
CLICK ON ASSIGN INFOSET BUTTON
GO TO LAST PAGE
CHECK THE INFOSET : ZSHEFINFSET
SAVE
PRESS BACK
SAVE
PRESS BACK
CLICK ON ASSIGN INFOSET BUTTON>GO TO LAST PAGE> CHECK THE INFOSET : ZSHEFINFSET>SAVE >PRESS BACK��SAVE�PRESS BACK�
STEP 4: GO TO T-CODE SQ01: TO CREATE QUARY REPORT�
QUERY : ZSHEFQRY CREATE
SELECT ZSHEFINFSET AND CONTINUE
TITLE: INVOICE INFO
SAP LIST VIEWER (DEFAULT OPTION)
CLICK ON BASIC LIST BUTTON
TITLE: INVOICE INFO��SAP LIST VIEWER (DEFAULT OPTION
CLICK ON BASIC LIST BUTTON�
SELECT THE FIELDS FROM EACH OF THE TABLES�SELECT THE FIELDS FOR SELECTION-FIELDS FROM EACH OF THE TABLES (SELECT-OPTIONS)�
CLICK ON SAVE > CLICK ON TEST BUTTON > CLICK ON CONTINUE��CLICK ON EXECUTE >IT WILL DISPLAY QUARY REPORT�
Exexute..invoice info sap query generated.
Assignment..
�4.LOGICAL DATABASE REPORT (LDB)
t-code se36
logical database is used to reduce the seek time of database.
it is faster access when compared to direct access of tables.
step1 : creation of ldb
go to t-code se36; logical database
logical database: zshefldb create
short text: myldb
click on create
save as local object
name of the root node: lfa1
text: my root node
database table: lfa1
create
right click on lfa1 and insert nodes
node name: ekko
text : my second node
heirarchially under: lfa1
database table: ekko
create
right click on ekko and insert nodes
node name: ekpo
text: my third node
heirarchially under: ekko
database table: ekpo
Create
save the logical database
step 2: click on selections button (to create select-options)�
click on yes
check all the tables for free selections
lfa1, ekko , ekpo
check all the tables for field selection
lfa1, ekko, ekpo
click on transfer
SELECT-OPTIONS : vno FOR LFA1-LIFNR. "uncomment and give vno
SELECT-OPTIONS : pono FOR EKKO-EBELN. "uncomment and give pono
save
check(main program is not created)
go to se38: abap editor
program: zshefldb create
title: calling program for ldb
type: executable program
logical database: zshefldb
save as local object
save-check-activate
go to t-code se36
ldb zshefldb change
click on selections button
save-check-activate ldb
press back
go to t-code se36�
ldb zshefldb change
click on selections button
save-check-activate ldb
press back
step 3: creating quaries for the ldb�
click on the source code button
yes
include DBZSHEFLDBNXXX . " all system routines
d.click on it
include DBZSHEFLDBN001 . " Node LFA1
d.click on it
-
select * from lfa1 where lifnr in vno.
* SELECT (LFA1_FIELDS-FIELDS) INTO CORRESPONDING FIELDS OF
* LFA1 / TABLE ? " (choose one of them)
* FROM LFA1
* WHERE LIFNR IN vno
* AND (LFA1_WHERE-WHERE_TAB) ORDER BY PRIMARY KEY.
PUT LFA1.
ENDSELECT. "uncomment endselect
save-check-activate
PRESS BACK.
include DBZSHEFLDBN003 . " Node EKPO� d.click on it�
select * from ekpo where ebeln = ekko-ebeln.
* SELECT (EKPO_FIELDS-FIELDS) INTO CORRESPONDING FIELDS OF
* EKPO / TABLE ? " (choose one of them)
* FROM EKPO
* WHERE EBELN = EKKO-EBELN
* AND EBELP = ?
* AND (EKPO_WHERE-WHERE_TAB) ORDER BY PRIMARY KEY.
PUT EKPO.
ENDSELECT. "uncomment
save-check-activate
press back
press back
save-check-activate
press back
save-check-activate
save the ldb
step 4: abap editor program for calling ldb�
REPORT ZSHEFLDB.
tables: lfa1, ekko, ekpo.
start-of-selection.
GET LFA1.
WRITE:/ LFA1-LIFNR, 20 LFA1-NAME1, 50 LFA1-LAND1.
GET EKKO.
WRITE:/60 EKKO-EBELN, 75 EKKO-AEDAT.
GET EKPO.
WRITE:/85 EKPO-EBELP, 95 EKPO-MATNR.
END-OF-SELECTION.
SAVE-CHECK-ACTIVATE-TEST