Friday, September 21, 2012

String Operations

CONCATENATE – Combines 2 or more strings into one string.
DATA: s1(10) VALUE 'Hello',
      s2(10) VALUE 'ABAP',
      s3(10) VALUE 'World',
      result1(30),
      result2(30).

CONCATENATE s1 s2 s3 INTO result1.
CONCATENATE s1 s2 s3 INTO result2 SEPARATED BY '-'.

WRITE / result1.
WRITE / result2.
Output
String-Operations-1

Loops

DO – ENDDO – Unconditional Loop
DO can be used to execute a certain lines of codes specific number of times.
DO 5 TIMES.
  WRITE sy-index.  " SY-INDEX (system variable) - Current loop pass
ENDDO.
Output
Loops-1
WHILE ENDWHILE – Conditional Loop
WHILE can be used to execute a certain lines of codes as long as the condition is true.
WHILE sy-index < 3.
  WRITE sy-index.
ENDWHILE.

Control Statements

To control the flow of the ABAP program use the following statements.
IF – Branching Conditionally
IF statement – The code between IF and ENDIF is executed only if the condition is true.
DATA: a TYPE i VALUE 10.  " We can assign a value in the declaration 

IF a > 5.
  WRITE:/ 'Condition True'.
ENDIF.
Output
Control-Statements-1
IF-ELSE statement – The code between IF and ELSE is executed if the condition is true, the code between ELSE and ENDIF is executed if the condition is False.
DATA: a TYPE i VALUE 1.

IF a > 5.
  WRITE:/ 'Condition True'.
ELSE.
  WRITE:/ 'Condition False'.
ENDIF.

Basic Operations

Assigning values to ABAP variables
Use ‘=’ or MOVE keyword to assign a value to a variable.
DATA: a TYPE i,
      b TYPE i,
      c TYPE i,
      d TYPE i.

a = 10.
b = a.
MOVE 20 TO c.
MOVE c TO d.

WRITE:/ a, b, c, d.
Output
Basic-Operations-1
Basic Arithmetic Operations
DATA: a TYPE i,
      b TYPE i,
      c TYPE i,
      d TYPE i.

*Using Mathematical Expressions
a = 10 + 20.
b = 20 - 10.
c = 10 * 2.
d = 100 / 2.

ABAP System Variables

ABAP system variables is accessible from all ABAP programs. These fields are filled by the runtime environment. The values in these fields indicate the state of the system at any given point of time.
The complete list of ABAP system variables is found in the SYST table in SAP. Individual fields of the SYST structure can be accessed either using “SYST-” or “SY-”.
WRITE:/ 'ABAP System Variables'.
WRITE:/ 'Client : ', sy-mandt.
WRITE:/ 'User : ', sy-uname.
WRITE:/ 'Date : ', sy-datum.
WRITE:/ 'Time : ', sy-uzeit.
Output
ABAP-System-Variables

 


ABAP Variables

ABAP Variables are instances of data types. Variables are created during program execution and destroyed after program execution.
Use keyword DATA to declare a variable.
DATA: firstname(10) TYPE c,
      index         TYPE i,
      student_id(5) TYPE n.
While declaring a variable we can also refer to an existing variable instead of data type. For that use LIKE instead of TYPE keyword while declaring a variable.
DATA: firstname(10) TYPE c,
      lastname(10)  LIKE firstname. " Observe LIKE keyword
Structured Variable
Similar to structured data type, structured variable can be declared using BEGIN OFand END OF keywords.
DATA: BEGIN OF student,
      id(5)     TYPE n,
      name(10)  TYPE c,
      dob       TYPE d,
      place(10) TYPE c,
      END OF student.
We can also declare a structured variable by referring to an existing structured data type.
TYPES: BEGIN OF address,
       name(10)   TYPE c,
       street(10) TYPE c,
       place(10)  TYPE c,
       pincode(6) type n,
       phone(10)  type n,
       END OF address. 

Data: house_address  type address,
      office_address like house_address.
Each individual field of the structured variable can be accessed using hyphen (-). For example, name field of the house_address structure can be accessed using housing_address-name.
Character is the default data type.
DATA: true.  " By default it will take C as data type

ABAP Data Types and Constants

Data Type describes the technical characteristics of a Variable of that type. Data type is just the blue print of a variable.
Predefined ABAP Types
Data Type Description Default Length Default Value
C Character 1 ‘ ‘
N Numeric 1 0
D Date 8 00000000
T Time 6 000000
X Hexa Decimal 1 X’0′
I Integer 4 0
P Packed 8 0
F Float 8 0

First ABAP Program

Let us write a “Hello SAP ABAP” program.
Navigate to ABAP editor under Tools node in SAP easy access.
First-ABAP-Program-1

What is SAP transaction code?

SAP Transaction code is a short cut key attached to a screen. Instead of using SAP easy access menu we can also navigate to a particular screen in SAP by entering the transaction code (T-code for short) in the command field of the standard toolbar.
What-is-SAP-Tcode
Some of the useful transaction codes for ABAP developers.
T coDe description
SE11 ABAP Data Dictionary
SE16 Data Browser
SE37 Function Builder
SE38 ABAP Editor
SE41 Menu Painter
SE51 Screen Painter
SE71 SAP Script Layout
SE80 ABAP Workbench
SE91 Message Maintenance
SE93 Maintain Transaction

 

