0% found this document useful (0 votes)
8 views25 pages

Differences Haritha

The document compares various SQL types, storage methods, and SAP components, highlighting differences between Open SQL and Native SQL, ECC and HANA, and on-premises versus cloud solutions. It also outlines distinctions between data structures like tables, views, and internal tables, as well as maintenance statuses and debugging techniques. Key features include performance, data handling, and customization capabilities across different systems and structures.

Uploaded by

nagbhushantamkke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views25 pages

Differences Haritha

The document compares various SQL types, storage methods, and SAP components, highlighting differences between Open SQL and Native SQL, ECC and HANA, and on-premises versus cloud solutions. It also outlines distinctions between data structures like tables, views, and internal tables, as well as maintenance statuses and debugging techniques. Key features include performance, data handling, and customization capabilities across different systems and structures.

Uploaded by

nagbhushantamkke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Open SQL Native SQL

1. Open SQL allows programmers to 1. In an ABAP program, native SQL allows


directly manipulate SQL statements. you to use database-specific SQL
statements.
2. It implements and executes the code at the 2. It implements and executes the code at the
application server level. database level.

3. Access to tables from other systems is not 3. Data from different database platforms is
possible. not allowed in native SQL.
4. Data from several database platforms can
be accessed with Open SQL. 4. Data from several database platforms
can’t be accessed with native SQL.
5. Between the EXEC and END_EXEC
statements, a syntax check is performed.
6. A period(.) is required after each ABAP 5. There is no check for syntax.
statement.

6. There is no need for a period following


the statement in native SQL. It also
7. It doesn’t have owned database deviates from standard ABAP
8. Highly portable, auto translates SQL. conventions.
7. It’s having owned database.
9. High-level abstraction over the database. 8. Not portable, tied to the DB's SQL
10. May have limitations on advanced dialect.
features. 9. Low-level, direct access to DB
11. Easier to maintain and adapt to the capabilities.
changes. 10. Full access to DB's advanced
functionalities.
11. Requires careful handling during
migrations.

Row storage Column storage


1. It supports both in ecc and hana 1. It supports in hana only
2. Performance less 2. Performance is more
3. Retrieving data is slower 3. Retrieving data is faster

ECC HANA
1. ERP central component 1. High performance analytic appliance
2. ECC can run on any third-party databases like 2. S4 HANA can run only on SAP HANA (HDB), an
Oracle, MaxDB and IBM. in-memory modern technology.
3. In ECC DB specifications are always row storage. 3. S4 HANA has customized DB specifications.
4. Open SQL 4. Native SQL

5. ADT doesn’t support ecc 5. ADT supports hana


6. ECC is designed for learning and testing purposes. 6. S4
HANA is designed for real time processing.
7. In SAP ECC customers and vendors are separate 7. SAP S4 HANA integrates customers and vendors
data objects. into a unified master data object called business
partners.
8. To process material requirement planning (MRP) 8. In SAP S4 HANA MRP can run in real-time.
in SAP ECC, you must wait until non-peak hours and
need to run a batch job.
9. Client presented in ECC 800. 9. Client presented in S4 HANA 500.
10. Maintenance deadline for ECC is 2027. 10. Maintenance deadline for S4 HANA is 2040.
11. ECC supported to create Cluster and Pooled 11. S4 HANA not supported to create Cluster and
tables. Pooled tables.

'

On-premises Cloud
1. It is treated as CAPEX (It is usually annual 1. It is treated as OPEX (It monthly or annual
subscription) subscription)
2. Everything is managed by implementing organization 2. Everything is managed by vendor
including security,hanadb,networks,servers etc.
3. More customizable as compared to cloud due to less 3. Less customizable
standard process
4. Access is given only authorized people (Security is 4. It is controlled by vendor (Less secure)
high)
5. Organization can update at their own place 5. Upgraded automatically every quarter
6. It is high cost, because hardware installation required 6. Less expensive, no additional installation required
(server, S/H hana box, setup box)

Centralization Decentralizationg
1. Organized structure of data. 1. Non organization structure of data.
2. A single leader makes all decisions. 2. Decisions are taken by different
individuals.
3. Faster communication. 3. Lack of communication.
4. Easy to deal with emergency situations. 4. Difficult to deal with emergency
situations.
5. Cost is low. 5. Cost is high.
6. Decision making is slow. 6. Decision making is fast.

Domain Data element


1. Domain specifies the technical 1. Data element specifies the semantic
information about fields. information about fields.
2. It specifies the output length, sign, 2. It specifies the Short Description and
conversion routine, lowercase. Field labels.
3. By using Domain, we can create more 3. By using Data element, we can create
than one Data element. only one Domain.
4. Inside Domain Output Characteristics are 4. Inside Data element Further
present. Characteristics are present.
5. In this Domain we can pass Value Table. 5. By using Data element, we can pass
Search help.

Check Table Value Table

1. Define at Field level. 1. Define at Domain level.


2. Uses the foreign key relationship. 2. It is used as a proposal for check.
3. It is a type of field level validation. 3. It is the type of Domain level validation.
4. It is a table which contains the valid 4. It is a table which contains all valid
entries of a field. entries at domain.
5. It contains primary key fields. 5. It contains foreign key fields.

Transparent Pool Cluster


