Sunday 13 October 2013

Features of the ABAP Program & ABAP Editor

Following are the some of the features of ABAP programming.
  • Syntax of the ABAP is similar to COBOL
  • ABAPStatements and keywords are case insensitive
  • Custom ABAP programs must start with  “Y” or “Z” and can be up to 30 characters in length
  • ABAP is case sensitive during the comparison
  • Every ABAP statement / expression  must end with a period (Full Stop)
  • Tokens within a statement must be separated by at least one space
Following are the some of the features of SAP ABAP Editor.
  • The editor is similar to notepad
  • Use CTRL+C to copy the selected portion of the source code
  • Use CTRL+V to paste the selected portion of the source code
  • Use CTRL+X to cut the selected portion of the source code
  • Use CTRL+S key to save the program in the ABAP editor
  • USE CTRL+F1 to transform from CHANGE/DISPLAY mode
  • USE CTRL+F2 for syntax check
  • USE CTRL+F3 for activating the program
  • Use CTRL+< to comment the ABAP statement
  • Use CTRL+> to uncomment ABAP statement


CLIENT in SAP

  • CLIENT is the topmost hierarchy in SAP database
  • Client dependent tables will have field of data type MANDT
  • Each function module in SAP is assigned to aclient
  • The object developed by the developer is stored in a package and request number and finally saved under a client number assigned  for particular module

CLIENT / Server Concept

SAP follows client server architecture. 




Client requests for some information from the server by passing some data. Server serves/ sends the information requested from the client. This network topology is called client / server architecture.

SAP : R/3 System Architecture & Components

R/3 System Architecture

R/3 system is a 3 tier architecture having
1. Presentation Server
2. Application Server
3. Database Server

  • Presentation server 
The local desktop serves as the presentation server, which is nothing but SAP GUI where the user logon to the client and work from the local machine
  • Application server
The server/computer on which the programs are run or executed is the application server. Application server receives the input from the presentation server and interpret the ABAP code and sends back the result to the presentation server
  • Database server
  1. The server/computer which receivers the request from the application server and interprets it and sends the request to RDBMS and collect the data requested from the RDBMS and sends back to the application server.
  2. All objects such as source code/generated binary code, tables etc. are physically present in the RDBMS
  3. R/3 is having the single database, which makes the operation of entire architecture faster and results in better performance

R/3 Architecture Components

List of R/3 components are as follows
  • DISPATCHER
  • WORK PROCESS
  • DATABASE CONNECTIVITY
DISPATCHER:
This is a component which acts as an interface between Presentation Layer and the Application Server. It receives the request from the user from the Presentation Server/Layer and allocates work area for each request from the user.

WORK PROCESS:
This is a Component which allocates memory area for each request received from dispatcher on roll-in and roll-out basis. Once the request is process, the memory area is rolled out to allocate the next request from the dispatcher.

DATABASE CONNECTIVITY:
OPEN SQL - It receives the SAP R/3 specific OPEN SQL statement from the user and converts it into database specific NATIVE SQL format (Database used at the backend)

NATIVE SQL – It checks for the syntax in the request received and passes the request to the database through the gateway service

SAP Basis - An Overview

SAP Basis is the technological platform that supports the entire range of SAP applications. Basis is similar to an operating system for R/3. It provide run-time environment for ABAP code.

One cannot execute ABAP/4 program without BASIS. Syntax checking, binary code generation will be done by the SAP basis

It is a layer of abstraction between the business applications and the operating system and database, which ensures that applications can be run on any platform (Portability).

SAP Basis supports following Operating Systems:
  • UNIX (AIX, HP-UX, Solaris, Linux)
  • Microsoft - Windows
  • Apple - i5/OS
  • Z/OS


SAP Basis Supported Database is
  • IBM DB2
  • Informix 
  • MaxDB
  • Oracle
  • Microsoft SQL Server


ABAP Runtime Environment

SAP BASIS provides the runtime environment for the ABAP code. All ABAP programs reside inside the SAP database. 