Login to SAP System


Login-to-sap-1

Double click on the SAP icon.
Login-to-sap-2

On the logon pad select the system you want to login to and press log on button.
Login-to-sap-3

Enter Client, User, password and press enter.
Login-to-sap-4

This is SAP easy access screen. All the tools required by ABAP developer is under the node Tools.

 

ABAP LANGUAGE

ABAP stands for Advanced Business Application Programming. It is a programming language developed by SAP.
ABAP language syntax
  • ABAP is not case sensitive.
  • Every statement begins with a keyword and ends with a period.( WRITE is the keyword to print on screen )
    WRITE 'Hello World!'.
  • Chained statements.If consecutive statements have identical part at the beginning, then ABAP allows you to chain these statements into a single statement. First write the identical part once and then place a colon (:). Then write the remaining parts of the individual statements separated by commas.Normal Statements:
    WRITE 'Hello'.
    WRITE 'ABAP'.
    Chained Statement:
    WRITE: 'Hello', 'ABAP'.
  • Comments.If you want to make the entire line as comment, then enter asterisk (*) at the beginning of the line.
    * This is a comment line
    If you want to make a part of the line as comment, then enter double quote (“) before the comment.
    WRITE 'COMMENT'.   "Start of comment

Lesson 35 Basics of Interactive Reporting

BASICS OF INTERACTIVE REPORTS:


When the user starts an executable (type 1) program, the program context and memory space for data objects (variables and structures) are made available on the application server. The subsequent program flow is controlled by the ABAP runtime system.If the program contains a selection screen, the ABAP runtime system sends it to the presentation server at the start of the program.

Once the user has finished entering data on the selection screen, he or she chooses 'Execute' to tell the system to start processing the rest of the program. The data entered on the selection screen is automatically placed in the corresponding data objects. The ABAP runtime system takes over control of the program.In this simple example, there is only one ABAP processing block to be processed by the runtime system.This processing block contains a read access to the database. The program sends information to the database about the records that should be read.

Lesson 34 ALV Grid Control


This task is performed by the SAP Control Framework.The R/3 System allows you to create custom controls using ABAP Objects. The application server is the Automation Client, which drives the custom controls (automation server) at the front end.If custom controls are to be included on the frontend, then the SAPGUI acts as a container for them.Custom controls can be ActiveX Controls or JavaBeans.The system has to use a Remote Function Call (RFC) to transfer methods for creating and using a control to the front end.ABAP objects are used to implement the controls in programs.

An SAP Container can contain other controls (for example, SAP ALV Grid Control, Tree Control, SAP Picture Control, SAP Splitter Control, and so on). It administers these controls logically in one collection and provides a physical area for the display.Every control exists in a container. Since containers are themselves controls, they can be nested within one another. The container becomes the parent of its control. SAP containers are divided into five groups:
SAP custom container: Displays within an area defined in Screen Painter on screens or sub screens.
Class: CL_GUI_CUSTOM_CONTAINER
SAP dialog box container: Displays in a modeless dialog box or as a full screen. Class:
CL_GUI_DIALOGBOX_CONTAINER

Lesson 33 Saving Lists and Back Ground Processing

SAVING LISTS AND BACK GROUND PROCESSING:


There are three ways to save a list that you have generated:

1.) In SAPoffice
2.) As a local file on your PC
3.) In the area menu

You can always use menu sequence STL-1 in the System menu to save the list, or use the List menu in the standard list status.You can also create folders in SAPoffice. You can use these folders to store the lists. When a list is placed in the outbox of the personal folders, it can also be sent to other users.You can save a list to a PC as a local file in four different formats:

1.) Unconverted (ASCII)
2.) Spreadsheet format (-> Microsoft Excel)
3.) RTF (Rich Text Format -> Microsoft Word)
4.) HTML (Web Browser)

Lesson 32 Data Formatting and Control Level Processing

DATA FORMATTING AND CONTROL LEVEL PROCESSING:

You can use control level processing to create structured lists. Control levels are determined by the contents of the fields that are to be displayed. there is a control level change whenever the content of a field changes. This means that there is no point in creating control levels unless the data are sorted.The data to be displayed must be saved temporarily if you want to use control level processing. You can also use internal tables and intermediate datasets.You can use an array fetch in a SELECT statement to fill an internal table in one go.

You can use the APPEND statement to insert table entries at the end of an internal table. The variant of the APPEND statement on the slide is permitted only for standard or sorted tables. After an APPEND statement, system field SY-TABIX contains the index value of the newly inserted table entry.

Lesson 31 SAP Query Administration

SAP QUERY ADMINISTRATION:

When you create a user group, you must assign a name and a description to the user group.To maintain a user group, you can use the following options:
  1. You can assign users and functional areas to a user group.
  2. You can assign a user to various user groups.
  3. You can assign a functional area to various user groups.
  4. You can assign every user in the SAP System to one or more user groups.