1. It contains a single table. 1. It contains many small 1. It contains a few large
2. It has a one-to-one tables. tables.
relationship with a table 2. It has a many-to-one 2. It has a many-to-one
in the database. relationship with a relationship with a table
3. The database table has table in the database. in the database.
the same name, same 3. Pooled tables have 3. Cluster tables have
number of fields and different names, different names, number
have the same names. number of fields and of fields and their
their number are number are different.
4. It contains a single different.
primary key. 4. The primary key of 4. The primary key of each
each table in a pool is table in cluster is similar.
5. Secondary indexes can different. 5. Secondary indexes
be created. 5. Secondary indexes cannot be created.
cannot be created. 6. Can be accessed with
6. Can be accessed with 6. Can be accessed with open SQL only.
both open SQL and open SQL only.
native SQL. 7. Cluster should be created
7. It automatically created. 7. The pool should be explicitly.
created explicitly.
8. In this we can add 8. In this we can add
include and append 8. Pool table doesn't include and append
structure. support include and structure.
append structure.
9. It stores master data. 9. It stores system data.
9. It stores customized
10. Buffer allowed data or system data. 10. Buffer not allowed
11. Tmg allowed 10. Buffer allowed 11. Tmg not allowed
11. Tmg not allowed

Database Table Internal Table


1. Database tables are permanent storage 1. Internal tables are temporary storage.
location. 2. We can access the internal tables within
2. We can access the database table from the report only.
anywhere in SAP. 3. Internal tables are dynamic so we no need
3. We must provide the size of the database to provide size.
tables. 4. There is no delivery class and data class.
4. There is a delivery class and data class. 5. We cannot create views for Internal
5. We can create views for Database table. Table.

Database Table Structure

1. The table contains the data. 1. The structure does not contain the data. It
is filled with single record at run time.
2. It is not mandatory to contain primary key
2. It must contain at least 1 field as primary fields.
key field. 3. It does not contain Delivery class and
3. The database must contain Delivery class technical settings.
and technical settings. 4. Structures do not have primary and
4. Tables have primary and secondary secondary indexes.
indexes.

Index Extension Index

1. An index is a sorted copy of selected 1. The extension index is nothing but


database table fields. secondary indexes for the SAP standard
tables.
2. We can create the index and it can be 2. It can be enhanced but cannot be
modified. modified.
3. After changing the version or updating the 3. After changing the version or updating the
data, the previous data will be lost during data, the previous data will not be lost
the process. during the process.

Include Append

1. This option is used only with Custom Tables. 1. This option is used only by SAP Tables and
2. These Include structure are reusable by Custom Tables.
Multiple tables. 2. These are not reusable.
3. Just give Field name as. Include and Data
Element as Structure Name. 3. Click on 'Append Structure' Button To create
4. We can insert the included structure at any Structure for add a field.
point. 4. It always inserts at last.
5. Not part of the original table’s definition. 5. Part of the target structure's
6. Include structures can only contain non-key definition.
fields & key fields. 6. Append structures can only contain non-key
7. Include inside include possible fields.
7. Append inside append not possible

Table View

1. Table exists Physically. 1. The view is a virtual table.


2. Table stores Data Physically. 2. View doesn’t store Data Physically.

Maintenance status:
DB VIEW: Read only and read and change
PRO VIEW: Read only and read and change
MAI VIEW: Read only and read and change and read, change, delete and insert
HELP VIEW: Read only and read and change

Append Technical TMG Transparent& View Selection


View Settings pool& cluster conver Condition
t

Database View ✓ ✓  Only All ✓


transparent (only
one
table)
  All All 
Projection View

  ✓ All All ✓

Maintenance
View

   All All ✓
Help View
Database View Projection View Maintenance View Help View
1. This is the 1. Just retrieves 1. Helps in 1. This is used for
inner join view some fields creating and search help.
of one or more from a single maintaining
tables. table. data of the
application
2. Table 2. Creation of object. 2. Creation of
Maintenance Table 2. Table table
Generator can Maintenance Maintenance maintenance
be made. Generator not Generator can generator not
possible. be made. possible.
3. Here a single 3. Only Single 3. No operations
table can be table can be 3. Read, Delete, possible on
read and read and Insert and single and
changed but changed. Change multiple tables.
multiple tables operations
can only be possible on
read. single and
4. It supports both multiple tables. 4. It supports
projection as 4. It supports both either tables or
well as 4. It can support projection as views as input.
selection. only projection well as
5. Here join of data. selection. 5. It maintains a
condition needs 5. It has a single 5. Here join relationship of
to be provided table so there is conditions are N: 1 I.e., a left
manually no need to proposed by out join.
(Inner Join). maintain join SAP itself I.e.,
conditions. show in the
form of foreign
key
relationship.

Standard Sorted Hashed


1. These are the default 1. These are special 1. These are also special
internal tables which are ITAB’S where the data types of ITAB which
created by us. is automatically sorted should be used when
whenever a new record working with large data
is added. sets (Bulk amount of
data).
2. We use either key 2. We use either key(or) 2. Here, we use only key
operation (or) index index operation to read operation, but not the
operation to read a a record. index operation.
record. 3. We use only Binary 3. It uses Hashed
3. We use either linear search for reading a algorithm for reading a
search (or) Binary record, because the data record.
search for reading is automatically sorted.
record. 4. The response Time will
be same.
4. The Response time is
4. If use Binary Search, the always fixed regardless
response time will be\ of the total no of
records.
5. Response Time = 5. The main disadvantage 5. In Real-Time, we
Log(N). is we cannot sort ITABS hashed ITAB’S only
6. We can append, insert based on our conditions, whenever we work with
the records wherever we because the data is server-to-server
want. already sorted. communication like
7. We can sort the data transferring the data
based on our own from ABAP to BI
conditions. server.

