Sie sind auf Seite 1von 32

*LOOPING:

*CONDITIONAL LOOPING:

* SYNTAX:
* WHILE <CONDITION>.
* STS.
* ENDWHILE.
*
EXAMPLE:
PARAMETER X TYPE I.
WHILE X < 3.
WRITE / 'MY LUCKY NUMBER'.
ENDWHILE.

* =================================================================

* DATA TYPES:

* ==================================================================

* LIST OF DATATYPES IN ABAP: 2 TYPES


*
* 1. NUMERIC DATATYPES
* 2. NON-NUMERIC DATA TYPES
*
*
* NON-NUMERIC DATA TYPES:
*
*
* DATATYPE MIN MAX DECLARATION
* C- CHARECTER 1 65535 DATA NAME (35) TYPE C.
* D- DATE 8 8 DATA DOB TYPE D.
* T- TIME 6 6 DATA TIME TYPE T.
* N- NUMERICS AS CHARECTERS 1 65535 DATA NAME (16) TYPE C TYPE N.
*
*
* NOTE: EACH NON-NUMARIC VALUE NEEDS ONE BYTE SPACE.

* NOTE: DEFAULT DATA TYPE IS CHARECTER AND DEFAULT DATATYPE LENGTH IS 1.

* PACKED DECIMAL DATA TYPE (P):

* SYNTAX:
* DATA PRICE1 TYPE I.
* DATA PRICE2 TYPE I.
* DATA PRICE3 TYPE I.
*
* PRICE1 = 16.
* PRICE2 = 24.
* PRICE3 = PRICE1 + PRICE2.
* WRITE : / 'PRICE3' , PRICE3.

* FLOAT DATA TYPE (F):

* SYNTAX:
* DATA PRICE1 TYPE F.
* DATA PRICE2 TYPE F.
* DATA PRICE3 TYPE F.
*
* PRICE1 = '17.10'.
* PRICE2 = '17.11'.
* PRICE3 = PRICE1 + PRICE2.
* WRITE : / 'PRICE3' , PRICE3.

* PACKED DECIMAL DATA TYPE (P):

* SYNTAX:
* DATA PRICE1 TYPE P.
* DATA PRICE2 TYPE P.
* DATA PRICE3 TYPE P DECIMALS 4.
*
* PRICE1 = '17.10'.
* PRICE2 = '17.11'.
* PRICE3 = PRICE1 + PRICE2.
* WRITE : / 'PRICE3' , PRICE3.

* =====================================================================

* STRING 'IS A DATA TYPE'

* =====================================================================

CHARECTER STRING

ONLY UPTO 65535 CHARECTERES ANY NUMBER OF CHARECTERS

MEMORY ALLOCATION IS STATIC MEMORY ALLOCATION IS STATIC

EXAMPLE: STNTAX EXAMPLE: SYNTAX.


DATA NAME (100) TYPE C NAME = 'EMAX'.

MEMORY IS ALLOCATED FOR 100 IE; RUNTIME BASED, ON THE VALUE


CHARECTERS AT THE TIME OF (MEMEORY IS ALLOCATED AT THE TIME
DECLARATION (IRRESTECTIVE OF OF PROGRAM EXECUTION)
VALUE STORED)

* ==========================================================================

PREDIFINED STRING OPERATIONS:

* ==========================================================================

1. TRANSLATE
2. CONDENSE
3. CONCATENATE
4. SPLIT
5. REPLACE
6. SHIFT
7. STRLEN

NOTE: THE ABOVE STRING OPERATIONS ARE ALLOWED ON THE NON-NUMERIC DATATYPES ALSO.

1. TRANSLATE:
TRANSLATE THE WHOLE STRING VALUE INTO EITHER LOWER/UPPER CASE.

SYNTAX:
TRANSLATE <STRVAR> TO UPPER/LOWERCASE.

2. CONDENSE:
CONVERT ALL THE SQUANCIAL SPACES INTO SINGLE SPACE THROUGH OUT THE STRING.

SYNTAX:
CONDENSE <STRVAR>

WHOLE STING WITH NO SPACES.

SYNTAX:
CONDENSE <STRVAR> NO-GAPS.
3. CONCATENATE:
COMBINES MANY STRINGS INTO ONE STRING WITH A SEPARATOR.

SYNTAX:

CONCATENATE <STR1><STR2><STR3>……….. <STRN> INTO <MAINSTRVAR> [SEPARATED BY


<SEPARATOR>]

SEPARATOR: GENERALLY A SINGLE CHAR OR A SPECIAL CHAR LIKE COMMA, SEMI COLUMN…. ETC
IS USED.

EXAMPLE:

DATA ADDRESS TYPE STRING.

CONCATENATE ‘AMEERPET’ ‘HYDERABAD’ ‘INDIA’ INTO <ADDRESS> SEPARATED BY ‘/’

WRITE :/ ‘ADDRESS’, ADDRESS COLOUR 3.

4. SPLIT:
SPLITS ONE STRING INTO MANY STRINGS AT A GIVEN SEPARATOR.

SYNTAX:

SPLIT <MAINSTR> AT <SEPARATOR> INTO <STR1><STR2><STR3>……….. <STRN>.

EXAMPLE:

DATA : STREET TYPE STRING.


DATA : CITY TYPE STRING.
DATA : CTRY TYPE STRING.

SPLIT <ADDRESS> AT ‘/’ INTO NAME ‘AMEERPET’ ‘HYDERABAD’ ‘INDIA’.

WRITE / : ‘NAME’ , NAME COLOUR 3.


‘STREET’, STREET COLOUR 3.
‘CITY’ , CITY COLOUR 3.
‘CTRY’ , CTRY COLOUR 3.

5. REPLACE:
REPLACE THE EXISTING WITH NEW THING IN THE INPUT STRING.

V_NAME -> ‘EMAX TECHNOLOGIES’.

SYNTAX:

REPLACE [OCCURRENCE/ALL OCCURENCES OF] <STR1> IN <MAINSTR> WITH <STR2>.


SYNTAX:

REPLACE FIRST OCCERENCE OF ‘I’ IN NAME WITH E.

WRITE : / ‘NAME AFTER REPLACE’ NAME COLOUR 3.

NOTE: REPLACEING THE PARTICULAR OCCRENCE OF THE STRING IS BASED ON ITS POSITION AND
LENGTH.

SYNTAX:

REPLACE SECTION OFFSET <POSITION> LENGHT <LEN> OF <MAINSTR> WITH <STR>.

EXAMPLE:

REPLACE SECTION OFFSET 15 LENGHT 1 OF <MAINSTR> WITH I.

WRITE : / ‘NAME AFTER REPLACE SECTION’ NAME COLOUR 3.

NOTE: STRING COINT STARTS WITH ZERO. IE; SECOND POSITION MEANS THIRD CHARACTER IN
THE STRING.

6. SHIFT

SYNTAX:

SHIFT <STRVAR> LEFT/RIGHT/CIRCULAR BY <N> PLACES.

V_NAME-> ‘EMAX TECH’


EXAMPLE:

SHIFT V_NAME LEFT BY PLACES.

WRITE : / ‘V_NAME’ , V_NAME VOLOUR 3.

SHIFT V_NAME RIGHT BY PLACES.

