Escolar Documentos
Profissional Documentos
Cultura Documentos
1|Page Santosh P
CUSTOMER WAREHOUSE YES BLILLING
DEPARTMENT
ENQUIRER
QUOTATION MARKETING NO DELIVERY
PLACE ORDER ROW
METERIAL
PRODUCTION
SALES
PURCHASE MATERIAL
ORDER MANAGEMENT
SALES ORDER
VENDOR 1 PURCHASE
CHECK FOR STOCK VENDOR 2 FUNDS
VENDOR 3
FINANCE
1) Function consultant
2) Technical consultant
3) Techno functional consultant
4) Basis consultant
FUNCTION TECHNICAL
2|Page Santosh P
Role of ABAP Consultant in SAP Project.
WRITE: - Write statement is a keyword used for display the Output LPS
(List Processing Screen) .
VALUE: - Value is a keyword used as part of data statement to initialize the variables.
X Selected.
Not Selected.
Syntax: - parameters <radio button name> radio button group <group name> [default X].
3|Page Santosh P
DEFAULT: - Default is a keyword to provide the default values.
EXIT: - Whenever exit statement will executed inside a loop. The control comes out of the
looping statement.
If it is executed outside the loop the control comes out of the program.
FIELD-SYMBOLS: - A field-symbol is a data structure which can store any kind of data
type.
EDITMASK: - Edit mask is used as part of write statement to convert the data and time
format to the user defined format.
CHECK STATEMENT: - Check is similar to IF. When the check statement condition is
failed the remaining statements of the program will not be executed where as incase of IF
statement. The if statement condition is failed only the if block is ignored i.e. remaining
statements of the program will be executed.
SUBMIT: - Submit keyword is used for calling a report from another report.
If a non existing program is called by using submit keyword its result is runtime
error. Load the program not found.
NOTE: - By default whenever a program is called using submit keyword the control jump
to called program and control will not returned to calling program.
Export statement is used for exporting a variable value to the ABAP memory with
in a memory id.
Import statement is used for importing a variable value from ABAP memory
which is stored in a memory id.
4|Page Santosh P
STRING FUNCTIONS: -
Syntax2: -
Data: <Structure> like <existing structure>.
MOVE: - Statement is used for copying the data between two similar structures. Only
checks for the corresponding fields for data types between two structures. It does not check
for no of fields and fields name.
5|Page Santosh P
MOVE-CORRESPONDING: - Move-corresponding is used between two dissimilar
structures to copy the values from one structure to another structure. It is recommended not
to use corresponding because of the following reasons.
It decreases the performance of the application. Because each field of the source
structure is compared with all the fields of the target structure which is a time
consuming process.
It may lead to runtime error because while copying it only checks for fields name but
not for data type. When the data type mismatches it leads to runtime error.
INCLUDING STRUCTURE: -
Including all the fields of an existing structure into another structure by using
include keyword.
6|Page Santosh P
DICTIONARY OBJECTS: -
1) Database Tables
2) Views
3) Data Type
4) Type Group
5) Domain
6) Search Help
7) Lock Object
i. Transparent
ii. Pooled
iii. Cluster
Transparent: -
It is used to store application data such as master data transactional data. We
always create transparent table only.
There is one-to-one relationship i.e. for the table DDIC another table with the
same structure and the same name and the same fields will be created in the
original data base.
Pooled: -
It is used for exclusively for storing internal control information.
The data from several different pooled tables can be stored together in a table
pool.
This is many-to-one relationship.
Cluster: -
Cluster tables are logical tables that must be assigned to a table cluster when they
are defined.
Cluster tables can be used to store control data. They can also be used to store
temporary data or texts, such as documentation.
2) Views: -
It is a data dictionary object. It is considered as a pseudo table, A view never occupy any
physical space in the database server.
i. Database View
ii. Projection View
iii. Maintenance View
iv. Help View
7|Page Santosh P
Database View: -
Database views are implemented with an equivalent view on the database.
Database views are defined in the ABAP dictionary. A database view is
automatically created in the underlying database when it is activated.
Projection View: -
Projection views are used to hide fields of a table. This can minimize interface.
A projection view contains exactly one table. You cannot define selection
conditions for projection views.
Maintenance View: -
Permit you to maintain the data distributed on several tables for one application
object at one time.
Help View: -
Help views can be used as selection method in search helps.
3) Data Type: -
i. Data Element
ii. Structure
iii. Table Type
Data Element: -
A data element is a reusable dictionary object. Which provides the short
description for the field? This description appears automatically on the
transaction.
A data element created at once can be used across many places.
Data element can be created either by referring a direct data type or by referring to
a domain.
Structure: - It is a user defined data type which is a collection of different types of fields.
Structure is used for storing record kind of information. At any point of time the
structure can store only single record.
Table Type: -
Table type is an internal table create at a data base level it can be associated with a
line type. A line type can be a data element or a structure.
A table type is a global internal existing at the database level.
The table type determines how ABAP will access individual table entries. Internal
tables can be divided into three types.
i. Standard Table
ii. Sorted Table
iii. Hashed Table
8|Page Santosh P
Standard Table: - Standard tables have an internal linear index. From a particular size
upwards, the indexes of internal tables are administered as trees. In this case, the index
administration overhead increases in logarithmic and not linear relation to the number of
lines. The system can access records either by using the table index or the key. The response
time for key access is proportional to the number of entries in the table. The key of a
standard table is always non-unique. You cannot specify a unique key. This means that
standard tables can always be filled very quickly, since the system does not have to check
whether there are already existing entries.
Sorted Table: - Sorted tables are always saved sorted by the key. They also have an
internal index. The system can access records either by using the table index or the key. The
response time for key access is logarithmically proportional to the number of table entries,
since the system uses a binary search. The key of a sorted table can be either unique or non-
unique. When you define the table, you must specify whether the key is to be unique or not.
Standard tables and sorted tables are known generically as index tables.
Hashed Table: - Hashed tables have no linear index. You can only access a hashed table
using its key. The response time is independent of the number of table entries, and is
constant, since the system accesses the table entries using a hash algorithm. The key of a
hashed table must be unique. When you define the table, you must specify the key as
UNIQUE.
4) Type Group: -They define data types in a type group in the ABAP/4 Dictionary instead
of defining them within an ABAP/4 program.
The type group name in the ABAP/4 Dictionary has a maximum of 5 characters.
Type names within type group <typepool> must begin with <typepool> followed
by an underscore.
The types in a type group must be declared in ABAP/4 programs with the TYPE-
POOLS command.
Syntax: - types-pools <type poolname>/<type groupname>.
5) Domain: -
A domain is a reusable dictionary object which stores technical properties of the
field. The technical properties include data type, size, value range, value table.
Elementary Search Help: - describe a search path. The elementary search help must define
where the data of the hit list should be read from (selection method), how the exchange of
values between the screen template and selection method is implemented (interface of the
search help) and how the online input help should be defined (online behavior of the search
help).
9|Page Santosh P
Collective Search Help: - combine several elementary search helps. A collective search
help thus can offer several alternative search paths.
7) Lock Object: -
The R/3 system synchronizes access of several users to the same data records with
a lock mechanism. When interactive transaction is programmed, locks are set and
released by calling modules. These function modules are automatically generated
from the definition of lock object in the ABAP dictionary.
.Include: -
.Include is a keyword used at the field level to include a dictionary structure in
another dictionary structure.
Corresponding Fields: -
As part of select query when the no of fields or sequence of fields retrieved from
database table is not matching with the target internal table or structure then we need to use
corresponding fields statements in the select query.
Describe: - Describe table statement counts the no of records in the internal table and stores
the count value in the system field SY-TFILL.
Select-Options: - It is the internal table provided by sap which is associated with 4 fiedls.
1) LOW
2) HIGH
3) OPTION
4) SIGN
OPTION: - Possible values are <, >, <=, >=, bt (between, default)
10 | P a g e Santosh P
Insert: - Insert statement always inserts a new record and ignores records if it already
exists. It only checks for primary key field values.
While inserting the data into database table from an internal table it is always
recommended to use modify statement instead of insert statement. Because incase
of insert if the duplicate record is found it results in runtime error.
To avoid the runtime errors use accepting duplicate keys. Without accepting
duplicate key we have a runtime error. But this is not recommended.
Modify: - modify statement it insets a new record or update the existing records.
Clear: - Each & every time we will write clear statement. It clears the local structure
clearing from work area.
Syntax for inserting data into database table from an internal table: -
Read Statement: - It is used for reading a specific record from the internal table. Read
always reads the single record even if there are multiple records satisfying the conditions.
Read statement can be used either based on an index or based on a condition.
By default read follows linear search first to last.
The index of the internal table starts form 1.
It is always recommended to use the read statement to sort the internal table
before using binary search.
Transporting: - By default read statement transports all the fields between body to work
area.
To transport only specific fields use transporting keyword as part of read
statement. This improves the performance.
SELECT ENDSELECT: - Select end select is considered as database loop and it retrieves
single record per request.
Select-endselect it always retrieves single record per request.
The no of select queries depends upon the no of records satisfying the criteria.
It there are more no of select queries it increases the network traffic there by
decreases the performance. This is the reason it is recommended not to use select-
endselect.
11 | P a g e Santosh P
Standard SQL: - It is a set of SQL statement to interact with database systems from the
front end applications like Java, .net etc..
From ABAP we can use two type of SQL statement.
1. Open SQL
2. Native SQL
Open SQL: -
Native SQL: - Every database vendor provides a set of SQL statements to interact with
their own database systems. This statements are specific to database.
Note: -
For native SQL the variables are preferred (:) bind variables.
It should not end the statement with (.) period & separate the variable by comma
(,) to select query.
Note: -
Native SQL statements always embedded between execute SQL and end execute.
Cursors in open SQL: - A cursor is a special data structure it can be use for storing
multiple records by using cursors we can avoid the usage of internal tables.
Note: -
Only select statement can be associated with cursors.
Whenever a cursor is opened a select statement associated with the cursor will be
processed and the output of the select query is called as active set.
12 | P a g e Santosh P
Step3: - Close the cursor.
Syntax: - close <cursor name>.
Types of message: -
I (information)
W (warning)
S (status)
E (error)
A (abort)
Once we create message class we will use it anywhere of those classes.
Note: - Depending upon the sicbret of the message we can use the appropriate message
type.
Joins: - Joins is used to extract the data from several tables by joining them together with
a common field. If the field is replaced in several tables we need to identify that field along
with table name, hence ~ (tilt symbol) is used along with the table allies name in order to
uniquely identify a field from specified table. Joins are two types.
1) Inner join
2) Outer join
1) Inner join: - This type of join will retrieve the data from multiple tables if the data is
found commonly in all the tables, if any one of the table doesnt contain for the given
condition no data is extracted from any of a table, only transparent tables can be used
within the joins.
13 | P a g e Santosh P
TABLE A TABLE B
A B C D D E F G H
a1 b1 c1 d1 d1 e1 f1 g1 h1
a2 b2 c2 d2 d2 e2 f2 g2 h2
a3 b3 c3 d1 d3 e3 f3 g3 h3
a4 b4 c4 d4 d2 e4 f4 g4 h4
a5 b5 c5 d5 d5 e5 f5 g5 h5
A B C D D E F G H
a1 b1 c1 d1 d1 e1 f1 g1 h1
a2 b2 c2 d2 d2 e2 f2 g2 h2
a2 b2 c2 d2 d2 e4 f4 g4 h4
a3 b3 c3 d1 d1 e1 f1 g1 h1
a5 b5 c5 d5 d5 e5 f5 g5 h5
2) Outer join: - Whenever you used the right side table record with left side table, if the
common record found in both table then the system will extract the data from both
tables. It for the specified field, the record does not exist in right side table, then system
will extract left side record into consideration.
TABLE A TABLE B
A B C D D E F G H
a1 b1 c1 d1 d1 e1 f1 g1 h1
a2 b2 c2 d2 d2 e2 f2 g2 h2
a3 b3 c3 d1 d3 e3 f3 g3 h3
a4 b4 c4 d4 d2 e4 f4 g4 h4
a5 b5 c5 d5 d5 e5 f5 g5 h5
14 | P a g e Santosh P
Table A Left Outer Join Table B
A B C D D E F G H
a1 b1 c1 d1 d1 e1 f1 g1 h1
a2 b2 c2 d2 d2 e2 f2 g2 h2
a2 b2 c2 d2 d2 e4 f4 g4 h4
a3 b3 c3 d1 d1 e1 f1 g1 h1
a4 b4 c4 d4 0 0 null 0 null
a5 b5 c5 d5 d5 e5 f5 g5 h5
1) Increases reusability
2) Better maintenance
3) Performance improvement
4) Readability
5) Controlling the flow of the program
Internal Subroutines: -
Syntax: - Syntax for calling internal subroutine performs.
<subroutine> [parameter list].
Syntax: - Syntax for defining internal subroutine form.
<subroutine> [parameter list].
4) F8 (RUN): - When F8 is pressed the control jumps to next available break point if not
available the entire program will be executed as a single step.
Pass by reference: - In pass by reference the address of actual parameters are passed as
parameters to formal parameters, so any changes made to formal parameters will
automatically reflect the actual parameters.
15 | P a g e Santosh P
Pass by value: - In pass by value the values of actual parameters are copied to formal
parameters. Any changes made to formal parameters will not reflect actual parameters value
is a keyword used to pass the parameters by value.
Function Module: - Function module is a set of statements it is defined only once and it
can be called any no of times. It is developed by using function builder tool. Function
module is stored inside function group.
Function group: - A function group is a repository object with can contain different type of
repository object like function modules, Classes, subroutines, etc.
Function group can be created by using SE80/SE37. Whenever a function group is
created two include programs will be created.
1) Include ending with TOP: - It is called as top include file and it can contain global
declarations, subroutine definitions and module definitions.
2) Include ending with UXX: - It is include generated for sap purpose.
In this sub include will be generated. Whenever a new function module is created.
Each sub include is reference to a function.
Note: - By default the function module type is normal & it is client independent object i.e. a
function module created at one type can be accessed from other client for the same server.
16 | P a g e Santosh P
Exceptions in function modules: -
We can handle the standard exceptions by using try & catch blocks.
Inside the try block we need to keep these statements where the possible error
might occur.
Inside the catch block we need to handle the exception. The catch block is placed
immediately after the try block.
Whenever an exception is raised in the try block SAP creates the appropriate
exception class objects and the control is transferred to catch block.
Catch CX_ROOT is parent class of catch we cant sure able to the choose class
we can use CX_ROOT.
In case of system defied exceptions the standard exception is declared & raised by
Sap itself & it is handled by the developer.
In case of user defined exceptions it is declared raised and handled by the
developers.
Step 1: - Declare the user defined exceptions in the exception tab of the function module.
Step2: - Raise the exception in the source code at the appropriate place by using raise
statement.
Step3: - Handle the exception I the calling program by checking the SY-SUBRC status.
17 | P a g e Santosh P
Syntax for calling macro: -
<macro name> value1 value2value9.
Note: - All the standard macros which are part of HR functional modules Its stored in the
table TRMAC.
Selection screen programming: - It is used for generating a selection screen which can
contain different types of component.
A selection screen can contain following component.
1) I/O FIELDS.
2) CHECK BOXES.
3) RADIO BUTTONS.
4) PUSH BUTTONS.
5) BLOCKS.
6) TABBED BLOCKS.
7) TAB BUTTONS.
8) LABELS.
Event handling: -
Events only write at the last. As part of ABAP they are many events provided by
SAP, which are triggered at different places.
As part of selection-screen they are different events triggered.
Selection-screen begin of block <block name> with frame [title <title variable>].
Selection-screen begin of block b2 with frame title pqr.
2) At selection-screen output: - This event is used for controlling the screen display in ht
runtime. I.e. it is used for refreshing the elements of the screen in the runtime.
This event is triggered after initialization event as well as after at selection screen
event, i.e. it is triggered at least once before displaying the selection screen.
18 | P a g e Santosh P
Note: - Screen is a structure provided by SAP this structure will act as internal table in the
run time. This structure holds the information of the screen-elements.
Note: - If a data element is associated with a search help then by default f4 help available
provided for the field whenever it is used on selection screen or dialogue screen.
It the search help is not attached with the data element level then manually we
need to attach f4 help. For a selection screen field or a dialogue screen field.
4) At selection-screen on value-request: -
This event is triggered when the user presses f4 key on a selection-screen I/O field.
F.M:- F4IF_INT_TABLE_VALUE_REQUEST
Is a function module used for displaying the internal table contents as a list of values.
Whenever k4 key is pressed on a field.
Note: - If the tabbed block does not have any tab buttons then it results to runtime error.
Dynpro does not exist.
19 | P a g e Santosh P
Syntax for sub screens: -
Syntax: -
Selection-screen function key <n>.
Where <n> can be 1,2,3,4,5..
When for the custom GUI status SAP loses the standard GUI status.
As part of the custom GUI status on LPS if we associate the standard function code for the
standard tool bar buttons. Then standard function code for the standard tool bar buttons.
Then both the buttons as well as the functionality will be enabled.
It we associate the user defined function codes then only then buttons are enabled without
the functionality in this case we need to enable the functionality. By handling the event at
user command.
20 | P a g e Santosh P
PBO: - It is similar to at-selection-screen output event. It is executed before the transactions
are displayed as well as after PAI event.
POV: - This event is similar to at selection-screen on value request. It is triggered when the
user presses f4 key in the I/O field. It is used for associating custom f4 help for a
transaction I/O field.
Tab strip control: - It is a component in module pool which is a collection of tab buttons.
A tab button is associated with a sub screen.
A sub screen cannot sit directly on normal screen. It must be placed on top of
screen areas.
Sub screen area is a container of sub screens.
A single sub screen area can be associated.
With any no of sunscreens If a screen contains tab strip control it must be declared
explicitly. By using the keyword controls.
Call sub screen <sub screen area> including <program name> <sub screen no>.
Note: - As part of module pool program a top include file can be created which can be used
for declaring global variables. These variables can be used across the screens in the
module pool programs.
Sections in screen painter tool: -
21 | P a g e Santosh P
1) Attributes: - In this its specifies the type of screens, normal screens, sub screen, model
dialog box.
2) Element list: - It contains the information of the elements along with the coordinates
based on the screen.
3) Layout: - In this we design the screen.
4) Flow Logic: - In this we declare & implement the events along with the corresponding
modules.
Note: - The events are implemented in the form of module definitions.
Step1: - Create a module pool program in SE80 (with/without top include file).
Step3: - Declare and implement the events and the corresponding modules (Flow Logic).
Procedure2: -
Step2: In screen painter tool (SE51), design the screen (Layout) and the corresponding
events (Flow Logic) for the corresponding module pool program.
22 | P a g e Santosh P
Note: - Whenever the validations are failed on a transaction. SAP doesnt allow performing
any action by default. In most of the times the user wants to exit the screen without
submitting the fields values of the transaction. This can be achieved to the cancel button.
But if the transaction fails at least one validation. The user cannot exit the button. So in
these cases explicitly we need to create a button which acts as a cancel button.
2) Flow logic validations: - These validations are designed by developer in the flow logic.
On a transaction if any field is failing the flow logic or module pool validation the
other fields on the transaction are disabled not allowing the user to input the values.
This can be avoided by using chain end chain.
Chain-endchain is used for grouping the logically related fields.
3) Module pool validations: - In automatic field validation and flow logic validation.
Whenever a field fails a validation. The error messages are provide by SAP.
As part of module pool validations we need to declare the module in flow logic
and implement in the module pool program.
As part of this implementation the developer can provide the user defined the
message.
Table control: - Table control is a component in module pool transaction used for
representing a data in table or format. (in the form of rows & columns).
Whenever a functions contains table control component it must be declared explicitly by
using controls keyword.
By default table control supports only horizontal scrolling properties. I.e. it does
not support vertical scrolling.
Vertical scrolling properties should be enabling explicitly by using settings lines
properties of the table control.
23 | P a g e Santosh P
1) For Reading: -
Read dataset <path> into <target variable>.
Note: - Whenever a file is opened in text mode read data-set statement reads the content
from the file line by line in case of binary mode it reads byte by byre.
If the read is successful sy-subrc is set to 0 otherwise 4.
2) For writing: -
Syntax: - transfer <variable> to <path>
Note: -
It a non existing file is open in output mode. SAP creates the file and the file
pointer will be at the beginning of the file for writing the new contents.
Whenever an existing file is opened in output mode. SAP opens the file, deletes
the existing contents and places the file pointer at the beginning of the file for
writing new contents.
BDC (Batch Data Communication): - BDC techniques are used for transferring the data
from legacy system to sap. The legacy system can be any text file or excel sheet.
BDC Techniques: -
1) Direct input method.
2) Call transaction.
3) Session.
Call transaction & session methods are called as Batch Input Methods.
Data migration using call transaction method: -
Data Transaction: -
24 | P a g e Santosh P
As part of call transaction and session method we need to map the legacy system data on to
a transaction for this we need to use the structure BDC data provided by SAP. It contains
following fields.
FVAL: - It holds the field value retrieve name from the legacy system and which needs to
mapped to the transaction fields.
For data migration using BDC migration using BDC techniques the ABAP consultants
needs to understand the format of the legacy system. This includes the information like.
25 | P a g e Santosh P
SM35 Is T-code used for processing the session object.
Step1: - Create the session object by using the function module BDC_OPEN_GROUP.
It contains following parameters.
a) Client: - It holds the client no in which the session object has to be created. Session
object is client dependent.
c) Hold date: - It holds the data in which the session object is blocked.
d) Keep: - It is an indicator to keep the session output even data processing the session
object.
e) User: - It holds the user name where is authorized to process the session object.
Note: - In call transaction the errors needs to be handler explicitly in case of session the log
is generated automatically by SAP itself which can be analyzed at data later point of time.
Step2: - Map the internal table (type BDC data) data to the session object by calling the
function module BDC_INSERT.
a) T-code: - It holds the T-code of the transaction to which the session object data is
mapped.
b) DYNPRO TAB: - It holds the BDC data internal table.
Step3: - Close the session object by calling the function module BDC_CLOSE_GROUP.
Note: - SM35 Is the T-code used for processing the session object.
Note: - Call transaction Technique is online. I.e. when enter the call transaction is executed
the records are processed one after the other. I.e. call transaction is immediate processing.
Session technique is offline processing. I.e. once the BDC data internal table is mapped to
the session object the session object can be processed at later point of time. Whenever the
network traffic to the application server is lss.
26 | P a g e Santosh P
Recording Method: -
In recording technique we need to record a transaction with same input values.
Based upon this recording SAP itself generates a source code.
This source code needs to be edited manual to map it to the legacy system for data
migration.
Note: - BDCMSGCOLL is a structure used for collections the messages which are
captured during data migration using call transaction.
Syntax: -
Call transaction <tcode> using <bdcdata>
Mode <processing mode>
Update<update mode>
Message into <bdcmsgcoll>
27 | P a g e Santosh P
Limitations of direct input method: -
1) No error log is generated so we cant understand how many records and which
records are processed or not processed.
2) There is a possibility of migrating the during migration the records are not passed
to a transaction so no validations are performed on the migrated data.
SAP Scripts: - It is the word processing tool. Used for designing the business documents
such as quotation document enquiry document. Purchase order document, sales order
document invoice etc.
Once these documents are designed they can send to a printer, mail server etc.
As part of ABAP, SAP has provided by SAP are available in the table TNAPR.
1) Open _Form.
2) Write_Form.
3) Close_Form.
Sap script form is a collection of windows. And window is used for displaying the
data.
Every form should contain minimum one window. This window is called as main
window.
A main window can fit to single page it can extend to multiple pages depending
on the data.
1) Design the form using form painter tool (SE71). With appropriate windows.
2) Create a drier program to execute the form.
28 | P a g e Santosh P
Note: - The data in the window can contain different paragraph format. Each paragraph
format is associated with different form and style settings.
Types of symbols in SAP scripts: - Symbols are used for representing a value in sap
scripts there are 4 types of symbols.
1) System symbols
2) Standard symbols
3) Program symbols
4) Text symbols
1) System Symbols: - These symbols and their values are provided by SAP and the exists
as the part of the TABLE-TTXSY.
2) Standard Symbols: - These symbols and their values are provided by SAP. And there
are stored in the TABLE-TTDTG.
3) Program Symbols: - These symbols and their values are provided by developer. These
symbols are declared in form level and the values are supplied from driver program.
4) Text Symbols: - These symbols are exists in the form of control commands.
Note: - Whenever a form is displayed by using START_FORM we must end the form by
using END_FORM before opening the next form otherwise it results is ABORT ERROR.
Standard Texts: - It is an object which holds the common information which needs to be
appearing in all the business documents standard text is created on using the T-code (SO10).
We can include the standard text in any no of forms by using the control
command includes.
Standard text does not generate any change request it needs to be assign to a
request manually.
Note: - For modifying the standard text dynamically based on a condition we need to read
the existing standard text by using the function module READ_TEXT.
Once the text is read we can modifying the text accordingly and update the changes to
standard text by using the function module SAVE_TEXT.
Transporting standard text: - By default standard text does not generate any change
request. It needs o be attached to a change request manually by executing the program
RSTXTRAN.
29 | P a g e Santosh P
Smart forms: - A smart form is also a word processing tool where the development &
maintenance cost is minimum smart form is client-independent because smart form is a
function module generated dynamically whenever a smart form is activated.
A smart form does not require any driver programs it can be executed directly.
Even though a smart form can be executed directly we need to create a driver
program for calling the smart form function module because in the production
system the across to smart form T-code may be decide.
As part of the driver program we need to call the smart form related function
module. But this procedure is not recommended.
The reasons for this are when the smart form is transported to production client.
And when activated it generates a new function module when naming conventions
specific to the production client.
SSF_FUNCTION_MODULE_NAME
Function modules take the smart forms name is input and returns the associated function
module name which is received in a appropriate variable type.
Pass data to smart forms: - To pass the data to smart forms from a driver program we
need to use the parameter sections of the smart form function module.
Text Modules: - Text module is a set of statements which is defined once and which can be
included in any no of smart forms.
Smart Styles: - It is used for designing user defined style format which can be included in
any no of smart forms.
30 | P a g e Santosh P
Control Break Events in Smart forms: - These events must be used only between loop
and endloop.
1) AT FIRST
2) AT NEW
3) AT END OF
4) AT LAST
1) AT FIRST: - This event is trigger whenever the first record of the internal table is read;
this event is triggered only once.
Syntax: -
AT FIRST.
STATEMENTS.
ENDAT.
3) AT END OF: - This event is triggered at end of the last row for specified last field.
Syntax: -
AT END OF <FIELD NAME>
STATEMENTS.
ENDAT.
4) AT LAST: - This event is triggered at end of the last row the internal table.
Syntax: -
AT LAST.
STATEMENTS.
ENDAT.
Secondary Index: -
You should only create secondary indexes, for database tables from which you mainly read,
since indexes have to be updated each time the database table is changed. Secondary
indexes should contain columns that you use frequently in a selection, and that are as highly
selective as possible to improve performance.
31 | P a g e Santosh P
Subroutine: -
Subroutines are procedures that you can define in any ABAP program and also call from
any program. Subroutines are normally called internally, that is, they contain sections of
code or algorithms that are used frequently locally. If you want a function to be reusable
throughout the system, use a function module.
SELECT-OPTIONS RANGES
Select-options generate the selection screen. Ranges do not generate the selection screen.
The table specified as part of select option In case of ranges no need of explicit
must be declared explicitly by using table declarations.
keyword.
By default it contains default values for option Ranges explicitly we need to assign the values
and sign. for option and sign fields.
group.
Function modules can return the value. Subroutines cannot return the values.
Function module are executable programs Subroutines are not executable programs
32 | P a g e Santosh P
Difference between macros and subroutines: -
MACRO SUBROUTINE
The definition of the macro as well as calling The definition of the subroutine as well as the
of the macro in the same program. calling of the subroutine may or may not in the
same program.
It can accept up to 9 place holders (Inputs). It can accept any no of place holders.
Definition should be the first and calling should Calling should be the first and definition should
be the next. be the next.
We can place any executable statements after We cannot place any executable statement after
the definition of the macro. the definition of the subroutine.
There is no XML & HTML Smart forms generate XML output which can
be viewed through the web.
Pages format are only once. Several page formats are possible.
It is client dependent. It is client Independent.
It is possible to create smart forms without a
main window.
Conditions like if..endif, case..endcase inside a Exists as conditions on windows
window
Printer-dependent, only works with printers New barcode technology: SAP converts
that are able to generate barcodes by barcode data into an image, so it works for all
themselves (natively or addition of SIMM); device types which are able to print graphics
few printers supported by SAP
33 | P a g e Santosh P
Difference between main window and variable window in sap-script: -
We can split the main window into smaller We cannot split the variable window.
windows.
Without a main window we cannot design Without a variable window we can design
SAP-SCRIPT. SAP-SCRIPT.
Data is displayed continuously. Based on the window size data is printed.
We can place the same main window up to 99 We can place the variable window only once in
times per page. (00 to 99 times) a page.
In the main window text element is In the variable window text element is
compulsory. optional.
Top Endtop Bottom Endbottom works with in These commands are not work in variable
the main window only. window.
We can process only one transaction at a time. We can process N no of transactions at a time.
We can manually handle the errors in the call The session method generates an error log that
transaction. will handle the errors.
Call transaction is faster than session method. Session method is little bit slower than call
transaction.
Call transaction is suitable for less amount of Session method is suitable for large amount of
data in the flat file. data in the flat file.
Call transaction is the immediate database After processing the session by using session
updating. method the data will be up to in the database.
34 | P a g e Santosh P
Difference between call by value and call by reference: -
It creates a new memory location for use Passes a pointer to the memory location.
within the subroutine. The memory is freed Changes made to the variable within the
once it leaves the subroutine. Changes made to subroutine affects the variable outside
the variable are not affected outside the The subroutine.
subroutine.
In call by value, both the actual and formal Whereas if they are called by reference both
parameters Will be created in different will be created at the same location.
memory locations.
In call by value method, a compiler get a copy But in call by reference method, the compiler
of the variable and thus changes made in the didn't get any copy , but actually it works on
value in function will not reflected back to the the original copy and thus changes will be
called function. reflected back.
It displays the output in a list format. It displays the output in a grid format.
35 | P a g e Santosh P
DIFFERENCES BETWEEN BAPI AND BDC: -
BAPI BDC
LSMW BDC
It is purely designed for functional people BDC is designed for technical people
who do not do much coding. who know much coding.
In the LSMW, mapping is done by SAP. In the BDC mapping is done by
ABAPER.
LSMW offers 4 methods BDC offers 2 techniques
1) Direct method 1) Call transaction
2) Batch input recording 2) Session method
3) BAPI
4) IDOC
We can develop the LSMW only for the We can develop the BDC program for
stand and transaction codes. any transaction code.
The input for the LSMW is always text The input for the BDC is any file .txt or
file. .xls.
36 | P a g e Santosh P
DIFFERENCE BETWEEN ENHANCEMENT AND BADI:-
ENHANCEMENT BADI
\
It is the procedural approach. That BADI is OOABAP (approach) so it is
means it needs Some extra time to easy implement the logic.
implement the logic.
CUSTOMER-EXIT USER-EXIT
Customer Exits Are Functions So User Exits Are Forms And Are
They Are Called Using Call Called By Sap Standard Programs
Function (Or More Exactly Using Perform
Call Customer Function)
Inside A Function (Customer Exit) Inside The Form (User Exit) You
You Can Only Access Your Can Read And Change Almost Any
Import/Export/Changing/Tables Global Data From Host
Parameters Program.
37 | P a g e Santosh P
DIFFERENCE BETWEEN BAPI AND RFC:-
BAPI RFC
BAPI can't handle exceptions , the RFC function module can handle it
calling program has to handle it
BAPI are for non sap systems like RFC enabled are basically for sap
I want to access data via java or systems
vb
BADI CUSTOMER-EXIT
38 | P a g e Santosh P