At new On change
1. At new work within the loop of internal 1. On change of work within the loop and
table. outside Any of the loop.
2. The right-side fields of the mentioned 2. The right-side field values of mentioned
field values display as stars if it’s a fields never change.
character data type & display ‘0’s if it’s
numeric data type.
3. In the At new we can’t use the logical 3. We can use logical operations.
operations(and, or , not).
4. This is used in ABAP objects. 4. This isn’t used in ABAP objects.
5. In at new we will use only field name. 5. In on change we will use work area with
field name.

Breakpoints Watchpoints
1. In one session we can create 30 Break 1. In one session we can create 5 Watch
points. points.
2. Breakpoints are used to stop in the code 2. Watchpoints are used to stop the
on a specific statement. processing when the variable reaches
certain condition.
3. Break points are set before debugging and 3. Can be set only in debugging mode.
at the time of debugging.
4. Break point does not work based on 4. Watch point worked based on condition.
condition. 5. Watchpoint on an internal table will
5. No performance Decreases. dramatically decrease the performance.
Internally a copy of the object is
generated which leads to higher memory
consumption.
6. Watch points can be created only at
6. Break points can be created either in debugger.
ABAP editor or debugger.

Classic New
1. The classical debugger will runs at the same 1. The New Debugger will be executed in
role area of the main application. It is its own external window.
displayed in the same window of the main
program.
2. In classical debugger does not have any 2. In new debugger we have 4 desktops
desktops. those are desktop1, desktop2, desktop3
and standard desktop.
3. Some programs like conversion exits
3. These Conversion exits cannot be analyzed can only be analyzed in new debugger
in classical debugger. only.
4. We cannot debug Object Oriented program 4. We can debug Object Oriented
by using Classic Debugger. program by using New Debugger.
5. Some Advanced techniques like debugger 5. Advanced techniques like Debugger
scripting and external debugging are not scripting and external debugging are
available in classical debuggers. only available in new debuggers.
6. We cannot set a watch point for internal 6. We can set a watch point for an
table. internal table only in the new ABAP
debugger.
7. We cannot change the debugger step size. 7. We can change the debugger step size
8. We cannot compare any two field values only in new debugger.
using Classic Debugger. 8. We can compare any two field values
using New Debugger.

9. Classic Debugger does not display Global 9. The New Debugger displays both
and Local variables of the program. Global and Local variables of the
program.

Static Break Point Dynamic Break Point


1. They can be set using statement 1. They can be set in ABAP editor and in
“BREAK-POINT” and “BREAK debugging mode.
<USERNAME>” in ABAP code.
2. These are not normally user specific; but 2. These are user specific.
can be set for specific users.
3. These cannot be set when the program is
locked by another user . 3. These can be set even if the program is
4. These needs to be deleted manually. locked by another user.
5. In any version at the program 4. These are deleted automatically when you
(Active/Inactive), we place static break log-off from SAP.
point. 5. In an activate version of the program only
we can place the dynamic break point.

Select single Select up to 1


1. It fetch the only one record. 1. It also fetch only one record.
2. Here we must pass entire primary key 2. Enough to pass part of key combination in
combination in where condition. the where condition. It always picks the
first record among the method once.
3. It hits the database twice.
3. It hits the database only once. 4. This is used for validation.
4. This is used to fetch the exact record. 5. It is faster than select single.
5. It is slower than select up to.

Parameters Select-Option

1. PARAMETERS are ABAP statements 1. The name of the select options acts like an
which are used to declare input ABAP internal table with header line that means
variables in ABAP Programs/Report, the name of the work area as well as the
variables are just like DATA statements. name of the internal table is the similar
name of the select options.
2. By using select –option we can fetch,
2. By using parameter we can fetch single multiple records.
record. 3. In select- option we can’t pass any value
3. In parameter we can’t pass any value at at the time it will fetch all the records.
the time it doesn’t fetch any data. 4. In select-option output screen provides
4. In parameter output screen provides only two text boxes to enter the entries.
one text box to enter the entries. 5. Select-option act like as parameter
5. Parameter doesn’t act like as select- whenever we providing no-extension.
option. 6. Select-option doesn’t work as check box.
6. Parameter act like as check box, list box
also.

Type Like
1. Type refers to predefined type. 1. Like refers to user defined data.
2. The data is not presented when referring 2. The data is already present at the time we
the type keyword. will pass the like keyword.

Data Types
1. Declaring pre-defined data types. 1. Declaring user-defined data types.
2. It allocates memory. 2. It doesn’t allocate memory.
3. Declaration and Initialization of variables 3. Only declaration is possible.
is possible. 4. We create structure to the already created
4. We can create data objects (like variables) data object.
5. We are using like line of keyword in data. 5. We are using begin of and end of
keywords in types.

Work area Field symbol

1. It reserve physical memory space.


2. Work area is a separate memory area that 1. It doesn’t reserve any physical memory
copies the data from the table. space.
3. In Work area necessary to use modify 2. Field symbol is a reference to the original
statement inside the loop if we need to data in the table.
modify the values. 3. In Field symbol not necessary to use
4. Declaring of work area we didn’t use any modify statement inside the loop if we
symbols (angular braces). need to modify the values.
5. No need to assigning in work area. 4. Declaring of field symbols we use
symbols (angular braces).
5. Without Assigning we can’t access field
symbols.

Field symbol Data reference


1. Field symbols are placeholders or symbolic 1. Data references are pointers to data
names for other fields objects
2. Field symbols use value semantics 2. Data references use reference
semantics.
3.

Sy-tabix Sy-index
1. It is used to find the number of current 1. It is used to find the current record in the
iterations in the loop. internal table.
2. We can’t use for database table. 2. We can’t use for internal table.
3. Sy-tabix will come to the picture when we 3. Sy-index will come to the picture when
use loop. we use do and while.

