121
A.V. Krishna +91 9704886510 [email protected] ABAP Dictionary : Domain : - describes technical properties like datatype, length , decimal places and value ranges ( like fixed values, intervals, value table ) - is low level component in the hierarchy - is also independent Repository Object - it is used while creating Data Element - One Domain can be used while creating multiple data elements (Reusability) - it can't be used in tables or structures directly - Conversion Routine is attached at Domain level - Domain can be defined directly from ABAP Dictionary initial screen - Custom Domain Creation Steps : go to transaction code SE11 select Domain Radiobutton specify Domain name starting with Y or Z click on create specify short description specify datatype, length and value ranges save, check, activate - Use Domain while creating data element as data type Note : for Integer values sign option can be checked , As a result integer values are displayed with sign for Char values lower case option can be checked , As a result lower case characters are displayed in lower case only - Table can be created as two types Top-down Approach : Create table field -> crate Data Element -> Create Domain Bottom-up Approach : Create Domain -> Create Data Element -> Create Table Field - Table field uses data element as data type Date Element uses domain as datatype - One Domain can be used while creating multiple data elements - One Data element can be used while creating multiple table fields - Conversion Routine converts user display format to internal and internal format to external Every Conversion Routine consist of two function modules - Conversion_exit_<xxxx>_input : this function module converts user display format to internal storage format - Conversion_exit_<xxxxx>_output : this function modul converts internal format to external format Ex : KUNNR domain uses ALPHA as conversion routine SPRAS domain uses ISOLA as conversion routine - Value Range SAP ABAP Material – Soft copy

Material Softcopy

Embed Size (px)

Citation preview

Page 1: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

ABAP Dictionary : Domain : - describes technical properties like datatype, length , decimal places and value ranges ( like fixed values, intervals, value table )- is low level component in the hierarchy- is also independent Repository Object- it is used while creating Data Element- One Domain can be used while creating multiple data elements (Reusability)- it can't be used in tables or structures directly- Conversion Routine is attached at Domain level- Domain can be defined directly from ABAP Dictionary initial screen

- Custom Domain Creation Steps : go to transaction code SE11 select Domain Radiobutton specify Domain name starting with Y or Z click on create specify short description specify datatype, length and value ranges save, check, activate

- Use Domain while creating data element as data type Note : for Integer values sign option can be checked , As a result integer values are displayed with sign for Char values lower case option can be checked , As a result lower case characters are displayed in lower case only

- Table can be created as two types Top-down Approach : Create table field -> crate Data Element -> Create Domain Bottom-up Approach : Create Domain -> Create Data Element -> Create Table Field

- Table field uses data element as data type Date Element uses domain as datatype

- One Domain can be used while creating multiple data elements- One Data element can be used while creating multiple table fields

- Conversion Routine converts user display format to internal and internal format to external Every Conversion Routine consist of two function modules - Conversion_exit_<xxxx>_input : this function module converts user display format to internal storage format - Conversion_exit_<xxxxx>_output : this function modul converts internal format to external format Ex : KUNNR domain uses ALPHA as conversion routine SPRAS domain uses ISOLA as conversion routine

- Value Range - Fixed Values : if the expected values for table field is fixed ,then we can define at domain level.Wherever this domain is used these fixed values automatically populated as F4 help for input field. If the user chooses a value from the F4 list, then record is valid, otherwise it is invalid.

- Intervals : if the expected values for table field contains rage of values, then we can define at domain level.Wherever this domain is used these range of values automatically populated as F4 help for input field.If the user enters a value from any one of the valid range then record is valid, otherwise system rejects entry (Field Validation)

*- Where-Used List : it is SAP provided special feature, used to findout object concern dependent objects (or) used objects list the result is displayed as List result is depdend on cursor position (object based)

SAP ABAP Material – Soft copy

Page 2: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*- Table relationship using Foreign Key : - Requirement : if at all we want to display two or more than two database tables data as report, then the base tables must have relatioship in underlying database. Tables can be related or integrated using Foreign key.

- Definition : - F.key is keyfield of other table - F.key servers like interface between two tables - F.key may consist of duplicate values

- Advantages : - F.key generates F4 help - F4 help is useful to enduser while creating current record, with the help of other table entries. - Filed Validation ( if the user enters a value from F4 list , then record is valid otherwise system rejects entry)

- New Terminology : - Check Table : is parent table (or) base table for other tables - this table works like reference to other tables, after creating F.key - on successful creation of F.key check table keyfield values automatically populated as F4 help in F.key field - Forieng key Table : it is child table (or) dependent table on Check table it consist of F.key field (or) Check Field it performs implicit check against check table entries

- Prerequisiste to create F.key : - At least two table with Active Status - both tables have some data - Check table keyfield must have data element - common filed in both tables required

- Procedere : - open F.key table in change mode - clikc on Entry help / Check tab - place the cursor on F.key field - click on F.key icon ( F.key creation dialog box opend ) - specify short text and check table - click on generate proposal - specify cardinality (optional) - check and copy - notice the status message - notice that F.key check box is checked and notice check table name also - save, check, activate - notice the reason of origin of input help

- Testing : - while creating new record in F.key table notice F4 help generated by F.key proces - if user chooses a value from F4 help ,then system accepts record - As a result of F.key activity system enables Check Table button ,which is used to cross check with Check table fields immediately.

- Additional Theory : - F.Key can be two types : - Generic F.key : System always proposes all the common fields exist in both tables System always performs check with check table entries for all fields

SAP ABAP Material – Soft copy

Page 3: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

if Generic key check box is actvated by the system, system doesn't perform check for that field ( that feild treated as general)

- Constant F.Key : we can define constant value for a field Ex : 'MANDT = 800'

- F.key field type : - can be key field of F.key table - can be non-key field of F.key table - can be keyfield of text table ( Text Table is a foriegn key table which maintains text. text is always maintained for serverl languages. if any F.key table one of the key field consist of LANG as datatype then it is called as Text Table)

- Cardinality - is also called as Multiplicity - precisely defines the relationship between two tables - specifies the number of dependent records for a record of check table - Search Criteria to find out relationship between tables : - Where-Used List - open any table in display mode, click on entry help / check tab observe check table list - open any table in display mode, click on graphic icon (application tool bar) - database views - open any table in display mode utilities menu -> table contents -> display ->execute click on check table tab - search in google ( SAP Table relationship pdf by christophor solomon ) - search in DD08L table

- Value Table : - Note : Check table keyfield name and Foreign key table Fkey field name may be same or different , but both technical attributes should be same. ( Data Element may be different, but domain should be same)

- Value Table is defined at Domain level wherever this Domain is used system proposes this value table name as check table It is useful while creating F.key, system automatic proposes this value table name.

- Working Currecny Fields : While working with SAP, whenever currency values are entered, it must followed by currency key ( CURR datatype must followed by CUKY datatype) we have to provide ref field and ref table for CURR field

- Generating F4 help for Currency key field open the table in change mode, click on Entry help/check tab place the cursor on Currency field click on F.key icon - system proposes TCURC as check table - continue - copy

SAP ABAP Material – Soft copy

Page 4: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- While working with SAP, whenever Quantity values are entered, it must followed by Unit of Measurement ( QUAN datatype must followed by UNIT datatype) we have to provide ref field name and ref table name for QUAN field

- Structure : - is a collection of components - component uses component type as Data Element, Structure, Table Type - structure doesn't store data - structure is included in another structure (or) Database Table - One Structure can be included in many structures (or) Database Tables (Reusability) - We can provide search help and check table for Structure component - We can provide Ref table and Ref field name for CURR and QUAN datatype fields. - it is independent Repository Object - it is data type defined centrally in ABAP Dictionary - whenever structure is included in table, structure components becomes part of table field

- Structures are 3 types : 1.Flat Structure : is collection of components, Components are created using component type as Data Element

2. Nested Structure : one of the structure component is ref to another structure

3.Deep Structure : one of the structure component is ref to table type

Note : Structure component may ref to data element, table type, structure, may ref to existing Database Table (or) View may ref to Global Class / Global Interface(Ref checkbox activated ) may ref to object / data ( Ref checkbox activated )

Structure can be included with .include (or) general field name also.

Append Structure : - is used to add custom fields to standard table (or) structure- it is implemented as Table Enhancement- is always adds the fields at the bottom- is not reusable ( it is applicable to only one table )- it is special procedure, implemented based on requirement only- Access key not required to perform table enahcnement- Append Structure name and its field name should begin with YY or ZZ- - Difference between Include Structrure and Append StructureInclude Structure : - is used to include fields to table or structure - is possible at any position- is reusable- name begins with Y or Z- possible for custom tables / structures

Append Structure : - is used to add fields to table or structure- is always added at the bottom - is not reusable

SAP ABAP Material – Soft copy

Page 5: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- name begins with YY or ZZ- possible for both custom / standard tables

- Customizing Includes : - are called as CI_Includes - are special includes defined by SAP for some tables - CI_includes empty includes by default - User can add additional custom fields to Standard Table using CI_Includes - are reusable includes - Ex : PA0002 consist of CI_P0002 as include AUFK table consist of CI_AUFK as include

*---------------------------------------------------------------*- Table Type : Global Internal Table Types can be defined in ABAP Dictionary - are valid for all programs - are created using structure type as line type

*------------------------------------------------------------------*- Type Group : - it is also called as Type-pool - it belongs to program type 'T' - it is a collection of Types and Constants - it consist of elementary types, structure types, and table types - it is 5 characters length and all components of type group must begin with Type group name followed by underscore - Ex : SLIS

*-------------------------------------------------------------------*VIEW : is a collection of data from more than one related database tables Basically View doesn't consist of data, but it contain data at runtime (dynamically) it is also called as Temporary table (or) imganiry table (or) virtual table

4 types of Views are possible in SAP. 1.Database View : 2.Projection View : 3.Maintenance View : 4.Help View :

- Database View : - it is a collection of data from more than 1 related tables - it implements inner join it fetches the data from two tables based on join condition Join condition can be defined on keyfields of both tables - Selection conditions can be defined - Maintenace Status : Read Only - DB View can be buffered like Database Tables - DB views can be used ABAP Programs ( alternative for inner join select statement ) - Database View can be created on Single table also, then we can create entires - Custom Database View creation steps : Execute Tcode SE11 select View Radiobutton specify view name begins with Y or Z click on create select database view and continue specify short description specify database tables ( MARA, MARC) select both tables

SAP ABAP Material – Soft copy

Page 6: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

click on relationships system proposes relationship dialogbox choose correct relationship , continue click on view fields tab select key fields from both tables select required non key fields from both tables save, check, active - path to display view content : Utilities menu -> Content

- path to view system generated Create statement : Extras -> create statement

- path to set buffer settings goto menu -> technical settings

*- SAP supports two types of Joins : 1.Inner Join : fetches the data from both tables based on defined join condition. Join condition defined on key fields exist in both tables

2.Left Outer Join : fetches all keyfields key information first and later it cross checks with right side table. i.e., Leftside entire loaded data is loaded into target area first and later system fetches relevant data from right side table

- Projection View : it is used to hide some data and inturn display other data it is always created on single table only it can be used in ABAP Programs Join conditions not possible Selection condidtions not possible Maintenance Status : Read Only System doesn't generate create view statement Technical settings (buffer settings) not possible Steps : - go to Tcode SE11 - select view radiobutton - specify view name begins with Y or Z - click on create - select projection view and continue - specify short text - specify BASIS Table name - choose required fields including key fields - save, check, activate

- Maintenance View : it is also used to fetch data from related tables and display Unlike other views, it also supports to maintain (insert/change/delete) data into several tables. - it implements left outer join - condition based data retrieval is possible - Maintenance Status : read, insert, change, delete - Working with M.view is 2 step procedure : Step1 : View creation Step2 : Table Maintenance GeneratorStep1 : - go to Tcode SE11 - select view radiobutton

SAP ABAP Material – Soft copy

Page 7: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- specify view name starting with Y or Z - click on create - select M.view and continue - specify short description - specify table name(Left side table) - click on relationships - select one relatship based on system proposed list - click on view fields tab ( notice that system proposed left side table keyfields) - select right side table keyfields - select required non key fields from both tables - save, check, activate it

Step2 : Utilities menu->table maintenace generator (SE55 tcode) specify Authorization Group (&NC&) - it is used to restrict unautorized users while maintain data specfiy Function Group(zde_mview) - it is responsible to hold all the changes done by the users thru this view specify Maintenance Type as Two Step ,specify overview and single screen number Single step uses Overview screen for read,insert,change,delete Two step uses two screens : Overview screen for read, change, delete Single screen for insert

In SAP, every screen is identified by Unique screen number Screen number valid range is 0001 to 9999 SAP Reserved screen number range is 1000 to 1010 User permited screen number range is 1 to 999 and 1011 to 9999

if standard recording routine is activated, system records all the changes under one workbench request number- click on generate icon

- to maintain data menu path : utilities ->contents - SM30 : tcode is used for Table/View Maintenace

Note : whenever Database Table is created ,immediately maintain Table Maintenance Generator

Help View : - it is also used to fetch data from database tables and display - it implements left outer join - selection conditions possible - maintain status : Read only - it is used as a selection method while creating Elementary Search Help

- Append View is possible for Database View and Projection View

*---------------------------------------------------------------------------------*Search Help : Definition : - it is also called as F4 help (or) Possible Entries (or) Possible value help (or) Input Help (or) Hit List (or) Entry Help- F4 help provides list of possible values, which is useful to consultant / end user- F4 help is useful to end user to select a value from the list (or) to provide a new value

- SAP provides default search help in different ways : 1.Domain - fixed values (or) interval values will automatically populated as F4 help 2.Check Table generates F4 help

SAP ABAP Material – Soft copy

Page 8: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

3.data type DATS generates Calender control as F4 help 4.data type TIMS generates Timer control as F4 help

- Explicit Search help can be defined in ABAP Dictionary- Search help can be attached to - table field ( Entry help/check tab) - structure component (Entry help/check tab) - data element(Further Chracterisitics tab ) - high priority - selection screen field - dialog screen field

- Search Help can be classified as two types : 1.Elementary Search Help : provides general F4 help 2.Collective Search Help : provides extended search help to field it provides different alternative search path to user

- Elementary Search Help : generates F4 help based on Selection method Selection method can be - Database Table (Fields from single table) - Database view(Fields from two tables using inner join) - Projection view(Reduced Fields from single table) - Help view(Fields from two tables using left outer join) - Business Requirement : providing F4 help to employee master mobile number field

- Prerequisites : - Table must be active status - Table must have some data - Table field must have data element

- Procedure : - goto Tcode SE11 - specify Search help name begins with Y or Z - click on create - select Elementary Search help name, continue - specify selection method as Tablename(ZDE_EMPMASTER) - specify Search help parameter as Mobileno - check import and export checkboxes - specify LPos as 1 and SPos as 1 - save, check, activate, test (F8)

- Search help attachment to table field open the table in change mode, click on Entry help/check tab place the cursor on fieldname click on search help button specify search help name and continue, copy notice the status message and Origin of Search help While createing entry notice F4 help

- Search help can also be attached to structure component using Entry help / check tab

- Search help can also be attached to Data Element using Further Characteristics tab

- Note : Search parameter name and field name should be same Import parameter fetches the field data from database and lates in Hit List Export Parameters export the value (choosen by the user) from Hit List to Screen field

SAP ABAP Material – Soft copy

Page 9: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

LPos specifies ( List Position) field appearing position in the Hit List SPos specifies Search Position in the internal system generated select statement.

Using Modified check box ,we can modify system proposed Data Element Search Help Exit : is used to change the standard behaviour of Search Help it is implemented using Function Module Using this function module , we can deviate standard behaviour

Hot Key : consist of one character of Elementary Search Help name it is useful to switch from other elementary search help to current Search help ( if it is used in Collective Search Help )

Dialog Behaviour : - Dialog Type : - Display values immediately : default option, values are dispalyed as soon as user chooses F4 key- Dialog depends on set of values : set this option, if the values are less than 500 - Dialog with Value Restriction : set this option, if the values are more than 500 system displays resriction dialog box ,which is useful to set further restrictions Rescriction can be set by defing condition conditions can be defined for any field using relational operator (= <> < <= > >=) this condition comparision is case sensitive - We can specify default value for particular field, (uncheck import) As a Result default value displayed in the restriction dialog box - if SDis is activated for any field, we can't specify conditions in restriction dialog box (this field is disabled)

- Collective Search Help : is a collection of more than one Elementary Search Helps - it provides different alternative search path for user- At least two elementary search helps required- Elementary Search Helps are combined under collective search help

- Steps : - create Help View using left outer join - create Elementary Search help using Help View - creating Collective Search help : - goto Tcode : SE11 - select search help radio button - specify collective search help name begins with Y or Z - click on create - specify short description - specify field names under definition tab - specify elementary search help names under include search help tab - select each elementary search help and click on parameter assignment - copy save, check, activate,test - Assign collective search help to Data Element / Table field

- Personal Value List : - can be created for any F4 help - it can be created based end user requirement - system always displays personal value list only - Data browser Navigation : se11 : open any table in display mode Utilities -> table contents -> display system displays Data browser of selection screen

SAP ABAP Material – Soft copy

Page 10: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- this selection screen is used to restrict output list based on user input - Adding fields to selection screen : settings menu -> Fields for selection

- Maximum no of Hits = Number of records to display - width of output list is 250 by default ( can be change settings menu -> user parameters) - displaying required columns in the output settings menu -> format list -> choose fields

*--------------------------------------------*Performance Factors on Database Tables :

1.Buffering : - Every application server consist of local buffer - Buffers resides behind application server - Buffer is a small area, which is a part of shared memory - Buffer data is volatile ( not fixed, keep on changing ) - while executing select statement, database interface looks for local buffer content , if the required data is already avilable in the buffer it reads from buffer rather than database - reading from buffer is 100 times faster than reading from databse - Tables and DB Views can be buffered - Using Technical settings , we can specify buffer option - Frequently accessed and rarely updated tables are advisable for buffering

- Buffering not allowed : if this option is set, then table content is not processed through buffer - Buffer allowed but switched off : if this option is set, then table content is loaded into buffer, if we are not aware of number of records loaded into buffer then choose this option - Buffering switch on : if this option is set, table content is processed throught buffer , we have to specify buffering type (3 types)

- Fully Buffered : if fully buffered is selected all the table content is loaded into buffer, even if we select single record also

- Single Record Buffer : if single record buffer is selected, only single record is loaded into buffer select single statement fetches always single record- Generic Area Buffered : if it is selected we have to specify no of key fields immediately. only Generic key matching records are loaded into buffer Generic key can be defined by specifying key fields Generic key is part of left justified key fields

2.Logging : - Requirement based this check box is activated by BASIS consultants - option is avilable under Technical settings - if this check box is activated system records all the changes (update,delete) done by users of client - finally system generates a log file as Table History - Tcode to view table history - SCU3 - we have to specify system profile to log all clients / paricular clients

3.Index : - makes faster access of data records from database table

SAP ABAP Material – Soft copy