WRITE : / ‘V_NAME’ , V_NAME VOLOUR 3.

SHIFT V_NAME LEFT CIRCULAR BY PLACES.


WRITE : / ‘V_NAME’ , V_NAME VOLOUR 3.

SHIFT V_NAME RIGHT CIRCULAR BY PLACES.

WRITE : / ‘V_NAME’ , V_NAME VOLOUR 3.

7. STRLEN:

NUMBER OF CHARECTERS IN STRING.

SYNTAX:

STRLEN ( <STRING> )

EXAMPLE:

DATA V_LEN TYPE I.

V_LEN = STRLEN ( ‘SBCDEF’ )

WRITE : / ‘NUMBER OF CHARECTERS IN NAME’ . V_LEN COLOUR 3.

=====================================================================================
==============================

DATA DICTIONARY / ABAP DICTIONARY - TCODE : SE11

=====================================================================================
==============================

DATABASE:
-----------------

IN COLLECTIONOF PROGRAMMS TO ALLOW THE DATA ALWAYS IN TABULAR FORMAT AND


ALLOWS TO ADD INTELLIGANCE TO THE TABLES i.e; NOT TO ALLOW THE INVALID.

EXAMPLES:

ORACLE FROM ORACLE CORP.


DB2 FROM IBM.
SQL SERVER FROM MICROSOFT.
EACH DATABASE HAS ITS OWN SQL (STRUCTIURED QUERY LANGUAGE) TO INTERACT WITH THE
DATABASE TO
DEFINE THE TABLES
MANIPULATE THE TABLES
READ THE DATA
CHANGE THE DATA
NOTE:
SAP IS DATABASE INDEPENDENT i.e; THE WAY OF WORKING WITH A NYU DATABASE REMAINS
SAME IN SAP AND IT IS VIA OPEN/COMMON SQL.

OPEN SQL IS SUPPORTED THROUGH ABAP/DATA DICTIONARY.

STEPS TO CREATE A DATABASE TABLE:


-------------------------------------------------------------

BY DEFAULT SAME EMPID IS ALSO ACCEPTED BUT TO RESTRICT EMPID SHOULD BE DEFINED AS A
PRIMARY KEY FIELD AND WHICH ALLOWS ONLY UNIQUE /DISTINCT ENTRIES/VARIABLES.

NOTE:
EACH TABLE SHOULD HAVE ATLEAST ONE FIELD AS A PRIMARY KEY FIELD AND IT SHOULD BE
ATLEAST THE BEGINING OF THE TABLE.

STEP 1: EXECUTE TRANSACTION CODE /TCODE:


STEP 2: ENTER DATABASE TABLE NAME AND CLICK ON CREATE
STEP 3: ENTER THE DISCRIPTION OF THE TABLE.
STEP 3: SELECT DELIVERY CLASS:
SELECT THE OPTION FOR DATA BROWSER / TABLE VIEW MAINTANANCE:
STEP 4: SELECT A PACKAGE NAME
STEP 5: CLICK ON 'FIELDS' TAB
CLICK ON 'BUILT INTYPE' TAB/ PREDEFILED TYPE
TO ENABLE THE INACTIVE FILEDS LIKE DATATYPE , LENGHT , DECIMAL POINTS AND SHORT
DISCRIPTION.
STEP 5: FILL IN THE FILEDS

EXAMPLE:

FIELD KEY DTYPELENGHT SHORT-DISCRIPTION

EMPID CHECK CHAR 10 EMPLOYEE ID


NAME CHAR 35 NAME OF THE EMPLOYEE
DOJ DATS 8 DATE OF JOINING

STEP 6: CLICK ON 'TECHNICAL SETTINGS' TAB.


(FILLING THE FILEKS IS MANDITARY).
DATA CLASS:
SIZE CATAGORY:

SAVE AND THE CLICK ON BACK.


CHECK AND ACTIVATE.

TO CREATE THE ENTRIES IN TO THE TABLE:


---------------------------------------------------------------------

PATH:
UTILITIES -> TABLE CONTENTS -> CREATE ENTRIES
ENTER THE FIELD ENTRIES AND SAVE

TO VIEW THE EXISTING ENTRIES OF THE TABLE:


----------------------------------------------------------------------------

PATH:
UTILITIES -> TABLE CONTENTS -> DISPLAY

(IF NOTHING IS SPECIFIED, DISPLAYS ALL THE ENTRIES)

DATA DICTIONARY / ABAP DICTIONARY - TCODE : SE11


----------------------------------------------------------------------------------------

DATABASE:
-----------------
IN COLLECTIONOF PROGRAMMS TO ALLOW THE DATA ALWAYS IN TABULAR FORMAT AND
ALLOWS TO ADD INTELLIGANCE TO THE TABLES i.e; NOT TO ALLOW THE INVALID.

EXAMPLES:

ORACLE FROM ORACLE CORP.


DB2 FROM IBM.
SQL SERVER FROM MICROSOFT.
EACH DATABASE HAS ITS OWN SQL (STRUCTIURED QUERY LANGUAGE) TO INTERACT WITH THE
DATABASE TO

DEFINE THE TABLES


MANIPULATE THE TABLES
READ THE DATA
CHANGE THE DATA
NOTE:
SAP IS DATABASE INDEPENDENT i.e; THE WAY OF WORKING WITH A NYU DATABASE REMAINS
SAME IN SAP AND IT IS VIA OPEN/COMMON SQL.

OPEN SQL IS SUPPORTED THROUGH ABAP/DATA DICTIONARY.


STEPS TO CREATE A DATABASE TABLE:
------------------------------------------------------------
BY DEFAULT SAME EMPID IS ALSO ACCEPTED BUT TO RESTRICT EMPID SHOULD BE DEFINED AS A
PRIMARY KEY FIELD AND WHICH ALLOWS ONLY UNIQUE /DISTINCT ENTRIES/VARIABLES.

NOTE:
EACH TABLE SHOULD HAVE ATLEAST ONE FIELD AS A PRIMARY KEY FIELD AND IT SHOULD BE
ATLEAST THE BEGINING OF THE TABLE.

STEP 1: EXECUTE TRANSACTION CODE /TCODE:


STEP 2: ENTER DATABASE TABLE NAME AND CLICK ON CREATE
STEP 3: ENTER THE DISCRIPTION OF THE TABLE.
STEP 3: SELECT DELIVERY CLASS:
SELECT THE OPTION FOR DATA BROWSER / TABLE VIEW MAINTANANCE:
STEP 4: SELECT A PACKAGE NAME
STEP 5: CLICK ON 'FIELDS' TAB
CLICK ON 'BUILT INTYPE' TAB/ PREDEFILED TYPE
(TO ENABLE THE INACTIVE FILEDS LIKE DATATYPE , LENGTH , DECIMAL POINTS AND SHORT
DISCRIPTION).

STEP 5: FILL IN THE FILEDS

EXAMPLE:

FIELD KEY DTYPELENGHT SHORT-DISCRIPTION

EMPID CHECK CHAR 10 EMPLOYEE ID


NAME CHAR 35 NAME OF THE EMPLOYEE
DOJ DATS 8 DATE OF JOINING

STEP 6: CLICK ON 'TECHNICAL SETTINGS' TAB.


(FILLING THE FILEKS IS MANDITARY).
DATA CLASS:
SIZE CATAGORY:

SAVE AND THE CLICK ON BACK.

CHECK AND ACTIVATE.

TO CREATE THE ENTRIES IN TO THE TABLE:


--------------------------------------------------------------------
PATH:
UTILITIES -> TABLE CONTENTS -> CREATE ENTRIES
ENTER THE FIELD ENTRIES AND SAVE

TO VIEW THE EXISTING ENTRIES OF THE TABLE:


------------------------------------------
PATH:
UTILITIES -> TABLE CONTENTS -> DISPLAY

(IF NOTHING IS SPECIFIED, DISPLAY'S ALL THE ENTRIES)

DOMAINS AND DATA ELEMENTS:


---------------------------------------------------
DOMAIN IS THE PACK OF DATA TYPE, LENGHT, DECIMALS (IF ANY).

NOTE: THE SAME DOMAIN CAN BE USED EVERY WHERE AND WHERRE EVER THE SAME DATA TYPE
AND LENGHT IS REQUIRED.

DATA ELEMENT = DISCRIPTION + DOMAIN.

NOTE: DATA ELEMENTS ARE CREATED TO REDUCE THE TIME WHILE CREATING THE ENTRIES
(ESPECIALLY WHILE MAKING) ANY CHANGES FOR THE FIELDS IN FURURE.

STEPS TO CREATE DOMAIN:


------------------------------------------

STEP 1: EXECUTE TCODE: SE11.


STEP 2: CHECK THE DOMAIN OPTION AND ENTER THE DOMAIN NAME (MANDITORY FIELDS TO BE
ENTERED AND ANY NAME HAS TO START WITH Y OR Z)
STEP 3: ENTER THE DISCRIPTION FOR THAT PARTICUMAR DOMAIN. (IT WILL NOT REFLECT IN THE
TABLE DISCRIPTION)
(ONLY EXPLAIN THE PURPOSE OF DOMAIN)
STEP 4: ENTER, LENGHT AND DECIMAL PLACE (IF ANY)
STEP 5: SAVE CHECK AND ACTIVATE.

STEPS TO CREATE DATA ELEMENT:


-------------------------------------------------------

STEP 1: EXECUTE TCODE: SE11.


STEP 3: CHECK THE DATA TYPE AND ENTER THE DATA ELEMENT NAME.
STEP 1: CLICK ON CREATE.
STEP 1: SELECT DATA ELEMENT NAME AND CONTINUE OR PRESS ENTER.
STEP 1: ENTER THE DISCRIPTION OF THE DATA ELEMENT. (ALSO ENTER THE DOMAIN NAME
MANUALLY OR CAN ALSO FOUND IN THE CHECK LIST OR BY PRESSING F4, IF ALREADY CREATED EXIST)
STEP 1: SAVE CHECK AND EXECUTE.

DATA ELEMENT IS CREATED.

NOTE: DOMAINS AND DATA ELEMENTS ARE RE-USABLE.


FOREIGN KEY: LINKING 2 TABLE FIELDS.
---------------------------------------------------------------
FOREIGN KEY DEFINATION IS ONLY POSSIBLE IF DATA ELEMENT IS PROVIDED.

STRUCTURE:
-------------------
STRUCTURE IS THE COLLECTION OF FIELDS WHICH IS A RE-USABLE ELEMENT.

NOTE: STRUCTURE CAN NOT STORE THE DATA ONLY TABLE CAN STORE THE DATA. (TABLE AND
STRUCTURE BOTH ARE COLLECTION OF FIELDS)

COMNPONETS/FIELDS COMPONENT TYPE / DATA ELEMENT

NAME CHAR 10 NAME


STREET CHAR 25 STREET
CITY CHAR 25 CITY
DISTRICT CHAR 25 DISTRICT
CTRY CHAR 10 CTRY CODE

NOTICE THAT THE ABOVE SET OF FIELDS ARE REQUIRED FOR MANY TABLES LIKE .....

ZCUSTOMERS
ZVENDORS
ZCOMPANIES
ZBANKS
ZEMP'S
ZTRAINERS ETC...

NOTE: INSTEAD OF EXPLICITLY ADDING THE SAME SET OF FIELDS IN EVERY TABLE ONE BY ONE, IT IS
RECOMMENDED TO BACK THE ABOVE FIELDS AS A STRUCTURE WHICH CAN BE USED /
INCLUDED IN ANY NUMBER OF TABLES. ANY NUMBER OF STRUCTURES CAN BE INCLUDED IN A
TABLE UNLESS THE FIELD NAMES ARE NOT DUPLICATE.

STEPS TO CREATE A STRUCTURE:


---------------------------------------------------

STEP1: EXECUTE TCODE: SE11.


STEP2: SELECT THE OPTION DATA TYPE AND ETER THE STRUCTURE NAME
STEP3: CLICK ON CREATE TAB.
STEP4: SELET THE OPTION STRUCTURE AD THEN CLICK ON ENTER / CONTINUE.

SAVE CHECK AND ACTIVATE (STRUCTURE IS READY AND CAN BE USED IN ANY TABLE)

COMNPONETS/FIELDS COMPONENT TYPE / DATA ELEMENT


NAME CHAR 10 NAME
STREET CHAR 25 STREET
CITY CHAR 25 CITY
DISTRICT CHAR 25 DISTRICT
CTRY CHAR 10 CTRY CODE

NOTE: TO INCLUDE THE STRUCTURE IN THE TABLE

TYPE THE KEY WORD '.INCLUDE' UNDER FIELD AND THEN TYPE THE STRUCTURE NAME UNDER
'DATA ELEMENT' FIELD.

FIELD KEY INITIAL DATA ELEMENT/STRUCTURE NAME


.INCLUDE ZADDRESS

NOTE: STRUCTURE CAN ALSO BE CREDTED THROUGH TOP DOWN APPROACH.(BY DOUBLE CLICK ON
THE STRUCTURE NAME IN THE TABLE)
STRUCTURES CAN BE NESTED.
THE MAXIMUM NUMBER OF FIELDS IN A TABLE CAN NOT BE MORE THAN 256.

ERROR TYPE/ NOTE:


-------------------------------
STRUCTURE CHANGE AT FIELD LEVEL(ALTER TABLE NOT POSSIBLE)
I,e; DUE TO THE INCONSISTANCIES BETWEEN THE TABLE IN THE DICTIONARY AND THE TABLE IN
THE DATABASE WHICH REQUIRES THE ADJUSTMENT IS THE DATABASE ACCORDING TO THE
CURRENT STRUCTURE OF THE TABLE IN THE DICTIONARY.

HOW TO ADJUST THE DATABASE TABLE?


MENU PATH TO ADJUST THE DATABASE TABLE: UTILITIES -> SELECT DATABASE UTILITY -> CLICK
ON THE 'ADJUST AND ACTIVATE DATABASE' TAB.

=====================================================================================
=============

ENHANCING THE STANDERD TABLES:

ENHANCE = STANDERD TABLE WITH EXISTING FIELDS + ADITIONAL FIELDS


i.e; STANDERD FUNCTIONALITY SHOULD REMAIN UNCHANGED. WHICH IS ALWAYS POSSIBLE
THROUGH APPEND STRUCTURE.
APPEND MEANS ADD AT THE END
STRUCTURE MEANS LIST OF FIELDS

NOTE:
APPEND STRUCTURE ALOWS TO ADD THE LIST OF FIELDS AT THE END OF THE STD TABLE TO
GUARENTEE THAT THE EXISTING FIELDS IN THE STD TABLEREMAINS UNCHANGED.
EXAMPLE:
REQUIREMENT:

STD TABLE: CUSTOMER GENERAL DATA.


FIELDS:
NAME
AGE
STREET
CITY
DISTRICT
COUNTRY

ADDITIONAL FIELDS:
AID 'ADHAR ID' -> (CHAR,18)
DOI 'DATE OF ISSUE' -> (DATS,8)

=====================================================================================
===============

STEPS TO WORK WITH APPEND STRUCTURE:


--------------------------------------------------------------------

STEP1: EXECUTE TRANSACTION CODE (TCODE) -> SE11


STEP2: ENTER THE TABLE NAME TO BE ENHANCED BY SELECTION THE 'DATABASE TABLE' OPTION.
STEP3: CLICK ON DISPLAY OPTION.
STEP4: CLICK ON THE 'APPEND STRUCTURE' TAB ON THE TOP RIGHT SIDE OF THE WINDOW.
STEP5: CLICK ON 'NEW APPEND STRUCTURE'
STEP6: ENTER ANY NAMER FOR THE APPEND STRUCTURE AND THEN CLICK ON 'ENTER OR
CONTINUE'.
STEP7: TYPE THE DISCRIPTION FOR THE APPEND STRUCTURE ANDS THEN ENTER THE FIELDS IN THE
APPEND STRUCTURE WHICH WILL BE ADDED AT THE END OF THE STANDERD TABLE WITH
OUT DISTURBING THE FUNCTIONALITY OF THE TABLE.

APPEND STRUCTURE:

COMPONENT COMPONENT TYPE


ZZAID ZAID
ZZDOI ZDOI
NOTE: IT IS ALWAYS RECOMMENDED TO BEGIN THE FIELD NAME IN THE APPEND STRUCTURE
WITH 'YY' OR 'ZZ' TO DIFFERENTIATE ADDITIONAL FIELDS FROM THE STANDERD TABLE

NOTE: APPEND STRUCTURE IS TABLE SPECIFIC i.e; THE SAME APPEND STRUCTURE CAN NOT BE USED
IN ANY OTHER TABLEWHERE AS NORMAL STRUCTURE IS NOT TABLE SPECIFIC AND CAN BE RE-
USED IN CREATING MANY TABLES.

TABLE ENHANCEMENT CAN BE CONTROLLED AT THE TIME OF CREATING THE TABLE ITSLEF.
i.e; PATH TO CONTROL THE APPEND STRUCTURE.......
EXTRAS -> ENHANCEMENT CATOGORY -> CHECK THE OPTION 'CAN NOT BE ENHANCED' OR ANY
OF THE FOLLOWING OPTIONS.
'CAN BE ENHANCED CHAR TYPE OR NUMARIC TYPE'
'CAN BE ENHANCED CHAR TYPE'
'NOT CLASSIFIED'
NOTE: AT THE TIME OF TABLE CREATION IT WILL PROMPT TO SELECT THE ENHANCEMENT TYPE
(WHICH CAN ALSO BE IGNORED,INITIOALLY)

=====================================================================================
=====================

PRIMARY KEY:
--------------------
PRIMARY KEY IS UNIQUE AND NOT NULL
THE INITIAL CHECK BOX IS ALWAYS SELECTED FOR A PRIMARY KEY FIELD SO THAT WHEN 'NO
VALUES' ENTERED FOR THE P[RIMARY KEY FIELD, INITIAL VALUES ARE STORED INSTEAD OF NULL
VALUES.

i.e; THE INITIAL VALUE FOR THE NUMARIC TABLE IS 'ZERO'


NON-NUMARIC TABLE IS A SPACE " ".
NOTE: APPLICATION TABLE MUST BE CLIENT SPECIFIC SO THAT THE DATE IN THE TABLE IS CLIENT
SPECIFIC.

TO MAKE THE TABLE CLIENT SPECIFIC, A CLIENT FIELD SHOULD BE DEFINED IN THE TABLE AS A
PART OF THE PRIMARY KEY.

SYNTAX:
CLIENT -> DATA TYPE(CLNT) -> AND LENGHT(3) -> DATA ELEMENT(MANDT)

WHILE ASSIGNING THE DATA FROM THE TABLE. ONLY THE DATA THE BELONGS TO THE LOGON
CLIEND WILL BEBE ACCESSED OR RETRIVED WNEN THE TABLE IS CLIENT SPECIFIC.

EXAMPLE:

CLIENT CID NAME STREET CITY CTRY


800 C1
810 C2
800 C2
800 C3
810 C1
811 C1
811 C3

FIELDS IN THE STANDERD TABLE:

FIELDS DATA ELEMENT


CLIENT/MANDT MANDT
CID
NAME
STREET
CITY
CTRY

=====================================================================================
========================

FOREIGN KEY:
---------------------
FOREIGN KEY IS THE LINK BETWEEN THE TWO TABLES.

EXAMPLE:

FIELDS IN THE STANDERD TABLE:

FIELDS DATA ELEMENT


CLIENT/MANDT MANDT
CID 001
NAME GEORGE
STREET XYZ
CITY ABC
CTRY ABCDEF--> FOREIGN KEY.

ABCDEF--> FOREIGN KEY:


---------------------------------------
IS AN INVALID COUNTRY KEY AND SHOULD BE RISTRICTED AND IT CAN BE DONE
AUTOMATICALLY BY LINKING THIS COUNTRY FIELD WITH THE COUNTRY FIELD IN THE
OTHER TABLE (CHECK TABLE) WHERE THE LIST OF VALID CONTRIES ARE ALREADT
MAYNTAINED.

RULES FOR MAINTAINING THE FOREIGN KEY:


----------------------------------------------------------------------

RULE1: FOREIGN KEY RELATION IS POSSIBLE ONLY FOR THE FIELDS WITH THE DATA ELEMENTS.
RULE2: MAKE SURE THAT THE CHECK TABLE FIUELD AND THE FOREIGN KEY FIELD REFERS THE
SAME DOMAIN (DATATYPE AND LENGHT).
RULE3: MAKE SURE THAT THE CHECK TABLE FIELD SHOULD THE PRIMARY KEY IN THE PARENT
TABLE.
RULE4: ANY NUMBER OF FOREIGN KEYS OR PRIMARY KEYS CAN BE MAINTAINED IN A TABLE.

STEPS TO MAINTAIN THE FOREIGN KEY RELATION:


---------------------------------------------------------------------------------
EXAMPLE:
HALL TICKET NUMBER OF THE APPLICANT SHOULD BE VERIFIED WHILE ENTERING THE RANK
DATA.

STEP1: EXECUTE TCODE -> SE11


STEP2: SELECT THE TABLE NAME AND CLICK ON CHANGE.
STEP3: SELECT THE FIELD AND THEN CLICK ON THE 'FOREIGN KEY' TAB
STEP4: ENTER THE 'CHECK TABLE' NAME AND CLICK ON 'GENERATE PROPOSAL' FOR CHECK
TABLE FIELD.

CHECK TABLE CHECK TABLE FIELDS FOREIGN KEY TABLE FOREIGN KEY FIELD
ZAPPLICANTS MANDT ZRANKS MANDT
ZAPPLICANTS HNO ZRANKS HNO ---> CHOOSEN AS FOREIGN KEY

CHECK TABLE: ZAPPLICANTS

FIELDS FOREIGN KEY DATA ELEMENT


MANDT CHECKED MANDT
HNO CHECKED ZHNO
NAME ZNAME

FOREIGN KEY TABLE: ZRANKS

FIELDS FOREIGN KEY DATA ELEMENT


MANDT CHECKED MANDT
HNO CHECKED ZHNO
RANK ZRANK

=====================================================================================
=================

NOTE: TCODE 84.

REPOSITORY OF INFORMATION AND FROM HERE WE CAN FIND OUT THE LIST OFABAP WORK
BENCH COMPENTS LIKE..
PROGRAMS
TABLES
STRUCTURES
DOMAINS
DATA ELEMENTS ....ETC
=====================================================================================
=================

FOREIGN KEY RELATION:


TABLE CREATION WITH QUANTITY AND CURRENCY (AMOUNT) FIELDS.

EAXMPLE: TABLE NAME: ZSTOCK_MATERIAL

DISCRIPTION: STOCK OF THE MATERIALS

FIELDS DATA ELEMENT DATATYPE LENGHT DISCRIPTION


MANDT MANDT INT 3 CLIENT
MAT MATNR CHAR 18 MATERIAL NUMBER
MAKTX MAKTX CHAR 40 MATERIAL DISCRIPTION
QTY ZQTY QUAN 10 QUANTITY OF STOCKS

NOTE:
THE FIELD UNIT OF MEASUREMENT SHOULD BE PROVIDED AS A REFERENCE FIELD FOR EACH
QUANTITY FIELD IN TABLE.

SIMILARLY,
CURRENCY KEY FIELD SHOULD BE PROVIDED AS REFERENCE FIELD FOR CURRENCY(AMOUNT)
NOTE:
THIS IS TO MAKE SURE THAT THE INFORMATION IN THE TABLE IS COMPLETE.
ie; QUANTITY WITH OUT UNITS IS INCOMPLETE.

DATA TYPE MEANING


QUAN QUANTITY
UNIT UNITS
CURR CURRENCY(AMOUNT)
CURY CURRENCY KEY

NOTE:
THE REFERENCE FIELDS CAN BE FROM ANY TABLE.

EAXMPLE: TABLE NAME: ZMATERIALS

DISCRIPTION: MATERIALS DATA

FIELDS DATA ELEMENT DATATYPE LENGHT DISCRIPTION


MANDT MANDT INT 3 CLIENT
MAT MATNK CHAR 18 MATERIAL NUMBER
UNITS ZUNITS CHAR 40 QUANTITY OF STOCKS

NOTE:
TO MAINTAIN THE REFERENCE FIELDS DETAILS, CLICK ON CURRENCE/ QUANTITY FIELDS TAB ON
THE RIGHT SIDE TOP OF THE TABLE WINDOW.

EAXMPLE: TABLE NAME: ZMATERIALS

DISCRIPTION: MATERIALS DATA

FIELDS DATA ELEMENT DATATYPE REFERENCE FIELD REFERENCE COLUMN DISCRIPTION


QTY QUAN ZMATERIALS UNITS QUANTITY OF MEASUREMENT

=====================================================================================
===============

DEFINATIONS:
------------

SIZE CATEGORY:
IT IS EXPECTED NUMBER OF RECORDS TO BE STORED INITIALLY AND SPACES ALLOCATED
ACCORDINGLY.
i.e; 0 -> 0 TO 25000 RECORDS ARE ALLOWED INITIALLY.
SO WHEN THE SIZE CATOGORY IS ZERO, INITIALLY SPACE IS ALLOCATED FOR 25000 RECORDS AND
WITH THE NUMBER OF RECORDS EXCEEDS THE SPACE (25000), THE SAME AMOUNT IS
ALLOCATED AS AND WHEN IT IS REQUIRED.

MASTER DATA:
-----------
ONE TIME DATA-> CUSTOMERS VENDORS EMPLOYEE GENERAL DATA
LIKE NAME ADDRESS CONTACT DETAILS ETC...

NOTE: CHANGES TO THE MASTER DATA ARE NOT SO FREQUENT.

TRANSACTION DATA:
----------------
REGULAR DATA-> SALES TO CUSTOMERS, PURCHASES FROM VENDORS .. ETC.

DATA CLASS:
----------
IT IS A TABLE SPACE i.e; AREA IN THE DATA BASE IN WHICH TABLE HAS TO CREATED AND
MMAINTAINED.
THIS INFORMATION WILL BE HELPFULL AT THE TIME OF ACCESSING THE TABLE FOR
MANIPULATING THE DATA.
NOTE:
BOTHE SIZE CATOGORY AND DATA CLASS ARE KNOWN AS LOGICAL STORAGE PARAMETERS.

DELIVARY CLASS:
--------------
TO PROVIDE THE TYPES OD DATA TO BE STORED IN THE TABLE
i.e; MASTER DATA, TRANSACTIONAL DATA AND CONFIGURATIONAL DATA.

=====================================================================================
===================
MODULARIZATION TECHNIQUES:
----------------------------------------------------

NOTE: THIS IS USED TO SUB DIVIDE THE MAIN PROGRAM INTO RE-USABLE MODULES OR BLOCKS.
IT IMPROVES THE RE-USABILITY AND READABILITY OF THE SOURCE CODE/ PROGRAM.

IT IS ALWAYS BETTER TO GROUP THE REPEATED STATEMENTS WITHIN A PROGRAM AND USE
THEM OR CALL THEM WHENEVER AND WHEREEVER REQUIRED IN THE SAME PROGRAM OR IN
OTHER PROGRAM INSTEAD OF REPEAING THE SAME LINES OF CODE AGAIN AND AGAIN.

THESE CAN BE CALLED BY ABAP STATEMENTS IN ABAP PROGRAMS OR CAN BE CALLED FROM
OUTSIDE A PROGRAM BY THE ABAP RUNTIME SYSTEM.

1. SUBROUTINES
2. MACROS
3. FUNCTION MODULES (ESPECIALLY FOR RE-USABILITY)
4. METHODS

NOTE: SUBROUTINES AND MACROS ARE ESPECIALLY USED TO INCREASE THE READABILY
(UNDERSTANDING) OF THE SOURCE CODE / SOURCE PROGRAM AND CAN ALSO BE USED AS
REUSABILITY COMPONENTS ONLY IF NECESSARY WITHIN THE SAME PROGRAM.
NOTE: MACROS ARE PROGRAM SPECIFIC. i.e; MACROS CAN ONLY BE CALLED WITHIN THE SAME
PROGRAM IN WHICH THEY ARE DEFINED. THEY CAN NOT BE CALLED FROM DIFFERENT
PROGRAM.

NOTE: SUBROUTINES AND MACROS ARE VERY MUCH SIMILAR. BUT UNLIKE MACROS, SUBROUTINES
CAN BE CALLED EXTERNALLY i.e; THEY CAN BE CALLED FROM DIFFERENT PROGRAM IN THE
CURRENT PROGRAM BY USING A KEYWORD. HOWEVER, THIS IS NOR RECOMMANDED AS IT
DEGRADES THE PROGRAM PERFORMANCE AND TIME.

PURPOSE: TO IMPROVE THE READABILITY OF THE SOURSE CODE AND RE-USABILITY IF


POSSIBLE.

LIST OF TECHNIQUES:
----------------------------------
1. SUBROUTINES
2. MACROS
3. FUNCTION MODULES (EXCLUSIVELY FOR RE-USABILITY)
4. MODULES -> ALLOWED IN UI(USER INTERFACE) PROGRAMMING.
5. METHODS -> ALLOWED IN OBJECT ORIENTED ABAP.

NOTE: IRRESPECTIVE OF THE TECHNIQUE, IT IS ENOUGH TO UNDERSTAND ONLY TWO THINGS


i.e; 1. DEFINING THE BLOCK
2. CALLING THE BLOCK

1. SUBROUTINES IN DETAIL:
---------------------------------------------

SYNTAX TO DEFINE:
------------------------------
FORM <FORM NAME>.

"BUSINESS LOGIC

ENDFORM.

SYNTAX TO CALL:
----------------------------
PERFORM <FORM NAME>.

NOTE: THE SEQUENCE WILL BE CALL (PERFORM) FIRST AND THEN DEFINITION(FORM- ENDFORM)
NEXT.

EXAMPLE:
--------------

CALL:

PERFORM PRINT_FIRST_TEN_NUMBERS.

DEFINITION:

FORM PRINT_FIRST_TEN_NUMBERS.

DO 10 TIMES.

WRITE / SY-INDEX.

ENDDO.

ENDFORM.

NOTE: NO SUITABLE STATEMENTS ARE ALLOWED OR ACCESSED AFTER THE "FORM-ENDFORM"


EXCEPT ANOTHER FORM-ENDFORM.
i.e; BY DEFAULT FORM-ENDFORMS SHOULD BE AT THE END OF THE PROGRAM.

=====================================================================================
============
2. MACROS IN DETAIL:
------------------------------------

SYNTAX TO DEFINE:
------------------------------
DEFINE <MACRO NAME>.

"BUSINESS LOGIC

END-OF-DEFINITION.

SYNTAX TO CALL:
----------------------------
<MACRONAME>.

NOTE: THE SEQUENCE WILL BE CALL (PERFORM) FIRST AND THEN DEFINITION(FORM- ENDFORM)
NEXT.

EXAMPLE:
--------------

DEFINITION:

DEFINE PRINT_FIRST_TEN_NUMBERS.

DO 10 TIMES.

WRITE / SY-INDEX.

ENDDO.

END-OF-DEFINITION.

CALL:

PRINT_FIRST_TEN_NUMBERS.

NOTE: MACROS ARE INLINE FUNCTIONS, i.e; EXECUTED ON THE SAME LIKE AS A SINGLE LINE
(STATEMENT) SO THAT FASTER IN EXECUTION THAN SUBROUTINES IN THE BUSINESS LOGIC
WITHIN MACROS, DEFINITION IS EXECUTED ENTIRELY AT ONCE WITH NO INTERRUPTION.

BUT MACROS ARE NOT RECOMMANDED FOR COMPLEX BUSINESS LOGICS AS THE MACROS
DEFINITION CAN NOT BE INTERRUPTED TO TRACE(DEBUGG) LINE BY LINE TO SEE THE
RESULTS AT THE RUNTIME ITSELF TO STOP THE LOGIC ERRORS.
NOTE: BOTH MACROS AND SUBROUTINES ARE RE-USABLE LOCALLY. i.e; THEY CAN ONLY BE
CALLED WITHIN THE PROGRAM IN WHICH THEY ARE DEFINED.
ONLY SUBROUTINES CAN BE CALLED EXTERNALLY. i.e; FORM-ENDFORM OF PROGRAM 1 CAN
BE CALLED FROM OTHER PROGRAMMS.

SYNTAX TO CALL SUBROUTINES EXTERNALLY:


------------------------------------------------------------------------

PERFORM <FORM NAME > (SEARCHES FOR FORM-ENDFORM IN THE SAME PROGRAM)

PERFORM <FORM NAME> IN PROGRAM <PROGRAM NAME>. (SEARCHES FOR FORM-


ENDFORM IN THE GIVEN PROGRAM)

NOTE: CALLING SUBROUTINES EXTERNALLY IS NOT RECOMMANDED AS IT IS TIME CONSUMING


AND DEGRATES THE PERFORMANCE OF THE PROGRAM.

EXAMPLE:

TO CALL SUBROUTINES FROM ANOTHER PROGRAM:

PERFORM PRINT_FIRST_TEN_NUMBERS IN PROGRAM ZDEMO_MACROS.

=====================================================================================
============================

2. FUNCTION MODULES IN DETAIL:


-------------------------------------------------------

SYNTAX TO DEFINE:
-------------------------------

FUNCTION <FUNCTION NAME>

"BUSINESS LOGIC

ENDFUNCTION.

SYNTAX TO CALL:
----------------------------

CALL FUNCTION '<FUNCTION NAME IN UPPER CASE>'

EXAMPLE:
--------------
DEFINITION:

FUNCTION ZPRINT_FIRST_TEN_NUMBERS

DO 10 TIMES.

WRITE / SY-INDEX.

ENDDO.

ENDFUNCTION.

CALL:

CALL FUNCTION 'ZPRINT_FIRST_TEN_NUMBERS'

NOTE: FUNCTION MODULE DEFINITION IS NOT PROGRAM SPECIFIC AND IT IS DEFINED CENTRALLY
IN THE FUNCTION LIBRARY. i.e VIA FUNCTION BUILDER ()T-CODE -> SE37) SO THAT THE FM
CAN BE CALLED FROM ANY PROGRAM WITHOUT INCLUDING THE DEFINITION EXPLICITLY IN
THE PROGRAM.