Delivery class Data class


1. It defines the owner of the table as well as 1. Data class defines the physical area of the
controlling the transport of the data from database in where our table is logically stored.
one table to another table.
2. In delivery class 7 types of tables are 2. In data class 3 types are there. Those are
present. Those are A, C, L, G, E, S, W. APPL0, APPL1, APPL2.
3. It present in delivery and maintenance
tab. 3. It is present in technical settings.

Work Area Internal Table


1. It can store one record at run time. 1. It can hold multiple records at run time.
2. "Work area" is neither specified under
"TABLES" nor is it defined as an internal 2. With out area we declare internal table by
table. using HEADER LINE.
Initialization At-selection-screen

1. . Initialization event in SAP ABAP is an 1. In ABAP, the AT SELECTION-SCREEN


event keyword that defines an event block event is used to process the selection
for initializing the default values of an screen before leaving it.
executable program. 2. It is triggered at runtime during the
2. It is triggered before any of the other processing of the selection screen,
ABAP code is processed and before the immediately before sending a selection
selection screen processing of any screen.
existing standard selection screen. 3. This event allows you to validate
3. It is used for initializing the variables and individual inputs provided through
logical database. selection screens.
4. In INITIALIZATION event, fields can be 4. In AT SELECTION SCREEN event,
initialized only once in the report . fields can be initialized several times by
user dynamically at run time.

At selection screen output At selection screen


1. AT SELECTION-SCREEN OUTPUT 1. AT SELECTION-SCREEN is processed
is processed before the selection screen is 2. when the user presses ENTER or chooses
displayed on the screen. You can use this another function on the selection screen.
event to modify the selection screen 3. Assignments in the event blocks LOAD-
dynamically. OF-PROGRAM or INITIALIZATION,
2. Assignments to input fields in the event on the other hand, only have an effect the
block AT SELECTION-SCREEN first time the program starts.
OUTPUT always affect the selection 4. It is triggered when user enters the values
screen and overwrite the user input from in the fields of the selection screen and
previous displays of the same selection clicks on execution button.
screen. 5. It is used for data validity checking I.e.,
3. It is triggered every time when user clicks checking the value entered by the user for
ENTER in Selection Screen . the field of the selection screen .
4. It is used to alter / add properties of 6. This event is for entire selection screen.
selection screen elements ( parameters /
select options).
5. This event is for fields / input fields
present in Selection Screen.

Pass by value Pass by reference


1. In pass by value a new memory is 1. In pass by reference actual and formal
allocated for actual and formal parameters are point to same memory
parameters. location.
2. When formal parameter is changed, it 2. Here if formal parameter is changed, it
doesn’t affect to actual parameter. affect to actual parameter.
3. Value is the keyword to identify the pass 3. Using and changing value are the
by value. keyword to identify the pass by reference.
Actual parameters Formal parameters
1. Parameters, which are declared with 1. Parameters, which are declared with
PERFORM statement are called actual FORM statement are called formal
parameters. arguments.
2. These are refers to same memory location. 2. These are refers to different memory
3. These are used to calling subroutines. location.
3. These are called subroutines.

Function module Subroutine


1. Function modules are global. That means 1. Subroutines are local that means we can
function module we can access the with in access the subroutine within server only.
the server as well as outside of the server 2. We can’t test the subroutine
amo. independently with out calling subroutine.
2. We can test the function module 3. We can’t handle the errors in subroutine.
independently with out calling. 4. Subroutine are defined in ABAP-editor
3. We can handle the exceptions in function SE38.
module through exceptions.
4. Function modules are defined in function
builder SE37.

DB LUW SAP LUW


1. Database LUW refers to the handling of 1. SAP LUW is a broader concept that
operations within a single transaction. encompasses not only database operations but also
higher-level application logic and processes.
2. It is partially concerned with ensuring the 2. It represents a logical unit of work within the
consistency and integrity of data at the entries SAP system, which can include both
database level. database operations and non-database activities.
3. Database LUW includes operations such 3. SAP LUW includes not only database
as INSERT, UPDATE, DELETE, and transaction but also the coordination of multiple
SELECT that interact directly with the application components, remote function calls,
underlying database. updates to various data structures, and more.
4. The scope of a database LUW is limited 4. It ensures the overall consistency and integrity
to database operations and their associated of data and processes within the SAP system, not
locks. just at the database level.

COMMIT COMMIT AND WAIT

1. In this type the call transaction screens 1.In this mode, the called transaction
will communicate with the update work communicates with the update work process to
process to update the data into database. update the data into database.
2. It doesn’t wait for the update to be
finished. 2.It will wait for the update to be finished.
3. It immediately starts to process the next
record without waiting for the update to 3.Once the update is finished, then it continues to
be finished. process the next record.
4. That’s why this process is very fast.
4.That’s why this process is very slow.
5. It is generally not recommended for the 5.It is generally recommended for large amount of
large amount of data, because the called data because it returns success and error
transaction doesn’t return and success or messages.
error message.

Commit Roll back


1. Commit statement is used to permanently 1. Rollback statement helps the users to undo the
change in the database table when changes before they’re changed in the database
executed. table.
2. Commit statement cannot be reverted and 2. The Rollback statement can be reverted and can
doesn't get its previous state back. undo the changes and get back to its previous
3. Commit statement is executed when the state.
transaction is completely performed. It 3. Rollback is executed when a failure occurred
indicates that the transaction is completed. during the transaction. This indicates that the
transaction has to be started again by reverting all
4. Syntax: COMMIT. the previous changes.
4. Syntax: ROLLBACK.

