Differences Haritha
Differences Haritha
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.
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
'
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.
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.
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
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
✓ 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.
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.
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.
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.
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.
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
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.
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
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
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
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.
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.
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.
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()
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.
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
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
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.