NOTE: FUNCTION MODULES SHOULD BE ALWAYS PART OF A FUNCTION GROP AND GENERALLY
THE RELATED FUNCTIONS ARE GROUPED INTO THE SAME FUNCTION GROUP AND
FUNCTION GROUP ACTS AS A MAIN PROGRAM FOR ALL THE FUNCTIONS IN IT.

=====================================================================================
============================

STEPS TO DEFINE FUNCTION MODULES:


--------------------------------------------------------------

STEP1: EXECUTE TCODE -> SE37.


STEP2: ENTER FM NAME AND CLICK ON THE CREATE TAB.
STEP3: ENTER THE FM NAME, GROUP NAME AND SHORT DISCRIPTION (LIKE: TO PRINT FIRST 10
NATURAL NUMBERS)
STEP4: CLICK ON SOURCE CODE TAB ON THE RIGHT TOP OD THE WINDOW.
STEP5: A FM IS OPENED.

EXAMPLE:

FUNCTION ZPRINT_FIRST_TEN_NUMBERS

DO 10 TIMES.

WRITE / SY-INDEX.

ENDDO.
ENDFUNCTION.
STEP6: SAVE CHECK AND ACTIVATE.

=====================================================================================
============================

EXAMPLE PROGRAM FOR MODULARIZATION TECHNIQUES:


--------------------------------------------------------------------------------------------

REPORT ZDEMO_MODULARIZATION_TECHS

PARAMETER : CB-FORM AS CHECKBOX,


CB-MAC AS CHECKBOX,
CB-FM AS CHECKBOX DEFAULT 'X'.

NOTE: THE VALUE OD DEFAULT CHECK BOX/ RADIO BUTTON IS 'X'.

IF CB-FM = 'X'.

WRITE / 'FIRST 10 NATURAL NUMBERS ARE '


CALL FUNCTION 'ZPRINT_FIRST_TEN_NUMBERS'.

ENDIF.

IF CB-FORM = 'X'.

WRITE / 'FIRST 10 NATURAL NUMBERS ARE '


PERFORM PRINT_FIRST_TEN_NUMBERS. OR
PERFORM PRINT_FIRST_TEN_NUMBERS IN PROGRAM <PROGRAM
NAME(ZDEMO_MACROS)>.

ENDIF.

IF CB-MAC = 'X'.

DEFINE PRINT-FIRST-TEN-NUMBERS.

DO 10 TIMES.

WRITE / SY-INDEX.

ENDDO.

END-OF-DEFINITION.
PRINT-FIRST-TEN-NUMBERS.

ENDIF.

=====================================================================================
=======================

NOTE: NESTED DEFINITIONS ARE NOT ALLOWED.