Normal FM RFC FM Update FM


1. Normal function module 1. RFC can be called across the 1. Update function module
only called within the server. only called within the
server. server.
2. We can’t access data 2. We can access data from RFC 2. We can’t access data
from normal function function module from non-sap from the update function
module from non-sap. also. module non-sap
3. We can use pass by 3. we can use pass by
value or pass-by 3. We always use pass by value value or pass by
reference in normal fm. mode in RFC's. reference in Update FM.
4. Fast access using
4. Fast access using Update function
normal function 4. Slow access using RFC modules compared to
modules. function modules. RFC FM.

Classical Interactive ALV


1. It’s nothing but to display the 1. It’s nothing but to display the 1. It’s nothing but to display the
entire information in a single summarized information in the summarized information in the
list. basic list and detailed basic list and detailed
information in further lists. information in further lists.
2.In classical reports 11 events 2. In interactive reports 5 events 2. In ALV reports 17 events are
are there. are there. there.
3. It has only one screen to 3.
display the output.
3. It has one basic list and 20
secondary lists are there to
display the output.

List display Grid display

1. List display is implemented using standard 1. Grid display is implemented using Standard
function module. function modules and OOPs.
2. Active X control is not present in List display. 2. Grid display will have Active X control. So it
So that it takes less memory. takes heavy memory.
3. Since it has not any functionalities like drag and 3. It is heavy weight.
drop and editable etc., It is light weight.
4. List display is non-editable. 4. Grid display is editable.
5. It doesn’t have drag and drop. 5. It will have drag and drop.
6. We can’t remove horizontal and vertical lines. 6. We can remove horizontal and vertical lines.
7. The function module for List display is 7. The function module for grid display is
REUSE_ALV_LIST_DISPLAY. REUSE_ALV_GRID_DISPLAY.
8.It is used to display the output in list format. 8.It is used to display the output in grid format.
9.In list display output screen 9..In grid display output screen
i i
Indicates number of records is displayed. Indicates F1 help.
10. We can make blocked alv by using list display 10. We can’t make

Report program Module pool program


1. We can execute the executable program either 1. We can execute the module pool program
through either transaction code or directly. through only transaction code only.
2. Type of executable program is ‘1’ 2. Type of Module pool program is ‘M’
3. All the standard reports are executable 3. All the standard transactions are module pool
programs. programs.
4. EX: ME21, ME2K, ME2M 4. Ex: XK01, XD01.

BDC LSMW
1.BDC stands for batch data communication. 1.LSMW stands for Legacy system migration
workbench.
2. BDC is used for customized applications. 2. LSMW is used for the normal sap applications.
3. BDC is used for the technical consultant. 3. LSMW is used for the functional consultant.
4. there are two ways of implementing the bdc like 4. LSMW offers 4 four ways of importing the data
call transaction and session method. into sap, and they are BDC, DIRECT INPUT,
5. BDC can upload huge amounts of data. BAPI(BO)AND IDOC.
Bdc can update or inserting the data more than 5000 5. LSMW Cannot upload the huge amount of data.
records. Hence we use LSMW for updating or inserting the
6. bdc is used for loading the data into sap system by data below 5000 records only.
using to write a ABAP PROGRAM --->to load the 6. LSMW Cannot upload the huge amount of data.
data. Hence we use LSMW for updating or inserting the
7. In case of BDC Session, it can process the multiple data below 5000 records only.
times according to the requirement . 7. In case of lsmw, it can process only one time. But
it can have the periodical update.
Commit work Commit work and wait
When ever call transaction is made and the called This statement is used to commit the transaction.
transaction encounters a commit statement. It will encounters the statement and come back to
It commits the transaction call and comes back to the calling program.
calling program.
It is a standard form, which specifies the Asynchronus It specifies the synchronous processing, The commit
processing . statement wait for the requested functions to finish
Your program does not wait for the requested processing .
functions to finish processing.
The control return back to the program.

Call Transaction Session Method


1.The following code is added to the BDC Program - 1.The following function modules are added to the
--> syntax BDC PROGRAM.
call transaction <t-code> using <lt tab of bdcdata> BDC_OPEN_GROUP, BDC_INSERT,
mode ‘a’ or ‘e’ or ‘n’ update ‘s’ ‘a’ ‘L’ Messages _CLOSE_GROUP.
into <lt_tab of bdcmsgcoll>. Create a session by running the program and process
the session using t-code (sm35).

2.In call transaction--> we can handle the errors in 2. Here the abap program creates a session the
mess tab transaction sm35 is used to process the session.
There is a built in error handling mechanism in this
method.
3.In call transaction--> the processing modes are A 3. IN Session method---> the processing modes are
or E or N. Foreground, background and Display errors only.
4.The database updates are the Synchronous , 4. only synchronous database update.
Asynchronous, and the local update. Either the
modes can be specified the program
5.There is no batch input processing log. 5. there is detailed log for the session method which
are generated for all sessions.
6. faster than the session method 6. slower than the call transaction method.

BDC BAPI
BDC is used to upload the data from file to SAP BAPI is used to upload the data from file to SAP
system through screens. system directly.
BDC is Slower BAPI is Faster.
Some times BDC open group BDC insert BDC Close BAPI never cause to terminate the program whenever
group may cause to terminates the program. error occur in the BAPI it simply written those
through return parameters.
In BDC we provide authority check to validate the BAPI perform their own authorization checks to
user. validate the user.
Authority – check <object name ) id <name> activate
<value>.
In BDC the flat files fields are fixed. In the BAPI the flat file fields are varying.
Whenever the version is changed sometimes, we need Whenever the version is changed no need to change
to change the code. the code.