Page 11: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- speeds up the data retrieval from database table - while activation of database table system creates primary index on all the keyfields - Primary index is always Unique Index Primary index name is 0 - Indexes are created permanently in the underlying database - while executing select statement, system uses index of the database table - Index is a copy of database table with reduced fields - Index is always created in the sorted order - system performs binary search while searching for match found record - Secondary indexes are created on tables based on requirement - path to view indexes of table Utilities menu -> database object ->database utility -> indexes tab - path to create secondary index : open the table display mode -> click on Indexes tab -> click on create index -> specify short description -> specify index fileds save, check, activate,back

*----- DATABASE Utility : SE14 tcode - is used to perform conversion process ( activate and adjust database) - Indexes tab displays list of all indexes - check runtime object is possibe - check database object is possible - under storage parameters displays table and indexes of database - Object log tab displays error log list

*------------------------------------------------------------------------*LOCK OBJECT : - is used to restrict simultanious access of table record by several users at a time.- SAP supports row level (or) record level locks- if one user is editing particular table entry, at that of time that entry must be locked - so that other users can't perform other operation- way to work with lock object lock table entry - perform operation ( insert, update, modify, delete ,select ) unlock table entry(release)- if at all we want to lock particular table entry, lock object must be defined in ABAP Dictionary- User defined lock object name begins with Ey (or) Ez- we can lock primary table entry and dependent table entries also- lock happens by default using lock argument as table key field- lock modes (or) lock types classifed as 3 types : 1. Type 'E' - Exclusive Lock (Write Lock) : if Exclusive lock set by user on table entry, that user only can perform all operations on table entry. other shared and execlusive locks are rejcted it is cumulative ( can be set / released for several times allowed ) 2.Type 'S' - Shared Lock (Read Lock) : if Shared Lock is set by user on table entry, user can only view the table entry, editing is not allowed. other shared locks are accepted, but not Exclusive Locks 3.Type 'X' - Extensive Lock (Write Lock) : it is Exclusive Lock, but not cumulative Exclusive lock can be set / released by the user for several times. but Extensive lock can only set / released by the user only one time. - Physical lock happens at underlying table- Logical lock happens at application level- Lock mechanism is handled by Enqueue Work Process- Lock Entries are stored in Enqueue Server (or) Lock Table- using SM12 tcode we can view lock entries

SAP ABAP Material – Soft copy

Page 12: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Upon defining and activating lock object , system generates 2 function modules automatically Enqueue_<lockobjectname> : this function module is used to set lock Dequeue_<lockobjectname> : this function module is used to release lock

- Steps to Work with Lock Object : Business Scenario : perform lock operation on zempmaster of particular employee (0001). Prerequisite : Table must be active status

Step1 : go to SE11 select lock object radiobutton specify lock object name begins with Ey or Ez click on create specify short description specify primary table name ( zempmaster ) specify lock mode ( E ) save, check, activate menu path to view lock modules : goto menu -> lock modules notice the system generated function modules

Step2 : go to SE38 create executable program call enqueue function module using pattern uncomment exporting, mode, fieldname pass key field value save, check, activate, test - now lock happens on table entry Step3 : go to tcode : SM12 - to view lock entry Step4 : peform operation using other program (update, modify, delete) Step5 : release lock by calling dequeue function module in ABAP executable program.

SAP ABAP Material – Soft copy

Page 13: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

ABAP Programming Introduction : ABAP/4 Features - Advanced Business Application Programming- it is 4th generation language- it is High level prog language- it is Application programming lang- it is Structured Programming lang- it is Procedure oriented programming lang- it is Event driven programming lang- it is Object oriented prog lang- it is not case sensitive lang Ex : WRITE write Write- ABAP is develop environment , is developed using Assembly language and C, C++ language- ABAP is used to develop SAP specific in-house applications

- ABAP Editor Standards : - ABAP Editor is used to develop abap programs - is used to specify source code of ABAP - ABAP Editor is a development tool, which is closely integrated with ABAP Development Workbench - Tcode : SE38 - ABAP programs are executed by Workprocess Component ABAP Interpreter (or) ABAP Processor - ABAP program is also Repository Object

- Steps to create ABAP program : - go to tcode SE38 - specify program name begins with Y or Z - click on create - specify meaningful title - specify program type as 1 Executable Program, continue - save as local object (or) package - specify required source code of program - save, check, activate, test

- While activation of program - runtime object gets generated - program status becomes : Active - program is actively avilable, it can be reusable - it is ready to display output - it is good practice to activate program for every change

SAP ABAP Material – Soft copy

Page 14: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- SE38: ABAP Editor Initial screen -> program source code screen -> output screen

- SA38 : program execution program -> output screen - code can't be seen - used by functional consultants

- ABAP program rules : - Every ABAP program begins with REPORT (or) PROGRAM statement Every program first line must be Report statement - ABAP program name can be up to 40 characters Program name may consist of alphanumeric , special symbol underscore is allowed - Every ABAP program must belongs to one program type in ABAP program types are 9 1 Type 1 Executable program 2 Type M Module pool program 3 Type I Include program 4 Type S Subroutine Pool 5 Type F Function Pool 6 Type T Type Pool 7 Type K Class Pool 8 Type J Interface Pool 9 Type X XSLT program

- Type 1 program are self execute , and other program types are not self executable- Type I,S,F are Modularization Techniques- Type T is created in ABAP Dictionary- Type K,J used in Object Oriented ABAP- Type X - XSLT program is used to convert ABAP Programs to XML and XML programs to ABAP

- Every line is called as statement- Every statement begins with Keyword and ends with period- Every operator and operand before and after must contain space c = a + b.- separators doesn't require space- separators list . period : colon / slash ' ' single quotes ~ tilda -> single arrow => double arrow - hyphen _ underscore

- Increment Notation in ABAP : i = i + 1.- Comments : - increses program redability - are used for documentation purpose - comment lines are ignored by ABAP interpreter - are 3 types - single line comment - place asterisk at first column position - multi line comment - select multiple lines

SAP ABAP Material – Soft copy

Page 15: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

press Ctrl + < for comment press Ctrl + > for uncomment - Inline comment - partial string can be commented using double quotes in single line

- Operators list : Operator denoted by symbol Operator performs unique operation Operators need not to be specified with in quotes

Arithmatic (or) Mathematical Operators : used to perform arithmatic operations + addition - subtraction * multiplication / division (general division) DIV division (integer division) MOD Modulus (provides remainder) ** Power

Logical Operators : are used to specify multiple conditionsAND - executes by considering both conditionsOR - executes by considering any one conidtion NOT - executes negitive conditionRelational Operators :are used to perform comparision

= EQ<> >< NE

< LT<= LE> GT>= GEis initialbetween ...and...like

*-------------------------- keywords------------*- are reserved words, which are used for special purpose- DATA : declaration keyword, which is used to declare variable, structure, internal table TYPES : keyword is used to define custom elementary data types, structure types, internal table types CONSTANTS : keyword is used to define constant variable PARAMETERS : keyword generates selection screen with single input field SELECT-OPTIONS : keyword generates selection screen with lower and upper limit fields

SELECT : keyword is used to fetch data from database WRITE : keyword displays output

*------------------------- DATA TYPES ------------* data types describes data objects , which do not occupy memory data types are classified as - ABAP Dictionary DataTypes are 24, which are valid for entire ABAP Dictionary Global definitions like Dataelement, Structure, Tabletypes,Type Groups are valid for complete ABAP - ABAP Editor data types : - also called as pre defined data types - valid in ABAP Programs - while processing program at runtime, predefined types converts equallent dictionary types

SAP ABAP Material – Soft copy

Page 16: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Local data types : - can be defined using TYPES keyword, with in the program - scope is local, valid with in the program

ABAP Editor Data Types - classfication : - Elementary data types - Fixed length data types - Numeric data types I Integer F Float P Packed decimal - Character data types C Character N Numeric character D Date T Time - X - Hexadecimal ( used in SAP Graphics ) - Variable length data types - Strings ( character sequence) - Xstrings (byte sequence) - are used in bitwise operations

- Complex data types - Structure type - Structure - Table type - Internal Table

- Reference data types - Data Ref - using LIKE - Object ref - using TYPE REF TO - classes - interfaces

- Data Objects : are instances of data types, which occupy memory. - are 7 types 1.Literals : are named data objects, used to assign value to data objects - Numeric Literals : consist of numbers Ex : '123' -456 specifying single quotes are optional - Character Literals : consist of characters Ex : 'RAVI' 'AP11Z 4282' specifying single quotes is mandatory

2.String : - is a collection of characters - must be placed with single quotes Ex : write 'Welcome to SAP R/3'.

3.Constants : are data objects consist of fixed values4.Interface Work Areas : Tables (or) Nodes5.System Fields : - also called as System Variables - are predefined data objects - are SYST structure components - are specified using prefix syst-<component>. - can be printed along with write statement

SAP ABAP Material – Soft copy

Page 17: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Ex : sy-datum : displays current application server date sy-uzeit : displays current application server time sy-uname : displays current logon user name sy-subrc : displays return code of operation sy-dbcnt : displays record count , as a result of SQL operation

6.Variable : is data object which holds the value at runtime7.Text Symbol : is a part of text pool and text element supports to write language independent program are used to avoid hard coded text are used for reusable text are displayed along with write statement write / text-<nnn>. <nnn> specifies the text symbol name.

*---------------------------------------------------------------------*- ABAP supports to print 7 background color IDs- / prints output in new line- /<col_pos> prints output at specified column position- ULINE statement prints under line- ULINE /<col_pos(<length>). it prints underline for specific word- ULINE AT /col(pos). it prints underline at specified column position

- SKIP statement provides one blank line in the output- SKIP <n> statement provides <n> blank lines in the output- SKIP to line <line no>. it skips <line no> in the output, this works on line count basis

NOTE : ULINE and SKIP statements are printed individually, can't be used along with WRITE statement

*- variable declaration syntax -*DATA <data object>(length) TYPE <data type>.Ex : DATA n1 type i.n1 is data object (variable) declared by DATA keywordn1 belongs to data type integer data object : variable - declared using syntax by DATA keyword - created at runtime at particular memory address on RAM - holds value assigned to (either static or dynamic) - it always holds one value at a time - its value can be changed ( varies)

data type : - describes data object - do not occupy memory - specifies initial memory allocated to data object - specified initial value (or) default value assigned to data object - specifies the type of expected data Typical structure of ABAP Program is - declaration section - operation section - output section

Chain Operator - colon is chain operator

SAP ABAP Material – Soft copy

Page 18: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

it is used to concatenate multiple statements using comma and finally statements ends with period

= is used assign value to variable <field> = '<val>'. Assignment is always right to left. VALUE keyword is used to assign the value to variable while declarationdata <data obj> type <data type> VALUE '<val>'.

MOVE keyword is used to assign value to variableMOVE '<val>' to <data obj>.

Static value assignment can be 3 types : - VALUE keyword is used to assign value immediately - = MOVE are used to assign values later

- Multiple variables can be declared using single statement data : n1, n2, n3 type i. default data type is char n1 and n2 belongs to char type n3 belongs to integer type

- we can assign common value to multiple variables using single statement n1 = n2 = n3 = 10.

- CLEAR statement resets variable value to its initial value (or) default value Default value depends on data type Default value for char is space and other data types is zero syntax : clear <data obj>.- Constant variables are always defined , immediate value assignement is required. constants variables have fixed value in the entire program CLEAR statement is used for general data objects, not for constants

- if the variable is created using predefined type, then length specification is allowed- if the vairable is created using Global Dictionary Type ( Data Element, structure-component, table-field ), then specification is not allowed As a result, data type and length copied from Dictionary

- if the variable is created using custom data type , then length specification is not allowed

- syntax to define custom data type : TYPES <custom data type> type <predefined type> length <len>. - value addition is not possible for types

- Tcode : ABAPHELP - provides keyword documentation (F1 help)- Tcode : ABAPDOCU - provides list of predefined example programs

- IS INITIAL : is used to check the status of data object, wheather it is empty or not if <data obj> is initial. if not <data obj> is initial.

- LIKE operator is used refering existing data object As a result, data type and length of existing data object will copied to current data object.

SAP ABAP Material – Soft copy

Page 19: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Difference between Type and Like : Type followed by data type - data objects are created by making use of data types

Like followed by existing data object - data objects are created with ref to data object

Exploring Data types : - Numeric data types : - Integer : - accepts whole numbers with sign - it is converting internal as Dictionary type INT4 - it occupies 4 bytes ( 11 places including sign ) - it doesn't accepts alphanumeric values - it rounds to nearest integer value - it doesn't accept decimal value

Note : SAP uses Unicode character set. Unicode point of view 1 character occupies either 2 bytes (or) 4 bytes

- Float : - accepts decimal value - it occupies 8 bytes - values are displayed in scientific format - exact value display not possible - decimals addition not possible - <mantissa>E+01 - arithmatic operations not possible - float values can't be accepted from user

- Packed Decimal : - accepts decimal value - it occupies 8 bytes - it displays exact values - decimals addition is possible - default decimal notation can be set under user profile ( system menu -> user profile -> own data -> defaults tab ) - arithmatic operations are possible - packed values can be accepted from user

- Character types : - char : is default data type default length is 1 place accepts alphanumeric values length specification is allowed - numc : numeric character it is special character data type , which is used to display postal codes or zip codes - default length is 1 place - length specification is allowed - it accepts only numbers - arithmatic operations not possible - D : is used to display date YYYYMMDD -> DDMMYYYY (sourcecode) (output) it is fixed length 8 places default saparater .

SAP ABAP Material – Soft copy

Page 20: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- T : is used to display time TIMS displays dictionary format it is fixed length 6 places default separater : HHMMSS -> HHMMSS

Note : when we are accepting values from user using selection screen, system performs validations by default. if the input is wrong system throws error message

- Local date and Local time is caluculated based on Time Zone Under User profile , we can set time zones

-

- Text Elements are sub object of Program Text Elements are program dependent Text Elements are classified as - Text Symbol : is classified as Symbol and Text Symbol is represented as 3 characters using symbol we can print its corresponding text text can be up to 72 characters length - Selection Text : is alternative long text provided for parameter field (or) select-options field

- List Heading : we can provide custom List Heading & column heading using this option

- menu path : goto menu -> text elements -> text symbols- from ABAP Editor initial screen : specify program name & select text element radiobutton -> click on create- double click on program text in the source code , then system automatically assign text symbol

- Trasnlating Text symbol goto menu -> translation -> specify equallent german words activate if the login lang is En then output is English if the login lang is DE then output displayed in German

-

- String : is a collection of characters string values must be placed with in single quotes

Difference between Char and string data typeChar : - fixed length data type- static memory allocation- length specification is allowed- default value for char is space

String : - variable length data type- dynamic memory allocation

SAP ABAP Material – Soft copy

Page 21: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- length specification is not allowed- default value for string is space

- String Operations : - 1.Shift : it is used to shift the sting character by character Syntax : shift <string> [by <n> places] [<mode>]. <n> specifies number of places to be shifted by default 1 place of left side is shifted

<mode> values are - left - right - left circular - right circular

2.Translate : it is used to translate string into specified case Syntax : Translate <string> to <case>.

3.STRLEN() : function is used to calculate length of the string. we have to capture the length into one variable ( integer type) and display variable Syntax : <var> = strlen( <str1> ).

4.SERACH : is used to find a character in a string. Syntax : SERACH <string> for '<character>'.

sy-subrc is a system field , used to check any operation result in ABAP if the operation is success , then subrc return as 0. if the operation is fail, then system returns subrc value as non zero.

sy-fdpos is a system field, which displays found position of chracter in chracter sring it is generally used to find the location of chacter in string. fdpos values begins with zero.

search criteria is not case sensitive

5.REPLACE : is used to replace existing character by current character Syntax : REPLACE '<existing character>' in <string> with '<new character>'. - this syntax replaces first occurence of character REPLACE all occurrences of '<existing character>' in <string> with '<new chracter>'. - this syntax replaces all occurrences of existing chracter.

6.CONDENSE : it removes redundent space with in the string Syntax : CONDENSE <string>. - above syntax removes many gaps with in string and displays with one gap condense <string> no-gaps. - no-gaps addition removes all gaps with in the string.

7.Concatenate : is used to join multiple strings into one string

SAP ABAP Material – Soft copy

Page 22: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

target string must have length to accomidate two strings Syntax : concatenate <str1> <str2> into <target string> [separated by '<character>'].

8. SPLIT : is used to devide large string into sub strings at particular delimeterSyntax : SPLIT <string> at '<delimeter>' into <sub string1> <sub string2>.

9.OVERLAY : is used to overwrite one string with other string. Syntax : OVERLAY <string1> with <string2>.

String Comparision Operators : CO Contains onlyCN Contains not onlyCA Contains anyNA Contains not any

- above operations are case sensitive

CS Contain StringNS Not contain StringCP Contain PatternNP Not contain Pattern

- above operations are not case sensitive

*--------------- Conditional based programming---------*- is possible using constructs like IF and CASE- IF syntax : Simple IF Syntax : IF <condition>. -----<statement block>-----. ENDIF.

IF <condition>. -----<statement block>-----. ELSE. -----<statement block>-----. ENDIF. Nested IF syntax : we can check multiple conditions IF <condition1>. -----<statement block>-----. ELSEIF <condition2>. -----<statement block>-----. ELSEIF <condition3>. -----<statement block>-----. ELSE. -----<statement block>-----. ENDIF.

- CASE construct : Syntax : CASE <field>. when 'val1'. -----<st block>----.

SAP ABAP Material – Soft copy

Page 23: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

when 'val2'. -----<st block>----. when 'val3'. -----<st block>----. ------------------------. ------------------------. when others. ------<statement>----. ENDCASE.

- it is also called as match found structure - it is used to compare field concern multiple values - whenever matchfound it executes statement block - this comparision is case sensitive

LOOPS : - also called as iterations (or) repititive programming1.Do loop - uncoditional loop2.While loop - conditional loop3.Select...endselect loop - which is used to retrive data base table data4.Loop...endloop - is used to read records from internal table

Do Loop : Syntax : Do <n> times. --<statement block>---.Enddo. - this loop repeats for <n> times - <n> is counter, which consit of integer value - if <n> times addition is not specified , it repeats for infite loop and finally terminates as runtime error- sy-index is a system field using in loops sy-index prints current loop index number sy-index default value is zero, when it comes to first iteration it is incremented as 1 and next iterations its value incremented by 1..and so on..

- Terminating Loops : Loop can be terminated conditionally using CHECK statement and unconditionally using CONTINUE , EXIT statement.

- While LOOP : - conditional loop, which checks the condition first, if the condition is true it repeats (Entry Checking ) Syntax : While <condition>. ----<statement block>----. Endwhile.

*- Working with Date and Time calculations -* Standard SAP date format is : YYYYMMDD 1234 56 78

- using offset we can perform operations date+6(2) = 'DD'. date+4(2) = 'MM'. date+0(4) = 'YYYY'.

Standard TIME format is : HHMMSS

SAP ABAP Material – Soft copy

Page 24: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

12 34 56 time+4(2) = 'SS'. time+2(2) = 'MM'. time+0(2) = 'HH'. - Complex data types - Structure : - it is collection of components - it is complex data object, which is declared by DATA keyword - it will create at runtime on RAM (dynamic object) - it holds only one record at a time - syntax to declare struture : DATA : begin of <structure>, <comp1> type <data type>, <comp2> type <data type>, --------------------------------, -------------------------------, end of <structure>. - DATA keyword creates data object begin of keyword starts structure, end of keyword ends structure structure is created with specified components