There are basically two mechanisms for determining who can do what with a query.The first restriction involves the assignment to a user group. Users who have not been assigned to any user groups cannot use the query. Users who have been assigned to at least one user group can start queries.The second mechanism is field ACTVT in authorization object S_QUERY. You can use this field to authorize users to change queries as well (ACTVT = 02).

Thursday, September 20, 2012

Lesson 30 Programming Data Retrieval

PROGRAMMING DATA RETRIEVAL:


Whenever a logical database cannot supply your program with all necessary data, you must program database access directly into the program itself. This can be done using either Open SQL or Native SQL statements.Open SQL statements offer several advantages. These include being able to program independent of your underlying database, access to a syntax check, and the use of a local SAP buffer.

Native SQL statements are bound into a program using
EXEC SQL [PERFORMING form.
.
ENDEXEC

Pay attention to the following when programming Native SQL:
Try not to use update operations (INSERT, DELETE, UPDATE)
Group EXEC SQL statements together (in an include) in order to be able to alter them centrally for different database systems
Restrict yourself to Standard SQL 

Lesson 29 Selection Screens in ABAP Report

SELECTION SCREENS:

Selection screens serve as the interface between the program and the user, and allow, for example, limitation of the amount of data to be read from the database.Logical databases supply selection screens whose concrete appearance is dependent on the specified node name (NODES). Selection screen versions (if supplied by the logical database) offer a subset of default selection screens.You can use the declarative language elements PARAMETERS and SELECT-OPTIONS to generate a default selection screen (screen 1000) with input-ready fields.

In addition to the default selection screen, you can generate additional selection screens with SELECTION-SCREEN BEGIN .... and call them with CALL SELECTION-SCREEN.

Lesson 28 Logical Data Bases

LOGICAL DATA BASES:

In general, the system reads data that will appear in a list from the database.You can use OPEN SQL or NATIVE SQL statements to read data from the database.The use of a logical database provides you with an alternative to having to program database accesses individually. Logical databases retrieve data records and make them available to ABAP programs.

The same logical database can be the data source for several Quick Views, queries, and programs. In the Quick View, the LDB can be specified directly as a data source. A query works with the logical database when the functional area that generated the query is defined with a logical database. In the case of type 1 programs, the LDB is entered in the attributes or called using function module LDB_PROCESS. See appendix for information on how to use the function module.

Logical databases offer several advantages:

Lesson 26 Techniques for List Creation and SAP Query

TECHNIQUES FOR LIST CREATION AND SAP QUERY:


The QuickViewer is a tool for developing ad hoc reports that is new in Release 4.6A. You can start the QuickViewer using the menu path QUV-1.

The QuickViewer can use a database table or a database view as a data source. Lists can be generated using the fields in the data source specified. Two modes are available for this: basis mode and layout mode The QuickViewer provides interfaces, for example, to the EIS, ABC analysis or the ALV Grid Control. The list can also be processed further in external programs, such as Word.

The generated list can be saved and then displayed again in the QuickViewer. Selection criteria are also saved along with the list, and can be queried again at any time.

Each user defines their own user-specific QuickViews which only they can display. This means that you cannot copy other users' QuickViews. You can, however, compile an SAP Query from a QuickView, if the QuickView uses a functional area from the standard system as a data source (see unit 'SAP Query - Creating Lists'). The query is then visible to the user group.

Lesson 25 Calling Programs and Passing Data

CALLING PROGRAM AND PASSING DATA:


There are two ways of starting an ABAP program from another ABAP program that is already running:

By interrupting the current program to run the new one - the called program is executed, and afterwards, processing returns to the program that called it.

By terminating the current program and then running the new one.
Complete ABAP programs within a single user session can only run sequentially. We refer to this technique as using synchronous calls.

If you want to run functions in parallel, you must use function modules. For further information about this technique, refer to course BC415 (Communication Interfaces in ABAP), and the documentation for the CALL FUNCTION … STARTING NEW TASK… statement.
The way in which main memory is organized from the program's point of view can be represented easily in the above model. There is a distinction between internal and external sessions:

Lesson 24 Function Modules and Groups of ABAP

Function modules of ABAP are more comfortable to use than subroutines, and have a wider range of uses. The following list, without claiming to be complete, details the essential role that function modules play in the ABAP Workbench:

Function modules ...

Are actively integrated in the ABAP Workbench. You create and manage them using the Function Builder.Can have optional importing and changing parameters, to which you can assign default values.Can trigger exceptions through which the return code field sy-subrc is filled.Can be remote-enabled.Can be executed asynchronously, allowing you to run parallel processes.Can be enabled for updates.Play an important role in the SAP enhancement concept.

In the Attributes of a function module, you specify its general adminstrative data and the processing type :

Lesson 23 Sub Routines in ABAP

A subroutine in ABAP is an internal modularization unit within a program, to which you can pass data using an interface. You use subroutines to encapsulate parts of your program, either to make the program easier to understand, or because a particular section of coding is used at several points in the program. Your program thus becomes more function-oriented, with its task split into different constituent functions, and a different subroutine responsible for each one.As a rule, subroutines also make your programs easier to maintain. For example, you can execute them "invisibly" in the Debugger, and only see the result. Consequently, if you know that there are no mistakes in the subroutine itself, you can identify the source of the error faster.

Structure of a Subroutine

A subroutine begins with the FORM statement and ends with ENDFORM.

After the subroutine name, you program the interface. In the FORM statement, you specify the formal parameters , and assign them types if required. The parameters must occur in a fixed sequence - first the importing parameters, then the importing/exporting parameters. Within the subroutine, you address the data that you passed to it using the formal parameters.

LESSON 22 INTERNAL TABLES IN ABAP

INTERNAL TABLES IN ABAP:There are two ways of accessing the records in an internal table,By copying individual records into a work area. The work area must be compatible with the line type of the internal table.You can access the work area in any way, as long as the component you are trying to access is not itself an internal table. If one of the components is an internal table, you must use a further work area, whose line type is compatible with that of the nested table.When you change the internal table, the contents of the work area are either written back to the table or added as a new record.

By assigning the individual data records to an appropriate field symbol. Once the system has read an entry, you can address its components directly via its address. There is no copying to and from the work area. This method is particularly appropriate for accessing large or complex tables.If you want to read more than one record, you must use a LOOP... ENDLOOP structure. You can then change or delete the line that has just been read, and the system applies the change to the table body. You can also change or delete lines using a logical condition.When you use the above statements with sorted tables, you must ensure that the sort sequence is maintained.

LESSON 21 ABAP STATEMENTS

ABAP STATEMENTS:Use CLEAR to reset any variable data object to the initial value appropriate to its type .In a structure, each component is reset individually.In an internal table without a header line, all of the lines are deleted.Use MOVE to copy the contents of one data object to another variable data object.With complex objects, you can either address the components individually or use a "deep copy". If the source and target objects are compatible , the system copies the objects component by component or line by line.If they are not compatible, the system converts the objects as long as there is an appropriate conversion rule.

If you are copying between two structures, and only want to copy values between identically-named fields, you can use the MOVE-CORRESPONDING statement.The conversion mechanisms explained on the following pages apply not only to the MOVE and MOVECORRESPONDING statements, but also to calculations and value comparisons.Unlike the MOVE statement, when you use WRITE... TO... to assign values, the target field is always regarded as a character field, irrespective of its actual type. WRITE...TO behaves in the same way as when you write output to a list. This allows you to use formatting options when you copy data objects (for example, country-specific date formatting).

LESSON 20 DATA TYPES AND DATA OBJECT

DATA TYPES AND DATA OBJECT:

To work with data at runtime, you need to store it in the program at runtime and address it from your program. The system needs to know the type of the data (for example, character string, whole number, table consisting of name, currency amount, and date, and so on). A data object is a named memory area that is structured according to a particular data type . The type normally specifies all of the attributes of the data object. Using the name, you can access the contents, that is the data, directly. The name may be a compound name consisting of more than one single name.

You could regard a data type as being similar to the construction plans for a building. The plans could be used for more than one building, which would all have the same type, but you would still be able to tell them apart. Suppose the buildings were used for storage. You would find a particular item using the address of the building, and knowing on which floor, in which room, and in which shelf or bin it was stored. You would have to consider carefully when drawing up your plans the kinds of things you would want to store in your buildings.

LESSON 19 ABAP RUN TIME ENVIRONMENT

ABAP program contains the following components:

Source code ...containing the ABAP statements

Screens ...consist of the screen layout and associated flow logic . You normally create the layout of a screen using the Screen Painter. However, there are special kinds of screens, called selection screens and lists, whose layout and flow logic are designed exclusively using ABAP statements.

Interface ...contains all of the entries in the menus, the standard toolbar, the application toolbar, and function key settings. It contains titles and statuses. A status is a collection of function key settings and menus.

Text elements ... are language-specific. They can be translated either directly from the text element maintenance tool, or using a special translation tool.

LESSON 18 SEARCH HELP

The input help (F4 help) is a standard function of the R/3 System. It permits the user to display a list of possible values for a screen field. A value can be directly copied to an input field by list selection.The fields having an input help are shown in the R/3 System by the input help key to the right of the field. This key appears as soon as the cursor is positioned on the corresponding screen field. The help can be started either by clicking on this screen element or with function key F4.If the number of possible entries for a field is very large, you can limit the set of displayed values by entering further restrictions.

The display of the possible entries is enhanced with further useful information about the displayed values. This feature is especially useful if the field requires the entry of a formal key.Since the input help is a standard function, it should look and behave the same throughout the entire R/3 System. The development environment therefore provides tools for assigning a standardized input help to a screen field.

LESSON17 VIEWS IN ABAP

The set of data that can be selected with a view greatly depends on whether the view implements an inner join or an outer join.With an inner join, you only get those records which have an entry in all the tables included in the view. With an outer join, on the other hand, those records that do not have a corresponding entry in some of the tables included in the view are also selected.

The hit list found with an inner join can therefore be a subset of the hit list found with an outer join.Database views implement an inner join. You only get those records which have an entry in all the tables included in the view.

Maintenance views implement an outer join.

LESSON 16 CHANGES TO DATA BASE TABLES

The new version of the SAP standard table is activated and the new field is appended to the database table.Please note the following points about append structures:
No append structures may be created for pooled and cluster tables.If a long field (data type LCHR or LRAW) occurs in a table, it cannot be extended with append structures. This is because such long fields must always be in the last position of the field list, i.e. they must be the last field of the table.

If you as a customer add an append structure to an SAP table, the fields in this append structure should be in the customer namespace for fields, that is they should begin with YY or ZZ. This prevents name collisions with new fields inserted in the standard table by SAP.

If you as a partner have your own reserved namespace for your developments, the fields you select in append structures should always lie in this namespace.
 
Choosing a Table Type
The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most frequently executed.
Standard tables
This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key access, the response time is logarithmically proportional to the number of table entries.

LESSON 15 DEPENDENCIES OF DICTIONARY OBJECTS

During development, you sometimes need to change an (active) object already used by the system.Such changes are supported in the ABAP Dictionary by separating the active and inactive versions.The active version of an ABAP Dictionary object is the version that the components of the runtime environment (for example ABAP processor, database interface) access. This version is not initially changed.An inactive version is created when an active object is changed. The inactive version can be saved without checking. It has no effect on the runtime system.

At the end of the development process, the inactive version can be made the active version. This is done by activation. The inactive version of the object is first checked for consistency. If it is consistent, the inactive version replaces the active one. From now on, the runtime system uses the new active version.

LESSON 14 CONSITENCEY THROUGH INPUT CHECKS

The domain describes the value range of a field by specifying its data type and field length. If only a limited set of values is allowed, they can be defined as fixed values.Specifying fixed values causes the value range of the domain to be restricted by these values. Fixed values are immediately used as check values in screen entries. There is also an F4 help.Fixed values are only checked in screens. No check is made when data records are inserted in a table by an ABAP program.Fixed values can either be listed individually or defined as an interval.The value range of a field can also be defined by specifying a value table in the domain.

In contrast to fixed values, however, simply specifying a value table does not cause the input to be checked. There is no F4 help either.If you enter a value table, the system can make a proposal for the foreign key definition.A value table only becomes a check table when a foreign key is defined.If you refer to a domain with a value table in a field, but no foreign key was defined at field level, there is no check.

LESSON 13 PERFORMANCE DURING TABLE ACCESS

PERFORMANCE DURING TABLE ACCESS:


Advantages and disadvantages of the method of buffer synchronization:The load on the network is kept to a minimum. If the buffers were to be synchronized immediately after each modification, each server would have to inform all other servers about each modification to a buffered table via the network. This would have a negative effect on the performance.



Disadvantage :

The local buffers of the application servers can contain obsolete data between the moments of synchronization.This means that:
Only those tables which are written very infrequently (read mostly) or for which such temporary inconsistencies are of no importance may be buffered.Tables whose entries change frequently should not be buffered. Otherwise there would be a constant invalidation and reload, which would have a negative effect on the performance.

Lesson 12 ABAP Dictionary



The ABAP Dictionary permits a central management of all the data definitions used in the R/3 System.In the ABAP Dictionary you can create user-defined types (data elements, structures and table types) for use in ABAP programs or in interfaces of function modules. Database objects such as tables and database views can also be defined in the ABAP Dictionary and created with this definition in the database.

The ABAP Dictionary also provides a number of services that support program development. For example, setting and releasing locks, defining an input help (F4 help) and attaching a field help (F1 help) to a screen field are supported.Tables and database views can be defined in the ABAP Dictionary.These objects are created in the underlying database with this definition. Changes in the definition of a table or database view a re also automatically made in the database.Indexes can be defined in the ABAP Dictionary to speed up access to data in a table. These indexes are also created in the database.

LESSON 11 ABAP PROJECT OVERVIEW

MANAGING ABAP PROJECT OBJECT-ABAP PROJECT OVERVIEW:

TeamSAP is the coordinated network of people, processes & products from SAP & partners that delivers fast, integrated and assured solutions over time.

There are three key components: People, Processes, and Products.

The people component represents SAP and its partners. Any R/3 implementation team is usually composed of multiple organizations which bring different skills to the table.

Our objective with TeamSAP is to ensure that the right vendor skills are coordinated, at the right time, with appropriate quantities and management.

LESSON 10 REUSE COMPONENTS

REUSE COMPONENTS:

The R/3 System offers several techniques that you can use to make business logic available for reuse.

Function modules: can be called from any ABAP Program. Parameters are also passed to the interface. Function modules that belong together are combined to form function groups. Program logic and user dialogs can be encapsulated in function modules.

Objects: You can use the compatible extension "ABAP objects" to create objects at runtime, with reference to central classes.

BAPIs are methods of business objects, which are made available using the Business Object Repository (BOR).

Logical databases are data collection programs that can be coupled with executable programs. In a logical database, the data are transferred using logical hierarchy structures. Logical databases also make selection screens available and contain authorization checks.

A function group is an ABAP program with type F, which is a program created exclusively for containing function modules. Function modules are modular units with interfaces that can be called from any ABAP Program. Function modules that operate on the same objects are combined to form function groups.

Lesson 9 Dialogs and Screens

Screens are made up of more than just a monitor display with input and output fields.
Screens' integration with the ABAP-Dictionary allows the system to perform consistency checks for their input fields automatically. These checks include required input check, type checks, foreign key checks, and fixed value checks. All of these checks rely upon ABAP Dictionary information.
Checks like the ones above can be complemented by other program specific checks. There are techniques available for screens that allow you to control in what order checks are then performed.
When an error is detected, the corresponding field is called and displayed ready for input. Screen layout is also very flexible. Input fie lds, output fields, radio buttons, check boxes, and even pushbuttons can be placed on screens. They allow users to determine in which direction the program will proceed.

LESSON 8 USER DIALOGS AND SELECTION SCREEN

Selection screens allow users to enter selection criteria required by the program.
For example, if you create a list containing data from a very large database table, you can use a selection screen to restrict the amount of data that is selected. At runtime, the user can enter intervals for one of the key fields, and only data in this interval is read from the database and displayed in the list. This considerably reduces the load on the network.
Selection screens are designed to present users with an input template allowing them to enter selections, which reduce the amount of data that has to be read from the database. The following possibilities are available to the user:
Entries to single fields
Complex entries: Intervals, operations, patterns
Saving selections fields filled with values as variants
Input help and search helps are available by choosing the F4 function key or the possible entries pushbutton 

LESSON 7 USER DIALOGS-LISTS

The main purpose of a list is to output data in a manner that can be easily understood by the user; this output often takes on the form of a table. Lists in R/3 take into account special business data requirements:
They are language-independent. Texts and headers appear in the logon language whenever the appropriate translation is available.
They can output monetary values in numerous currencies.
You can output list data in the following ways:
to the screen; here you can add colors and icons
to the printer
to the Internet/intranet: Automatic conversion to HTML
you can also save lists in the R/3 System or output them for processing by external commercial software applications like spreadsheet programs
The standard list interface offers the user several navigation features:
Back
Exit
Cancel
Print
Find (in List)

LESSON 6 INTERNAL PROGRAM MODULARIZATION

INTERNAL PROGRAM MODULARIZATION:
An ABAP program is a collection of processing blocks. A processing block is a passive section of program code that is processed sequentially when called.Processing blocks are the smallest units in ABAP. They cannot be split, which also means that they cannot be nested.
There are various kinds of ABAP processing blocks:
Event blocks are ABAP processing blocks that are called by the runtime system. Event blocks can logically belong to the executable program, to the selection screen, to the list or to the screen. This unit deals with event blocks that belong to the executable program. You can find information on event blocks that belong to the selection screen, the list or the screen in the units on user dialogs.
Subroutine processing is triggered by an ABAP statement. Parameters can be passed to
subroutines using an interface and subroutines can contain local variables.
Modules are special ABAP processing blocks for processing screens. Therefore modules are dealt with in the User Dialogs: Screens unit.

LESSON 5 DATA BASE DIALOG

Database tables are administered in the ABAP Dictionary. There you can find current information about a database table's technical attributes. Database tables that have been created in the database using the same line type and name are called transparent tables in the ABAP Dictionary.There are a couple of different ways in which you can navigate to transparent tables in the ABAP Dictionary:
Choose Tools->ABAP Workbench->Development->Dictionary to call the ABAP Dictionary directly and insert the name of the transparent table in the appropriate input field, or
Navigate directly to the ABAP Dictionary from the ABAP Editor while editing the program: This can be done by double -clicking on the name of the transparent table in the FROM clause of the SELECT statement.

LESSON 4 ABAP DATA OBJECTS AND STATEMENTS

Types describe the attributes of
  1. Input and output fields on screens,
  2. Data objects and
Interface parameters: Type checks are performed each time a function or subroutine is called according to how the interface parameter is typed. Type conflicts are already identified during the editing process and appropriate syntax errors displayed.
Local types are used in programs
  1. If only technical attributes are needed and no semantic attributes are required, and
  2. If the types are only used locally within a program.

LESSON 3 ABAP WORK BENCH AND TOOLS

ABAP WORK BENCH CONCEPTS AND TOOLS
The R/3 System has a modular software architecture that follows software -oriented client/server principles.The R/3 System allocates presentation, applications, and data storage to different computers. This serves as the basis for the scalability of the R/3 system.
The lowest level is the database level. Here data is managed with the help of a relational database management system (RDBMS). In addition to master data and transaction data, programs and the metadata that describe the R/3 System are stored and managed here.
ABAP programs run at the application level, both the applications provided by SAP and the ones you develop yourself. ABAP programs work with data called up from the database level and store new data there as well.


LESSON 2 SAP ARCHETECHERE AND DESIGN

Previously we have discussed regarding SAP Navigation in the first lesson.Here we are going to discuss regarding system architecture an design.
SAP SYSTEM KERNAL :
In SAP terminology, a service means a service provided by a software component and this component can consist of a process or a group of processes and is then called a server for that service.
Software components that use this service are called clients. At the same time, clients can also be servers for specific services.
A server often also means a computer (host) on which software components that provide specific software.
The fundamental services in a business application system are presentation services, application services, and database services.
In a one-tier R/3 System configuration, all processing tasks are performed on one server, as in classic mainframe processing.


Lesson 1 SAP Navigation

I hearty welcome you to this SAP ABAP Programming learning portal.Here we are going to learn entire SAP ABAP course which is divided into Fifty Seven Lessons for convenience. You can go through day wise if you are new to ABAP and if you are all ready familiar with the subject you can just go to the required topic using the Complete course navigaiton.

Here the programme starts with lession one .

The SAP R/3 System is a client system. The client concept enables the joint operation, in one system, of several enterprises that are independent of each other in business terms. During each user session you can only access the data of the client selected during the logon.
A client is, in organizational terms, an independent unit in the R/3 System. Each client has its own data environment and therefore its own master data and transaction data, assigned user master records and charts of accounts, and specific customizing parameters.


What is SAP R/3 Introduction to Best ERP MySAP

Enterprise resource planning is a strategy supported by software products for coordinating the multiple functionality of business process and SAP R/3 is the best product of it.

SAP R/3 system works and produce good results in most of the industries like manufacturing, retail, oil and gas, electricity, health care, pharmaceutical, banking, insurance, telecommunications, transport, automotive, chemical and the list goes on and even individual solutions for available for specific business.

SAP is founded by four young and bright minds of IBM employees after resigning from their job in year 1972 . It was initially started in a small German town Walldorf and it has good good number of employees from the near by university.

SAP Financial Legacy Data Transfer

SAP Financial Legacy Data Transfer from a legacy system is usually the primary exercise you may want to perform in a new production system after configuration and asset classification. You'll be able to either transfer information mechanically from a legacy system using a batch input procedure, or (with a really small asset portfolio) you may manually enter the data utilizing a transaction for legacy asset data.In addition to the guide transaction (AS91), there are three methods for transferring legacy knowledge routinely:
  1. Large amount of legacy data: Batch enter process (RAALTD01)
  2. Very massive amount of legacy knowledge: Direct information import (RAALTD11)
  3. Several hundred property: Legacy Data Transfer with Microsoft® Excel

SAP Financial Information System

SAP Financial Information System help you in taking the right decision during the business.The Asset Accounting Data System consists of a report tree. This is a freely definable hierarchical structure. It incorporates customary experiences for asset accounting and is offered by SAP.You may copy this tree and modify it as wanted by eradicating/including branches of the construction, or including/ replacing normal or customer-defined experiences in a node.The system always displays the report tree that is at present defined. By assigning a consumer-defined tree,the reports of this tree are proven in the FI-AA Data System.All the reviews within the Info System are pre-defined with report variants. You may create new variants and enter them in the report tree.Advert-hoc studies (queries) are also included in the Info System. They provide a wide range of further processing options.

SAP Financial Profit Center Analysis

SAP Financial Profit Center Analysis has Revenue Center Accounting (EC-PCA) is a statistical accounting component. This means that it takes transaction information posted in different components and represents it from a revenue-center-oriented level of view. The postings in EC-PCA are statistical postings , for the reason that revenue heart just isn't itself an account assignment object in Controlling.The mixing of the R/3 system makes it doable to post profit-relevant knowledge to Profit Center Accounting routinely as soon because the transaction is posted. The system either transfers the related gadgets from the unique postings or creates further postings.

SAP Financial and Controlling Overview

SAP Financial and Controlling Overview gives the out look of using this module to run the business in a effective way.he R/3 System application part Controlling (CO) comprises all accounting features mandatory for efficient controlling. If an organization divides accounting into inner and external viewpoints,CO represents the internal accounting perspective, because it offers information for managers those who are inside an organization and are charged with directing and controlling its operations.CO includes value and revenue accounting. Together with the Enterprise Controlling (EC) utility components Revenue Center Accounting (EC-PCA) and Executive Information System (EC-EIS), CO covers all elements of managerial accounting. It gives a broad collection of functional tools that can be used to offer managerial accounting data with out being limited to legal requirements.Monetary statements required for exterior reporting functions (e.g. balance sheet and P&L assertion) are created in FI. These external reporting necessities are sometimes established by normal accounting requirements like GAAP or IAS, as nicely as numerous legal necessities mandated by regulatory authorities.

SAP Financial Payment Cards

SAP Financial Payment Cards represent a significant proportion of on an everyday basis enterprise transactions.A number of enterprise companions are involved in cost card processing.
n The cardboard holder uses the cardboard to buy items and services.The service provider delivers items and/or companies to the customer and accepts the fee card as a means of payment.The clearing home issues authorization for the cardboard and carries out settlement.The house financial institution of the service provider participates within the settlement and fee processes representing the merchant.The issuing bank is liable for issuing the card to the cardboard holder and also participates in the settlement and payment processes.SAP at the moment helps payment card business transactions between the merchant and the clearing
home (in different phrases, printing or card administration for buyer cards just isn't supported).

SAP Controlling Event Based Postings

SAP Controlling Event Based Postings has events like orders that are updated by event-based postings from different SAP R/3 application components.The sorts of event-based postings for overhead orders are much like these for cost centers.In Financial Accounting you may assign main value postings resembling for external services and deliveries to an overhead cost order. In Supplies Management, goods receipts and goods points might end in major value postings to an overhead order. While you enter a items receipt for a purchase order that's assigned to an overhead order, the overhead order is mechanically debited with precise costs buy order price items receipt amount. A goods subject which references an overhead order also ends in actual prices being posted mechanically to the order.

SAP Controlling Creation of Customer and Vendor Accounts

SAP Controlling of finances has a integral part of Creation of Customer and Vendor Accounts and here in this post we are going to deal with how to do that in a systematic way with screen shots. Like G/L accounts, customer/vendor accounts have two segments:
  1. A section with normal data on the shopper level. This data may be accessed throughout the whole organization.
  2. A segment with company code particular information on the company code level. Any firm code who wishes to do business with a particular buyer or vendor has to create an organization code segment for him. By doing this, a buyer/vendor account is created.
Because the sales and distribution department also stays in contact with a buyer and has to know particular information about this customer, a sales space section could be created for every customer.Any sales area which wants to do enterprise with a customer has to create a sales area segment first.The gross sales area phase accommodates sales area specific data.

SAP Controlling Creating General Ledger accounts

SAP Controlling has one of the major job of Creating General Ledger accounts which involves certain steps.Here in this post we are going to explain them in detail with required screen shots. The accounting department makes use of some information which remains unchanged for lengthy periods of time and which is commonly referred to by different data. This data is named master data. In FI, master data contains basic ledger and sub ledger accounts, as nicely as bank master records.The pinnacle accountant wishes to know the way accounts are structured, how they are often influenced, and the way they might relate to every other.

Customizing SAP Finance and Controlling

Customizing SAP Finance and Controlling has some major parts like creating and modifying company profiles and corresponding currencies data.To create a company code copy an existing company code utilizing the group copy perform, which copies:

  1. the definition
  2. international parameters
  3. customizing tables (approx. 315 tables)
  4. common ledger accounts (if desired)
  5. account dedication

SAP Financial Company Organization

SAP Financial Company Organization is a important part in controlling department of ERP.In an effort to most effectively configure the SAP R/3 System, a undertaking workforce must perceive the organizational components used within R/3,in addition to the company's personal construction and requirements.

Company Code

In Steadiness sheets and revenue & loss statements, required by legislation, may be created on the firm code level.A company code designation can be required on every financially primarily based transaction entered into R/3.It will doubtless be enter at entry time or the system will derive the data from system configuration.Firm code makes use of a 4 digit alphanumeric field. A company code is an independent accounting entity (the smallest organizational ingredient for which a whole self-contained set of accounts can be drawn up). An instance is an organization inside a corporate group. It has a singular, 4 character key.The general ledger is stored on the company code level and is used to create the legally required stability sheets and revenue and loss statements.An organization code designation is required for each financially based transaction entered into R/3.This is achieved both manually or automacitally by deriving the corporate code from other information elements.

SAP Controlling Information System

SAP Controlling Information System has some good reporting tools.Several totally different reporting tools are used in the Controlling Information System. Every report device has its personal options and range of applications.Report Painter permits you to create reports using data from CO and different R/3 application parts, which you may give you the option to adapt to satisfy your particular person requirements. Lots of your reporting necessities can already be met through the use of the usual studies supplied by the various CO utility components. If these standard experiences don't meet your reporting wants, Report Painter lets you define your specific stories rapidly and easily.Report Painter fulfills a perform much like Report Writer, but is much less complicated to use. A lot of the capabilities present in Report Writer have been built into Report Painter; however, you wouldn't have to be familiar with all Report Author concepts (such as Units) in order to use Report Painter.Drill down reporting is used in Profitability Analysis (CO-PA) and in Product Value Controlling (CO-PC).

SAP Financial and Controlling Overview

The general term “Accounting” can be used to explain numerous different capabilities and enterprise processes. The R/3 system provides an architecture of specialized accounting components to deal with these diversified functions.The Treasury component (TR) focuses on capabilities corresponding to money administration, treasury administration (including money market funds, international exchange, derivatives and securities), loans, and market danger management.The Monetary Accounting part (FI) focuses on General Ledger accounting (G/L), Accounts Receivable and Accounts Payable processing, and Fixed Asset accounting.

SAP Controlling and Daily Processing

Each day tons of of economic documents are created within the enterprise. To help the submitting of authentic documents, the documents should be divided into a quantity of categories.Different monetary enterprise transactions need completely different information throughout the documents. Some further knowledge may even be required for particular postings.The accounting department desires to make certain that it is unattainable to post to a earlier posting period.Head accountants need to have more posting authority than their staff.

SAP Controlling Event Based Postings

SAP Controlling Event Based Postings has events like orders that are updated by event-based postings from different SAP R/3 application components.The sorts of event-based postings for overhead orders are much like these for cost centers.In Financial Accounting you may assign main value postings resembling for external services and deliveries to an overhead cost order. In Supplies Management, goods receipts and goods points might end in major value postings to an overhead order. While you enter a items receipt for a purchase order that's assigned to an overhead order, the overhead order is mechanically debited with precise costs buy order price items receipt amount. A goods subject which references an overhead order also ends in actual prices being posted mechanically to the order.


SAP Controlling Period End Closing

 SAP Period end closing consists of the next periodic precise postings:

  1. . Periodic reposting, evaluation, distribution, indirect exercise allocation
  2. . Overhead
  3. . Process costs
  4. . Precise value revaluation
  5. . Settlement
  6. . Periodic reposting

Different interval-finish closing actions embody the following:

. Interval locking
. Updating the reconciliation ledger