BAPI RFC
It is an object-oriented concept. It is a procedural concept.
BAPI has business objects. RFC does not have any business objects.
All the BAPI must have to RFC. All the RFC is not BAPI.
When an RFC gets registered with BO, then it
becomes the BAPI.
It is easy to communicate with External world (NON Communication with the external world is a little
sap system). tricky.

Typically, BAPI represents a complete business unit. RFC typically does not represent a complete business
unit.

BAPI RFC
It is an enable function module that provides external It is a protocol for communication between
access to an SAP business application. applications of different system in the SAP
environment.
It can be wrapped in business objects. It can’t be wrapped in business objects.
It can be compared to CGI applications. It can be compared to HTTP
All BAPI are RFC. All RFC are not BAPI.
Exceptions are not used in BAPI. Exceptions can be defined in the interface of the
called function module.
Object oriented which is RFC enable and it is It is Conventional technique.
responsible to communicate between the systems.
Associated type as structure only Associated type as data element or structure

User exit Customer exit


1. It is implemented in the form of subroutine. 1. It is implemented for specific programs,
screens, and menu within standard
2. It is technically a modification as existing applications.
code is changed. 2. It is technically an enhancement as this
3. Changes remain after the upgrade. provides add-on functionality.
4. It gets automatically activated whenever the 3. It refers to all modules like MM, SD, FICO,
application/program is activated. PP etc.
5. User exits are created with SAP namespace 4. Only variables, structures, and tables that are
only. passed into the function through the interface
are restricted to be viewed and/or changed.
5. It does not require any access key.
6. Changes are lost after upgrade.
7. To implement this, a project is created in
CMOD then activated.
8. Customer Exits are created by Custom
namespace.

Implicit Enhancement Explicit Enhancement


1. Implicit points are available at the starting or 1. Explicit point & Section are available at any
at the last of the program. (For subroutines line.
last, forms first) 2. We will create the Explicit Implementation
2. We will create the Implicit Implementation using those points & sections.
using those points. 3. An enhancement spot is present.
3. An enhancement spot is not present. 4. If explicit enhancement is already present
4. We can create implicit enhancem ent then only we can do the enhancement.

Enhancement-Point Enhancement-Section
There is no default implementation. There is default implementation.
We can add or create logic. We can replace or change the whole logic.
Only enhancement point is there Here end enhancement section is there
We can do multiple implementations Here it will accept first implementation only

User exit Customer exit Badi


N
1). It is a Modification 1). It is an enhancement 1). It is also an enhancement
2). It will support only SD module 2). It will support any module 2). It will support any module.

3). We can create only one 3). It also can create only one 3). With this we can create more
enhancement. If any other user enhancement than one enhancement.
wants to create another
enhancement, we can’t
4). It can be enhanced by SAP 4). It can be enhanced by customer 4). It can be enhanced by customer
namespace namespace namespace.
5). We will implement through 5). We can implement through 5). We will implement this through
subroutines only reports, FM’s, subroutines etc. methods, classes and interfaces.
6). It is also procedural oriented 6). It is object oriented.
6). It is procedural oriented 7). Access key is not required.
8). Data will not vanish 7). Here also access key is not
7). Access key is required to required.
implement 8). Data will not vanish
8). If any system upgradation is
happening, data will vanish

Classic BADI Kernal BADI


1. Proxy class is present (cl_exithandler) 1. Proxy class is not present
2. Fall back class is not present 2. Fall back class is present
3. Interface automatically generated 3. We must create interface
4. Enhancement spot is no need 4. Enhancement spot is needed
5. Implementation done in SE19 transaction 5. In their itself
6. Execution time is more 6. Execution time is less
7. Kernal layer is not present(slower) 7. Kernal layer is present (faster)
8. Filter options is less 8. Filter options is more
9. Syntax for classic badi is call method 9. Syntax of kernel badi is get badi ,call badi
cl_exithandler=>get_instance
10. Object reference we will pass interface name 10. Object reference we will pass badi definition

Procedure oriented Object oriented

1). The entire program is splited into smaller 1). The entire program is visualized in terms of class
programs. & objects.
2). The same set of statements is placed in a 2). in object-oriented programming, you encapsulate
procedure & later we call the same procedure from behavior (methods) within classes, and you create
different locations of the same program. instances of those classes to perform tasks by
invoking their methods
3). Subroutines or Function Module 3). Class, Method, Interface
4). All the subroutines & function modules can access 4). All the methods can’t access the global
the global declarations. declarations
5). It takes a little bit extra time to enhance the 5). It takes very less time to enhance the existing
existing functionality. functionality.

Procedure oriented Object oriented


1. The entire program is split into smaller programs. 1. The entire program is visualized in terms of class &
objects
2. The same set of statements is placed in a procedure 2. In object-oriented programming, you encapsulate
& later we call the same procedure from different behavior (methods) within classes, and you create
locations of the same program. instances of those classes to perform tasks by
invoking their methods
3. Subroutines or Function Module 3. Class, Method, Interface
4. All the subroutines & function modules can access 4. All the methods can’t access the global declarations
the global declarations.
5. It takes a little bit extra time to enhance the existing 5. It takes very less time to enhance the existing
functionality. functionality
6.OOps concepts are not used here 6.OOps concepts are used here
7. Functions share global data and data cannot be 7. Functions do not share global data – you can decide
hidden from each other who can access your data

