Recently Updated SAP Webdynpro Interview Questions
1) Types of ABAP UI Technologies
Webdynpro for ABAP, BSP
2) MVC Architecture Concepts and usage of the same in ABAP Webdynpro 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.
3) Difference Between the View Container and the Transparent Container
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?
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
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)
External break-points should be used to debug web UI’s.
8) How do you create a ALV Report/Editable ALV in Webdynpro
->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
Navigation between Views is through Plugs(Inbound and Outbound),
10) Usage of Plugs in Webdynpro
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
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)
WDPOSTPROCESSING(used to perform exception handling for supply function methods)
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.
22) why FQDN(Frequently Qualified Domain Name) is necessary for running Webdynpro Applications
Refer to sap help:
http://help.sap.com/saphelp_erp2005/helpdata/en/67/be9442572e1231e10000000a1550b0/content.htm
21) Standard ALV Component required to create ALV Reports in Webydnpro
SALV_WD_TABLE
22) How do you build Select Options in Webdynpro
Using the standard webdynpro component WDR_SELECT_OPTIONS
You can refer to the example: WDR_TEST_SELECT_OPTIONS
23) How do you build F4 Search Help in Webdynpro
A F4 help for an input field can be made available by attaching the search help to the table field. Usage of standard help component WDR_OVR.
Creating a component for help and attaching it to the node element as Freely programmed value help
24) How are Plugs(Inbound/Outbound) bounded in the Window
Plugs are created in the view and bounded in the window by using the drag drop option in the window view.
25) How do you Control the visibility of the Webdynpro UI elements Programmatically.
Create a context element of type wdui_visibility and bind to the visibility property of the UI element.
26) What is the use of Interface views/nodes in Webdynpro.
Interfaces nodes and views are created to use them in other webdynpro components.
27) How do you navigate between different Webdynpro applications
Create a navigation class and trigger the target application to be called.
28) What are the webdynpro init events and what is the sequence of trigger
Sequence: WDDOINIT of the component controller,
WDDOINIT of the Window Controller,
WDDOINIT of the View Controller,
29) How are Error messages created and handled in webdynpro
Create a message UI element in the view and trigger the message required(Error,warning,status) using the code generation wizard.
30) What is an OTR and mention its usage in Webdynpro
Online Text Repository is the central storage for texts for webdynpro
applications. An otr can be fetched in the program using the below mentioned code.
data: lv_string type string.
lv_string = cl_wd_utilities=>get_otr_text_by_alias( alias = ‘PACKAGE/OTR_NAME’ ).
31) Can text elements be used in webdynpro, if yes how?
Yes text elements can be used in webdynpro.
Refer to the below code snippet.
data: lv_string type string.
lv_string = wd_assist->if_wd_component_assistance~get_text( ‘025’ ).
32) What is the use of Road Map UI element
Roadmap UI element is used to display step-by-step workflows. It can used to clearly define a process.
33) What are exit plugs?How are they created?
Exit plugs are used to exit from the webdynpro page or an webdynpro window.
Exit plugs are created in the window.
34) Is it possible to hide F4 function for an Input element programmatically?
Yes it is possible to hide F4 function attached to an input field.Use the interface
if_wd_context_node_info and the method set_attribute_value_help
35) How do Webydnpro Upload and download functions work, Explain.
Fileupload UI element is used upload files from desktop the application.
There is also restriction on the max data volumes that can be uploaded.
Filedownload UI element is used to download files to the client.
36) Explain the concept of Road Map UI element in Webdynpro.
Refer to the link: Road map UI element webdynpro for abap
37) How to create popups in webdynpro.
Create a view and embed the view in the window and call the window to trigger the popup.
38) Explain the concept of OVS and its usage
WDR_OVS is the standard webdynpro component to generate F4 helps
for the input field. OVS refers to Object value selector.
39) Using Radio Buttons/Checkboxes/Dropdown lists in webdynpro
Radio buttons/Checkboxes are used for objective selection similar to what is available in SAP GUI. An event is associated with each UI element for onclick action.
40) FPM Concept and its usage in webdynpro.->>>>Refer to the link
41) what is internationalization in webdynpro abap application?
Internalization refers to creation of texts used in webdynpro application in a specific language and providing option to translate to multiple languages if necessary. This is achieved by using OTR’s or text elements for static texts and performing translation when required.
42) What is Cardinality of a context node in webdynpro
Cardinality refers to no of elements a node can accomodate during run time. When a node is created the
cardinality is assigned to it.
Cardinality is of the following kinds:
0:1 –>At run time, no element or maximum one element can be instantiated
0:n –>At run time, no element or maximum of n elements can be instantiated
1:n –>At run time, minimum one element or maximum of n elements can be instantiated
1:1 –>At run time, only one element should always be instantiated
if you try violating the cardinality there would be a short dump saying Number of elements of the collection of node node_name violates the cardinality
43) what is Personalization in abap webdynpro application
Personalization refers to changing the properities of UI elements at runtime. Personalization settings are user specific. Configuration controller is used for personalization function.
ex: Changing the order of columns in a table display.
44) what are the controller types in webdynpro ABAP
-Component Controller->Component Controller is global part of the component and each component has only one component controller. Global Attributes and methods required by the component can be defined here.
-Custom Controllers->Custom controllers are defined during design time and these are optional. The visibility Custom controllers is in the entire component and has the life time equal to life time of the component. Custom controllers are used if a set of views have to be grouped to perform a special function or hold a set of data.
-View Controller->Flow logic of the views are in view controller and a view can have only one view controller. The visibility of View controller is specific to view only.
-Configuration Controller->Configuration controller is used achieve personalization function.
-Window Controller->A window controller exists for each window and can also have methods to write coding logic. Every window will have the default method and it is used to receive parameters. The windows controllers are visible in entire component and also in the custom controller.
45)what are Layout types in Webdynpro and its usage
->Flow Layout : Used for sequential display of WD UI elements.
->Row Layout : here each ui element is displayed on its own column and the width differs from row to row.Rowheaddata is used to insert a break.
->Grid Layout : Ui elements are arranged based the no of columns. line breaks are inserted based on the size.
->Matrix Layout: Matrix layout arranges ui elements in columns. Matrixheaddata is used to insert a line break.
Usage of the appropriate layout to build a webdynpro application is determined during the UI design.
46)what is supply function method in SAP
->Supply function method is used to populate the context node or to default values to the context node elements. supply function method is called before the node is accessed for first read.
->Using supply function method is optional
47)what is singleton property of context node
->Singleton property is one of the attributes of the context node if this is set there can be only one instance of the respective context node at runtime.
48)How to default a value to the context attribute
In the context attribute there is a property to set the default value. Use the same, However the
default value can be overwritten using the set_attribute method of the interface if_wd_context_element.
49) Web Dynpro Applications are built on Which Programming Technique and What Pattern are followed ?
Web Dynpro framework uses declarative programming techniques to create a meta-model of the application which is free from back-end and front-end programming languages. Rather the metadata is programming language-neutral and has information stored in XML format. It’s only during run-time that the rendering engine generates the code in html and java script from this meta model of the application. So the design part – which defines the UI and data flow between UI elements – is completely abstracted minimizing the coding (which is required only for implementing business logic).
The model-driven approach helps developer to focus less on coding and technology part and more on the design part of the application – “minimizing coding and maximizing design”. Naturally, the primary focus of business application developer should be the business logic and the technological implementation should not distract him.
MVC pattern is followed in Webdynpro abap.
50) What is View Assembly ?
A window defines the super set of all possible views that a Web Dynpro application could require whilst running a particular component. The number of views visible at any one time however, will typically be only a subset of the number of views embedded within the window.
The subset of views rendered at any one time is known as the View Assembly. User interaction followed by subsequent navigation processing will frequently cause this subset of views to change with every server round-trip. The view assembly represents those views seen by the user on their client device after the completion of a particular server round trip.
51) What is Face Less component ?
It is a component with zero views and zero windows. Such a component is known as a “faceless” component and is useful when a complex unit of functionality requiring no direct user interaction needs to be encapsulated. A good example of a faceless component is the creation of something called a model component. This is not actually a specific Web Dynpro component type; rather it is a standard Web Dynpro component that has been written specifically for the task of interacting with a model object.
52) What are the types of Controller? Describe ?
In broad terms, SAP has defined two categories of Web Dynpro controller. The difference between them is simply this: A controller either
Has a visual interface, or
Does not have a visual interface.
SAP has introduced this difference in order to maintain a strict separation between those parts of the business application that display data (typically data consumers), and those parts of the business application that process data (typically data generators).
53) What are Recursion Nodes ?
The recursion node is a special type of node used when a node hierarchy with a recursive structure needs to be created. This is needed when, for instance, the depth of the node hierarchy is not known until runtime. Using a recursion node, you can declare that a particular node structure be replicated as a child of itself. A good example here is if your context needs to hold information in the same structure as a file system, containing directories and sub directories.
54) What is an Empty View ?
There is a special type of view known as the empty view. This view requires no manual implementation, neither is it possible to interact with it in any way other than invoking its default inbound plug – show Empty View. If you require one particular area of a view set to be empty, then you should embed the empty view into the view area.
You can then treat this view just like any other view you have written, except that calling its inbound plug will cause the corresponding view area to be blanked out. If a view set has had no views manually embedded into one of its view areas, then the empty view will be substituted automatically.
55) How does the Web Dynpro framework decide which particular views make up the current view assembly ?
When an application is executed for the first time, only those views which have their default flag set to true will belong to the first view assembly.
Thereafter, user navigation will occur and the view assembly will be composed of those views that have been newly instantiated (on account of their inbound plugs being fired), and those views that persist from the previous view assembly (because no outbound navigation took place from them).
Define WebDynpro Controller.
Controllers are the active parts of a Web Dynpro component. In the design of Web Dynpro controllers, SAP has made a significant modification to the original MVC concept of a controller.
56) Main advantages of the original MVC design ?
One of the main advantages of the original MVC design was its focus on the reusability of models, views, and controllers as individual coding units. However, Web Dynpro is focused on more than just the technical reuse of coding entities. Instead, Web Dynpro has been designed to be the foundation for implementing business solutions. Therefore, one of the key elements in its design was the need to provide a reusable unit of code that corresponded to an atomic step within a business process, rather than trying to build business solutions from reusable units of low level code that, in themselves, were not directly related to the business process.
In other words, the Web Dynpro component is a reusable unit of code at the business process level, rather than the technical coding level. The resulting change in the nature of code reuse produces a shift in the developer’s focus of attention during coding. No longer are they concerned so much with the reuse of technical coding units; instead, the design of a Web Dynpro component focuses on the reuse of atomic units of business processing. A component can be thought of as a set of controllers, views, and model usage declarations that have been aggregated for the specific purpose of reuse.
57) If the view set concept is not implemented in Web Dynpro for ABAP, what options are there for reusing views ?
In both Web Dynpro for ABAP and Java, there is a specific UI Element called the View Container. This UI element, when added to a view layout, acts as a container for any other view. View Containers can be arranged in large variety of ways in order to achieve the desired layout on the screen.
The views that can be embedded into a View Container UI element are the following:
Any view from the current component
Any visual interface from a child Web Dynpro component
An empty view (supplied automatically by the Web Dynpro runtime)
58) What is a View Set ?
A view set is a visual framework that subdivides the window into predefined areas. Each subdivision of a view set is known as a view area, and multiple views can be embedded into a single View Area.
The following preconfigured view sets are available:
T layout T layout 90o T layout 180o T layout 270o Grid layout Tab strip
Each subdivision within the view set layout is known as a view area.
59) How is model-driven architecture implemented in Web Dynpro framework ?
Web dynpro framework uses declarative programming techniques to create a meta-model of the application which is free from back-end and front-end programming languages. Rather the metadata is programming language-neutral and has information stored in XML format. It’s only during run-time that the rendering engine generates the code in html and java script from this meta model of the application. So the design part – which defines the UI and data flow between UI elements – is completely abstracted minimizing the coding (which is required only for implementing business logic).
The model-driven approach helps developer to focus less on coding and technology part and more on the design part of the application – “minimizing coding and maximizing design”. Naturally, the primary focus of business application developer should be the business logic and the technological implementation should not distract him.
60) What is Meta Model Concept ?
Since SAP uses both ABAP and Java as languages for the delivery of its application software, any development framework used by SAP must be able to accommodate both the requirements and the idiosyncrasies of these languages. It made little sense to have one design methodology for ABAP based applications and another for Java; therefore, a common structural concept was developed to lie at the heart of all Web Dynpro development. This common structural foundation is known as the “Web Dynpro Meta model”, and acts a language neutral specification for both the visual appearance and development structure of a Web Dynpro program.
Since SAP uses both ABAP and Java as languages for the delivery of its application software, any development framework used by SAP must be able to accommodate both the requirements and the idiosyncrasies of these languages. It made little sense to have one design methodology for ABAP based applications and another for Java; therefore, a common structural concept was developed to lie at the heart of all Web Dynpro development. This common structural foundation is known as the “Web Dynpro Meta model”, and acts a language neutral specification for both the visual appearance and development structure of a Web Dynpro program.
61) What do you mean by Lifespan of a Web Dynpro Application ?
The lifespan of a Web Dynpro application is determined by, and equal to, the lifespan of the application’s root component.
Lifespan of the application’s root component
The component chosen to act as the application’s entry point is known as the root component. When a user invokes the associated URL, the WebDynpro framework creates an instance of the application’s root component. This component instance will persist until such time as the user formally terminates the application, or closes their client (e.g. the browser), enters a new URL, or remains inactive for the configured time out period.
Lifespan of a child component
Any Web Dynpro component may act as the child of any other Web Dynpro component. In such cases, the lifespan of the child component may either be controlled automatically by the Web Dynpro framework, or it may be controlled by coding written by the application developer in the parent component.
62) How can you determine Lifespan of custom controllers ?
The lifespan of a custom controller is determined by a parameter setting made during the design time declaration. It can be either “Framework Controlled” or “On demand”. If you choose “Framework Controlled”, then the Web Dynpro framework will instantiate the custom controller when the component is instantiated. If however, you choose “On demand”, then the Web Dynpro developer must write the coding necessary to instantiate the custom controller.
Each child component usage is instantiated with a unique name that must be defined at design time. During the lifespan of the parent component, a child component may only ever be instantiated once under a given name; however, should it be necessary, you may declare multiple usages of the same child component as long as you specify different usage names.
63) Why would a component need multiple windows ?
A good example of where a Web Dynpro component would need multiple windows is where a single business application needs to be accessible on variety of client devices. For example, a particular application needs to be written that can be executed from both desktop based browsers and handheld devices.
In order to avoid having to write the same business logic twice, you can write a single Web Dynpro component but within it, you define two sets of views. The first set of views has been laid out with a desktop browser in mind (I.E. there will be a lower number of views because a larger quantity of data can be presented on each view).
The second set of views however, is laid out with a handheld device in mind (I.E. the restricted space on the handheld device will mean that more views will be needed in order to present the same quantity of information).
The two sets of views are then grouped together into different windows; one for the desktop based browser, and the other for the handheld device. Couple this design together with the principle that view controllers are not responsible for generating the data they display, and you should quickly be able to see that all the business logic need only be written once and placed within the component controller and custom controllers. The view controllers then simply display (consume) the data supplied to them by the non-visual controllers.
The last step is to define two different Web Dynpro applications. Both applications will use the same Web Dynpro component, but since two windows have been defined, there will be two Interface view controllers – one for each window. These interface view controllers are then used to define the visual interface of each application.
A second example for a component with more than one window is the use of popup windows. A popup window will always be implemented by a separate window which may be defined in the same component, but processed as an independent window.
64) Explain the Concept of Lazy Data Access.
The Web Dynpro framework has been built to follow the principle of Lazy Data Access. This means that the processing required to generate data will not be invoked until the data is actually needed. When this principle is applied to the architecture of the context, it means that unless there is an attempt to access the data in a singleton child node, then even though the lead selection in the parent node has changed, the child node’s supply function will not be called.
65) Before a mapping relationship can be established, what criteria must be met ?
There must be a suitable node available to act as a mapping origin