1)
Types of ABAP UI Technologies
Ans: Webdynpro for ABAP, BSP
Ans: Webdynpro for ABAP, BSP
2) MVC Architecture Concepts and usage of the same in ABAP Webdynpro Ans: As per the MVC Architecture there is a clear separation between flow logic,
view and the Business Logic. View holds all the UI elements that are visible
in the UI, Controllers have the flow logic. Controllers are of different kind
(Component Controller, View Conroller,Window Controller).
Business logic is held in the Model which is in the form of Assistance class
in webdynpro context.
in the UI, Controllers have the flow logic. Controllers are of different kind
(Component Controller, View Conroller,Window Controller).
Business logic is held in the Model which is in the form of Assistance class
in webdynpro context.
3) Difference Between the View Container and the Transparent Container
Ans: View Container holds the views, there can be multiple views assigned to the
view container but only one view can be active(viewed) at a time.
Transparent holds the webdynpro UI elements, A layout type can be
associated with it.
4) What does a Model Class Consists of
Ans: Model Class is the Assitance class in webdynpro. It contains the Business
Logic in the form of methods, Global data & Constants in the form of
Class Attributes. The Model class can be accessed in webdynpro component
using the attribute wd_assist->. Note: All the visibility properties of the
Class are applicable when accessing the class using the object wd_assist.
5) What is an Assistance Class and How is it Instantiated in Webdynpro
Ans: Assistance Class is the model class which would act as the data provider
for the webdynpro component and it is instantiated by the webdynpro
component during the run time and no explicat instantation is required.
6) Design Patterns in Webdynpro(GAF,OIF,QAF Etc)
Refer to the link:
FPM Concepts in Webdynpro
7) How do you debug an web based Application
(Could be from ABAP Webdynpro, BSP or CRM Web UI)
Ans: External break-points should be used to debug web UI's.
8) How do you create a ALV Report/Editable ALV in Webdynpro
Ans: ->Add the Standard ALV component to the web dynpro Component.
->Use Components tab: Ex: ALV_MATS type SLV_WD_TABLE
->Create a context node with the table field information to be displayed
->Write the ALV Default Code for table display
->Set the read only attribute to false to switch to editable mode using
the method set_read_only of the interface
IF_SALV_WD_TABLE_SETTINGS implementing class
CL_SALV_WD_CONFIG_TABLE).
9)
How do you Navigate between Views in Webdynpro
Ans: Navigation between Views is through Plugs(Inbound and Outbound),
Ans: Navigation between Views is through Plugs(Inbound and Outbound),
10) Usage of Plugs in Webdynpro
Ans: Plugs are used to Navigate between the views. Parameters can be
passed using the plugs similar to interface parameters of function module
or a class method.
11) Usage of Webdynpro Component Controller
Ans: Component controller is used to the store the Global attributes and
Methods of the component. Attributes/methods declared in the component
controller are visible through out the component and they are accessed
using the attribute wd_comp_controller outside of component
controller(like views,windows etc)
All the context nodes defined in the component controller are
visible in all the views and windows of the component.
Ex: if a variable called gv_count is defined in the component controller,
it can be accessed in the view using the syntax
wd_comp_controller->gv_count.
12) How do you access a Context Nodes and elements Programmatically
Code required for accessing the Context Nodes can be written using
the webdynpro code wizard.
For Ex: if there exists a Node Node1 with cardinality 1:1 and has
3 Attributes to it Att1, Att2,Att3. The attributes can be accessed
using the below code.
data: lo_nd_node1 type ref to if_wd_context_node.
data: lo_el_node1 type ref to if_wd_context_element.
data: ls_node1 type wd_this->element_node1.
lo_nd_node1 = wd_context->get_child_node
( name = wd_this->wdctx_node1 ).
lo_el_node1 = lo_nd_node1->get_element( ).
**Read Node1
lo_el_node1->get_static_attributes(
importing
static_attributes = ls_node1 ).
**Write to Node1
lo_el_node1->set_static_attributes(
exporting
static_attributes = ls_node1 ).
13) Message Areas in Webdynpro
Message areas are created in views to display messages
(Error,Success,Warning,Info).
WD allows to have multiple Message errors in a view but throws an
error when the view is displayed.
Use the code wizard to get code for raising error messages.
Few of the message classes and methods are:
Interface: if_wd_message_manager.
methods: report_t100_message.(used to report message from the
message class)
14) Concept of OTR(Online Text Repository) and its Usage
OTR's are similar to text elements in ABAP. OTR's are created for
UI texts and texts can be maintained in multiple language.
OTR's can be created using the transaction: SOTR_EDIT
15) Concept of Interface Views
If the views of a different components are need to be used in a
webdynpro component mark the view as interface view and use it in
another component. It's similar to using a include in a program.
A Interface view of the component can be used in any no of components.
this concept supports the reusuability of the views.
16) Sequence of Webdynpro Events:
Ex: WDDOINIT,WDMODIFYVIEW,WDAFTERACTION,
WDBEFOREACTION etc
Sequence: WDDOINIT of the component controller,
WDDOINIT of the Window Controller,
WDDOINIT of the View Controller,
WDMODIFYVIEW(On Input/Display on any UI Element).
WDBEFOREACTION(Method for validation of user input,
Once the user action happens on the UI)
WDAFTERACTION(Method for non-action specific operations
before Navigation)
WDDOEXIT( Exit from the View/Window/Component Controller)
17) Can a Component have Multiple Applications
Yes, For a given webdynpro component any no of applications can be
created. Applications are similar to transactions in SAP.
You can associate different Interface views of the component to
create different applications using the same component.
18) How do you launch a Webdynpro Application from a Transaction
Refer to the previous blog Calling webdynpro application from a Transaction
URL: http://sapabapwebdynpro.blogspot.com/2011/04/call-abap-webdynpro-application-from-r3.html
19) How do you Navigate between two Webdynpro Components
You can use Interface views to navigate between components or create a navigation class and
do a explicit call.
20) Creating a tree in Webdynpro
Tree UI element is used to create Tree in Webdynpro.
Tree can be defined as part of the table column.
21) Usage of Exit Plug in a Webdynpro Window
Exit plugs are outbound plugs used to close the webdynpro application.
they can be called from the view which are embedded in the window
Note: Exit plugs won't work in portal environment.
Exit plugs can also be used to pass the call to another URL.
Here is the sample code snippet of the exit plug call:
method onexit .
data url type string.
data close_window type wdy_boolean.
url = 'url_name'.
close_window = abap_false.
wd_this->fire_to_exit_plg( url = url
close_window = close_window ).
endmethod.
Other Interview Questions
. Can we write the
code both call transaction and session method in single program?
Ans. Yes it is possible to write call transaction
and session in one program.
2. Which BDC you
prefer?
Ans. If we want to transfer large amount of data
and when we need to use more than one transaction code we prefer session
method. For small or less amount of data and for single transaction use call
transaction.
(This is more genric answer but you can add more
on to this if you have worked on BDC)
3. When u prefer LSMW?
Ans. When we need to update medium amount of data
we use LSMW. LSMW is also used when the person like functional consultant has
less programming language.
5. Difference between
.include and .append?
Ans.
Include structure allows
to add one or more structure into structure or table.Also placed positioning
anywhere. Upto 6 include structure can be used in a table.
Append structure can be
placed only at the end of a structure or table which also stops further
insertion of fields.Only one append structure can be used
6. Preformance
techniques
Ans.
1. The sequence of fields must be same as per
database table
2. During writing select query write all fields
in sequence as per database table.
3. Never write select statements inside
loop….endloop.
4. Use st05 SQL trace, se30 run time analysis,
code inspector, slin,etc.
5. Use select single * statement instead of
select *
6. Always use primary key
7. Use binary search but before using binary
search sort that table.
7. How to debug
sapscripts ?
Ans.
Two ways to debug sapscript . first way is goto
SE 71 and from menu bar select Utilities->activate debugger .then goto SE38
execute the print program ,it automatically goes to debugging mode …..the other
way is , run the program RSTXDBUG in se 38 . execute it . a message will show
that debugger is activated .now open the print program in se 38 …u vll notice
that the print prgm is automatically diverted to debugging mode.
8. What is partner
selection?
Ans. This concept is mainly used in IDOC where u
select the partner profile using Tcode We20 .with Tcode SM59 you create
RFC(remote function call) to create communication link to a remote system.
10. What is occurs in
internal table?
Ans. Occurs addition to the Declaration will give
initial size to that table.occur statement allocates 8kb of memory to the
internal table.
11. What is page
window?
Ans : page window is nothing but a container of a
page ,which uniquely identifies a set of data …for example while creating
invoice …we create logo window , billing document header window , customer
window , terms and condition window etc …
12. What is the
difference between scrolling a table horizontally and vertically..??
Ans: In table control when you scroll a table
vertically presentation server needs to call application server to fetch the
next record and display in the table while in case of horizontal scroll there
is no need to call application server.
13. What are Field
Groups?
Ans: A group that combines several fields fewer
than one name, at runtime, the INSERT command is used to define which data
fields are assigned to which field group are called Field Groups. It should
always be a HEADER field group that defines how the extracted data will be
sorted; the fields grouped under the HEADER field group sort the data.
14. List the events in
ABAP/4 Language?
Ans: The events in ABAP/4 are load of program
,Initialization, Selection Screen, Start of Selection, End of Selection, Top of
page, Line selection, User command, End, First.
15.How the values will
be passed to RFC Function module PassbyValue or Passbyreference?
Ans: always Pass by Value.
RFC is Remote Function call so it can’t access
the values with Pass by reference.
16. Buffering concept
usage?
Ans: There are three type of buffer
1 single record
2 generic buffer
3 full buffer
Buffering is use for improve performance. it
improves performance 10 to 100 times more
17. Select up to 1 row
and select single difference ?
Ans: Select single fetches first matching
record. If more than one matching records are there then only the first
matching record will be considered other records will not be taken into
account. Where as select up to 1 rows will fetch all the matching records from
the database.(Again it will assign only One Record to the internal table/Work
area)
18. What are the
different buffering methods?
There are two different buffering methods
The system ensures that data transfer between the
R/3 System and the database system is as efficient as possible. To do this, it
uses the following techniques:
Table buffering: The program accesses data from
the buffer of the application server.
Database request buffering: Individual database
entries are not read or passed to the database until required by an OPEN SQL
statement.
19. Different types of
locks?
v Read lock (shared lock)
Protects read access to an object. The read lock
allows other transactions read access but not write access to the locked area
of the table.
v o Write lock (exclusive lock)
Protects write access to an object. The write
lock allows other transactions neither read nor write access to the locked area
of the table.
v o Enhanced write lock (exclusive lock
without cumulation)
Works like a write lock except that the enhanced
write lock also protects from further accesses from the same transaction.
20. CHAIN END CHAIN?
Ans: Chain and end chain are used for multiple
field validation in Module pool programming .It is written inside the screen
flow logic.
21.How to Debug RFC
Function module?
Ans:
SE38 –> Utilities –> Settings –> ABAP
Editor –> Debugging
Activate the external debugging and choose the
New Debugger option in ABAP debugger.
Go to the particular place in the code and put
break point, pop will appear then choose the HTTP break point.
If you are triggering the RFC from SAP portal
make sure that both the user ID should be same
If the users are different then provide the
XI/Portal User ID in the users field.
22.Why sapscripts are
client dependent and smartforms are client independent.?
Ans-: Smartforms create its own function module
so it doesn’t need to transport the request through SCC1.As all the Development
Object are stored in client independent tables. Whereas Script doesn’t generate
any function module while executing so we need to transport the request
number through SCC1.Sap script is stroed in side the client depended table as a
TEXT.so sapscripts are client dependent and smartforms are client independent.
23. Difference between
user exit and BADIs?
Ans: User exit is for single implementation and
it is procedural approach while BADIs are for multiple implementation and
object oriented approach.
Multiple implementation means Reusability…
because we use OOps Concepts for BADI.
24. Control break
events in ABAP:-
1. AT-FIRST: This is used when we want to execute
the statements before records are processed.
2. AT-LAST: This event is used when we want to
execute the statements after all records are processed.
3. AT-NEW: This event is used when we want to
execute the statement before group of records are processed.
4. AT-END: This event is used when we want to
execute the statements after processing of group of records.
25.I am uploading 100
records out of which say 59th record has error so what will happen if i am
using synchronous or asynchronous method of BDC? Can we update the database
using local update mode how?
26. Suppose i am
writing following code then what will be output?
LOAD-OF-PROGRAM.
WRITE:/”HELLO”.
Ans:
HELLO
(Explain the importance of LOAD-OF-PROGRAM
Event.If you dont know Tell the interviewer as this event is used in such cases
when you want to clear sum buffers or something Before calling that Program)
27. What is TMG?
Ans. TMG stands for Table Maintenance generator.
It is a tool available in abap by which we can add or delete multiple records
at a time and it is executed or triggered by the transaction code SM30.
28. Difference between
select option and ranges ?
Ans. The main difference between select option
and ranges is that ranges implicitly or automatically creates internal table
with fields like OPTION,LOW,HIGH,SIGN,etc . Where as in case of select option
we have to explicitly create internal table.
When u declares a select options it will
implicitly declare an internal table (ranges) for you.
While using RANGES syntax u can declare internal
table explicitly.
The only need of declaring ranges is when you r
not taking input from the user but you want make limit based selection at that
time it will be use full e.g. SELECT ** from ** where MATNR in val_range.
here u can use select-option or ranges :
val_range.
29. is it possible to
bring select option in module pool screens?
Ans.Create a SELECT-OPTIONS in module pool screen
using two methods as shown.
Method 1:—-
a) Create a subscreen area in your screen layout
where you want to create the select options.
b) In the top include of your module pool program
declare a selection screen as a subscreen e.g.
SELECTION-SCREEN
BEGIN OF SCREEN 100 AS SUBSCREEN.
select-options
s_matnr for mara-matnr.
SELECTION-SCREEN
END OF SCREEN.
c) In the PBO and PAI of the main screen where
the select options needs to be created do a call subscreen of the above screen
(100).
CALL SUBCREEN sub_area INCLUDING
This CALL SUBSCREEN statement is necessary for
transport of values between screen and program.
Note: All validations of the selection screen
fields e.g. the s_matnr field created above should be done in selection screen
events like AT SELECTION-SCREEN etc and not in PAI. These selection screen
validations etc should be done in the top include only.
Method 2:——-
a) Create 2 separate fields in your screen layout
– one for the low value and one for the high value. Insert an icon beside the
high value which will call the multiple selections popup screen on user
command. Use function module COMPLEX_SELECTIONS_DIALOG to achieve this.
continued ……
struc_tab_and_field-fieldname
= con_cust. ” ‘KUNNR’
struc_tab_and_field-tablename
= con_kna1. ” ‘KNA1′.
CALL
FUNCTION ‘COMPLEX_SELECTIONS_DIALOG’ EXPORTING*
TITLE =
‘ ‘
text =
g_titl1 ” ‘Customers’
tab_and_field
= struc_tab_and_field
TABLES
RANGE = rng_kunnr
EXCEPTIONS
NO_RANGE_TAB
= 1
CANCELLED
= 2
INTERNAL_ERROR
= 3
INVALID_FIELDNAME
= 4
OTHERS =
5.
IF NOT
rng_kunnr[] IS INITIAL.
* Read
the very first entry of the range table and pass it to
* dynpro
screen field
*READ
TABLE rng_kunnr INDEX 1.
IF
sy-subrc = 0.
g_cust =
rng_kunnr-low.
ENDIF.
ENDIF.
You can use the return table rng_kunnr to
populate your own internal range table with the values entered by the user.
Basically here you are just simulating the work of a select-options parameter
by module pool screen elements.
30.how we can retrive
data using secondary index.explain with simple example
Ans: First create secondary indexes on
required fields of a particular database table.
We can create one primary index and 15 secondary
indexes.Once the respective secondary indexes are created write select queries
and within select queries specify secondary indexes field name with where
clause.
31.How can we handle
table control in BDC?
Ans.We can handle table control using line index
Line index indicates which line of Table control
is to be use for BDC transaction
Ex -
perform bdc_field using ‘RC29K-AUSKZ(01)’
Indicates 1st line of table control is going to
be used for transaction which is Line index of Table Control
32. If i want to
execute a BDC program only in background not in foreground is there any option
for this?
Ans.The sm37 transaction can be used for running
a program in the background. Also in the session method while processing the
session you can specify the processing type as background or foreground.
33.How Can We upload a
text file having Delimiters in to Legacy System
Ans.For up loading text file we use the
pre-defined FM gui_upload. in that FM we have the parameter has_field_seperator
for that we assign the default delimiter ‘x’.
HAS_FIELD_SEPERATOR ‘X’
‘X’ can provide the Whatever delimiter we used in
flat file for separation.
34. What is the land
scape in sap.
Ans. In every organisation sap landscape involves
three servers viz, Development server, Quality server and Production server.
Whatever new development we do as per clients requirement is done in
development server. Later to test the developed object we move it to quality
server for testing and finally once everything goes clear then the object is
moved to production server ,production server data is ready for final business
use.
35. Workbench request
are client dependent or client independent
Ans. Workbench request are client independent.
(Common Man Workbench request holds the Program ,
FM etc…. How it can be Client Dependent!!!!)
36. Tell me about
workbench request and customization requests.
Ans.Workbench (ABAP Dev) request is client
independent when you import it into one system it reflact it in all client in
same system, but customized request has to import in that client perticular
client where it is created, actually it is client dependent.
Other Interview
questions…
SAP SCRIPTS & FORMS
1. Can we write the code/program inside sap
script?
2. How will u create sapscripts & smartforms
in multiple language?
3.How to execute sap script & smart forms in
Background?
4.How to do total & subtotal in scripts &
forms?
=================================================
DATA DICTIONARY
1.Apart from .include & .append how will u do
table enhancement?
2.what r the events of table maintainence
generator?
3.what will happen if i use projection view and
maintainence view together?
4. I created ZEMP table now i want to add more
data but prev. data should not disturb how can i do this?
=====================================================
REPORTS
1.How will u print footers in alv report?
2.How will u edit fields from output list of alv?
====================================================
BDC
1.what r the fields u took during recording for
mmo1,me21n?
2.If u want to do bdc for xd01 explain me how
will be the flow?
=================================================
user exits
1.what r enhancement points?
2.How to write customer exits?
3.what is routine? how it is different from user
exits?