ABAP OOABAP
1). ABAP IS Process-oriented. 1). OO-ABAP is a new methodology in ABAP that
uses object-oriented programming.
2). Procedural ABAP is mainly based on 2). OOABAP is object oriented.
subroutines, function modules and is event driven
language.
3). ABAP is completely SQL based statements. 3). OOABAP is like object-oriented concepts.
4). Limited No. of events present in ABAP. 4). Large set of events present in OOABAP.
5). Performance is a bit slow compared to OOABAP. 5). Performance is a bit fast compared to OOABAP.

6). IN ABAP even if we call one function module, all 6). IN OOABAP we can execute particular method
the function module present in the function group get separately.
executed. That reduces the performance of the
program.
7). it is less secure just because it is accessible to all 7). It is a bit more secure just because we have private
and protected section, we can decide the visibility
section.

Static class Singleton class


1. Static class cannot be instantiated 1. Singleton class can be instantiated only
once
2. It doesn’t require object creation 2. It requires object creation
3. It doesn’t require memory allocation 3. It requires memory allocation
4. We can access static class directly by its name 4. Singleton class can be accessed through
its instance
5. It cannot be inherited 5. It can be inherited based on business
requirement
6. It cannot be overridden 6. It can be overridden
7. Doesn’t support encapsulation 7. Supports encapsulation

Local Global
1.Local class name starts with any letter. 1. Global class name starts with ‘Y’ or ‘Z’.
2.It is created through the SE38 transaction. 2. It is created through the SE24 transaction.
3.We can access the local class within the program 3.We can access the global class from anywhere in
only. the SAP.
4. Local class is stored in the memory of ABAP 4. Global class is stored in the class repository.
program.
5. 5.

Static attributes Instance Attributes


1)it is not specific to any object. 1)It is specific to each object.
2) It is initialized only once in lifetime of a class, the 2) it is initialized on behalf of each object, for every
memory will be allocated only once, which will object created a separate memory will be allocated.
shared by all the objects of the class.
3)In local classes, it is declared by using the keyword 3) IN local classes, it is declared by using keyword
‘CLASS-DATA’. ‘DATA’.
4) They can be accessed either by using an object or 4)It can be accessed only by using object
class name.
Instance Static
1). While instance methods can be called only using 1). While static methods can be called using object or
object class

2). While instance methods are dependent on9 the 2). Memory is allocated once for static methods
object and memory is allocated for each object
3). In se38 transaction we use METHOD keyword for 3). In SE38 transaction we use CLASS-METHOD
defining instance method keyword for defining instance method
4). Syntax: obj->gui_download() 4). Syntax: cl=>gui_download()

Instance constructor Static constructor


1. The name of the instance constructor must be 1. The name of the static constructor must be
constructor only class_constructor only
2. Instance constructor declared by using methods 2. Static constructor declared by using class_methods
keyword keyword.
3. The instance constructor is triggered after each 3. The static constructor is called before all the
instance of the class is created. instance constructors.

4. Instance constructor methods get executed after 4. Static constructor methods get executed only once.
each instance is created.

5. Instance constructor can have import parameters 5. Static constructor doesn’t have any parameters

Methods Constructors
1.Can be declared in any of the sections 1.Can be declared only in public section
2.Should be called explicitly 2. Will be called implicitly
3.Can be called any no.of times using the same object 3. instance constructor will be called only once in the
lifetime of every object, static constructor will be
called only once in the lifetime of class
4.Can contain any type of 4.Instance constructor can contain only import
parameters(import,export,changing,returning) parameters, exceptions and static constructors
Cannot contain any parameters
5. Can return any no.of values 5. Never returns values

Interface Abstraction
1. Can contain only abstract methods. 1. Can contain both abstract and non-abstract /
concrete methods.
2. By default, all the methods are abstract in 2. Explicitly needs to declare the method as
interfaces. ‘Abstract’.
3. By default, all the components of an interface are 3. Abstract methods can be declared in public and
public. protected sections.
4. A class can implement any number of Interfaces. 4. A class can inherit only one abstract class at a time.
5. Outside the interface, interface components must 5. Abstract class inherited components can be
be prefixed with interface name. referred to directly in sub classes.
6. Interface is an interface between user and service 6. Abstraction is used to provide functionality and
provider. avoid the implementation.
7. Constructor we can’t create. 7. We can create constructor for abstract class.

CX_STATIC_CHECK CX_DYNAMIC_CHECK CX_NO_CHECK


1. In Method declaration, we need 1. In Method declaration, it will 1. Method declaration is implicitly
to mention explicitly exception take implicitly exception class. done.
class.
2. Warning message at compile 2. No message at compile time 2. No message at compile time
time
3. Short dump occurs if the 3. Short dump occurs if the 3. Able to capture the exceptions
exceptions trying to capture outside exceptions trying to capture outside outside of the method
of the method of the method
4. Checked and static error 4. Unchecked error conditions/ 4. Cannot be handled immediately
condition error can be identified by pre-
conditions
5. All custom exceptions 5. Standard exceptions 5.

ALV OALV
1. In alv, we can display the output at standard 1. In oalv, we can display the output at the
layout (standard place) customized screen (layout)
1. We don’t need to create screen 2. we need to create screen here
2. Here we will use list display and grid display 3. here we will use only alv gird display
3. Don't need to create object 4. we should create an object to display the output

Custom container- Need to create Screen


Docking container - No need to create custom control
Splitter, Easy splitter - Needs custom control
Model dialog box- No need to create custom control

Custom container Docking container


1. We can’t resize the output 1. We can resize
2. We will use standard class 2. We will use standard class
‘CL_GUI_CUSTOM_CONTAINER’ ‘CL_GUI_DOCKING_CONTAINER’

3. Drop and drag is not available 3. Drag and drop is available

4. Need to create screen 4. No need to create screen

Easy splitter Splitter container