- Syntax to address structure component <structure>-<component>. - we can assign value to structure to components in 3 ways : - using VALUE keyword - using = operator - using MOVE keyword - structure is also called as Field string - Program consist 2 types of Errors - Static Erros : are displayed while comping program (or) while checking must be correted are two types - Syntax errors ( errors with respect to syntax) - Simantic erros( typing mistakes,English kind of mistakes) - Warnings ( can be ignored ) - Dynamic Erros - also called as Runtime Errors - are displayed as short dump - while processing programming if system across typical situation then it leads to runtime errorREPORT ZDE_PROGRAM.*-------------------------------------program for color and uline*write / 'Welcome to SAP R/3' COLOR 1.*uline.*write /5 'Welcome to SAP R/3' COLOR 2.*uline 25(18).*uline at /5(18) .**write /10 'Welcome to SAP R/3' COLOR 3.**uline /10(7).**write /15 'Welcome to SAP R/3' COLOR 4.**uline /26(3).***----------------------------------------program for write and skip statement*write / 'Welcome to SAP R/3' COLOR 1.*skip.

SAP ABAP Material – Soft copy

Page 25: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*write /5 'Welcome to SAP R/3' COLOR 2.*skip.*write /10 'Welcome to SAP R/3' COLOR 3.*skip 2.*write /15 'Welcome to SAP R/3' COLOR 4.*skip 3.*write /20 'Welcome to SAP R/3' COLOR 5.**skip to line 25.*write /25 'Welcome to SAP R/3' COLOR 6.*write /30 'Welcome to SAP R/3' COLOR 7.

*write / 'Reddy''s Lab'.*write : / 'cap', '$', 'gemini' .

*write sy-vline.*write '|'.*write '/'.

*-----------------first program(static assignment using = operator)----------------------**data n1 type i.*data n2 type i.*data res type i.***n1 = 10.**n2 = 20.**res = n1 + n2.*res = 10 + 20.**write / n1.*write / n2.*write / RES.

*--------------chain operator-----------**data : n1 type i,* n2 type i,* res type i.**n1 = 10.*n2 = 20.*res = n1 + n2.**write : / 'N1 value is', n1,* / 'N2 value is', n2,* / 'Res value is',RES.

*------------Static value assignement using VALUE keyword-------------**data : n1 type i value 25,* n2 type i value 35,* res type i.***res = n1 + n2.**write : / 'N1 value is', n1,* / 'N2 value is', n2,* / 'Res value is',RES.

*-----------Static value assignement using MOVE keyword--------------*

SAP ABAP Material – Soft copy

Page 26: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*data : n1 type i,* n2 type i,* res type i.**move 20 to n1.*move 30 to n2.*compute res = n1 + n2.**write : / 'N1 value is', n1,* / 'N2 value is', n2,* / 'Res value is',res.**data : n1 , n2, n3 .

*-----------dynamic value assignment -----**parameters num1 type i.*write : 'User entered value for num1 is', num1.

*---------CLEAR statement-----** data n1 type i value 10.* write / n1.* clear n1.* write / n1.

*-------- CONSTANTS-----** constants add(15) type c value 'Secunderabad'.* write / add.* clear add.* write / add.

*---------------------------declaring variables using data elements -**data custno(4) type c.*custno = '1234'.*write: 'Custno is', custno.

*data v_custno type kunnr. " declaring variable using data element*data v_custno type KNA1-KUNNR. " declaring variable using table field*v_custno = '123abc'.*write / v_custno.

*------------------------declaring variable using custom data type*types hello(5) type c. " defining custom data typetypes hello type c length 5.**data name type hello. " declaring data object using custom data type*data name1 type hello.*data name2 type hello.*data name3(10) type c.**name = 'Reddy'.*write name.*clear name.*uline.*write name.

*------------------------IS INITIAL*data n1 type i value 10.*

SAP ABAP Material – Soft copy

Page 27: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

**if n1 is initial.* if not n1 is initial.* write / 'n1 is initial'.*else.* write / 'n1 is not initial'.*endif.

*----------------------LIKE*data : n1 type i,* n2 type i,* n3 like n2.**n1 = 10.*n2 = 20.*n3 = 30.**write : / n1,* / n2,* / n3.

*data v_lifnr type lfa1-lifnr. " data obj creation by making use of table field*data v_lifnr like lfa1-lifnr. " data obj creation with ref to existing table field

*data v_nam1 type name1_gp.*data v_name1 like kna1-name1.

**------------------working with data types* data : n1 type i,* num1 type f ,* number1 type p decimals 2,** name(8) type c,* add(6) type n,* date type dats,* time type tims.** n1 = '45.47'.* num1 = '12.34'.* number1 = 25000.** name = 'Satish01'.* add = '-US789'.* date = '12345678'.* time = '160433'.** write : / 'n1 value is', n1,* / 'num1 value is', num1,* / 'number1 value is', number1,* / 'name is', name,* / 'add is', add,* / 'date is', date,* / 'time is', time.

*------------------working with data types accepting user input*parameters : n1 type i,** num1 type f ,* number1 type p decimals 2,

SAP ABAP Material – Soft copy

Page 28: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

** name(6) type c,* add type n,* date type d,* time type tims.*** write : / 'n1 value is', n1,** / 'num1 value is', num1,* / 'number1 value is', number1,* / 'name is', name,* / 'add is', add,* / 'date is', date,* / 'time is', time.

*---------working with system fields ------------------**write : / 'Current Application Server Date is', syst-datum,* / 'Current Local date is', sy-datlo,* / 'Current Application Server Time is', sy-uzeit,* / 'Current Local time is', sy-timlo,* / 'Current User name is', sy-uname,* / 'Current logon client is', sy-mandt,* / 'Current operating system is', sy-opsys,* / 'Current database is',sy-dbsys.

*-----------working with Text Symbols----------** write / 'Wipro Technologies'(001).* write / text-002.* write / text-003.* write / 'Appliend Innovation'(004).** uline.* write : / text-001,* text-002,* text-003,* text-004,* text-mon.*write / 'DesIDEA Pvt Ltd'(005).*write / text-005.*write / 'Good Morning'(006).

*parameters name(9) type c.*write name.

*write : / 'Customer no' , 20 'Custoername' , 55 'Country key'.*&---------------------------------------------------------------------**& Report ZDE_PROGRAM2*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*

REPORT ZDE_PROGRAM2.

*---------------------simple IF-------------** parameters n1 type i.

SAP ABAP Material – Soft copy

Page 29: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

* data n2 type i.** n2 = n1 mod 2.** if n2 = 0.* write : / 'User entered Even number'.* else.* write : / 'User entered Odd number'.* endif.

*------------------nested IF -------------** PARAMETERS marks type i.** if ( marks >= 75 ) and ( marks <= 100 ).* elseif marks >= 60 and marks < 75.* write : / 'First division'.* elseif marks >= 50 and marks < 60.* write : / 'Second division'.* elseif marks >= 35 and marks < 50.* write : / 'Third division'.* elseif marks >= 1 and marks < 35.* write : / 'Fail'.* else.* write : / 'Enter valid range between 1 to 100'.* endif.***------------------CASE----------------***parameters alphabet type c.**case alphabet.** when 'A'.** write / 'Vowel'.** when 'E'.** write / 'Vowel'.** when 'I'.** write / 'Vowel'.** when 'O'.** write / 'Vowel'.** when 'U'.** write / 'Vowel'.** when others.** write / 'Consonent'.**endcase.***parameters alphabet type c.**case alphabet.** when 'A' or 'E' or 'I' or 'O' or 'U'.** write / 'Vowel'.** when others.** write / 'Consonent'.**endcase.***-----------------------------DO---------------------***do 5 times.** write : / sy-index, 'Welcome'.**enddo.***do.** write : / 'Welcome'.

SAP ABAP Material – Soft copy

Page 30: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

**enddo.

*-------------CHECK statement is used to terminate loop conditionally---------**do 5 times.* check sy-index between 2 and 3.* write : / sy-index.*enddo.**" this loop repeats for 5 times, but whenver condition is true system priting sy-index* value

*----------- CONTINUE statement is used to terminate loop unconditionally-------** do 5 times.* if sy-index = 3.* continue.* endif.* write : / sy-index.* enddo.**" this loop repeats for 5 times, but whenever condition is true it consider* continue statement , then it continues to further iterations* CONTINUE statement is used to skip particular loop pass

*----------EXIT statement is used to terminate loop unconditionally ---------------** do 5 times.* if sy-index = 3.* exit.* endif.* write : / sy-index.* enddo.

*" this loop repeats for 3 times, whenever condition is true it considers EXIT statement.* it terminates loop permanent immediately and control comes out of loop* if EXIT is used in inner loop, then inner loop terminates immediately

DO 1 TIMES. WRITE : / 'ERP'. DO 1 TIMES. WRITE : / 'SAP'. exit . WRITE : / 'ABAP'. ENDDO. WRITE : / 'test'.ENDDO.WRITE : / 'program'.

*----------------------------------------------------------- WHILE*data n1 type i value 1.* write : / 'sy-index value', 'N1 value'.*while n1 <= 10.* write : / sy-index, n1.* n1 = n1 + 1.*endwhile.

*data n1 type i value 10.* write : / 'sy-index value', 'N1 value'.

SAP ABAP Material – Soft copy

Page 31: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*while n1 >= 1.* write : / sy-index, n1.* n1 = n1 - 1.*endwhile.

*------------------------------DATE calculations---------------**data date type sy-datum value '99991122'.*write : / date.*uline.**- changing date*write : / 'Changing Date' color 3.*date+6(2) = '01'.*write / date.**uline.**- changing month*write : / 'Changing Month' color 4.*date+4(2) = '04'.*write / date.**uline.**- changing year*write : / 'Changing Year' color 5.*date+0(4) = '2013'.*write / date.***uline.*data date1 type dats.*date1 = sy-datum.*write : / date1.*skip.*date1 = date1 - 1.*write : / date1.

*parameters date2 type dats.*&---------------------------------------------------------------------**& Report ZDE_PROGRAM1*&*&---------------------------------------------------------------------**&*& working with strings*&---------------------------------------------------------------------*

REPORT ZDE_PROGRAM1.

*-------------------string comparisions ------------* if 'SAP AG' CO 'SAP AG'.* if 'SAP ag' CO 'SAP AG'.* if 'SAP AG' CO 'SAP AG Ltd'.* if 'SAP AG Ltd1' cn 'SAP AG Ltd'.* if 'city' ca 'Ramoji Film city'.* if ' ' ca 'Ramoji Film city'.* if 'Z' ca 'Ramoji Film city'.

*if 'Welcome to SAP' cs 'come'.* if 'SAP R/3' cp 'SAP +/3'.* if 'SAP R/3' cp 'SAP +/+'.

SAP ABAP Material – Soft copy

Page 32: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

* if 'SAP R/3' cp '*/3'.* if 'SAP R/3' cp 'SAP */*'.* if 'SAP R/3' cp 'SAP +++'.

write : / 'True'. else. write : / 'False'. endif.

*data name1 type string.**name1 = 'Jagan Mohan Reddy'.*write : 'name1 value is', name1.

*parameters name2 type string.*write name2.

*data : str1 type string,* str2 type string.** str1 = 'HYTECH CITY'.* str2 = 'Cyber City'.**write : / str1 color 3,* str2 color 3.**uline.***----------------------------shift**shift str1. "default left side 1 character is shifted**shift str1 by 2 places. "left side 2 characters are shifted**shift str1 by 3 places left. "left side 3 characters are shifted**shift str1 by 3 places right. "string value moved 3 characters right**shift str1 by 2 places left circular.**shift str1 by 2 places right circular.**write / str1.****--------------------------translate** translate str2 to lower case.** write : / str2.** uline.** translate str2 to upper case.** write : / str2.****--------------------strlen()** data v_length type i.** v_length = strlen( str2 ).** write / v_length.***-------------------- SEARCH** search str1 for 'city'.** search str1 for '.T.'.

SAP ABAP Material – Soft copy

Page 33: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

** if sy-subrc = 0.** write : / 'Character Found', sy-fdpos.** else.** write : / 'Chracter not found',sy-fdpos.** endif.***data string type string.**string = 'Welcome to Hyderabad'.**search string for 'z'.** if sy-subrc = 0.** write : / 'Character found', sy-fdpos.** else.** write : / 'Character not found', sy-fdpos.** endif.***---------------- REPLACE** replace 'Y' in str1 with 'A'.** write / str1.** replace all OCCURRENCES OF 'Y' in str1 with 'A'.** write / str1.***----------------CONDENSE** data string1 type string value 'Des IDEA Pvt ltd'.** write / string1.** skip.** condense string1.** write / string1.** skip.** condense string1 no-gaps.** write / string1.***----------------------------------------------------------CONCATENATE** data str3 type string.*** concatenate str1 str2 into str3.** concatenate str1 str2 into str3 separated by '*'.** write : / str3.***--------------------------------------------------------SPLIT** data : var1 type string value 'ABCD,EFG',** var2 type string,** var3 type string.**** write / var1.** uline.** split var1 at ',' into var2 var3.** write : / var2,** / var3.***-------------------------------------------------OVERLAYdata : name1 type string value 'ABCDEFG', name2 type string value 'a c e g'.

overlay name2 with name1.*overlay name2 with name1 ONLY ''.write : / name1, / name2.*&---------------------------------------------------------------------**& Report ZDE_PROGRAM3

SAP ABAP Material – Soft copy

Page 34: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*&*&---------------------------------------------------------------------**&*& working with structures*&---------------------------------------------------------------------*

REPORT ZDE_PROGRAM3.

*--- declaring structuredata : begin of emp, no type i value 15, name(5) type c value 'Kiran', add(10) type c value 'UK', doj type dats value '20130215', end of emp.

*---- assigning value to structure emp-no = 10. emp-name = 'Ravi'. emp-add = 'USA'.

move 20 to emp-no. move 'Reddy' to emp-name. move 'India' to emp-add.

*--- display structure content write : / emp-no, emp-name, emp-add, emp-doj.

Complex Data Types : Table types -> Internal Tables (Datatype) (Data Object)

Internal Tables : - are intermediate tables which are created at Application layer- are temporary tables which are created on RAM- are data objects , which are declared by syntax and DATA keyword- are runtime objects, which are created at particular memory address on RAM while executing program- are dynamic data objects, which holds multiple records at a time- are extension to structures, which holds records row by row- it is also table, which is collection of rows(records) and columns(field names) - are used to perform open SQL operations on Database Tables SELECT statement fetches the data and populates into internal table INSERT / UPDATE / DELETE operations also possible- Working with internal tables is 3 step procedure : 1.declare internal table 2.populate internal table 3.display output using internal table ( operations on internal tables )

- Direct interaction with Database tables is not advisable, thatswhy SAP introduced internal tables

- based on Syntaxes internal tables can be classified as - Internal Table with header line - Internal Table without header line

SAP ABAP Material – Soft copy

Page 35: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Internal Table with Header line : - it consist of two components - Header line: is implicit work area, which holds only one record Always Header line holds last operation record operations can be performed on body using Header line - Body : is storage area, which stores many records at a time it maintains records as row by row (without overwritting)

Note : - Header line created by default - Header line and body consist of same structure and memory address and names - if the internal table name is itab, then header line name and body name is itab - header line can be addressed by internal table name directly - inorder to address body we have to use body operator itab[]

Internal Table without Header line : - it also consist of two components : - Explicit Work area : it is created explicitly using syntax it holds only one record at a time it always holds last operation record it is used to perform operations on body - Body area : is storage area, which stores many records at a time. it maintains records as line by line Note : Workarea and body area structure is same, but memory address and names are different - we can address work area and body area with its name directly

Difference between with and with out header line syntaxs : - with header line : - old syntax - ooabap program doesn't support this syntax - nested internal tables not possible - occurs 0 - like

- with out header line : - new syntax - ooabap program support this syntax - nested internal tables are possible - initial size 0 - type

- Internal tables classification ( new terminology used in internal tables )

- 1.Table Types are two types ( Table type specifies type of internal tables) - Index - Standard Index internal tables - Sorted Index internal tables - Hashed internal tables

- 2.Key Type : can be Unique (or) Non-Unique specifies weather system uses key field of database table (or) non-key field of database table

if system uses Keyfield of Database table(UNIQUE Key), then internal table is populated delayed., but no duplicate records exist

SAP ABAP Material – Soft copy

Page 36: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

if system uses non key field of Database table(non-unique key) , then internal table is populated fast, but duplicate records expected

- 3.Line Type : specifies the internal table created on which data type internal table is created using line type the components specified in the line type becomes internal table columns.

- 4.Row Type : specifies the structure of internal table body - Working with Ineternal Table with Header line : - creation - population - operations

- creation of internal table with header line syntax : - Internal table creation with required Database table fields Syntax : DATA : begin of <internal table> occurs <m>, <field1> like <DB table>-<f1>, <field2> like <DB table>-<f2>, ------------------------------------, ------------------------------------, end of <internal table>. Data keyword creates data object as internal table begin of keyword creates header line occurs keyword creates body with the same structure <m> specifies memory parameter if <m> value is zero, initial 8kb memory allocated to internal table once 8Kb is filled system allocates 12 kb if 12kb also filled system allocates another 12 kb and so on.. Maximum internal table can hold 2GB data. we can specify non-zero value also. if it is occurs 4, then system allocates by default memory to hold 4 entries and next time system allocates memory to hold another 4 entries and so on..

Ex : DATA : begin of itab occurs 0, kunnr like kna1-kunnr, land1 like kna1-land1, name1 like kna1-name1, end of itab.

DATA : begin of itab1 occurs 0, no type i, name(15) type c, add(15) type c, doj type d, end of itab1. - internal table creation using two table fields Base Tables must have relationship Syntax : DATA : begin of <i table> occurs <m>, <f1> like <DB table1>-<f1>, <f2> like <DB table1>-<f2>, <f3> like <DB table2>-<f1>, <f4> like <DB table2>-<f2>,

SAP ABAP Material – Soft copy

Page 37: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

end of <i table>.

Ex : DATA : begin of itab occurs 0, kunnr like kna1-kunnr, land1 like kna1-land1, bukrs like knb1-bukrs, erdat like knb1-erdat, end of itab.

- internal table creation with ref to entire database table Syntax : data <i. table> like <DB table> occurs <m> with header line. with header line addition creates header line Ex : data itab like kna1 occurs 0 with header line.*--------------------------------------------------------------------------------------*Standard Index internal table : - records are mainted in the standard index- operations can be performed using index

- system uses linear search (or) sequential search to find a record- always uses non-unique key field of database table - default and mostly used internal tables - response time is propotional to the number of entries- Syntax : data itab type standard table of kna1 with non-unique key land1 initial size 0 with header line.

Sorted Index internal table : - records are mainted in the sorted index- operations can be performed using index- system uses binary search to find a record- uses either unique key (or) non-unique key field of database table- are used if the internal table to be created in sorted order - response time is propotional to the number of entries- Restrictions : sort operation is not possible- Syntax : data itab type sorted table of kna1 with non-unique key land1 initial size 0 with header line.