In the database all ABAP code exists in two forms:
  • Source Code - which can be viewed and edited with the ABAP Workbench tools
  • Generated code - which is a binary code generated after activation of the source code


ABAP programs execute under the control of the runtime system, which is part of the SAP kernel

Features of the Runtime
  • It is part of the SAP kernel
  • Responsible for processing ABAP statements
  • Controlling the flow logic of screens
  • Responding/Handling to events to events
  • Convert the database-independent ABAP statements (Open SQL) to database specific (Native SQL) statements

SAP ABAP - Introduction

ABAP (Advanced Business Application Programming) is a high-level programming language created by the German software company SAP in 1980s. It is one of the many application-specific fourth-generation languages
It was originally the report language for SAP R/3, a platform that enabled large corporations to build business applications for easy of their business.

Features of ABAP
  • The language is case-insensitiveand each statement terminates with a period.
  • It programming language used to develop programs (Reports, Function modules) on the SAP R/3 client-server platform.
  • It is used by the SAP customers to develop their custom reports and interfaces with ABAP programming
  • The language is easy to learn for programmers, Knowledge of relational database (RDBMS) is necessary to create ABAP programs
  • Also Knowledge of object-oriented concepts is necessary to explore advanced concept, Since SAP released an object-oriented extension to ABAP along with release 4.6.
  • ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which provides a high level of abstraction from the basic database level(s).
  • Most of the SAP R/3 basic application and functionalities are developed using ABAP

Advantages of SAP
  • SAP supports various database in back end
  • Platform Independent
  • Supports multiple languages
  • Faster between network

SAP ABAP - Best Coding practices

Following are the some of the best practices which ABAP developer should take care to achieve optimal performance.

1.       Avoid writing select query on a same table more than once
Since the retrieval of the data from the database take most of the processing time, it is better to fetch the required data from the table and store it in a internal table for further processing

2.       Refreshing the internal tables. Clearing variables & structures
In the custom program, before using the declared internal tables, work area& variables initialize them to default values. Use CLEAR statement for variables &work area. Use REFRESH statement for internal tables

3.       Clearwork area at the end of every LOOP pass
In order to avoid the problems such as carryover of the values of some field of work area corresponding to the last loop pass to the next loop pass, we need to clear the work area at the end of every LOOP pass.

4.       Avoid using the MOVE-CORRESPONDING
Compiler has to search & map the corresponding fields in case of MOVE-CORRESPONDING statement, hence it impact the performance. So, it is better to go for individual field assignment in case of copying the work area content to other inside the LOOP.

5.       Release the memory occupied by internal tables &work area
At the end of the program uses FREE statement to release the memory occupied by the internal tables, work area& internal tables.

6.       Avoid hard coding
Declare the CONSTANTS & use them in the program instead of hard coding the values.

7.       Check SY-SUBRC value after SELECT , READ statements
Putting the appropriate set of code based on the value of the sy-subrc after SELECT or READ statement enhances the performance & helps in avoiding execution of the unwanted code

8.       Check for internal table (it_tab) IS NOT INITIAL before using FOR ALL ENTRIES
Before using FOR ALL ENTRIES in the select statements, it is best practice to check does the table in the in the FOR ALL ENTRIES is having some values, else it result in fetching 0 records.

9.       Remove the unused constants, variables, work area& internal tables from the program
Unused constants, variables, work area & internal tables are the dead codes in the program. So, by removing the dead codes we can improve the performance of the code & make the code more readable.

10.       Avoid LOOP on the same internal table more than once
Try to include the required logic inside the same LOOP in order to enhance the performance.

11.       Avoid declaring the internal tables with header line
Declare separate work area to process the records of the internal table. By doing this one can avoid the chances of not clearing the header line in case of internal table with header line.

12.       SORT the internal table before using BINARY SEARCH in the READ statement.
READ statement fails to read the entry from the table if you are using BINARY SEARCH on unsorted internal table. So, SORT the internal table by the key fields which you are using in the READ statement.

13.       Place the most probable condition in the IF statement
This enhances the performance of the code when processing large amount of data.