What is an ERP? What is SAP ERP Software?
Introduction to SAP ERP and List of modules in
SAP ERP?
SAP Software is a ERP( Enterprise Resource Planing) solution, through which large and medium scale
companies can manage their business.SAP Software is produced by a German based company SAP.
SAP Company: SAP Company, founded in 1972 in Germany by five former employees of IBM, namely, Dietmar
Hopp, Klaus Tschira, Hans-Werner Hector, Hasso Plattner, and Claus Wellenreuther and they released standard
versions called R1 and R2 in the early days, and they released 3-tier architecture R3 in 1990`s which was very
successful.
In 2000 SAP released ECC (Enterprise Central Component), latest version in market is ECC 6.0 and they are
adding additions to this in the form of enhancement packs.
Why SAP?
Through SAP software a company can plan their business in different aspects like Supply Chain Solutions,
Material Management, Sales and Distribution, Finance controlling , Human Resource planing, etc.
The total SAP Software is built using ABAP Programming Language, which is a standard programming language
developed by SAP it self, we call ABAP as 4th Generation Programming Language (ABAP/4)
Some of Modules in SAP are:
• SAP FI module: FI stands for Financial Accounting.
• SAP CO module: CO stands for Controlling.
• SAP CRM module: CRM stands for Customer Relationship Management.
• SAP HR module: HR stands for Human Resources.
• SAP MM module: MM stands for Materials Management.
• SAP PM module: PM stands for Plant Maintenance.
• SAP PP module: PP stands for Production Planning.
• SAP QM module: QM stands for Quality Management.
• SAP SD module: SD stands for Sales and Distribution.
• SAP TR module: TR stands for Treasury.
• SAP WM module: WM stands for Warehouse Management.
• SAP LO module: LO stands for Logistics General.
• SAP ABAP module: ABAP stands for Advanced Business Application Programming.
• SAP Basis module: Basis also known as Basis Admin is typically the administration of SAP.
• SAP BI module: BI stands for Business Intelligence.
• SAP BPC module: BPC stands for Business Planning and Consolidation.
• SAP BODI module: BODI stands for Business Objects Data Integrator.
• SAP EP module: EP stands for Enterprise Portal.
• SAP MDM module: MDM stands for Master Data Management.
• SAP XI module: SAP Exchange Infrastructure (SAP XI) enables you to implement cross-system
processes on services.
• SAP PI module: SAP Process Integration (SAP PI) is enterprise application integration (EAI)software.
Sirish @ Blue Garden
What are Architecture Models in SAP ERP? What are SAP R/1, R/2, R/3 Architectures? What
are the differences between SAP R/1, R/2 and R/3?
There are three architecture models which existed in SAP ERP.
1. R/1 : 1 - Tier Architecture
2. R/2 : 2 - Tier Architecture
3. R/3 : 3 - Tier Architecture
Here, "R" stands for Real Time Data Processing.
R/1 : 1 - Tier Architecture
SAP R/1 is a Single Layer Architecture application in which all three components Presentation, Application and
Database are merged and installed in one system/Server.
R/2 : 2 - Tier Architecture
SAP R/2 is a Two Layer Architecture application in which all three components Presentation, Application and
Database are merged and installed in two systems/Servers. In R/2, Presentation component is installed in one
System/Server and Application component and Database component is installed in other system/server.
R/3 : 3 - Tier Architecture
SAP R/3 is a Three Layer Architecture application in which all three components Presentation, Application and
Database are installed in three systems/Servers. In R/3, Presentation component is installed in one
System/Server and Application component is installed in other system/server Database component is installed in
other system/server.
Sirish @ Blue Garden
ABAP DICTIONARY
❖ Abap Dictionary is a central repository where we define and maintain the objects which are
related to database.
❖ Define means creation of objects
❖ Maintenance means changing and deleting the objects.
Database table:
❖ It is an object which stores data in the form of rows and columns.
❖ Each row is called as record, and each column is called as field.
❖ So, to define a table we have to define the fields first.
So, to define a field, we have to specify the below things:
FIELD = DATA ELEMENT + DOMAIN
Domain:
It is an object which specifies technical information such as data type and length for a field.
It also specifies sign, lower case, conversion routine, fixed values, and value table.
Data element:
It is an object which specifies semantic information such as field description, field labels (short,
medium, long and heading) for a field.
Advantages of data element and domain:
• Reusability: The same data element and domain can be reused by multiple table fields, instead of
creating again and again.
• These are also used in creating foreign key relationship, search help, ale-idoc’s.
Key field: A field which is used to identify the record uniquely is called a key field. In a table there
should be at least one key field. We can create ____ number of key fields.
Sirish @ Blue Garden
Steps to create domain:
1. Go to SE11
2. Select Domain
3. Give a name, ex – ‘ZCNO’
4. Click on Create
5. Provide short description
6. Provide data type as CHAR and length as 10 .
7. Press enter
8. Save, check and activate
Steps to create data element:
1. Go to SE11
2. Select data type
3. Give a name, ex – ‘zcno’
4. Create -> select data element
5. Provide short description
6. Provide domain name as ‘zcno’
7. Press enter
8. Click on field label tab, specify short, medium, long and heading labels
9. Save, check and activate
Steps to create a table:
1. Go to SE11
2. Provide the table name ‘zcust_table’
3. Click on create
4. Provide description
5. Specify delivery class as ‘A’
6. Specify display maintenance allowed
7. Click on fields tab
8. Provide the field name, data element name as below
9.
10. Click on save
11. Click on technical settings button
12. Provide the details as data class -> APPL0, size category -> 0
13. Click on save and click on back
14. Save and activate the table
Creating records into the table:
• Go to SE11
• Give the table name and click on change
• Click on utilities -> table contents -> create
• Provide the cno, cname, city
• Repeat the same procedure and create the records
Sirish @ Blue Garden
Displaying the table contents:
• Click on utilities -> table contents -> display
• Click on execute button
• The records will be displayed
Note: Sometimes we may get unpredictable errors in a table, due to adding or deleting the fields
in a table. To solve the error follow the below steps.
• Go to SE14 -> Provide the table name
• Click on edit button
• Click on ‘activate and adjust database button
Components of a TABLE :
Delivery class:
It specifies the type of the data that stored in a table.The data can be business data or system data.
Business data means application data (master and transaction data).
The following options are available.
Display maintenance:
It specifies whether the data should only be displayed or it can also be maintained. Data
maintenance means creation, deletion, and changing.
There are 3 options available.
• Display maintenance allowed: Data is displayed and maintained
• Display maintenance not allowed: Data is not displayed and not maintained
Sirish @ Blue Garden
• Display maintenance allowed with restrictions: Data is displayed, but maintenance is given only for
some users based on restrictions.
Data class: It specifies the physical area of a table inside the database
Master data: The data which never changes or which changes very rarely is called master data.
Ex: cno, cname, city etc.
Transaction data: The day to day business data or the data which changes every day is called
transaction data.
Ex: customer bank transaction data
Organization data: The data which is related to organization or company like how many
company codes, plants, sales organization etc, is called organization data.
Size category: It specifies the max. Number of records that can be stored in a table.
The possible options are available as below.
Sirish @ Blue Garden
In the real time we always set size category as ‘0’ OR ‘1’, because we have to use small amount of
memory.
Suppose if the memory is not sufficient the system will automatically assign the same memory area
as per the size category mentioned above.
Buffer/cache memory: It is a temporary memory to store the data. It is mainly used to
increase the system performance.
The functionality of buffer is defined as below.
• The Tables request for the data
• The system will check whether the data is available in cache/buffer memory
• If it is available the data will be immediately given back to the table, thereby increasing the system
performance
• Suppose if the data is not available, the request will be sent to database, and the response will be
given back to buffer or cache memory to store a copy for future references
• After the copy is stored then the data will be given back to the table
Buffering options:
• Buffering not allowed: Data is not stored in buffer
• Buffering allowed but not switched off: Used by SAP
• Buffering switched on: Data is stored in buffer
By default buffering not allowed will be selected.
Buffering types:
• Single record buffer: Only first record or records which are read will be stored in the buffer
• Fully buffered: All the records will be stored in the buffer
• Generic Area: The key field’s data is called generic area. Only generic area data i.e. key fields data
will be stored in the buffer
Log Data Changes: This Checkbox would define whether changes to the data records of the
table are to be logged/recorded or not.
If checkbox is selected, then every change (Update/Delete) to an existing data record is recorded in
the Standard Database Log table DBTABLOG.
Sirish @ Blue Garden
CLIENT NUMBER
It is a unique number which is used to provide security to the data at the database level.
In the real time, Based on the client no only, usernames will be created and the access will be given.
In the real time, normally we use the client number (100,120), (200,220), (300,320).
The field name, data element, and domain for client number is ‘MANDT’.
Types of tables based on client number
Client Dependent Table:
1) If the first field is MANDT, then it is called as a Client Dependent table.
2) This table stores data in specific client only.
Client Independent Table:
1) If the first field is not MANDT, then it is called as a Client Independent table.
2) Data is stores in all clients without security.
Ex on Client dependent table:
STRUCTURES IN ABAP:
It is a container of reusable fields
• Structures are defined in data dictionary
• Once the structures are defined we must include them in tables
• There are two options for including the structures in tables
1. Include Structure
2. Append Structure
Include Append
1. This option is used only with custom tables. 1. Used only with standard SAP Tables
2. These Include structures are reusable by 2. Not reusable
multiple tables
3. Just give field name as .Include and data 3. Click on Append Structure button to
element as a field name create structure and add to table
Sirish @ Blue Garden
Ex on include structure:
Step 1: Create a structure by name ‘zaddr’ with fields city, country, postal code
1. Go to SE11->Select data type provide a name ‘zaddr’
2. Click on create and provide the description
3. Specify the fields and data elements
Component ( Field Name ) RType Component Name(Date Element)
Mandt Mandt
Cust_No Cust_No
Cust_Name Cust_Name
4. Save and activate
Steps 2: Include the structure in a table as below
1. Open any table which is already created
2. Provide the field name as ‘.include’, data element as structure name ZADDR(which is created
above)
3. Enter
4. The fields will be automatically copied
Ex on append structure: Business requirement:
Add a custom field ‘MNAME’ (middle name) to the standard SAP table ‘KNA1’ .
1. Open the table kna1 in display mode
2. Click on ‘append structure’ button
3. A pop-up is displayed, click on create icon
4. Provide the append name ‘zapp1’ and press enter
5. Provide the field name as ‘mname’ and data element as ‘zmname’
6. Save, activate and click on back
7. Check the field in the table, it will be available at the bottom
Sirish @ Blue Garden
Foreign key relation
The relation between two tables for validating the data is called foreign key relation. Validation
means checking whether the value is correct or not.
Check table: A table which stores master data is called a check table.
Foreign Key Table :
A table which is linked with check table for validating its own data is called foreign key table
Foreign key relation :
A relation between two or more tables for validating the data is called foreign key relation.
Steps for foreign key relation:
Step 1: Create a table by name ‘ZCUSTOMER_DETAILS’ with field’s customer number and
customer name, also create some records.
Step 2: Create another table by name zcustomers_bank with fields cno, bankid and
bankname.
Step 3: Create the foreign key relation as below
1. Open the table zcustomer_bank
2. Select cno field
3. Click on foreign keys button or Icon
4. Provide the check table name as zcustomer(master data table)
5. Click on generate proposal button
6. Click on copy button
7. Save and activate.
Sirish @ Blue Garden
Step 4: Unit testing
• Click on utilities -> table contents -> create
• Enter the invalid customer number and click on save
• The error message will be displayed
Real time ex on foreign key relation:
VALUE TABLE:
A table name defined at the domain level so that all the table fields will be referring to the domain
will be checked or validated with a single table called as value table.
The main advantage of value table is to automate the system for foreign key relation i.e. the system
will automatically display check table name to generate foreign key proposal.
We should just click on YES button, so that value table is converted as check table.
Steps for value table:
STEP1 : Create a table zzcustomer with field cno and cname, also create some records
STEP2 : Define the check table name at domain level as below. Now check table is called as value
table
1. Go to the domain zcno
2. Click on value range tab
3. Provide the value table as zzcustomer
4. Save and activate, domain and table
STEP3 : Create another table by name zzcustomer_bank with fields cno, bankid, bankname
Sirish @ Blue Garden
STEP4 : Maintain the foreign key relation as below
1) Open zzcustomer_bank table
2) Select cno field and click on foreign key button
3) A pop-up displayed as below with value table to be proposed for check table
4) If we click on ‘yes’, foreign key relation will be automatically displayed
5) If we click on ‘no’, it will not be displayed
Differences between check table and value table
Check Table Value Table
1. Data can be maintained at Field level 1. This is maintained at Domain level
2. Contents of the check will be used as input 2. Contents of Value Table are never used in
help (F4 Help) for a particular field input help
3. FK relation is not automatic, that means we 3. FK Relation is automatic, that means once we
must enter check table name maintain value table FK relation will be
automatically displayed.
Domain properties:
SIGN: It is used to store the sign of a number, whether it is positive sign or negative sign
Lower Case: This option is used to store a value in the combination of capital and small letters
By default SAP will convert all letters into capital letters
If we don’t want to convert all letters into capital letters, please select lower case option
Conversion Routine: It is a sub-program or function module which is used to convert a value from
internal format to external format and vice versa
Conversion routine function modules:
1) Go to any domain, ex: MATNR
2) The conversion routine will be displayed, ex: MATN1
3) Double click on MATN1
4) Two function modules will be displayed as below
Sirish @ Blue Garden
• CONVERSION_EXIT_MATN1_INPUT: This function module is used to convert material number from
external format to internal format.
• CONVERSION_EXIT_MATN1_OUTPUT: This function module is used to convert material number
from internal format tot external format.
Domain with field values:
1) It is an option to maintain some Fixed values inside the domain for validation
2) It is used for validation at the domain level
3) We have to maintain some fixed values at the domain, so that all the table fields will be
referring to this domain will be checked against with the fixed values
4) If, suppose we enter a wrong value for a field which refers this domain, then the system will
check your value with fixed values. If the value is not available, then the system will raise the
error message
5) This option is only used whenever the number of values are less than 10 or 15
6) If the values are more than 15, we go for foreign key relation
7) The main advantage of domain with fixed values is reusability
Ex on Domain with field values:
1) Open the table zcustomer_bank
2) Add an extra field by name ‘gender’ with data element and domain as ‘zgender’
3) Now go to the domain ‘zgender’.
4) Click on value range tab
5) Maintain the fixed values as below
Fixed Values Short Text
M Male
F Female
N None
Sirish @ Blue Garden