Hased internal table : - records are not maintained using index ( only key ) - operations are possible using only Hashed key- system uses Hash Algorithem to find a record- always uses Unique key field of database table- are used to store large amount of data- response time is constant regardless of number of entries- Restrictions : index based operations not possible- Syntax : data itab type hashed table of kna1 with unique key kunnr initial size 0 with header line.

- operations on internal table : 1.select 2.append 3.insert

SAP ABAP Material – Soft copy

Page 38: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- to fill (or) populate internal table 4.read 5.loop..endloop - to read records from internal table

6.modify 7.collect 8.sort 9.delete - special operations 10.clear 11.clear[] 12.refresh 13.free - to delete internal table and its content

*-------------------------------------------------------*SELECT statement is used to fetch (or) retrieve data from database table and populate into target internal tableusing SY-SUBRC system field , we can check SELECT statement result immediatelyif the SELECT operation is success then sy-subrc value is zero, otherwise 4.

*-----LOOP...Endloop : - it is a loop used to read multiple records from internal table body- it reads record by record from body to header line- Syntax : LOOP at <body> into <header line>. "this loop reads all the

records in the body LOOP at <body> into <header line> from <index> to <index>. "this loop reads records

index based Loop at <body> into <header line> where <condition>. " this loop only reads all

conditiona matching records ----<write statement>-----. Endloop.

*-----------append operation : - it is used to add additional records at the bottom of internal table- records are always added at the last (without interrupting existing entires)- it adds the record from header to body- Syntax : APPEND <header line> to <body>.

*-----------insert operation- it is used to insert particular record at any index- record gets inserted at the specified index position (it interrupts the index of existing entries)- this operation also happens from header to body- Syntax : INSERT <header line> INTO <body> INDEX <index no>.

Note : Insert must followed by Index number, otherwise it leads to runtime error

*------------READ operation-----------* it is used to read single record from internal table body. it is good practice to check read statement result using subrc statement

- Syntax : READ TABLE <body> into <header line> INDEX <index no>.

SAP ABAP Material – Soft copy

Page 39: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

this syntax is used to read a record based on index

- Syntax : READ TABLE <body> into <header line> with key <condition>. this syntax reads first occurance of condition matching entry. condition comparision is case sensitive - Syntax : SORT <body> by <field>. READ Table <body> into <header line> with key <condition> binary search. Read statement supports binary search addition Binary search finds the record quickly Inorder to use Binary Search addition, table must be sorted first.

- SORT statement is used to sort internal table entries in the specified sorted order Syntax : SORT <body>. SORT <body> by <f> <mode>. SORT <body> by <f1> <f2> <mode>.

Sort operation happens directly on internal table body Sort always by specifing the fieldname <mode> specifies sorted mode ie., Ascending / Descending default mode is Ascending

- MODIFY statement is used to modify existing record by current record

syntax : index based modification MODIFY <body> from <headerline> index <indexno>. this syntax replaces index record by header line record

syntax : transporting addition MODIFY <body> from <header line> TRANSPORTING <f1> <f2> where <condition>.

this syntax replaces current values for all condition matching records.

- DELETE : statement is used to remove records from internal table body this operation happens directly on internal table body

syntax : DELETE <body> index <indexno>. this syntax delete specified index record syntax : DELETE <body> from <index> to <index>. this syntax deletes index matching records

syntax : DELETE <body> where <condition>. this syntax delete condition matching records

syntax : sort <body> by <field>. DELETE adjacent duplicates from <body>. this syntax delete duplicate records from the internal table body Inorder to use this syntax sort internal table first

SAP ABAP Material – Soft copy

Page 40: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- COLLECT : statement compares current record with existing record, if system finds any duplicate record ( data type C must match ), then it removes all duplicate records and also sums up non key field concern ( data type I,F,P,CURR ) values . it is useful to elimate duplicates while summing up numeric values. if system doesn't find duplicate record , it performs append operation Syntax : COLLECT <header line> into <body>.

- CLEAR : statement reset record to intial value Syntax : CLEAR <header line>. it is always good practice to clear header line

- CLEAR [] : removes internal table body content Syntax : CLEAR <body>[].

- REFRESH : statement removes internal table body content, but allocated memory retains Syntax : REFRESH <body>.

- FREE : statement removes internal table body content and allocated memory also. Syntax : FREE <body>.

Note : REFRESH and FREE statements works on internal table body only

*- creating internal table with ref to existing internal table -*syntax : data <new itab> like <existing itab> occurs <m> with header line.

*- moving existing internal table content to new internal table -* move <source itab>[] to <target itab>[]. <target itab>[] = <source itab>[].

*- Appending multiple records from one internal table to another internal table -* Syntax : Append lines of <exisiting itab> from <index> to <index> to <target itab>.

*- Inserting multiple records from one internal table to another internal table -* Syntax : Insert lines of <existing itab> from <index> to <index> into <targe itab> index <index no>.

*- cheking itab status using is initial -*if not <internal table>[] is initial. <st>.else. <st>.endif.

*- DESCRIBE table statement describes internal table attributes using system fields we can provide internal table attributes

*- Describe table new syntax : DESCRIBE TABLE <internal table> lines <parameter>

SAP ABAP Material – Soft copy

Page 41: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

occurs <parameter> kind <parameter>.

lines parameter specifies total number of records in internal table occurs parameter specifies initial memory allocated to internal table kind parameter specifies type of internal table T for Standard Index internal table S for Sorted Index internal table H for Hashed internal table

*---------------------------------------------------------------------------------*Working with Internal Table without Header line : - creation syntaxes : - Internal Table creation with required fields : step1 : create line type using TYPES keyword step2 : create internal table and work area using DATA keyword

types : begin of <st_type>, <comp1> type <DB table>-<f1>, <comp2> type <DB table>-<f2>, ---------------------------------------, ---------------------------------------, end of <st_type>.

data : <itab> type table of <st_type>,* <wa> type <st_type>. <wa> like line of <itab>.

in the above syntax, we have to create a strucutre type(components) using required database table fields declare internal table and work area using structure type

here structure type is called as line type

*- Syntax : Internal table creation with complete database table types <table type> type table of <DB Table>. data : <itab> type <table type>, <wa> type <DB Table>.* <wa> like line of <itab>.

SAP ABAP Material – Soft copy

Page 42: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

TAW10_1 - ABAP Workbench Fundamentals (programming)TAW10_2 - Data DictionaryTAW10_3 - Dialog ProgTAW12_1 - OOABAPTAW12_2 - Enhancements & Modifications

*-------------------------------------------------------------------*TAW10_1 - ABAP Workbench Fundamentals (programming)TAW10_2 - Data Dictionary and Dialog ProgTAW11 - Unicode, Data types, open SQL, Update techniquesTAW12_1 - OOABAPTAW12_2 - Enhancements & Modifications Web Dynpro

- creation of internal table with header line syntax :*---------------------------------------------------------------------------------*Working with Internal Table without Header line : - creation syntax : - Internal Table creation with required fields : step1 : create line type using TYPES keyword step2 : create internal table and work area using DATA keyword types : begin of <st_type>, <comp1> type <DB table>-<f1>, <comp2> type <DB table>-<f2>, ---------------------------------------, ---------------------------------------, end of <st_type>.

data : <itab> type table of <st_type>,* <wa> type <st_type>. <wa> like line of <itab>.

in the above syntax, we have to create a strucutre type(components) using required database table fields declare internal table and work area using structure type

here structure type is called as line type

*- Syntax : Internal table creation with complete database table types <table type> type table of <DB Table>. data : <itab> type <table type>, <wa> type <DB Table>.* <wa> like line of <itab>.

*--------------------------------------------------------------------------------------*- operations on internal table : 1.select 2.append 3.insert

SAP ABAP Material – Soft copy

Page 43: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- to fill (or) populate internal table 4.read 5.loop..endloop - to read records from internal table

6.modify 7.collect 8.sort 9.delete - special operations 10.clear 11.refresh 12.free - to delete internal table and its content

*-----LOOP...Endloop : - it is a loop used to read multiple records from internal table body- it reads record by record from body to work area- Syntax : LOOP at <body> into <work area>. "this loop reads all the records in the body LOOP at <body> into <work area> from <index> to <index>. "this loop reads records index based Loop at <body> into <work area> where <condition>. " this loop only reads all conditions matching records ----<write statement>-----. Endloop.

*-----------append operation : - it is used to add additional records at the bottom of internal table- records are always added at the last (without interrupting existing entires)- it adds the record from work area to body- Syntax : APPEND <work area> to <body>.

*-----------insert operation- it is used to insert particular record at any index- record gets inserted at the specified index position (it interrupts the index of existing entries)- this operation also happens from work area to internal table- Syntax : INSERT <work area> INTO <internal table> INDEX <index no>.

Note : Insert must followed by Index number, otherwise it leads to runtime error

*------------READ operation-----------* it is used to read single record from internal table body. it is good practice to check read statement result using sy-subrc statement

- Syntax : READ TABLE <itab> into <work area> INDEX <index no>. this syntax is used to read a record based on index

- Syntax : READ TABLE <itab> into <work area> with key <condition>. this syntax reads first occurance of condition matching entry. condition comparision is case sensitive - Syntax : SORT <body> by <field>.

SAP ABAP Material – Soft copy

Page 44: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

READ Table <itab> into <work area> with key <condition> binary search. Read statement supports binary search addition Binary search finds the record quickly Inorder to use Binary Search addition, table must be sorted first.

- SORT statement is used to sort internal table entries in the specified sorted order Syntax : SORT <itab>. SORT <itab> by <f> <mode>. SORT <itab> by <f1> <f2> <mode>.

Sort operation happens directly on internal table body Sort always by specifing the fieldname <mode> specifies sorted mode ie., Ascending / Descending default mode is Ascending

- MODIFY statement is used to modify existing record by current record

syntax : index based modification MODIFY <itab> from <work area> index <indexno>. this syntax replaces index record by work area record

syntax : transporting addition MODIFY <itab> from <work area> TRANSPORTING <f1> <f2> where <condition>.

this syntax replaces current values for all condition matching records.

- DELETE : statement is used to remove records from internal table body this operation happens directly on internal table body

syntax : DELETE <body> index <indexno>. this syntax delete specified index record syntax : DELETE <body> from <index> to <index>. this syntax deletes index matching records

syntax : DELETE <body> where <condition>. this syntax delete condition matching records

syntax : sort <body> by <field>. DELETE adjacent duplicates from <body>. this syntax delete duplicate records from the internal table body Inorder to use this syntax sort internal table first

- COLLECT : statement compares current record with existing record, if system finds any duplicate record ( data type C must match ), then it removes all duplicate records and also sums up non key field concern ( data type I,F,P,CURR ) values . it is useful to elimate duplicates while summing up numeric values. if system doesn't find duplicate record , it performs append operation Syntax : COLLECT <work area> into <itab>.

- CLEAR : statement reset record to intial value

SAP ABAP Material – Soft copy

Page 45: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Syntax : CLEAR <work area>. it is always good practice to clear work area content

- CLEAR <itab> : removes internal table body content Syntax : CLEAR <itab>.

- REFRESH : statement removes internal table body content, but allocated memory retains Syntax : REFRESH <itab>.

- FREE : statement removes internal table body content and allocated memory also. Syntax : FREE <itab>.

Note : REFRESH and FREE statements works on internal table body only

*- creating internal table with ref to existing internal table -*syntax : data : <new itab> like <existing itab>, <new wa> like <existing wa>.

*- moving existing internal table content to new internal table -* move <source itab> to <target itab>. <target itab> = <source itab>.

*- Appending multiple records from one internal table to another internal table -* Syntax : Append lines of <exisiting itab> from <index> to <index> to <target itab>.

*- Inserting multiple records from one internal table to another internal table -* Syntax : Insert lines of <existing itab> from <index> to <index> into <targe itab> index <index no>.

*- cheking itab status using is initial -*if not <internal table> is initial. <st>.else. <st>.endif.

*- DESCRIBE table statement describes internal table attributes using system fields we can provide internal table attributes

*- Describe table new syntax : DESCRIBE TABLE <internal table> lines <parameter> occurs <parameter> kind <parameter>.

lines parameter specifies total number of records in internal table occurs parameter specifies initial memory allocated to internal table kind parameter specifies type of internal table T for Standard Index internal table

SAP ABAP Material – Soft copy

Page 46: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

S for Sorted Index internal table H for Hashed internal table

*-----------------------------------------------------------*Difference between Views and Internal Tables : Views : - is dictionary object- is created using navigation in ABAP Dictionary- is permanent object in Underlying database as Repository Object

Internal Tables : - is program object- is declared using syntax in ABAP Program- is temporary dynamic object which will be created at runtime

TAW10_1 - ABAP Workbench Fundamentals (programming)TAW10_2 - Data DictionaryTAW10_3 - Dialog ProgTAW12_1 - OOABAPTAW12_2 - Enhancements & Modifications

*-------------------------------------------------------------------*TAW10_1 - ABAP Workbench Fundamentals (programming)TAW10_2 - Data Dictionary and Dialog ProgTAW11 - Unicode, Data types, open SQL, Update techniquesTAW12_1 - OOABAPTAW12_2 - Enhancements & Modifications Web Dynpro

data : itab type standard table of kna1 with non-unique key land1 initial size 0, wa type kna1.

data : itab type sorted table of kna1 with non-unique key land1 initial size 0, wa type kna1.

data : itab type hashed table of kna1 with unique key kunnr initial size 0, wa type kna1.

Syntax : data : <internal table> type [<tabletype>] table of <linetype> [with <keytype> <f>] [initial size <m>], <work area> type <line type>.

Simplified syntax for Standard index internal table :

SAP ABAP Material – Soft copy

Page 47: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

data : <internal table> type table of <line type>, <work area> type <line type>.

TABLE TYPE : - specifies classfication of internal table - can be Standard Index, Sorted Index, and Hased

- can be defined as local (or) global

- local table types are defined by TYPES keyword (datatype) local table types are defined with in the program and used with in the program local table types scope is local local table types are used while creating data object , internal table

- global table types are created by navigation in ABAP Dictionary global table types are defined centrally in DDIC and it is valid for all programs global table types scope is global global table types are used while creating data object, internal table

- Data types Data Objects - elementary data types -> variables - structure types -> structure - table type -> internal table are defined by TYPES are declared by DATA keyword keyword

no memory allocated memory allocated immediately

data type are used data objects are created using while creating data objects -> dictionary types -> predefined types -> local types

*--------------------------------------------------------------------------------------*Type Group : - is also called as Type Pool- belongs to program type 'T'- is a collection of Types and Constants- is also Repository Object- User defined Type Group name begins with Y or Z- Type group name can be maximum 5 characters- All the Type group components name should begin with 'Type group name_'- Type Group defined and activated as global in ABAP Dictionary which is valid to use in any program (or) global class- Inorder to use global type group in ABAP Program, we have to introduce type grop name in the declaration section using syntax : Type-pools <Type group>.- we can create data objects(variables, structure, internal tables) in the program using Type group components- Steps to create Type group - go to SE11 - select Type group radiobutton - specify type group name begins with Y or Z - click on create - specify short description - save as local object ( editor appears ) - define required elementary data types, structures types, table types and constants

SAP ABAP Material – Soft copy

Page 48: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- save, check, activate

Note : Using ABAP Editor , we can create program type 1,M,I,S Program Type 'T' can be defined in ABAP Dicationary Program Type 'F' is defined using Function Builder Program Type 'K' and 'J' can be defined using Class Builder

- Steps to create Global Table Type : go to SE11 select data type radiobutton specify table type name begins with Y or Z click on create specify short description specify line type (as Data Element / Structure / Table Type ) Under initiliaztion and access tab, we can specify initial line number and internal table type Under key tab, we can specify key catagory and key components save, check,activate *----------------------------------------------------------------------------------*Control Level Processing : - it is also called control report (or) control break report- Control break report is possible using control break statements- it is used to print summarized report, ( we can print sub total or grand total for numeric values )- All the control break statements must be placed between loop...endloop- sort internal table before displaying output- Contror break statements (or) Internal table events : 1.At First. ----<statement block>. Endat.

this statement initializes the loop it provides header information for list it exist only one time with in the loop

2.At New <field>. -----<st block>----. Endat. it executes whenever the field value changes it may exist multiple times with in the loop 3.At End of <field>. -----<st block>-----. Endat. it executes end of particular field value it may exist multiple times with in the loop it is used to print sub total

4.At last. -----<st block>----. Endat. it executes end of the report it terminates the loop it is used to print grand total of field it exist only one time

SAP ABAP Material – Soft copy

Page 49: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

5.SUM. it is used to calculate sub total (or) grand total for numeric columns it can be used for multiple times

6. on change of <field>. -----<statement>-----. else. ------<statement>-----. endon. this is alternative for at new it also executes whenever the field value changes

Difference between At new and On Change .At New : - doesn't support else part - only used in loop...endloop

On Change : - support else part - can be used in any loop

SAP ABAP Material – Soft copy

Page 50: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Note : indexes only possible for Transparent Table

Modularization Techniques : - Modularity is a programming technique, where we devide large size program into small modules (or) blocks and deal with modules independently.

Advantages of Modularity : - it avoids code redundency- it improves program redability- it increases program reusability

M.Techniques are classified as- Source Code Modules: - Macros - Includes

- Procedures: - Subroutines - Function Modules - Methods (Object oriented procedure)

- Macors : - Macro is a set of statements (or) collection of statements , which begins with DEFINE keyword and ends with END-OF-DEFINITION

- Syntax to define Macro DEFINE <macro>. ----<statement block>----. END-OF-DEFINITION.

- Macro can be called with its name directly - nested macros are not allowed, but one macro definition may call another macro. - Macros are mostly used in ABAP-HR programming - Recursive macros are not possible

- Macros can be defined as local (or) globalLocal Macros can be defined and used with in the programScope is local , valid with in the program

Global Macros can be defined in TRMAC pooled table in ABAP DictionaryScope is global, valid for all programs

- Macro can be defined with place holders also Maximum 9 place holders are allowed along with macro definition (&1........&9) place holders holds the value at runtime, which is passed by calling statement. place holders acts like formal parameters

- calling statement may defined along with actual parameters calling statement passes the value to macro to perform operation Note : the number of actual and formal parameters should be same.

SAP ABAP Material – Soft copy

Page 51: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- INCLUDE Program : - Include program consist of collection of statements (or) set of statements - Include program belongs to program type 'I' - Include programs are not self executable - Include programs are used in another include program (or) another executable program - syntax to use include program : INCLUDE <include prog>. - one include program may used in many executable program (Reusability) - Include programs are defined as global independent Repository Object - nested includes not possible - recursive includes not possible - parameter passing not possible between include and calling program - Includes classification : Include <program>top. "global declarations Include <program>i01. "PAI modules Include <program>o01. "PBO modules Include <program>f01. "subroutines Include <program>e01. "events Include <program>u01. "user-exits

- Main advantage of include is source code reusability - Procedures : Procedures contain a set of statements, and are called from other ABAP programs