1. The SAP Easy Splitter Container allows you 1. The SAP Splitter Container allows you to
to divide an area into two cells with a control display more than one control in a given area
in each by dividing it into cells
2. The standard class for achieving easy splitter 2. The standard class for achieving splitter container
container is is ‘CL_GUI_SPLITTER_CONTAINER’
‘CL_GUI_EASY_SPLITTER_CONTAINER

DDIC View CDS View


1. It follows Data to code. 1. It follows Code to data.
2. We can create DDIC views in the Data dictionary. 2. We can create CDS views in eclipse IDE.
3. In this we are using simple selection conditions and 3. In this we can perform unions and intersections.
inner join.
4. we can’t perform parameters. 4. We can perform parameters.
5. we can’t perform aggregate functions. 5. we can perform aggregate functions
6. we can’t perform numeric functions. 6. we can perform numeric functions.
7. We can’t perform case conditions. 7. We can perform case conditions.
8. We can’t perform string functions. 8. We can perform string functions.
9. we can’t perform associations. 9. we can perform associations.
10. We can’t use annotations 10. We can use annotations

ABAP CDS HANA CDS


1. Can be implemented in any database. 1. Can be implemented only HANA database.
1. Here we can create views. 2. Here we can create models from scratch.
2. Uses open SQL. 3. Uses native SQL.
3. Define the application server of ABAP. 4. Defined on HANA XS (Extension application
server)
4. Created for ABAP applications. 5. Created for native HANA applications.

CDS AMDP
1. CDS stands for core data services. used to define 1. AMDP stands for ABAP managed data procedure.
semantically rich data models (such as annotations- Used to maintain the data from the database at
standard symbol) and user-defined datatypes in database layer itself.
database.
2. We can’t perform complex calculations. 2. we can perform complex calculations.
3. It uses open SQL. 3. It uses native SQL.
4. We can’t debug CDS views. 4. we can debug AMDP.
5. Only works with HANA.
6. We can’t maintain data. 6. We can maintain data.
7. By using CDS we can return only one dataset. 7. By using AMDP we can return multiple datasets.
8.It doesn’t allow us to write object-oriented classes. 8. It allows us to write the object-oriented classes.
9. Order by doesn’t support 9. Order by supports
10. Select query directly we can’t write 10. Select query we can write

AMDP Procedure AMDP Functional


1). We can call from ABAP like method. 1). We can’t call.
2). We have access to read and write the data. 2). We only have to read.
3). We can write implementation in either instance or 3). We should write implementation in static method.
static method.
4). Any no.of parameters (IMPORT, EXPORT, 4). Any scalar IMPORTING and exactly one table –
CHANGING) supported. like RETURNIUNG parameter.
5). It returns multiple result sets 5). It returns single result set
6). Return is not mandatory 6). Return is mandatory
7). Mandt field is not mandatory 7). Mandt field is mandatory

ABAP memory SAP memory


1. It is a local Memory. 1. It is a Global Memory.
2. It is co-dependent. 2. It is independent.
3. It uses different memory to transfer the data. 3. It uses common memory to transfer the data.
4. All programs within a session can have 4. All SAP GUI sessions have access to it.
access.
5. It makes data available multiple sessions 5. It makes data available across main session.
within the same session.
6. Data can be exchanged using 6. Data can be exchanged using GET/SET.
EXPORT/IMPORT.
7. Syntax: 7. Syntax:

export <variable OR internal_table > Set parameter id <id_name>


To memory id <id_name>. Field <value>
Get parameter id <id_name>
Import <variable OR internal_table > Field <value>
From memory id <id_name>
Or
(for release syntax)
Export db-index = <value> to
Free memory id <id_name> Database indx <index_name>
Or Id <id_name>.
Import db-index = <value> from
Database indx <index_name>
Delete from memory id <id_name> Id <id_name>.

Joins Associations
1. In joins we can achieve left, right and inner joins. 1.In Association we can achieve left outer and inner join.
2. In joins cardinality is not supported 2.In association cardinality is supported
3.We can perform joins on multiple header and item 3.We can perform association on one header table and
tables. multiple item tables.
4. Compare with association join are slow 4. Associations are fast
5. It occupies memory for all selected fields 5. It does not occupy the memory for the exposed fields.
6. In joins even if we are not specifying the fields from 6. In association if we are not specified any item table
item table the join condition will be established. fields the join condition is not established.
7. It will always fetch data from all the specified tables. 7. It will fetch the data from only specified field tables.
Rest API Soap API
1. Representational State Transfer 1. Simple Object Access Protocol
2. REST is an architecture style for designing 2. SOAP is a protocol for communication between
communication interfaces. applications
3. REST API exposes the data. 3. SOAP API exposes the operation.
4. REST works only with HTTPS 4. SOAP is independent and can work with any transport
protocol.

5. REST supports XML, JSON, plain text, HTML. 5. SOAP supports only XML data exchange.
6. REST has faster performance due to smaller messages 6. SOAP messages are larger, which makes
and caching support. communication slower.
7. REST is easy to scale. It’s stateless, so every message is 7. SOAP is difficult to scale. The server maintains state by
processed independently of previous messages. storing all previous messages exchanged with a client.
8. REST supports encryption without affecting 8. SOAP supports encryption with additional overheads.
performance.
9. REST is useful in modern applications and public APIs. 9. SOAP is useful in legacy applications and private APIs.

Authorization – we can’t delete the authorization locks


Table level lock – we can delete the lock
Data element, domain– it is dependent for domain, data element description varies for every table, data element changes at
semantic info, it doesn’t ask the change at structure in se14.

You might also like