EXAMPLE: FORM A.

FORM B. CAN BE REPLACED WITH PERFORM. i.e; JUST BY CALLLING A SUNROUTINE


B.
` ENDFORM.

ENDFORM .

NOTE: MACOS CAN BE CALLING WITHIN FORMS FUNCTIONS AND VICE VERSA.

EXAMPLE:
DEFINE X.

CALL FUNCTION A.
CALL FUNCTION B.
PERFORM C.
MACRO_NAME.

END OF DEFINITION.

STEPS TO CREATE FUNCTION MODULE:


--------------------------------------------------------------

STEP1: EXECUTE TCODE -> SE37.


STEP2: GO -> FUNCTION GROUPS -> CREATE GROUP. (EMTER THE FUNCTION GROUPE NAME
'MANDATARY')
STEP3: ENTER THE SHORT TEXT (PURPOSE OF FUNCTION MODULE 'MANDATARY')
STEP4: SAVE AND ACTIVATE.

NOTE: FUNCTION GROUP ACTIVATION IS DEFAULT AT THE TIME OF CREATION (ONLY IN 4.7 VERSION)
AD IN OTHER VERSIONS IT HAS TO BE ACTIVATED ECPLICITLY.

PATH TO ACTIVATE THE INACTIVE FUNTION GROUP.

EXECUTE TCODE SE37.


ENVIRONMENT -> INACTIVE OBJECTS-> (UNDER) LOCAL OBJECTS -> FUNCTION GROUPS
RIGHT CLICK ON THE FUNCTION GROUP AND ACTIVATE.
NOTE: FUNCTION MODULE CAN BE CALLED FROM ANY PROGRAM VIA 'PATTERN' TAB IN THE MAIN
PROGRAM.
NOTE: BY SENDING INPITS AND OUTPUT ARGUMENTS TO MODULARISATION TECHNIQUES WE CAN
MAKE THEM MORE AND MORE RE-USABLE.

PASSING ARGUMENTS IN FUNCTION MODULES:


--------------------------------------------------------------------------

INPUTS VIA INPORTING.


OUTPUTS VIA EXPORTING.

NOTE: THERE IS NO LIMIT FOR THE NUMBER OF IMPORTING AND EXPORTING VALUES RESPECTIVELY.

STEPS TO CREATE FUNCTION MODULES WITH ARGUMENTS:


---------------------------------------------------------------------------------------------

STEP1: EXECUTE TCODE -> SE37.


STEP2: ENTER FUNCTION MODULE NAME AND CLICK ON CREATE.
STEP3: ENTER THE FUNCTION GROUP NAME AND SHORT TEXT (DISCRIPTION).
STEP4: SAVE AND ACTIVATE.

PARAMETER NAME TYPE ASSIOCIATED TYPE


X TYPE I
Y TYPE I

ONCE THE VARIABLES ARE ENTERED, CLICK ON EXPORT. (THE VALUES OF THESE VARIABLES WILL
BE IMPORTED BY THE FM AT THE TIME OF PROGRAM EXECUTION FROM THE MAIN
PROGRAM).

EXAMPLE:

FUNCTION Z_EVEN.

DATA V_EVEN TYPE I.


DO X TIMES.
ADD 2 TO V_EVEN.
WRITE / V_EVEN.
ENDDO.

ENDFUNCTION.

SOURCE CODE USING THE FM Z_EVEN.


-------------------------------------------------------------

PARAMETER P_NO TYPE I.


CALL FUNCTION Z_EVEN EXPORTING X = P_NO.
PASSING THE ARGUMENTS FOR THE SUBROUTINES / FORMS:
-----------------------------------------------------------------------------------------------

NOTE: INPUTS VIA USING.


OUTPUTS VIA CHANGIING.
NUMBER OF INPUTS AND OUTPUTS CAN BE ANY.

SYNTAX:

USING X TYPE I.

EXAMPLE:

PERFORM PRINT_EVEN_NOS USING 10.

FORM PRINT_EVEN_NOS USING X TYPE I.

DATA V_EVEN TYPE I.


DO X TIMES.
ADD 2 TO V_EVEN.
WRITE / V_EVEN.
ENDDO.

ENDFORM.

COMPLETE SYNTAX TO DEFINE SUBROUTINE:


-----------------------------------------------------------------------

FORM <NAME> [USING <INPUT1> TYPE <DATATYPE>]


<INPUT2> <DATATYPE> FORMAL PARAMETERS
<INPUT3> <DATATYPE>

CHANGING <OUTPUT1> TYPE <DATATYPE1>. ACTUAL PARAMETERS.


< OUTPUT2> <DATATYPE2>
< OUTPUT3> <DATATYPE3>
BUSINESS LOGIC (i.e; USE THE INPUT VALUES AND CHANCE THE OUTPUT VARIABLES WITH
THE RESULTANT VALUES ).
ENDFORM.

SYNTAX TO CALL SUBROUTINES USING ARGUMENTS:


-----------------------------------------------------------------------------------

PERFORM <NAME> [USING <INPUT1>]


<INPUT2>
<INPUT3>
CHANGING <OUTPUT1> ACTUAL PARAMETERS.
< OUTPUT2>
< OUTPUT3>

NOTE: THE NUMBER OF AND ORDER OF AND TYPE OF BOTH FORMAL AND ACTUAL PARAMETERS
SHOULD BE SAME IN ALL THE TECHNIQUES.

NOTE: PARAMETER IS NOT ALLOWED IN THE FORM-ENDFORM, FUNCTION-ENDFUNCTION AND IN


MACROS BECAUSE USER CAN NOT INTERACT WITH THE FUNCTIONS SUBROUTINES AND MACROS
DIRECTLYAND THEY CAN INTERACT WITH THE PROGRAMS AND TCODES DIRECTLY SO THAT ...

USER INPUT / PARAMETER -> PROGRAM -> FORMS/ FM/MACRO

NOTE: WHEN CALLING ANY FM, ALL OTHER FM'S WHICH ARE IN THE SAME FUNCTION GROUP ARE
ALSO LOADED INTO THE MEMORY. THEREFORE, IT IS ALWAYS RECOMMENDED TO KEEP
THE RELATED FM'S IN THE SAME GROUP.
THE MA NUMBER OF FM'S IN A GROUP CAN NOT MORE THAN 99.

=====================================================================================
=============

PASSING ARGUMENTS TO MACROS:


--------------------------------------------------------

NOTE: THE MAXIMUM NUMBER OF INPUTS ARE OUTPUTS CAN NOT BE MORE THAN 9.

NOTE: THE FORMAL PARAMETERS IN A MACRO DEFINITION ARE ALWAYS &1, &2, &3, .... &9. AND
WHICH CAN HOLD ANY TYPE OF DATA.
NO UNIQUE KEYWORDS LIKE IMPORTING, EXPORTING TO DIFFRENTIATE THE INPUTS AND
OUTPUT ARGUMENTS IN A MACRO.

NOTE: THE ARGUMENTS IN THE MACRO, FM AND SUBROUTINES ARE KNOWN AS FORMAL
PARAMETERS.
THE ARGUMENST USED AT THE TIME OF CALLING ARE KNOWN AS ACTUAL PARAMETERS.

SYNTAX TO CALL MACRO:


----------------------------------------

<MACRO_NAME> <ARG1><ARG2><ARG3> .......<ARG9>.


&1 &2 &3 .... &9.

NOTE: THE ACTUAL PARAMETERS ARE AUTOMATICALLY COLLECTED INTO FIXED FORMAL
PARAMETERS i.e; &1, &2, &3, .... &9.WHICH CAN HOLD ANY TYPE OF DATA.

EXAMPLE 1:

DEFINE ZPRINT_TEN_NOS.
DO X TIMES.
WRITE / SY-INDEX.
ENDDO.

END OF DEFINITION

CALLING MACRO:

PRINT_TEN_NOS 10.
PRINT_TEN_NOS 20
PRINT_TEN_NOS 30

EXAMPLE 2:

DEFINE ZPRINT_NATURAL_EVEN_NOS.

DO &1 TIMES.
WRITE / SY-INDEX.
ENDDO.

DATA V_EVEN TYPE I.

DO &2 TIMES.
ADD 2 TO V_EVEN.
WRITE / V_EVEN.

END OF DEFINITION.

CALLING MACRO:

ZPRINT_NATURAL_EVEN_NOS 10 20.
ZPRINT_NATURAL_EVEN_NOS 20 10.

=====================================================================================
===============================

=======================================================================
INTERNAL TABLES
======================================================================

NOTE: INTERNAL TABLE IS PROGRAM SPECIFIC.

REQ: USER WANTED TO SEE LIST OF CUSTOMERS FOR A GIVEN COUNTRY.

SOL: PROGRAM IS REQUISED -> WITH COUNTRY AS INPUT


CUSTOMERS DATA IN DB TABLE : KNA1
--------------------------------------------------------------
FETCH/SELECT DATA FROM THE DATABASE TABLE (KNA1) -> INTO INTERNAL TABLE (IT_KNA1)

DATABASE TABLE -> INTERNAL TABLE


ONCE DATA IS FETCHED FROM THE DATABASE TABLE IT CAN BE USED FOR ANY PURPOSE
LIKE.... SAVING DATA AS A FILE AND SENDING TO ANY RELEVANT DEPT (OR) TAKE A PRINT OR
MANIPULATE THE DATA IN THE INTERNAL TABLE.

NOTE: THE MAIPULATIONS TO THE DATA IN THE INTERNAL TABLE ARE NOT REFLECTED INTO THE
DATABASE TABLE AUTOMATICALLY BUT CAN BE DONE IF REQUIRED.

NOTE: TECHNICALLY ITAB IS A VARIABLE ONLY, FOR WHICH MEMORY ALLOCATION IS DYNAMIC SO
THAT ANY NUMBER OF RECORDS CAN BE STORED.

STEP1: SYNTAX TO GET/ SELECT THE DATA FROM DB-TABLE INTO ITAB.
-------------------------------------------------------------------------------------------------------

NOTE: THIS IS ALWAYS DONE VIA OPEN SQL 'SELECT' STATEMENT.

SELECT <F1>
<F2>
<F3>
.
.
.ETC
<FN>
INTO TABLE <ITAB>
FROM <DB-TABLE>
WHERE <CONDITION> "OPTIONAL

SYNTAX TO DECLARE ITAB:


--------------------------------------------

DATA X TYPE I. (WHERE X IS A VARIABLE WHICH CAN ACCOMEDATE ONE VALUE OF TYPE
INTIGER)

DATA X TYPE TABLE OF I. (WHERE X CAN ACCOMEDATE ANY NUM / TABLE OF VALUES OF
TYPE INTIGER)

DATA <ITAB NAME> TYPE TABLE OF <STR TYPE>.

NOTE: ITAB ACTS AS A TABLE FOR SELECTED FIELDS F1 F2 F3 ....FN FROM THE DATABASE TABLE.
SYNTAX TO DEFINE STRUCTURE TYPE / STRUCTURE DATA TYPE:
-------------------------------------------------------------------------------------------------------

TYPES : BEGIN OF <STR NAME>,


<F1> TYPE <DATA TYPE>,
<F2> TYPE <DATA TYPE>,
<F3> TYPE <DATA TYPE>,
.
.
.
<FN> TYPE <DATA TYPE>,
END OF <STR NAME>.

NOTE: TYPES IS THE KEYWORD WHICH DEFINES THE 'STR DATA TYPE' (USER DEFINED DATA
TYPE)ALONG WITH THE DATATYPE OF THE SLECTED FIELDS FROM THE DB-TABLE.

NOTE: STRUCTURE CAN ACCOMEDATE ONLY ONE VALUE FOR ALL THE FIELDS WHICH ARE SELECTED
FROM THE DB-TABLE USING THE SELECT STATEMENT (CAN ALSO BE UNDERSTOOD AS WORK
AREA).

REQ 1: DECLARE AN ITAB (IT_KNA1) WITH ALL THE FIELDS FROM DA-TABLE.

SYANTAX:
-----------------

DATA IT_KNA1 TYPE TABLE OF KNA1.

WHERE STR NAME = DATABASE TABLE NAME (IF ALL THE FILEDS ARE REQUIERED FROM THE
DB_TABLE).

NOTE: THIS SELECT, MOVES THE SLECTED FIELDS CONNTENTS FROM DB-TABLE IN THE SAME
SEQUENCE INTO THE ITAB WITHOUT CHECKING THE FIELD NAMES, SO THAT WE HAVE TO MAKE
SURE THAT THE FIERLDS SELECTED FROM THE DB-TABLE ARE COMPATIBLE WITH THE FIELDS IN
THE ITAB.

i.e; THE STRUCTURE OF THE ITAB SHOULD BE ACCORDING TO THE SEQUENCE OF THE FIELDS
SELECTED.

FUNCTION MODULE :

FM NAME = GUI_DOWNLOAD ( IS A FM WHICH IS WRITTEN TO CREATE A COPY OF THE DATA


WHICH IS SELECTED FROM THE DB-TABLE INTO ITAB )

Das könnte Ihnen auch gefallen