- Subroutine : - is also called as routines (or) forms - it is a set of statements, which performs unique operation - it is a procedure, mainly used for local modularization - Subrouitne definition begins with FORM keyword and ends with ENDFORM keyword. - Syntax to define Subroutine : FORM <subroutine>. -----<statement block>----. ENDFORM. - Subroutines are called by PERFORM statement Syntax of PERFORM statement : PERFORM <subroutine>.

- As a Rule, Perform statement must exist , before subroutine definition. - nested subroutines are not possible - recursive subroutines are possible, but which leads to runtime error finally - system executes all the statements written between form ..endform. endform terminates subroutine. we can terminate subroutine conditionally using CHECK statement and unconditionally using EXIT statement.

- subroutines can be created using forward navigation also - one subroutine definition may call another subroutine - As a standard Approach , all the perform statements exist top of the program and subroutine definitions exist end of the program. - because after subroutine definition , another subroutine definitions are accepted, but general statements are not accepted

- Subroutines are two types : 1.Internal Subroutine : perform statement and subroutine definition both exist in ABAP Executable program. 2.External Subroutine : subroutine definition exist in program type 'S' perform statement exist in program type '1'.

SAP ABAP Material – Soft copy

Page 52: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Syntax to call External subroutine : Perform <subroutine>(programname).

Subroutine pool is a collection of many subroutine definitions which can be called by any executable program individually. Working with Subroutines : - we can define subroutines using parameters using parameter interface we can perform operations- The parameters which are defined along with PERFORM statement is called as Actual Parameters- The parameters which are defined along with Subroutine is called as Formal Parameters- As a Rule, number and data type of Actual and Formal parameters should be same.- USING and CHANGING keywords are used to define parameters

- We can perform 3 types of operations using Subroutines : 1.Pass by Reference 2.Pass by Value 3.Pass by Value and Result

1.Pass by Reference : In case of pass by reference, while subroutine call formal parameters are created as a copy of actual parameters. Formal parameters doesn't contain special memory, but inturn they points to the address of actual parameters Any changes done to formal parameters have immediate effect on actual parameters USING and CHANGING keywords acts like same.

2. Pass by Value : In case of pass by value, while subroutine call formal parameters are created with its own memory. Formal parameters have separate memory.VALUE keyword creates separate memory Any changes done to formal parameters have effect on formal parameters only ( no effect on actuals ) 3. Pass by Value and Result : this is also pass by value, but it is used to return the operation result value back to calling statement.

*- Passing Internal Tables to Subroutine : Internal Tables can be passed to subroutine as Pass by Reference TABLES keyword is used to pass internal tables to subroutine syntax : perform <subroutine> tables <itab>.

*- we can define local variables with in the subroutine with DATA, STATICS, LOCAL keyword global variables are defined in top include of program, which are valid for entire program, (scope is global)

if the local variable is defined using DATA keyword , it holds the value with in the subroutine, its scope is local only.

if the local variable is defined using STATICS keyword, it retains the value in the subroutine call also, its scope is global.

if the local variable is defined using LOCAL keyword , its scope is local , it holds the value with in the subroutine it is used to protect changes of local variable. *--------------------------------------------------------------------------------------*Function Module : - is a procedure, which accepts (imports) values and perform operation and returns(exports) values to calling program.- SE37 : tcode for Function Builder- Using Function Builder Function Groups and Function Modules are created- Function Builder is closely integrated with ABAP Development Workbench- Step1 : Function Group Creation Step2 : Function Module Creation

SAP ABAP Material – Soft copy

Page 53: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Function Group : - is also called as Function Pool (or) Function Library - it belongs to program type 'F' - F.Group is not self executable - F.Group is independent Repository Object - F.Group is a collection of similar functionality of Function Modules - F.Group is also collection of Screens, Modules, Includes,Subroutines...etc., - path to create function group : go to tcode SE37 goto menu -> Function Group -> create group specify function group name begins with Y or Z specify short description save as local object

Activating Function Group : goto menu ->Function Group -> Display Group notice that Function Group status is inactive click on main program double click on top include , activate it, back activate functionpool program, back now notice that Function Group is Active

- Function Module : it is an independent program, which performs unique operation F.Module also independent Repository Object Every F.Module belongs to one Function Group Similary Functionality of Function Modules logically grouped under Function Group F.Module can be created, activated, released F.Modules are implemented as External Subroutines F.Modules are mainly used for Global Modularization F.Modules are created independetly under F.Group, which are valid to call and use in any program One F.Module can be called in multiple programs (Reusablity) Once F.Module is created and activated , it can be called in any Executable program.

- Syntax to call Function Module : call function '<function module>' .

- Function Modules are used to perform operations we can perform simple and complex operations using parameter interface.

While defining function module , we can define import, export,changing parameters and tables, exceptions also

Business Scenario1 : working with Import and Export tabs - specify function module name begins with Y or Z- click on create- specify function group and short text , continue- define import parameters under import tab n1 type i n2 type i- define export parameters under export tab res type i- specify logic under source code tab ( between function ...endfunction) res = n1 + n2.- save, check, activate, test Function Module.

SAP ABAP Material – Soft copy

Page 54: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Usage of Function Module in ABAP Executable Program : - declare actual parameters - call function module - pass actual parameters - display output

Note : Function Module can be defined with out interface also if F.Module consist of Write statement, its result is displayed in list screen.

Function Modules : zde_fmodule - pass by ref example zde_fmodule1 - pass by value example zde_fmodule2 - no parameter interface (write statement) zde_fmodule3 - working with changing tab (pass by value and result) zde_fmodule4 - tables tab with all table fields , with select statement zde_fmodule5 - tables tab with all table fields, without select , only display zde_fmodule6 - tables tab with required fields

- Function Module Tabwise Theory : Attributes tab : consist of function module short description and fucntion group name Based on Processing type Function Modules are 3 types : 1.Normal FM : by default all F.Modules are Normal FM. it can be called by any program with in the server 2.Remote Function Module : are special function modules which can be called from any server it supports remote capability Syntax to call RFC FM call function '<f module>' destination 'RFC Destination'

3.Update Function Module : is used to modified record to database table, while updating it uses VB* temporary tables Update can be done - immediately - delayed - collective update

Import tab : is used to define import parameter import parameters acts like formal parameters, which imports(accepts) the value from calling program and pass to source code import parameter name should begin with ip_ import parameter can be defined using associate type as - predefined type - dicationary type - data element / structure-component / table type - database table-field / view-field - global class / global interface if optional check box is checked , this parameter appears as comment , wherever it is called we can provide default value, short text and long text also

Export Tab : is used to declare export parameter export parameters acts like formal parameters, which exports(returns) the result value back to calling program export parameter name should begin with ep_ no default value for export parameters

Note : Import and Export tabs are used as Pass by Value by default, but they can be used as Pass by Ref also

SAP ABAP Material – Soft copy

Page 55: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Nested Function Modules are not possible, but one function module can call another function module- Recursive Function Module leads to runtime error

- Changing Tab : is used to declare both import and export parameters it is used for pass by value and result

- Tables Tab : is used to define internal table with in the function module Internal Tables can be defined as Formal parameters using Tables tab Internal Tables can be passed to Function Modules always as Pass by Ref

- Exceptions Tab : is used to define exceptions with in function modules these exceptions can be raised while maintaining source code logic- Source Code tab : consist of main functionality (or) source code logic of function module Code must be maintined with the help of local interface , between function .....endfunction. we can define local types ( elementary datatypes, structure types , table types) and declare local data objects ( variable,structure, internal table )

- Documentation tab provides in detail documentation of Function module parameters

*- Working with Exceptions -*- Exceptions are used to handle runtime erros (or) dynamic errors- While executing function modules, if any error occurs, it can be handled by Exceptions- Working with Exceptions is 2 step procedure : Step1 : define Exceptions in Exceptions tab Step2 : Raise Exceptions in the source code tab under certain conditions

- Syntax to raise exception : RAISE <exception>. - Exceptions are handled by Messages Syntax to raise exception with message statement : Message <msgtype><msgno>(msgclass) raising <exception>.

- While calling this function module in ABAP program, system inserts exceptions also. exceptions are displayed with return code values based on return code value, we can provide appropriate messages usgin sy-subrc condition.

- Business Scenairo : Develop a FM which accpets S.org,Dist.Channel, Division ,fetches its corrsponding data from knvv database table and display output

- Exploring Function Module : date_to_day : it provides name of the day for the given date spell_amount : it converts currency values into corresponding text (in words) Amount_string_convert : it converts amount string into currency values convert_to_local_currency : it translate foreign currency amount to local currency convert_to_foreign_currency : it Translate local currency amount into foreign currency calculate_exchange_rate : Find Rate Based on Amounts, Currency Keys and Date

- Searching for Function Modules : - All ALV related function module names begins with REUSE_ALV_ - All BAPI related function module names begins with BAPI_ - can be searched based on - name - short text

SAP ABAP Material – Soft copy

Page 56: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- function group - package - application component - All function modules are stored in TFDIR transpart table

- Difference between Subroutines and Function Modules : Subroutines : - are mainly used for local modularization- doesn't support exception handling- are created in ABAP program ( f01 includes )- called by perform statement

Function Modules : - are mainly used for global modularization- supports exception handling- are created in Funtion Builder- called by call function statement

**************Macros are mianly used in ABAP HR programmingIncludes can be used in any program with in the server ( parameter interface not possible) Subroutines mainly used for local modularization ( parameter interface possible)Normal FM can be called by any program with in server(parameter interface possible)Remote-Enabled FM can be called by any program any server (parameter passing possible)

***********************************Messages : are used to know any operation result , while working with SAPMessages are created under message classMessage class tcode : SE91Message class is independent Repository ObjectMessage class is a collection of messagesM.Class consist of Message number and corresponding Message TextMessage Number is represented as 3 digit numberValid Message Number range is 000 to 999we can create 1000 messages per classMessage Text can be 73 characters length, which consist of alphanumeric and special symbols also.

Text Symbols are program dependent, but Message class messages are created as Global independent objects, which are valid to use in ABAP Programs, Function Modules, Forms, Screens,Global Classes and Global Interfaces

- Types of Messages : Type I - Information Message Type S - Success (or) Status Message Type E - Error Message Type W - Warning Message Type A - Abort (or) Abend Message Type X - Termination Message

- Inorder to use Message class messages in ABAP Program, we have to declare message class name along with Report Statement. Report <program name> message-id <message class>.

- Messages are classified as - Static Message : displays fixed hard coded text

SAP ABAP Material – Soft copy

Page 57: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Dynamic Message is used to display context dependent - creating custom message class go to tcode : SE91 specify message class name begins with Y or Z click on create specify short description specify required meaningful messages in the messages tab save, check.

- Syntax to specify message with out message class : message '-------<msg text>-----------' type '<msg typ>'.

- Dialog behaviour of messages : Information Message : appers in information dialog box with special screen.it informs with some message to user

and it will allow user to proceed further.

Status Message : is displayed in status bar of same screen with green color tick mark

Error Message : is displayed in the status bar of special screen with red color , it doesn't allow to proceed further screen.

Warning Message : is also displayed in the status bar of special screen with red color, it doesn't allow to proceed futher screen.

Abort Message : is displayed as cancel dialog box with stop red color icon, it stops process, and exit the process control transfer to SAP Easy Access. it restarts whole process

Termination Message : leads to runtime error it abnormally stops processing and system leads to short dump Short dump is a special screen, which displays runtime error ST22 tcode to analyse short dump

- Syntax to specify message with message class : message <msg typ><msgno>. Ex : message i000. (message class must be specified along with report statement)

- Syntax to specify message with message class message <msg type><msgno>(msgclass). (no need to specify message class name along with report statement) this is useful to display multiple message class messages

message classes can be created using forward navigation also.

- Dynamic Message : - is mainly used for reusability - program sends value / values to message class message - to hold that values message is defined with place holders

- Syntax of Dynamic Message : message <msgtyp><msgno>(messageclass) with <f1> <f2>....<fn>.

SAP ABAP Material – Soft copy

Page 58: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

message statement sends field values to message class message while executing program.

message statement filed numbers must match with message place holders in message class

- System Messages used for Message class : sy-msgid : name of the message class sy-msgty : name of message type sy-msgno : message number sy-msgv1 : message varirable

- All the messages are stored in T100 table

- Syntax to Raise Exception with message statement message <msgtyp><msgno>(msgcls) raising <exception>. - ABAP Editor Theory :

pattern tab is used for insert statements like message, select, authority check, function modules etc.,

Pretty print tab is used to set program indetation , code gets modied as per standard

Advantages of New ABAP Editor : - auto proposal of keywords and syntaxes- color display- code can be compressed- line numbers display- status bar options provides several options to changes like display, font and colors, code templets, keyboard and print settings

SE80 - ABAP Development Workbench (or) Object Navigator- it is important developement tool , used by ABAP Consultant- operations( create, change, display ) can be performed using right click (context menu)- it is closely integrated with - Application Hierarchy - Repository Browser - Repository Information System - Tag Browser - Transport Organizer - Test Repository - Enterprise Service Browser - Web Dynpro Text Browser - Enhancement Information System

- ABAP Dictionary, Data Browser, BAdI builder, Function Builder, Logical database Builder, Class Builder, Adobe forms builder ..etc.,

- it is used to navigate object to object ( using Edit object option )- using one screen, we can view all pacakges concern objects,

SAP ABAP Material – Soft copy

Page 59: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

all function group concern objects, and local objects...etc.,- objects can be created, changed, displayed, and deleted also.- it supports to develop BSP / Web Dynpro Applications

- Package : is a collection of objects default package is $tmp, which holds all local objects SAP defined objects belongs to SAP Package User defined objects belongs to User defined Package (or) $tmp Package also Repository Object Packages can be created by BASIS consultant , using Package Builder(SE21) (or) ABAP Development Workbench

Custom Package creation : - go to tcode SE21 - specify package name begins with Y or Z - click on create - specify short description - specify application compont and software component ( HOME ) - speciy transpor layer - specify package type ( not a main package ) continue system proposes local workbench request dialog box click on create request system opens another screen ( specify current activity concern short text ,project, traget client) save continue.Note : now on wards , we can save developed objects in Custom Package so that it can be transported to Quality (or) Production box.

Objects can be moved from one package to another pacakgebut one object belongs to one pacakge at a time

- moving object from $tmp to custom pacakge : go to tcode SE11 specify table name avilable in $tmp package goto menu -> object directry entry click on pensil(change mode) change package / username save, continue with request.

- Create Request / Change Request (CR) : is generated and proposed by the system

it is 2 types : 1.Workbench Request : it is generated at ABAP level whenever object is saved in Custom Pakcage, then system proposes local workbench Request.

2.Customizing Request : it is generated at Fucntional level while configuration, whenever new data is created in SAP, then system proposes Customizing Request.

SAP ABAP Material – Soft copy

Page 60: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Request Number represented as below : <INSTANCE>K9<nnnnn>. Ex : EC6K900170 EC6 is instance K is constant 900170 is request number which always begins with 9, having 6 digit number

Request number is useful to track / trace object status While working in the Implementation project, objects are initially developed(save, check,activate,test,release) in the Developement box. ABAP consultant is responsible to test and release Released objects are ready to transport Transport done by BASIS consultnats using TMS (STMS tcode) Transport is moving one copy of object from one instance to another instance. W.B.Request number is useful to identify object as Unique it is useful to aware of project status.

Transport Organizer : is a tool used to release objects Tcode for Transport Organizer SE09.

whenever system proposes workbench request dialog box , consultant can perform 3 type of activity : system proposes request number based on internal sequence number 1.continue with system proposed request number and description 2.create request : option is used to create new request number by specifying description 3.own request : option is used to choose existing request numbers

- As a Standard Approach , Reqeust is created and released by Lead, Task is created and released by team member ( consultant ) Task must be released before relasing Request. we have to release task first and finally request is released. once the request is relased object is moved from Modifiable section to Released section. In general modifications are allowed to object, before release If we modify released object, then system proposes new workbench request.

Steps : go to Tcode : SE09 click on display place the cursor on task , click on release icon place the cursor on request, click on relase icon (Request menu -> release -> directly)

*---------------------------------------------------*Version Management : - is useful to maintain several copies of object in the version database- Whenever object is activated system generates by default current version at developement database ( application level )- Requirement specific we can modify existing object - by default version database is empty- before modifying existing object , we can generate version in the version database.- Advantage of Version management : - we can retrieve old version object - we can compare two different version objects- Script Form and Smartforms doesn't support version management

SAP ABAP Material – Soft copy

Page 61: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- menu path to generate version : Utilities menu -> versions -> generate version- to view versions of the object : Utilities menu -> versions -> version management *----------------------------------------------------*

open SQL : - statements are sub set of standard SQL- processed through ABAP Workbench and buffer- are converted to native SQL by database interface- are database independent statements- are ABAP specific statements, mostly used commands- are SELECT, INSERT, UPDATE, MODIFY, DELETE statements- statements must follow ABAP Editor standard rules

Native SQL : - statements are special commands written with respect to database - statements by pass ABAP Workbench and buffer (Application layer)- are not converted by database interface- are database dependent statements- are so powerful, and rarely used commands- syntax to define native SQL statements EXEC <SQL>. ---<native SQL>---. Endexec.- statements doesn't follow ABAP Editor standard rules

- SELECT statement basic syntax : SELECT <required fields> INTO <target area> FROM <database table> [ where <condition1>] [ group by <field>] [ having <condition2> [ order by <field> <mode>].

- select...endselect loop is used to fetch the data directly from database table this loop hits the database number of times, which creates lot of load on system and network traffic increses Performance point of view hitting the database table number of times is not advisable thatswhy SAP advises to use internal table

- select * from <DB Table> into table <itab>. above syntax hit the database only one time, and fetches all records data from database and directly appends to internal table this special operation is called as Arry Fetch operation it always bypass work area ( with out header line ) header line ( with header line)

- it is always good practice to check sy-subrc statment immediately after every open SQL operation if the open SQL operation is success then system return code value 0, otherwise 4.

- sy-dbcnt system field provides count of database records which can be used to check open SQL statment result.

- select * statement fetches all rows and all columns from the database table- select <f1> <f2> <f3> statement fetches required fields from database table

SAP ABAP Material – Soft copy

Page 62: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

specify field order as per the database table order ( sequence ) , to avoid using of into corresponding fields addition

into corresponding fields - it fetches the data from database table and places into target for identical named fields ( it compares source field name and target field name )

- where clause is to fetch condition based records condition can be specified as <field> <relation operator> 'value'. this comparision is case sensitive multiple conditions can be specified using logical operators ( AND, OR, NOT)

- order by addition to fetch the data in the specified mode default mode is ascending we can specify decending - up to <n> rows addition is used to fetch records based on index of database table <n> value must be positive integer whenever up to <n> rows is used , specify primary key addition in order to get exact values

- distinct addition is used to fetch unique records from database it elimates duplicate records while fetching the data

- by default system fetches the data from local login client inorder to fetch data from other clients we have to use CLIENT SPECIFIED addition along with select statement - Aggregate functions are used along with select statement to perform arithmatic operations Max( <f> ) : it returns maximum field value Min( <f> ) : it returns minimum field value Avg( <f> ) : it returns average value of field Sum( <f> ) : it returns sum of fieldvalue Count( <f> ) : it returns the count number - using select single <f> , we can fetch single field value from database table target area must be declared as variable

- Field List : we can fetch requried single field values from data base table entry - in this case target area should be field list syntax : select <f1> <f2> <f3> from <DB table> into ( f1, f2, f3 ) where <conidtion>. if condition is not specified system fetches first record values

- select single * : is used to fetch single record from database table if condition is not specified it fetches first record - if at all we want to fetch data from more than 1 database table, we can use - inner join - left outer join

- inner join fetches the common data exist in both tables it fetches data based on join condition join condition is defined using common keyfields of both tables

- left outer join fetches entire left side table entries , irrespective of right side table into target area.

Syntax :

SAP ABAP Material – Soft copy

Page 63: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

select <alias>~<field1> <alias>~<field2> ------------------- ------------------- into table <target internal table> from <DB table1> AS <alias> inner join <DB table2> AS <alias> ON <alias>-<keyfield> = <alias>-<keyfield>. we can use table names directly instead of using Alias Alias is alternative name for Database Table - Alternative for inner join select statement is, usage of Database View- we can internal table on Database Views

- FOR ALL ENTRIES : it is alternative for nested select statement it is used while populating current internal table by comparing existing internal table entries it is special select statement, where it compares database table entries are compared with internal table entires. it can't be used to fill first internal table it is used to fill other internal tables while comparing with existing internal table it must followed by where condition condition must be specified by keyfield comparision Prerequisite : initial internal table should not be empty check the status of initial internal table

- Working with Complex Report (or) Working with many database tables : Steps : - Identify the data (fields) required by End user- Identify the data from single database table (or) multiple tables- Identify table relationship

- Declare required internal tables, to hold database tables data Declare Final internal table , which is used to display final output - Populate first internal table using normal select statement (or) inner join select statment , by considering user input in the selection-screen.- populate other internal tables using for all entries select statement- move all the entries from first internal table to final internal table using loop statement.- with in the loop , use read table statement to single records from other internal tables , if corresponding entries are avilable move second internal table entries also to final internal table

- display final output using final internal table

*********************************************************************INSERT open SQL statement : - it is used to create a new record in the database table- we can check the result using sy-subrc statement immediately- inserting single record using work area work area must be declared using database table. specify new record using work area components Use below syntax to insert record : INSERT <Database Table> from <work area>. Insert into <Database Table> values <work area>.

SAP ABAP Material – Soft copy

Page 64: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Inserting several records in the database table declare internal table and work area in the program append new records to internal table Use following syntax to insert records from internal table : INSERT <Database Table> from table <Internal Table>.

*********************************************************************UPDATE open SQL statement : - it is used to update database table records- if existing database table consist of blank values (or) incorrect values, using UPDATE statement we can enter new values for blank records, we can rectify incorrect values.

- MODIFY is also another open SQL statement, which also used for update purpose. it will update if record found, otherwise it creates new record

Syntax : UPDATE <Database table> SET <field> = 'value' where <condition>. this syntax sets new values for condition matching records

Syntax : UPDATE <Database table> from <work area>. this syntax is used to update single record

Syntax : UPDATE <Database table> from table <internal table>. this syntax is used to update several database records.

*********************************************************************DELETE open SQL operation : - is used to delete records from underlying database table Syntax : DELETE FROM <Database Table> WHERE <cond> . this syntax delete condition matching records

Syntax : DELETE <Database Table> from <work area>. this syntax is used to delete single record from database table

Syntax : DELETE <Database Table> from table <internal table>. this syntax is used to delete severl records from database table***********************************************************************

The SELECT statement bypasses the buffer when you use any of the following:

The BYPASSING BUFFER addition in the FROM clause The DISTINCT addition in the SELECT clause Aggregate expressions in the SELECT clause Joins in the FROM clause The IS NULL condition in the WHERE clause Subqueries in the WHERE clause The ORDER BY clause The GROUP BY clause The FOR UPDATE addition*********************************************Mathematical Functions

SAP ABAP Material – Soft copy

Page 65: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Function Result ABS Absolute value of argument. SIGN Sign of argument: 1 X > 0

SIGN( X) = 0 if X = 0

-1 X < 0 CEIL Smallest integer value not smaller than the argument. FLOOR Largest integer value not larger than the argument. TRUNC Integer part of argument. FRAC Fraction part of argument. ************************************************************************Field-Symbol : - are place holders for data objects- doesn't reserve memory , but they points to existing variables- implements dereferenced pointer concept of 'C' language- points to the value of variable, which is assigned to it.- Syntax to declare Field-Symbols : Field-Symbols <FS>. Angle brackets are part of syntax - using ASSIGN keyword we can assign variable to Field Symbol Syntax to assign variable to field symbol ASSIGN var to <FS>. then <FS> points to the value of var at runtime.- Field Symbols are mainly used for Dynamic Memory Management- we can assign data objects ( variables, structures, internal tables ) to field symbols. **************************************************************************

***********************************************************************

- write is used to display output- Syntax :

SAP ABAP Material – Soft copy

Page 66: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

write : /<col_pos> '------<text>----------'.- write statement supports color addition 7 color ids are possible (1...7)- skip statement provide one blank line in the output- uline statement provides under line the output- sy-vline system field provide verticle line- write statement with left-justified addition provides output as left centered addition display output as centered right-justified display output as right justified- Syntax : write : / <var> [left-justified][centered][right-justified].- providing output without gap write : / <var1> no-gap, <var2>. it displays two variable values with out gap no-gap addition removes explicit gap between strings

- providing output one under another Syntax : write : /<col_pos> <var1>, / <var2> under <var1>.- no-sign addition removes sign for integer values- no-zero removes leading zeros for character values- no-decimal removes decimals

- printing date as per our own format using syntax : write / <date> using edit mask '__/__/____'.- printing time as per own own format using syntax : write / <time> using edit mask '__/__/__'.

FORMAT color <id>. this syntax provides specified color <id> for followed by write statements.

FORMAT hotspot on. this syntax provides hyperlink (hand symbol) for followed by write statements.

FORMAT intensified on. this syntax provides intensity to followed by write statements.

FORMAT inverse on. this syntax applies back ground color to text color and vice versa

FORMAT input on. this syntax generates write statement output, which can be editable in the output

- using PATTERN we can insert several write statements we can print symbols, icons, lines,check boxes also. specify include statement as include <list>.

- ============

- ABAP is mainly used for Reporting purpose- Report is output of executable program- Reports are displayed in List screen, thatswhy reports also called as List- Reports are to display output(data) in structured format- End Users (Managers) require Reports for different reasons : - Reports are useful for information purpose, analysis, decision purpose,

SAP ABAP Material – Soft copy

Page 67: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Strategy to work with Reports : - Use SAP provided Standard Reports - Enhance Standard Report - Modify Standard Report - Develop Custom Report under customer namespace- Standard Reports which are developed by SAP are avilable under Information System - SIS - Sales Information System - LIS - Logistics Information System - HIS - HR Information System - path to view Standard Reports : SAP Easy Access -> SAP Menu -> Information Systems - Working with Task/Object( RICEFW) in SAP : Phase1 Activities : Understand Business Requirement (or) Client Requirement ( FS) Analyse the flow or sequence Design Flow Diagram (or) UML Diagram Design pseudo code demostrate to lead and get approval Phase2 Activites : Start typing source code in ABAP Editor as per Basic ABAP Programming standards save,check, activate, test(unit testing) program

Phase3 Activities : Check Performance Tuning -> output must meet business requirement -> check performance with system point of view -> check your program against check list ( Code Review - done by Lead)

follow coding standards, naming conventions,modularity, tcode creation -> relase task/object

- Types of Reports avilable in ABAP 1.Classical List (or) Classical Report 2.Interactive List (or) Interactive Report 3.ALV Report 4.LDB Report - used in ABAP HR programming 5.ABAP Query (or) SAP Query Report - used by Functional Consultant 6.Ad Hoc Query - used by SAP HR Consultant 7.Report Painter - (tcode GRR2) , used by Co consultants 8.BW Reports - Multi dimentional reports - in ABAP Reporting is generated using Events- ABAP is Event driven programming language Events are triggered by System, based on user actions Events are two types : Implicit Events : which are triggered and processed by system Explicit Events : which are triggered by user actions user can perform actions on selection screen, list screen, dialog screen. Event names and Event behind respective source code is written in the program system (ABAP processor) gives top priority to events over general statements Events are executed by the system on priority basis Events are not processed as per the typed sequence

- Selection-screen events : 1.LOAD-OF-PROGRAM. - is implicit event triggered by the system while executing program

SAP ABAP Material – Soft copy

Page 68: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- it loads program into context area 2.INITIALIZATION. - it is triggered by the system , before displaying selections-screen - using this event, we can provide default values to selection-screen fields 3.AT SELECTION-SCREEN OUTPUT. - it is triggered by the system,after INITIALIZATION event and before displaying selection-screen - it provides default different attributes to selection-screen fields 4.AT SELECTION-SCREEN. - it triggers after user interaction on selection screen - it performs two activities - autorization checking - validate user input 5.AT SELECTION-SCREEN ON <f>. - it triggers when the user interacts with particular field in the selection screen. - it is used to validate particular field

6.AT SELECTION-SCREEN ON <seltab>. - it triggers when the user interacts on selection table - it consist of logic to process select-options

7.AT SELECTION-SCREEN ON END OF <seltab>. - This event block cheks the whole selection table <seltab>. 8.AT SELECTION-SCREEN ON BLOCK <block>. - it is triggered when the contents of all of the fields in a block are passed from the selection screen to the ABAP program. - it is PAI event of selection-screen 9.AT SELECTION-SCREEN ON RADIOBUTTON GROUP <radi>. - In the PAI event of the selection screen - it is triggered when the contents of all of the fields in a radio button group are passed from the selection screen to the ABAP program.

10.AT SELECTION-SCREEN ON HELP-REQUEST FOR <field>. - it is used to provide F1 help docuementation to selection-screen field. - it triggers , when the user press F1 key of field

11.AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field> - it is used to provide F4 help to selection-screen field. - it triggers , when the user press F4 key of field

- ********************** List Screen Events : 1. START-OF-SELECTION. - it is implicit default event, triggred by system for all executable programs - it triggers before displaying list screen - it consist of data fetching logic

2.END-OF-SELECTION. - it is triggered after START-OF-SELECTION event - it triggers once the data selection is over - it is used to display output to list screen

3.TOP-OF-PAGE. - it provides header information to list screen - it is triggered by first write statement,skip (or) uline statement. 4.END-OF-PAGE.

SAP ABAP Material – Soft copy

Page 69: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- it provides footer information for page - it is triggered by LINE-COUNT addition along with REPORT statement.

sy-linct system field displays totol number of lines(rows) per page.LINE-COUNT 20(1). system displays total 20 rows per page, out of 1 row is reserved for footer To increase output list width, we have to use line-size <n> addition along with REPORT statement.sy-linsz system field provides list screen width.

By default, whatever the title we provided in the attribute screen will apper as list screen heading and title.we can provide custom list heading and column heading using Text Element.Standard page heading can be suppressed using addition NO STANDARD PAGE HEADING along with Report statement.

REPORT Transaction : - can be created in SE93 tcode- using SE93 custom tcodes can be created- it is used to assign Reports to end users- it combines program name and standard selection screen (1000)- End user access the report using Report Transaction

Steps : go to SE93. specify tcode name staring with Y or Z click on create specify short text select report transaction continue specify executable program name and selection screen 1000 check GUI support for windows save, check.

Finally execute Tcode from Easy Access

*---------------------------------------------implementin authorization object- created a program (zde_classical_list) created tcode (zclist_tcode) tested tcode

- step1 : SU21 - > Authorization Class(zaoc) and Authorization object(zauthobj) creation- step2 : go to tcode : se93 -> open existing tcode -> assign authoriztion object and assign values (ex : bukrs ->1000 actvt -> 01 - create authorization 02 - change authorization 03 - display authorization )

- step3 : role creation using PFCG tcode create custom role (zrole) assign tcode : ZCLIST_TCODE save

- step4 : user creation using SU01 tcode assign role in the role tab(zrole)

SAP ABAP Material – Soft copy

Page 70: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- step5 : go to se38 ,open program in change mode, implement authorization object under AT SELECTION-SCREEN on <f> event.

Example Standard program for Interactive list : Easy Access -> SAP Menu -> Information Systems ->Logistics -> sd ->customer -> incoming orders ( Tcode MC(A )

While Working with SAP, we come across 3 types of screens,1.Selection-screen2.List screen3.Dialog Screen

Selection screen and list screens are used in ReportingDialog screens are used to accept value from user(input) / display value to user(output)Dialog Screens are special screens, which are designed using Screen Painter (SE51)

List screens are used to display program outputMain functionality of List screen is to displayAt least one write statement is required to display list screen

Selection-Screen : - it is intermediate screen between program and list screen- it is interface between user and program- Main functionality of selection-screen is to accept input from the user- it is used to control the output , based on input provided by the user- 3 keywords generates selection screens : 1.Parameters keyword genereates selection screen with single input field 2.Select-options keyword generates selection-screen with range of input fields 3.Selection-screen keyword is used to design block with frame, title, custom selection screens ..etc.,

- parameters doesn't support float data type, we can't accept float data type values from user.

- Basic Syntax of Parameters Keyword Parameters <f> type <data type>. Parameters <f> like <DB Table>-<field>.

parameter field name should begin with p_ parameter field name can be up to 8 characters Alternative Long text can be provided for parameter field using selection text Selection text is a part of Text Element

SAP ABAP Material – Soft copy

Page 71: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

default addition along with parameters is used to provide default value to selection screen field syntax : parameters <f> type <data type> default 'value'.

parameters with obligatory addition is used to make selection screen field as required entry (or) mandatory field. syntax : parameters <f> type <data type> obligatory In general user entered character values are converted to upper case by default. but parameters with lower case addition is used to suppress auto conversion of lower case values to upper case. As a result, lower case values are displayed in lower case only. syntax : parameters <f> type <data type> lower case.

parameters with no-display addition is used to suppress particular field in the selection screen. that field is not visible in the selection screen. syntax : parameters <f> type <data type> no-display.

parameters with visible length addition is used to specify input field length to be displayed in selection screen.syntax : parameters <f> type <data type> visible length '<len>'.

- generating check box : syntax : parameters <f> as checkbox. checkbox name begins with cb_ single checkbox is allowed using default 'X' , we can check the checks while loading the selection screen.

- generating radiobuttons : syntax : parameters : <f1> radiobutton group <grp>, <f2> radiobutton group <grp>.

radiobutton name begins with rb_ at least two radiobuttons defined under one group using default 'X' , we can select that radiobutton while loading the selection screen.

- Note : check boxes are provided to user, where user can check nothing (or) user can check all (or) user can check any one or required options

radiobuttons are provided to user, where user can select one option out of several options under one group

by default first radiobutton is selected by system automaticaly.

VARIANT : is used to provide default values to selection screen.pre defined (or) pre configured values of selection screen can be saved as Variant.we can create one or many variants to selection screen

SAP ABAP Material – Soft copy

Page 72: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Each variant provides different set of values.Selection screen is required to create variantStandard Selection screen number is 1000.Steps to create variant : - execute program - specify different values to selection screen fields - click on save - specify name and meaning , type of variant save, back - notice that system enabled get variant option in selection screen - using get variant option, we can choose any variant from the list of variants

Syntax : parameters <f> like <DBtable>-<f>.

parameter field is created with ref to DB Table field, As a result technical attributes(data type, length) and semantic attributes ( field label, F1 help documentation, F4 help) are copied selection screen field.

Alternative syntax ; parameters <f> type <DBtable>-<f>.

SELECTION-SCREEN keyword is used to format selection screen.

- generating blocks with frame and titleSyntax : selection-screen : begin of block <blockname> with frame[title <tit>]. --- <declare elements using parameters (or) select-options>---.selection-screen : end of block <blockname>.

using text symbols we can provide title for block and frame. using INITIALIZATION event we can provide default title for block

- syntax to provide blank lines with in frame. selection-screen skip <n>.

- syntax to provide underline with in frame. selection-screen uline /<pos>(length).

- syntax to place elements in single line. selection-screen begin of line. selection-screen end of line.

- syntax to place the cursor position at specified positon. selection-screen position <pos>.

- syntax to provide comment lines for single line elements with in block selection-screen comment <pos>(len) text-<nnn> for field <f>.

- syntax to define custom selection-screen selection-screen : begin of screen <scrno>.

selection-screen : end of screen <scrno>.

syntax to call custom selection-screen : call selection-screen <scrno> [starting at <col> <row>]

SAP ABAP Material – Soft copy

Page 73: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

[ending at <col> <row>.

system display standard screen first and custom selection screen next

- Screen Field Attributes : Screen field consist of different attributes like - active - invisible - required - F4 help - output only - intensified etc.,

- SCREEN is built-in global structure which provides different attributes screen fields. - SCREEN is built-in internal table ( system data object ) ,which provides different attributes to screen fields- SCREEN is like an internal table with a header line.

using following syntax we can set default attributes to screen fields under AT SELECTION-SCREEN OUTPUT event. loop at screen. if screen-name = '<field>'. screen-<attribute> = '1' or '0'. modify screen. endif. endloop.

- by specifying loop statement for SCREEN internal table, we can modify condition based attributes of screen fields.

- <field> can be name of the screen field - inorder to apply attribute for screen field specify value as 1 to reset (or) not apply attribute to screen field specify value as 0.

- syntax : parameters <f1> type <data type> modif id <GRP>.

using modify id addition we can set common default attribute to group fields. modif id followed by group name, which consist of 3 characters maximum 4 groups are allowed. syntax for loop statement . loop at screen. if screen-group1 = '<GRP>'. screen-<attribute> = '1' or '0'. modify screen. endif. endloop.

As a result, common attribute is applyed to fields of the group.

- syntax : parameters <f> type <data type> matchcode object <search help>.

SAP ABAP Material – Soft copy

Page 74: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Elementary search help (or) match code object can be attached to selection screen field using this syntax.

- syntax : parameters <f> type <DB table>-<field> value check .

value check addition generates F4 help, and perform field validation ( if the user choose a value from F4 list, then entry is valid otherwise it is invalid)

- syntax : parameters <f> type <DB table>-<field> memory id <pid>.

using memory id addition we can display default value ( as per user profile ) - SELECT-OPTIONS : - generates selection screen with lower and upper input field - using SELECT-OPTIONS , we can accept range of values from user - syntax : Select-options <f> for <DBtable>-<field>. select-options <f> must begins with SO_ select-options <f> length can be up to 8 characters using Selection Text , we can provide alternative long text for select-options <f>.

- system(ABAP interpreter) can't recognize table field automatically - Inorder to tell the system regarding table field, we have to declare database table name using TABLES keyword. - syntax : Tables : <DBtable1>, <DBtable2>. - Tables keyword works like interface work area - Tables keyword loads the Data Dictionary Structure as work area - As a result, One work area gets created on RAM, with the database table name

- performance point of view, Tables keyword is not recommended( because it creates entire work area with all fields by default) - we can create variable with ref to table field, use this variable while creating select-options statement.

- while ref to table field, system copies field label, F1 help documentation and F4 help to selection screen field

- SELECT-OPTIONS syntax creates internally one special internal table with the <f> name- this special internal table is always created as with header line.- this special internal table is also called as selection table- this special internal table consist of 4 fields sign option low high

- sign specifies wheather Include range (or) Exclude range sign values can be 'I' - Inclusive (default) 'E' - Exclusive

- option specifies the relational operator option values can be BT - between (default) NB - not between EQ equall to

SAP ABAP Material – Soft copy

Page 75: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

NE not equalls to GT greater than GE greater than or equalls to LT less than LE less than or equalls to

- low specifies lower limit value low value appears as lower input field

- high specifies upper limit value high value appers as upper input field

- using INITIALIZATION event we can provide default values to selection table (or) select options internal table as hardcoded value

- Advantage of select-options : system displays multiple selection icon in the selection screen, which is useful to set include single / range of values, to set exclude single / range of values according user choice. (without changing select query in the source code )

- default addition along with select-options is used to provide default values to selection screen field

- no-display addition along with select-options is used to suppress the visibility of field in the selection screen

- no-extension addition along with select-options is used to suppress multiple selection option in the selection screen As a result , user always select only one range of values. extended selection is not possible- no intervals addition along with select-options is used to suppress upper limit value, but multiple selection icon is avilable As a result, user can choose single (or) range of values of field range of values can be set using multiple selection option

*****************************************************************************write statement, uline, and skip statement generates list screen

NOTE : - RANGES keyword also used to create internal table with sign,option, low and high values.- RANGES keyword doesn't generate selection screen

- Push buttons, Tab strip control , subscreens also possible Selection screen.

Inter program communication : - this topic deals with program to program communication

- SUBMIT statement is used to executable program in another executable program ( report in report) Syntax : SUBMIT <program>.

- Syntax : SUBMIT <program> and return. this statement calls executable program and while returning it display current program output in separate list

- Synatx : SUBMIT <program> via selection-screen. this statement calls executable program and its selection screen also.

- Syntax : call transaction '<tcode>'. this statement is used to call any existing tcode

SAP ABAP Material – Soft copy

Page 76: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

while executing this statement, control transfer to specified transaction and while returning system executes current program.

- Syntax : leave to transaction '<tcode>'. this statement calls specified tcode and while returning control transfer to SAP Easy Access.

- SAP Memory : it is common memory shared by all external sessions SAP Memory can be shared using SET / GET parameter statements ( SPA and GPA staments ) SET parameter statement reads a value from one session and places into SAP Memory GET parameter statement reads a value from SAP Memory to another session. Syntax : SET parameter id '<PID>' field <f>. GET parameter id '<PID>' field <f>.

parameter id can be defined at DATA Element level : path to view parameter id : go to tcode : SE11 -> open data element in display mode -> further characteristics tab -> notice parameter id

Field name Parameter Id KUNNR KUN MATNR MAT LIFNR LIF VBELN AUN EBELN BES BUKRS BUK Werks_d WRK

- Using parameter ID ,we can provide default value to dialog screen, under user profile. menu path to set default value for parameter ID : system menu -> user profile -> own data -> parameters tab specify parameter ID and its value BUK - 1000 EKO - 0001 KGK - 0002

- TPARA table consist of all Parameter ID- custom parameter ID also possible while creating Custom data element we can create custom parameter ID specify custom parameter ID name begins with Y or Z EX : ZEID double click on parameter id , specify short text activate data element.

- ABAP Memory : is a common memory , shared by all internal sessions of an external session using EXPORT and IMPORT statement ABAP memory can be shared between session. EXPORT statement exports the field value from one internal session to ABAP Memory

IMPORT statement imports the field value from ABAP Memory to another internal session.

Syntax :

EXPORT <f> [FROM <gs>] TO MEMORY ID <key>. IMPORT <f1> [TO <gs>] FROM MEMORY ID <key>.

SAP ABAP Material – Soft copy

Page 77: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Interactive List : - Classical List is used to display required all columns in the list screen- Interactive List is used to display required columns in the basic list, and based on user interaction it displays corresponding details in the detail list- 1 basic list + 20 secondary lists are possible- it is also called as Drill down list (or) detail list (or) secondary list- sy-lsind is a system field , which provides index of interactive list- sy-lsind value for basic list is zero and for secondary list1 is 1 and so on....- Secondary lists are genererated by Events- Events used in Interactive List : 1.AT LINE-SELECTION. it triggers after user interaction on basic list (when user interacts on a row) it consist of logic to generate secondary list

2.TOP-OF-PAGE during LINE-SELECTION. it also triggers when user interacts on basic list it provides header information to secondary lists

3.AT USER-COMMAND. it triggers when the user issue commands on basic list ( using command field) it also triggers when user interacts on STATUS(menu) of list screen it also consist respective logic to handle user action

Standard demo program : demo_list_at_user_command

4.AT Pf<n>. "press function key it also triggers when the user press function keys on basic list it generates secondary list based on user interaction it is obsolete event.

Standard demo program for AT PF<n> : demo_list_at_pf

HIDE : - is a statement - it hides the row information (which is interacted by the user) into HIDE area , to display further details in the next list - it must be used with in loop - it muse be after write statement - syntax : HIDE <f>. - Hide must followed by key field - it moves the user interacted row information from internal table to work area

SAP ABAP Material – Soft copy

Page 78: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- it works on row basis ( regardless of cursor position )

when user interacted on a row of basic list ( double click (or) F2 )then PICK function code triggeres AT Line Selection event.

GET Cursor : - statement is alternative for HIDE - it also used to generate interactive list - it works on cursor position based - it is used to read particular column(field) value - syntax : GET CURSOR FIELD <f> [OFFSET <off>]

[LINE <lin>] [VALUE <val>] [LENGTH <len>].

- System Fields used in Interactive List : sy-lilli : provides absolute line number where user interacted sy-lisel : provides the content user interacted line sy-ucomm : it consist of command enterd by the user sy-pfkey : provides current GUI status sy-title : provides title of current program sy-linno : current line number sy-colno : current column number sy-listi : provides index of list, where last user interacted

ALV : - ABAP List Viewer- it is also called as SAP List Viewer- it is reporting technique used in ABAP- using ALV, we can display simple and complex reports also- ALV Reporting is possible as two ways : - Procedural ALV : - reports are generated by using Globle Type Group(SLIS) and Function Modules( REUSE_ALV ) - OOALV : - reports are generated using Global Class ( CL_GUI_ALV_GRID ) and Methods ( Set_table )

- Limitations of Classical Reporting : - automatic column heading display not possible - automatic back ground color display not possible - output display column positions must be specified - automatic column width is not possible - automatic all columns display not possible

- Advantage of ALV : - ALV output is displayed with special application tool bar which consist of severla options like - sorting (ascending/ descending) - detail display - save output as Excel / word / RTF format / HTML / clipboard - change layout settings (hide columns / display columns) - perform grand total and sub total - navigation buttons - first column - previous column

SAP ABAP Material – Soft copy

Page 79: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- next column - last column - set filter ( specify required values ) - Types of Possible Reports using Procedural ALV 1.Simple ALV List 2.Simple ALV Grid 3.ALV Fieldcat List 4.ALV Fieldcat Grid 5.ALV List - Fieldcatalog merge 6.ALV Grid - Fieldcatalog merge 7.ALV Event List 8.ALV Event Grid 9.ALV Block List 10.ALV Hierarchical List 11.ALV Interactive List 12. ALV Interactive Grid

1.Simple ALV List : it is used to display database table data(all columns) in list screen steps : 1.declare internal table and selection screen 2.populate internal table using select statement and 3. to display final output call SAP defined function module 'REUSE_ALV_LIST_DISPLAY'. uncomment exporting and pass database table name as i_structurename pass internal table name for tables parameter this function module functionality is , it writes either single line or multi line output in the list screen.

in Final output system generates a structure for database table ( structure specifies how to write output ) in Final output system writes rows or records from internal table ( internal table specifies what to write in the output )

2.Simple ALV Grid : it is also used to display database table data(all columns) in list screen, which is displayed in Grid format

- to display final output call SAP defined function module 'REUSE_ALV_GRID_DISPLAY'. uncomment exporting and pass database table name as i_structurename pass internal table name for tables parameter this function module functionality is , it writes either single line or multi line output in the list screen.

in Final output system generates a structure for database table ( structure specifies how to write output ) in Final output system writes rows or records from internal table ( internal table specifies what to write in the output )

- Advantages(features) of ALV Reporting : - output is desplayed as modern design - redusing programmer efferts - Output is displayed in different formats using SAP provided function module - it display special tool bar with several options filter and sorting is possible by end user with out changing source code of program

SAP ABAP Material – Soft copy

Page 80: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

*- ALV Fieldcat List : - Fieldcat is used to display required columns(data) of database table - Fieldcat suppot several formatting options, which can be applied on any column - As per the Function Module , Fieldcat is always passed as internal table. - thatswhy declare fieldcat as per associate type of import parameter of function module (to avoid type conflict errors) - We can Prepare (or) Build fieldcat internal table can be 3 ways : - using DDIC Structure ( part of DD02L table ) - prepare manually by writting code as per requirement - using Built-in Function module 'REUSE_ALV_FIELDCATALOG_MERGE'.

- Steps of ALV Fieldcat List :

- declare SLIS type group ( it allow us to use SLIS component ) - declare internal table with requried fields to hold database table data - declare fieldcat internal table to display required fields and required format - design selection screen

- validate selection screen field - prepare fieldcat internal table manually - populate internal table using select statement

- display final output by calling function module 'REUSE_ALV_LIST_DISPLAY' uncomment exporting pass sy-cprog as I_callback_program pass fieldcat internal table as IT_FIELDCAT pass internal table for tables tab

Note : this function module consist of some exit routines , inorder to display current program output in list screen we have to pass sy-cprog as callback program

*- ALV Fieldcat Grid : to display output call function 'REUSE_ALV_GRID_DISPLAY'

*- ALV FIELDCATALOGMERGE LIST : - it is used to display two or more database table required fields(data) in the output - Prerequisite : Database tables must have relationship in the underlying database - Step1 : declare global structure in ABAP Dictionay with two table fields - Step2 : declare internal table in ABAP Program using global structure populate it using inner join select statement pass it to final function module - Step3 : declare fieldcat internal table prepare it by calling function module 'REUSE_ALV_FIELDCATALOG_MERGE' pass it to final function module

Note : 'REUSE_ALV_FIELDCATALOG_MERGE' function module is used to merge global structure fields and return prepared field catalog internal table uncomment exporting pass global structure name as I_STRUCTURE_NAME pass internal table to hold prepared fieldcatalog

*- ALV Event List :

SAP ABAP Material – Soft copy

Page 81: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- TOP_OF_LIST event provides header information for list - END_OF_LIST event provides footer information for list - TOP_OF_PAGE event provides header information for page - END_OF_PAGE event provides footer information for page

OOALV supports above all eventsProcedural ALV supports TOP_OF_PAGE event Working with Event list - declare internal table and work area using SLIS component - prepare (or) build Event internal table - pass event name and form name (subroutine) - pass event internal table to final function module - declare subroutine finally.

While executing program the write statement avilable in the subroutine, will be displayed as Header

- ALV_EVENT_GRID : in ALV Grid output, we can provide header information using TOP_OF_PAGE event. in subroutine definition we have to call function module 'REUSE_ALV_COMMENTARY_WRITE' this function module is used to pass logo ( using this option we can print logo in the output header) - header information can be printed using internal table - internal table must be declared with SLIS_T_LISTHEADER associated type we can pass typ values as H - heading

A - action S - selection key value can character , 20 is allowed info value can be character , 60 is allowed

*-----ALV Block List : it is used to print output with several blocksseveral blocks can be allowed in list format only (not as grid format)each block prints independent informationseveral blocks can be printed with in one layoutwe can navigate using system generated buttons at application tool barFunction modules used in Block List'REUSE_ALV_BLOCK_LIST_INIT' - this function module initilizes block list output

'REUSE_ALV_BLOCK_LIST_APPEND' - this function modules appends values to specified block

'REUSE_ALV_BLOCK_LIST_DISPLAY' - this function module displays output in block mode

*------ALV Hierarchial List it is used to display data as hierarchical format Hierarchy can be generated up to 5 levels Inorder to generate hierarchy Header and Item tables must have relationship in the underlying database

Both header and item internal tables must have common key field using one fieldcat we will display both tables data. keyinfo can be declared as work area using SLIS component SLIS_KEYINFO_ALV.

pass common keyfield values to keyinfo

SAP ABAP Material – Soft copy

Page 82: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

finally display output by calling function module 'REUSE_ALV_HIERSEQ_LIST_DISPLAY.

*-----display logo in ALV Grid ----* Assume that logo is avilable at Desktop Step1 : importing logo from Desktop Business Document Navigator - go to tcode OAER - specify class name : pictures class type : OT (other objects) object key : mylogo(name of the logo) - execute - select document type as Screen - double click on screen (file manager appears) - select desktop logo, open - continue notice that Document stored successfully Step2 : in ALV Program, pass logo name to 'REUSE_ALV_COMMENTARY_WRITE' function module

*-----displaying checkbox as leftside for every recordit is possible for list onlywhile declaring internal table declare one flag with data type c.(as first column)while populating internal table use into corresponding fields addition along with select statementpass this flag name as box_fieldname for layout.

*----pass sy-title as i_grid_title to display title as grid header*----pass some subroutine name as i_callback_top_of_page to print header information and logo in ALV Grid

*---in hierarchical sequential list , we can display expand icon also. *-----ALV Interactive List : it is used display required data on basic list, based on interaction on basic list it generates secondary list (or) detail list

detail list displays user interacted row corresponding data

to handle user interaction on basic ALV list, we have to use USER_COMMAND event.when this event triggers control transfer to corresponding subroutine.

we can generate detail list as 3 ways - user interacted index based - user interacted fieldname based - user interactef field value based

Syntax of subroutine to be passed for USER_COMMAND event. form <subroutine> using rs_ucomm like sy-ucomm rs_selfield type slis_selfield. endform.

this subroutine is defined with 2 formal parameters rs_ucomm is declared with sy-ucomm, which is used to handle user command ( double click - F2 )

rs_selfield is is declared with SLIS component SLIS_SELFIELD - SLIS_SELFIELD consist of tabindex - is used to read record based on internal table index value - is used to read record based on field value , where user interacted fieldname - is used to read record based on fieldname, where user interacted.

SAP ABAP Material – Soft copy

Page 83: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

SLIS package consist of ALV related Function ModulesSALV function group consist of ALV related Function Modules

All ALV related function modules names begins with 'REUSE_ALV'

ALV related function modules are avilable as - block list concern - list concern - grid concern - event concern - extract management concern - variant concern

Exploring ALV Function module - import parameters are declared with slis components and default values, short description, long descriptions while working with function modules read documenation ( goto menu -> documenation) and implement SAP provided description and possible values as documentation

Fieldcat options : col_pos : field appearing column position in the list value set : 0, 1-60

fieldname : internal output table field name (required parameter) Fieldname to be displayed at column position it must be passed with in quotes and uppercase Filedname can be up to 30 characters

tabname : internal output table name it is passed as Internal table name it can be upto 30 characters

ref_tabname : ref to Data Dictionary Structure / Table as a reference , column heading is displayed form data element

emphasize : highlight columns in color expected values 'X' or Cxyz C - color x - 1 to 9 color y- bold z - inversehotspot : is used to provide hyperlink option for particular column : values : 'X' or SPACE

do_sum : is used to perform sum over column it is used on currency / quantity values to be displayed with grand total

seltext_l : displays long field label

SAP ABAP Material – Soft copy

Page 84: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

seltext_m : displays medium field labelseltext_s : displays short field lable

seltext is used to provide custom column ( ref_tabname is not required)

Layout options : - colwidth_optimize value set: SPACE, 'X' 'X' = optimzes the column width so that all contents are displayed completely.

- zebra value set: SPACE, 'X' 'X' = striped pattern (e.g. for wide lists)

- box_fieldname value set: SPACE, internal output table field name to display checkbox for all the rows

NOTE : ALV output supports Layout Management while displaying final output by function module we have to specify i_save as 'X' , to enable save layout option

- As a result, user can save several layouts as several variants- Each variant provides specific layout- path to save layout : settings menu -> layout -> saving- user can change the column display sequence ( in grid mode - using drag & drop ) ( in list mode - change display column position )

************************** ABAP Query- it is also called as SAP Query- it is used by functional consultants / endusers- it is used to generate report without programming- Step1 : tcode - SQ03 - User Group creation- Step2 : tcode - SQ02 - Infoset / Functional Area creation- Step3 : tcode - SQ01 - Query creation

- User Group is a collection of Users under one department- Infoset is created and finally assigned to User group- Infoset consist of data source from - single table - join tables - LDB - external program- Query uses User group and Infoset final output can be displayed as - Basic List

- Statistics - Ranked List

- Path form Easy Access : SAP Menu -> Tools -> Utilites -> SAP Query

- Step1 : User Group creation : tcode : SQ03 Specify user group starting with Y or Z Click on create Specify short text Save as local object Specify username as SAPUSER

SAP ABAP Material – Soft copy

Page 85: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

click on change select our user group and save

- Step2 : Infoset creation : tcode : SQ02 specify infoset name starting with Y or Z click on create specify name ( Title of Report ) specify data source - Table join using basis table as KNA1 continue - select kunnr (key field) , click on insert table icon - specify knb1 , continue

click on infoset tab - select include key fields (as fieldgroup) drag and drop (left to right) required fields from database table to respective field group save, check, generate infoset

click on User Group Assignment tab , select our User Group , save

- Step3 : tcode : SQ01 - Query creation Edit menu -> other user group -> choose our user group -> continue specify the query name starting with Y or Z, create select our infoset , continue specify title click on next screen - select field groups click on next screen - select required fields click on next screen icon - select fields for selection screen click on basic list select required fields to be displayed , as required sequence to display observer preview at right side, we can provide header , footer information also save,check, test

*************************************************

QuickViewer : - tcode : SQVI- it is used to generate and view report quickly- system generates code for our fields and navigation

report can be displayed using - table - table join

- LDB - SAP Query infoset

***************************************************Ad Hoc Query is used HR, it generates report based on infotypes

SAP ABAP Material – Soft copy

Page 86: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

LDB : Logical Database - it is an independent program,which is used to fetch large amount of data- Using Logical Database Builder, we can define custom LDB- tcode for LDB Builder : SE36- path from Easy Access : tools -> ABAP Workbench -> development -> programming environment -> logical databases

- LDBs are mostly used in ABAP HR programming Ex : pnp, pch, pap- LDB is created as Hierarchical

Advantages of LDB : - it can be used in multiple ABAP programs (reusability)- it performs implicit Authorization Check- it fetches huge quantity of data - system generates code for our navigation- Dynamic selection screens generated by LDB

Disadvantages of LDB : - it uses select...endselect loop, thats why data selection is delayed

SAP ABAP Material – Soft copy

Page 87: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Components of LDB : - Structure- Selections- Database Program

- Structure specifies the nodes of LDB Nodes can be defined as hierarchical Root node -> sub node -> subnode Node can be a Database Table / Dictionary Structure

- Selections tab is used to design selection screen

- Database Program consist of system generated includes and routines routines consist of system generated select statements.- Usage of LDB : LDB can be used in ABAP Executable program LDB name can be attached in Attribute screen of ABAP program

Custom LDB creation steps : - execute tcode SE36- specify LDB name begins with Y or Z- click on create- specify short text, continue- save as local object- specify root node as MARA ,short text, database table as MARA - create- select root node,- click on insert node- specify table as MARC, short text, database table as MARC - create- select MARC, click on insert node- specify node name as MARD,short text, database table as MARD - create- save structure

- click on selections tab yes -> select free selections and transfer ( free selections are used to fetch complete data - system generates code as select * from <db table> ) ( field selections are used to fetch required data of database - sytem generates code as select <f1> <f2> ..from <DB table>)

- uncomment select-options and replace ? by suitable names select-options : so_matnr for mara-matnr. select-options : so_werks for marc-werks. select-options : so_lgort for mard-lgort. save, activate include,back

- click on database program yes -> double click on nxx include notice that system generated 3 includes for 3 nodes double click on 001 node (node MARA) uncomment select statement as below select * from mara into mara where matnr in so_matnr. put mara. endselect.

SAP ABAP Material – Soft copy

Page 88: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

save, check, activate , back

double click on 002 node(node MARC) uncomment select statement as below SELECT * FROM MARC INTO MARC WHERE MATNR = MARA-MATNR AND WERKS IN so_werks. PUT MARC. ENDSELECT. save, check, activate, back

double click on 003 node (node MARD) uncomment select statement as below SELECT * FROM MARD INTO MARD WHERE MATNR = MARC-MATNR AND WERKS = MARC-WERKS AND LGORT IN so_lgort. PUT MARD. ENDSELECT. save, check, activate, back test LDB

- Usage of LDB in ABAP Program go to tcode SE38 specify program name starting with Y or Z click on create specify title , type as Executable , specify LDB name save as local object

- Sequence of events in LDB program : start-of-selection. get get late end-of-selection.

- get <node>. this event triggers corresponding subroutine exist in LDB database program. PUT statement reads the data from database node and sends to work areas defined in program

- get <node> late. this event triggers late, after processing all subnodes under main node and before branching to another main node this is useful to calculate sub total / grand total

- LDB nodes can be terminated conditionlly using CHECK statement and uncoditionally using STOP statement.

- Difference between Exit and Stop ? Exit is used to terminate loop Exit always terminates current loop and procedes further Stop is used to terminate LDB Nodes Stop stops the processing immediately, and control transfer to End-of-selection.

- Note : using LDB_PROCESS function module , we can use several LDBs in one executable program

SAP ABAP Material – Soft copy

Page 89: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Reporting Standards / Coding Standards - naming conventions program / report name : ZRL_MM_PUR_ALV_LIST z - custom report RL - Reddy's Lab ( client name ) MM - Application PUR - component ALV_LIST - type of report

table types - t_ line types - ty_ work area - wa_ internal table - it_ global variable -gv_ local variable lv_ constants c_ global flag gf_ local flag lf_ parameter fieldname pa_ select-options fieldname so_ radiobutton name rb_ checkbox name cb_ pushbutton name pb_ object o_ ref variable rvar_ local class lcl_ global class gcl_ local interface lif_ global interface gif_

import parameter i_ import structure is_ import internal table it_ export parameter e_

- provide meaningful title for program - save under package - contiue with workbench request - Maintian Global comment section as below Program name : XXXXXX Author : xxxxxxxxx Function consultant : xxxxxxx Date : xxxxxxx Package : xxx Application Area : xxx Workbench Request : xxxxxxxxxxx Description :

Modification Log : xxxxx date xxxxx

SAP ABAP Material – Soft copy

Page 90: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- maintain comments for each block of statements - Use events explicity - maintain selection text for parameter field and select-options field - Use text symbols to avoid hard coded text and reusable text - Use message class messages - Use dynamic messages - Design selection screen as block with frame and title - create required variants - validate all selection-screen fields - Use pretty printer once finally ( for indentation ) - modularize source code finally using includes, subroutines - use as many function modules as possible - generate version for object before modification - refer ABAP HELP / ABAP DOCUMENTATION examples - Verify program using tools like - ABAP Debugger - Extended Program Check - Runtime Analysis - SQL Trace - Code Inspector - Memory Inspector - Runtime Monitor - Coverage Analyser

- Performance Factors on Database Tables - specify correct buffering type - create secondary indexes on non key fields - log data changes - Performance Factors Internal Tables : - Use Internal tables instead of select...endselect - Use as many internal tables as possible - always declare internal tables with required fields - Use always internal table with out header line syntaxes (explicit work aera) - instead of occurs use initial size - instead of like use type - specify memory parameter appropriate - delcare internal table fields as per database table field order - whenever read statement is used, check with sy-subrc immediately - always use binary search addition along with read statement - sort internal table before using binary search - Always sort internal table using fieldname - Modify internal table using transporting addition - use Free statement if the internal table is not required - use clear statement for workarea immediately - do not nested loop...endloop statement - do not use select statement with in loop - avoid type casing - always use move-corresponding

- Performance Factors on open SQL statements - use open SQL rather than Native SQL - use sy-subrc statement for each open SQL statement - use select into table addition , instead of select...endselect loop( Array Fetch operation) - use select <f> instead of select * - select single statement must consist of where condition with key fields - whenever up to rows addition is used, use order by <keyfield> addition

SAP ABAP Material – Soft copy

Page 91: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- use as many condition as possible along with select statement - instead of sorting at itab level, use order by addition along with select statement - instead of performing arithmatic operations at itab level, use select with aggregate functions - instread of removing duplicate records at itab level, use select with distinct addition - use having addition, whenver group by is used - use inner joins (or) Database Views while fetching data from more than 1 table - use for all entries , instead of nested select statements - avoid using into corresponding fields of addition ( specify field sequence as per the database table ) - deal with separate internal table , if the source table is cluster / pooled table

Performance Tools : - Extended Program Check : - it is also called as Extended Syntax Check - tcode : slin - menu path from ABAP Editor : program ->check ->extended program check - it is used to perform additional checks (or) detail check of any program - the result is displayed as erros, warnings, messages - it performs several checks like - call function interfaces - perform/ form interfaces - autorization checks - character strings - messages - obsolete statements, problematic statements, superflous statements - syntax check - package check

*******************************************************************- Runtime Analysis : - tcode : SE30 - menu path from any screen : system menu -> utilities -> runtime analysis -> execute - menu path from ABAP Editor : program menu -> execute -> runtime analysis - it is used to analyse the performance of Tcode (or)Function Module (or) Program dynamically (at runtime)

- Steps : specify program name click on execute button system executes program output, back As a result, this tool measures the program parameters at runtime and finally it generates a File in kb Using Evaluate Tab, we can analyse the program performance this tool generates load on CPU as bar graph with system, database, ABAP levels execution time in micro seconds - Tips & Tricks tab provides several exmple comparitive select statements with documentation

***********************************************************SQL Trace : - Tcode : ST05- Menu path from any screen : system menu -> utilities -> performance trace

- it is used to analyse SQL statements involved in program - by default all traces are switched off- we can activte trace for user specific and program specific

- Steps : Activate Trace with filter

SAP ABAP Material – Soft copy

Page 92: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- execute program parallel Deactivate trace and display trace result is displayed as trace

- place the cursor on any SQL statement click on DDIC information - it provides Data Dictionary information of table/view involved in the select query

Explain SQL tab - provides the system execution plan internally

- SQL Trace: This allows you to monitor the database access of reports and transactions.

- Enqueue Trace: This allows you to monitor the locking system.

- RFC Trace: This provides information about Remote Function Calls between instances.

********************************************** SAP Code Inspector : - tcode : SCI- menu path from Easy Access : SAP Menu -> Tools -> ABAP Workbench -> Test -> SCI- menu path from any ABAP Editor screen : program menu -> check -> code inspector

-> this tool is avilable from 4.7EE onwards-> this tool also used to perform checks on WebDynpro application-> it is used to perform several checks of any program-> it carry out checks like - performance checks ( select statements ,itab operations - security checks ( system calls, native SQL statements etc ) - syntax check / extended syntax check-> result list is dispalyed as errors, warnings, info -> Steps to work with SCI -go to tcode : SCI - Step1 : create checkvariant specify checkvariant name starting with Y or Z click on create select list of checks to carry out ( Check variant consist of list of possible checks )

- Step2 : create objectset specify objectset name begins with Y or Z click on create specify object set ( programs / classes ) ( Object set specifies list of objects ) - Step3 : create Inspection specify inspection name starting with Y or Z click on create specify object set and check variant execute system carry out checks and displays result ( Inspection combines object set and check variant )

**************************************************************Memory Inspector : - tcode : s_memory_inspector- menu path from any screen :system menu -> utitlites ->memory analysis -> compare memory snapshot- it is used to analyse memory parameters of a program- it displays roll area, programs list, classes list,...etc.,

SAP ABAP Material – Soft copy

Page 93: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Step1 : execute any program generate memory snapshot menu path : system menu -> utitlies -> memory analysis -> create memory snapshot As a result system generates a File - Step2 : go to tcode : s_memory_inspector double click on file analyse memory parameters******************************************************************ABAP Debugger : - it is important tool , used to debug ABAP Programs, Function Modules, Global classes..etc.,- it is integrated with ABAP Editor, Function Builder, Class Builder..etc ( ABAP Development Workbench )

Advantages of Debuger : - it is useful to analyse the program behind the screen (background)- we can analyse - sequence of program execution steps, - sequence of events triggering, - how values are passed to variables, work areas - how internal tables are populated - values of system fields- it is useful tool to resolve runtime errors and configuration errors

Different Ways of calling Debugger : - /h in command field- break-point statement in program- menu path from any screen : system menu -> utilities -> debug screen/ program - menu path from ABAP Editor initial screen : program -> execute -> debugging (or) click on Debugging tab- path form ABAP Program screen : program -> test -> debugging

Types of Debugger : 1.Classic Debugger2.New Debugger

- menu path to set default debugger from Editor utilities menu -> settings -> ABAP Editor -> Debugging tab -> choose classic/ new debugger

- we can swith between classic to new debugger and vice versa using menu path

- debugging menu -> debugging off -> exit debugger this path is used to close debugging

- Classic Debugger :

Common options (icons) for all tabs F5 - Single Step : it is used to analyse program code as step by step (line by line)

F6 - (Execute) : it is used to execute modularization units ( subroutines, function modules, methods) at a time

F7 - (Return) : is used to return the control back to Main program it is also used to navigate from one break point to another break point

SAP ABAP Material – Soft copy

Page 94: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

F8 - Run : it is used to stop debugger and call list screen it is useful to execute rest of the code at a time and display output

Watch Point : tab is used to create Watch point

1.Fields tab : it is used to analyse system fields, variables, work area components we can analyse 8 fields at a time system displays fields properties field datatype, length, output length,decimal places we can change field content with in debug double click on field value , change field content click on pencil changes are reflected immediately but this changes are temporary, and applicable to that time execution only - Fields tab displays main program, source code name, current triggering event name, program section, analysis section - default system displays 4 system fields sy-subrc, sy-tabix, sy-dbcnt, sy-dynnr(1000)

2.Table tab : it is used to analyse internal tabe system displays internal table content along with index number internal table type and format also displayed we can change internal table field content we can insert a row at any index we can append a row at bottom we can delete a row with in debug

3. Break point : it is a signal in the source code, where system stops execution and starts debugger once system come across break point , system enables debugger and rest of code executed in debugging mode

Break point can be set as 2 types : Static Break Point Dynamic Break point Static Break point can be set using below syntax : break-point. break-point <n>. break-point <username>.

Ex : break SAPUSER. break-point sy-uname. break-point 'SAPUSER'.

static break points are user speicific Static break points are not advisable, because they are hard coded syntax. it is a part of source code as permanent

static break points can be set only for custom programs

- Dynamic break points can be set using stop icon (or) menu path place the cursor on any statement , utilities menu -> break point ->set/delete

Maximum 30 dynamic break points are allowed per program Dynamic break points can be set as highlight the statement ( grey color )

SAP ABAP Material – Soft copy

Page 95: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Dynamic Break points can be set/delete in debug mode

it can be set of locked object also it can be used to for standard SAP programs also ( in Display mode only ) All dynamic break points are deleted automatically while log off SAP R/3

Session Break point can be set using Stop icon, which is applicable to current session

External Session Break point also can be set using another Stop icon,(which is user specific, valid for 2 hours) it is effected if the current program is used as parallel session

Watch Point : - can only be created in Debug Mode- maximum 10 watch points are allowed per program- it is used to interrupt program, when particular field value changes- Watch point can be created as local (or) global local watch points are valid for specific program global watch points are valid ,if this program is used in another program- Watch point consist of a field name, whenever the field content changes system prompts with a message "watch point reached"- Watch point can be defined with condition also, whenever system meets the condition, it prompts with a message "watch point is reached"

- Multiple Watch points can be created using logical operators (AND / OR)- Watch points are deleted automatically once program is closed (debugger is closed)

- calls tab displays active class list as stack it consist of all the events, forms, modules list in chronological order

- overview tab displays only events list of current program - settings tab consist of additional debugger settings

New Debugger : - is avilable from ECC 5.0 onwards- it consist of 11 tabs - it is extension to Classic Debugger- New Debugger supports to debug WebDynpro Application- Separate tab provide to analyse objects,structures, internal tables, ..etc.,- when new debugger started, program is locked for the user, debugger is opened as parallel session- it consist of Desktop1, 2, 3, Standard with different views- we can increase program section or analysis section- we can swap program section with analysis section- program and analysis sections can be displayed as horizonal (or) verticle comparision- it supports to save layout also- local and global variables can be displayed separate

- Structures tab is used to analyse structures (or) workareas (or) fieldstring- Tables tab is used to analyse internal tables- Objects tab is used to analyse object oriented objects- Details display tab is used to analyse variables / Field values- Data Explorer tab is used to analyse any data object

SAP ABAP Material – Soft copy

Page 96: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Break point/ Watch points tab : is used to analyse breakpoints, watchpoints,checkpoint activation Under checkpoint, we can create log-point, asset log also- Diff tab is used to compare ABAP variables

SAP ABAP Material – Soft copy

Page 97: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

SAP ABAP Material – Soft copy

Page 98: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

SAP ABAP Material – Soft copy

Page 99: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Note : indexes only possible for Transparent Table

Material creation : Execute Tcode : MM01Specify Material Number( alphanumeric) – fantaSpecify Industry sector (F- food and related product)Specify Material type(Fert-finished product)Click on select viewsSelect basic data1 and sales organization1Click on organizational levels(specify plant-1000, Sales org – 0001, division -01) and continue

- Basic Data1 tab : Specify material description(fanta material creation)Specify base UoM(EA)Specify material group (0001)Specify gross weight (2)Specify net weight (1)

- Sales org data1 tab : Specify tax classification as 0Enter

- Sales: general/plant tab : Specify transporting group(0001- on pallets)Specify loading group(0001-crane)

- Finally Click on SaveNotice the status message

- G/L Master data creation

SAP ABAP Material – Soft copy

Page 100: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

- Execute tcode : FS00- Click on create- Specify G/L account : (20099)- Specify company code :( rnrl )

Type /Description tab -- Choose Accout Group from F4 help ( Assets )- Select balance sheet account- Specify short text- Control data tab –

Check only balances in local currency Check line item display

- Create/Bank/Interest tab – Specify field status group : G001 Continue

- Save and notice the status message(check in SKA1 – G/L Account master data)

- Maintain HR Master Data (Tcode : PA30)- Scenario : maintain address of an employee(infotype-0006)

Execute tcode : PA30Specify pernr as 17 Select personal data (0002) Click on execute Specify title(Mr) Specify Last name(kumar) Specify first name(vinay) Specify birth date, Mariatal status Birthplace Specify nationalitySave

- In the same manner maintain address infotype details also

Sales Order Creation : Execute tcode : va01Specify order type (or – standard order)Specify s.org(0001), dist.ch(01), division(01)Press enterSpecify customer number(99), press enterSystem displays customer details , continue

Specify material number, press enterSpecify order quantity, unit of measurementSpecify plantSpecify amount and currency

In the same manner specify required materials with required quantity.

Finally save.

VL01N – Delivery document creation(tables: likp-lips)Vf01 – create billing document(tables: vbrk-vbrp)

Purchase Document : Tcode to create Purchase Requisition(ME51)/Purchase order ME21N

SAP ABAP Material – Soft copy

Page 101: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Table related to P.Requisition : ebanTables related to P.order : EKKO/ EKPO

Execute Tcode : ME21NChoose document type : NB – Standard POSpecify vendor number : 400000Press enterMaintain org data tab : ( Purchase org -0001

Purchasing Group – 001 Company code – 0001)

Delivery/Invoice tab : Maintain payment terms(0001) and currency(inr)

Enter item as Material number (RAMX), press EnterMaintain PO quantity(15) PCMaintain plant (P10)Maintain delivery date

Click on save finally*-----------------*AS01 – Create Asset Master RecordF-01 – Create Accounting DocumentF-02 – Enter G/L Account PostingKS01 – Create Cost CenterFB50 – Enter G/L Acct Posting(Enter single screen posting)FB60 – Enter incoming invoice(vendor)FB70 – Enter outgoing invoice(customer)FBL1N – Vendor line itemsFBL3N - G/L Account Line ItemsFBL5N - Customer Line Items

Create profit center

CO01 - Create production order

CS01 - Create Material BOM

CR01 – create work center

CA01 - Create Routing

CJ01 - Create Work Breakdown Structure

Transaction Recorder : - Tcode : SHDB

- Path from any screen : system menu -> services

- -> Batch Input -> Recorder

- It is SAP proprietary tool used to record any Transaction

- It records entire transaction concern screens and Fields, finally it generates code as per user Navigation

- It captures technical information of screens and Fields as per user navigation

- This recoding code is used, while developing Call Transaction / Session method program

- Prerequisite : Awareness of entire transaction

- Steps : Go to tcode : SHDBClick on New recording

SAP ABAP Material – Soft copy

Page 102: Material Softcopy

A.V. Krishna +91 9704886510 [email protected]

Specify recording name, tcodeClick on start recording Enter valid values and create sample record while Calling sequential screens.Finally save system generated code

Business Scenario : Uploading Vendor master dataUsing CALL Transaction method : Prerequisites :

o Flat file with vendor data

o Recorded code of XK01 tcode

Steps : SE38 – ABAP executable program

Step1 : declare 3 internal tables

First internal table to hold flat file entries

( flat file order <-> internal table order should be same)

Declare second internal table to specify tcode

Concern screens and fields technical information

Daclare third internal table to handle errors in Call Transaction

Interview Questions : Explain Architecture Software oriented view and User oriented view ?Advantages of R/3 over R/2 architecture?Explian 3 tier (or) 3 layr architecture?What is Repository ? Explain Repository object features ?Explain the functionality of message server, gateway server and enqueue server?What are application server components ?what are the work process components ?Difference between open SQL and native SQL ?What is ESOA , explain?

SAP ABAP Material – Soft copy