Friday 7 November 2014

                                 
                                    Web Dynpro FAQ

1.   Difference between ABAP & Webdynpro  ABAP       applications?                                                         

Abap is programing language while Webdynpro is User Interface Tool.ABAP WebdynPro is one of the UI frameworks (with designtime tools and runtime) written in We develop       Webdynpro application by using abap language. WebDynpro is one application where there is a separation of      business and presentation logic while observing the Model View Controller (MVC) concept, or addressing component-based reuse-focused software development. ABAP is an intranet application where WDP is internet application.

2. Difference between DDBK, DDBI?                                                                                                                                                  A: DDBK (Drop Down by Key) is an UI element through which we can display domain fixed values in the form of drop down.
DDBI (Drop Down by Index) is an UI element through which we can display any values in the form of drop down.

3. Under which circumstances you will use DDBK, DDBI?                                                                                                           A: DDBK (Drop Down by Key) is an UI element through which we can display domain fixed values in the form of drop down.
DDBI (Drop Down by Index) is an UI element through which we can display any values in the form of drop down.

4. What are Events for Table, DDBK, DDBI, and Itemlistbox?                                                                                                      A: Events for Table: onColSelect, onCustomFilter, onDrop, onFilter, onLeadSelect, onScrool, onSelect and onSort.
Events for DDBI: - onSelect.
Events for DDBK: - onSelect.
Events for ItemListBox: - onDrop and onLeadSelect.

5. Can you bind id property for any UI Element with an attribute?                                                                                              A: No. We cannot bind ID property on any UI element in web dynpro for ABAP.

6. What is cardinality? How many types of cardinality?                                                                                                    Cardinality is a property which specifies how many records that can be stored in a node.
0.1 – It can contain up to one record or nothing.
1.1 – It can contain only one record. A record by default is instantiated.
0. n – It can Contain N no of records or nothing.
1. N – It contains one record instantiated by default or any No of records.

7. What is selection cardinality & collection cardinality?                                                                          
Collection cardinality: It specifies how many records that can be stored in a node.
Selection cardinality: It specifies how many records that can be selected from a node.

8. Which combination of collection cardinality, the selection cardinality is not applicable?                                  Collection cardinality: 0-n with 1-1 or 1-n selection cardinality are not applicable.

9. What is context binding? Or Data binding?                                                                                                            
Mapping the UI element property to the context attribute or node is called context mapping or data binding.

10.  What is context mapping? How many types? What are they?
Mapping the context of different controllers is called as context mapping.
In web dynpro ABAP we have two types of context mappings
1.Internal Context mapping.
2. External Context mapping. 

11. What is internal context mapping?                                                                                                              
Mapping the context of different controllers within the same component is called as internal context mapping.
Ex: Mapping component controller context to view controller context.

12. What is external context mapping?                                                                                                            
 Mapping the context of different components (component controllers) is called as internal context mapping.
Ex: Mapping component A's component controller context to component B's component controller context.

13. What is service call? What is the purpose of it?
Using service call we can get the data from data base using a remote enabled function module and show in the           internet browser using a webdynpro application.

14. Can we use data element & data type for context attributes?
Yes. We can use either data element or data type for context attributes.
Ex: We can create attribute with data element MATNR and we can create attribute with data type CHAR10.

15. What is MVC Architecture? What is the advantage of MVC architecture? How MVC?
Web dynpro ABAP follows MVC (Modal View Controller) Architecture.
Here M - Modal - actual business logic ex: calling Function modules, class methods etc
V - View - View is nothing but screen with UI elements that holds data.
C - Controller - This is responsible for communication between modal and view.
The main advantage of MVC is for better readability and re-usability.

16. Architecture is applicable in WDABAP apps?
Web dynpro ABAP follows MVC (Modal View Controller) Architecture.

17. Can we embed one view in another view? How?
We can embed view in another view by using view container UI element.
View Container UI Element: is an UI element which holds views.

18. What is purpose of “wd_This”?
wd_this: is the instance on current controller, all methods and attributes in that controller can be accessed by using this instance.

19. What is purpose of “wd Context”?
wd_context: is the instance of root context, technically all the node and attributes and sub-nodes and sub-attributes for this, we can only access nodes and attributes using this root context instance.

20. What is purpose of “wd Comp controller”?
Wd comp controller: this is the instance of component controller, we can access all methods and attributes in component controller with this.

21. How to navigate from one view to another view?
We can navigate from one view to another view using view plugs.

22. How to transfer data form one view to another view?
We can transfer data between two views in two ways.
1. Using component controller.
2. through plugs. 

23. What is navigation link?
Navigation link is a link between outbound and inbound plugs, which is used to determine target view of an outbound plug.
24. What is view controller?
View controller is a local controller for that view, cannot accessed by other controllers.
25. What is purpose of component controller? Different between view controller &component controller?
Component controller is a global controller, the data declared in this can be accessed by all views and window in that component.


26. Which Version of WDABAP you have used?
All these features for Web Dynpro ABAP development works with SAP NetWeaver AS ABAP 7.03/7.31 SP07 onwards, except for Floor Plan Manager Integration which works with backend version SAP NetWeaver AS ABAP 7.4 onwards.

27. What is the purpose of “Assistance Class”?
Assistance Class in WD is used for storing common reusable logic apart from component controller.
It can also be used to store Text Symbols for displaying messages or lables for the WD application.

28. What is the purpose of using “webdynpro code wizard”?
 In code wizard when to use
1. Read as Table Operation
2. Set as Table Operation
3. Append As Table Operation
4. Read
5. Set
6. Append

29. What is the difference between WDABAP & WDJAVA?
Web Dynpro Java uses Java as programming language for developing applications using NWDS.
Whereas Web Dynpro abap uses ABAP as the Programming language and Programming is done in the Tcode SE80 of R/3.
Web dynpro java
  Applications are developed using Java
Web dynpro abap
  Applications are developed using ABAP.

30. What is View Container UI element? How to use it?

 This UI element does not define its own properties, but inherits all properties from the abstract base classs  "UIElement".

Web Dynpro Explorer -> Windows -> ->

CL_WD_VIEW_CONTAINER_UIELEMENT is the runtime class for view container UI element. This class contains a static method to create UI element dynamically. You can use it.

31. What are the various Layouts available? What is the Default Layout?
Here are four types of layouts,
Flow Layout: - It is a default layout. In this layout, all the UI elements will flow from left to right sequentially in a view.
Row Layout: - In this layout, we have the options to set the UI element in a same or separate line. They are,
Row Head Data: It places the UI element in separate or fresh line.
Row Data: It places in same line.
The disadvantage with row layout is, it doesn't follow any vertical format.
Matrix Layout: - This layout is also almost same as row layout, which is used to place the UI element in a separate or same line. The options available are,
Matrix Head Data: It places the UI element in separate or fresh line.
Matrix Data: It places in same line.
The main advantage is, it follows the vertical format.
Grid Layout: This layout has user friendly options to arrange the UI elements like column count, padding left, padding right, padding top, padding bottom, cell spacing etc. This layout also follows the Grid layout.

32. How many types of messages are available in WDABAP?
There are two types of messages in Webdynpro ABAP:
                                                            1. Static Messages
                                                            2. Dynamic Messages

33. What is Phase Model? What is the basic Process Flow of any WD ABAP app?
The phase model records the basic specifications for phase delivery for media products. The phase model is period-related. It determines the dates on which a media issue is to be delivered to retailers in different target areas (geographical units).
A phase model can be valid for more than one media issue.  
34. Which interface is Re-implemented for FPM usage?
webdynpro component interface IF_FPM_UI_BUILDING_BLOCK. 
35. What is the different between BAPI & RFC?   
Bapi's are nothing but RFC enabled function module....... and the main difference b/w RFC & BAPI is that BAPI is maintained in BOR (business object repository)...
RFC can have only one instance whereas BAPI can have many.
API's can't handle the exceptions,the calling program has to handle.
But RFC's are handle the exceptions independently.
BAPI: it’s a remote enabled function modules available for public to interact with SAP
RFC: It’s a protocol used to call a function module from SAP system A to SAP system B.
BAPI:Outside world can interact with SAP thru BAPI.
RFC: Outside world cannot.
BAPI is Function Module, it is RFC enabled or local
RFC is protocol to communicate to other system function.

36. What are the Methods Available in Interface “IF_WD_CONTEXT_NODE”?
IF_WD_CONTEXT_NODE  is implemented in the class CL_WDR_CONTEXT_NODE,

GET_ATTRIBUTE
Returns the Value of Individual Attribute

GET_ATTRIBUTE_REF
Returns Reference to Copy of Attribute Value

GET_CHILD_NODE
Child Node of Lead Selection or Specific Index

GET_CHILD_NODES
All Lower-Level Nodes of Lead Selection or Specific Index

GET_CONTEXT
Provides Context

GET_ELEMENT
Element of Lead Selection or Specific Index

GET_ELEMENTS
Returns All Elements 

37. What is the MVC architecture? What is the advantage?
We chose it because it looked easy and separated process from display
Then benefits and advantages of this architecture has been accepted by most of the coders and software engineers.
Model:
It handles data processing and database works part.
View:
View prepares an interface to show to the user. Also view handles requests from user and informs controller.
Controller:
Let’s say controller is like brain of the system.
 Because it processes every request, prepares other parts of the system like model and view.

38. What is the Dynamic Component Usage?
My components are not in used componenty. In runtime user will search the component in server and shall embed in my application. So component usage is also dynamic.

39. What is the purpose of Interface view?
Interface view there we will be having plugins.
Those plugins are meant for communication between applications.

Suppose

application1                           application2
Inbound plug      -
>        Outbound plug.
Interface View
Each window has a uniquely assigned interface view. This interface view represents the outward view of the window. The interface view is linked with a Web Dynpro application so that the window can be called using a URL.

                                                                                             
40. What is the webdynpro Personalization (P13N)?
Personalization is the process of adapting an application or a user interface to user-specific needs.
Usage of Different Flavors of Personalization
In general we differentiate between the following personalizations capabilities:
Portal personalization - available for all type of applications running within the SAP NetWeaver portal. The portal personalization supports the changing of several global portal settings such as the preferred language or the portal theme.
Explicit iView personalization - The explicit iView personalization defines the capability to adjust iView properties which are explicitly defined for a specific iView.
Implicit Web Dynpro personalization - The implicit Web Dynpro personalization allows customizing of visual aspects of Web Dynpro UIs without any additional programmatically effort or configuration. Typical examples are hiding UI elements or changing labels or tool tips.

Explicit Web Dynpro personalization - The explicit Web Dynpro personalization allows you to explicitly define the properties and the UI. A typical use case is to define personalize a generic Web Dynpro component to show table data, which is used in many Web Dynpro applications. If you want to personalize this component, you can use the explicit Web Dynpro tools to define the specific properties and the appropriate personalization dialog box for setting the properties.

41. What is an Interface View?
                                 Interface View acts as a Gateway between browser and the Web dynpro Application. It helps the User to enter the Web Dynpro Application. From the Browser, the request enters the Web Dynpro Application through this Interface View. It also acts as the Gateway between two Web Dynpro Components.
 Interface View
Each window has a uniquely assigned interface view. This interface view represents the outward view of the window. The interface view is linked with a Web Dynpro application so that the window can be called using a URL.




43. When to use Invisible Ui Element?
The UI element Barcode Reader is used for mobile data entry with a pocket PC that is able to read barcodes with the aid of special equipment. For example, it can be used to read the barcode with an EAN product ID featured on a product’s packaging.
If you insert this UI element into a view of a mobile Web Dynpro application, the pocket PC is then ready to scan when the application is called and the read data can be passed to the J2EE Engine (server
Assign the value to attribute "ui_profiling”, based on what you want i.e., visible or invisible 

44. Difference between Radio Button Group by Index & Radio Button Group by Key?
The ONACTION method of Radio button group by index UI element we can get the index of the radio button clicked by the user and in case of ONACTION method of Radio button group by key, we can get the key of radio button clicked.

Data binding for Radio Button Group by Index
The property text must be bound to a context attribute that lies within a context node with the
Cardinality 0.n or 1. For each element of this node a Radio Button with the respective value of
The text attribute is displayed as a text.

Data binding for Radio Button Group By key
The values for the Drop down by Key are determined from the value set of the attribute bound
To the property selected Key. If the attribute has an ABAP Dictionary type and if fixed domain
Values are defined for this type, these values are used. The text for the respective value is
Displayed in the list and in the Drop down by Key field.

45. Types of ABAP UI Technologies
      Ans: Webdynpro for ABAP, BSP


46.  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.


47.  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.

48.   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.

49.   What is an Assistance Class and how it is 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.
50.   How do you debug a 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.
51.  How do you create an 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).
52.   How do you navigate between Views in Webdynpro
       Ans: Navigation between Views is through Plugs (Inbound and Outbound),

53.  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.

54.  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.


55. 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).


56. 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)

57. 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


58. 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.
       An Interface view of the component can be used in any no of components.
       This concept supports the reusuability of the views.

59. 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)

60. 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.

61. How do you Navigate between two Webdynpro Components
      You can use Interface views to navigate between components or create a navigation class and
      do an explicit call.

62. 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.

63. 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.


64. What are the standard Interfaces and CLasses available for Webdynpro ABAP?
CL_WD_COMPONENT_ASSISTANCE

65. What is FPM? What is the advantage of Using FPM?
FPM is Floor plan manager which is used to Plan your configuration. It has some predefined Layouts - guided application (Road map), OIF (Tabstrips) etc.
Floor Plan Manager is a UI Framework sits on top of Web Dynpro ABAP, for easy, efficient and highly-configurable application development.
You can use these configuration in your program which reduces the effort.
 FPM is not necessary but it helps in development of Screens.
Within One Component using FPM, you can call other application too like in Different tabs, you can add different applications very easily.
What is ehp4? 
EHP is enhancement Package. FPM comes with EHP4 only and in previous packages there was no concept of FPM.

FPM adds pakage with few components which can be used in your application
In EHP4 onwards, there is FPM concept.

Previous packages, dont have this concept.

Yes you can implement FPM, using ECC6.0 with EHP4.
Where is it used?
Standard SAP HR applications are built on this UI Framework. We can also make use of this framework to build custom web dynpro applications.
What are the tools required for using it?
Net weaver 7.00 Ehp1
What are the advantages of using it?
As i already mentioned it is for easy, efficient and highly-configurable application development.

As the framework is in place you can concentrate on building your UIBB (UI building blocks web dynpro components) and configure your application.


66. What are the methods available in “IF_WD_WINDOW_MANAGER”?
IF_WD_WINDOW_MANAGER 
Interface IF_WD_WINDOW_MANAGER you can create various Windows and popups.
Methods
CREATE_EXTERNAL_WINDOW
Method to create an external browser window. Calls in the external browser window are not possible if the application is running in the portal.
CREATE_WINDOW
Method to create a modal popup.
CREATE_WINDOW_FOR_CMP_USAGE
Method to display an interface view of a used component as a popup.
CREATE_POPUP_TO_CONFIRM
Method to create a popup for a confirmation dialog.

67. Difference between SVS, EVS, OVS?
SVS and EVS are Web Dynpro Java specific types of value help.  They do not exist in Web Dynpro ABAP.  In Web Dynpro ABAP we have Data Dictionary based Search Help, OVS, and Freely Programmed Value Help.  In WDA 7.02 we have the slight variant on DDic Search Help called Suggest Values.  It doesn't change the development model, just the runtime user experience. 
68. What is purpose of MIMES?
The MIME Repository is used to store all MIME objects (style sheets, graphics, icons and so on) in the SAP System. MIMEs are created as objects in the SAP database.

69. How to send data from one component to another component?
Each Component has got an inbound and outbound plug. You might want to utilize it to transfer data between components.
70. What is an empty view?
Dynamic UI
 Dynamic Programming is written in WDDOMODIFYVIEW.
If you want change or add or delete example you clicked on button and you need to ADD some more UI on the same screen at that time dynamic programming is need.
71. What are the main features of WDABAP?
Program Flow:The program flow cannot be changed in Web Dynpro ABAP programming. You cannot use statements to exit the current session or to start a new one. For example:
CALL / LEAVE TO TRANSACTION
SUBMIT
LEAVE PROGRAM
Low-Level Commands:You cannot use certain system commands in Web Dynpro ABAP programming. For example:
EDITOR-CALL
SYNTAX-CHECK/GENERATE
No Querying the Parameter Interface:Functional enhancements of Web Dynpro components, such as methods and event handlers are called by Web Dynpro Framework. This fills all parameters. There is therefore no need to query the parameter interface.
IS SUPPLIED
IS REQUESTED
No Type Pools and Program Includes:The integration of type pools and program includes is not supported in Web Dynpro ABAP programming.
WD_THIS:Accesses to controller attributes and calls from controller methods must always be made by the controller self-reference WD_THIS.

72. Why a client should implement WDABAP apps?
What is the importance of webdynpro abap?
a) WDA is UI technology while ABAP is broader concept which covers even Web Dynpro ABAP. ABAP has number of concepts including UI technology like Smart Forms, Work Flow, reports, Enhancements, etc.
b) ABAP is written to cater to business process handling; while WDA is UI developpment
 Why people implement webdynpro abap over normal sap abap?
a)     SAP ABAP has many constraints which are overcome in WDA. WDA is light weight than ABAP applications, can be accessed easily over internet. No need of SAP Logon pad installation at the client side. Can be optimised to run over over low band width.

Why webdynpro abap is so demented?
a) SAP is aggressively moving towards/already has moved to Web Dynpro ABAP. All business packages are being delivered in Web Dynpro ABAP. SAP is in process of making WDA compatible with mobile platform. It means, develop once and run on any platform.

73. What is the tool for WDABAP app development?
ABAP development tools (for Eclipse) 2.7 brings to you more convenient and faster environment to develop Web Dynpro ABAP Applications. 

74. Different between node & attribute?
Context Node is like a structure / table type which holds attributes inside and also it can have child nodes.
Context node acts as structure when cardinality set to 0...1 / 1...1
Context node acts as table type when cardinality set to 0...n / 1...n
 An attribute is like a field inside a structure / table.

75. 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). 

76. What is View Assembly?
A window defines the superset 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. 
77. 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. 

78. 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). 

79. 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. 

80. 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 – showEmptyView. 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. 


81. 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). 

82. 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.
83. 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 declarationsthat have been aggregated for the specific purpose of reuse.

84. 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 ViewContainer.  This UI element, when added to a view layout, acts as a container for any other view. ViewContainers 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 ViewContainer 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).


85. 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 90° T layout 180° T layout 270° Grid layout Tab strip 
Each subdivision within the view set layout is known as a view area. 

86. Brief out the Structure of Webdynpro Component.
  It contains coding entities that are hidden from the outside world, and it also contains coding entities that are visible to the outside world.  
  It contains coding entities that handle the visual representation of data, and coding entities that handle the processing of data. 
 Within the scope of a component, the various controllers are designed as independent, yet interrelated programs.  Therefore, if one controller wishes to gain access to the data and functionality within another controller (in the same component), a usage declaration must first be made.
Model objects are defined outside the scope of any particular Web Dynpro component.  Once a model object has been created, any component can access its functionality by means of a usage declaration. 
 Web Dynpro components can use the data and functionality found within other Web Dynpro components.  In order to achieve this, a usage declaration must be made in order to establish a “Parent-Child” relationship between the two components. 

87. How many types of Search help you have as an option to provide for a field in se80 and also brief out the difference between them?
Dictionary Search Help.
Object Value Selector.
Single Value Selector.
Freely Programmed.

88. 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.

89. 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 Metamodel”, 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 Metamodel”, and acts a language neutral specification for both the visual appearance and development structure of aWeb Dynpro program.



90. 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 Web
Dynpro 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. 

91. 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.

92. 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. 

93. 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.

94. 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
• A context node must exist in the consuming controller

95. What are the various Standard Hooker Methods?
Wdoinit: -- use to initialise view, window or a controller
Wdoexit: -- use to release the controls
Wdomodifyview :- (called after wdoinit. any modification to the view dynamically should be done here)
WDopen: -- use when this component is used as modal dialog (Initializing)
Wdoclose: - use when this component is used as modal dialog (while exiting)
Wdobeforenavigation:-The method wddobeforenavigation( ) is called
After the action method has been processed and just before the Web Dynpro
Framework processes the events in the navigation queue.
Wdoafternavigation :-In complex Web Dynpro applications, it is possible that the data from
Multiple components must be validated before the next step in the
Business process can be taken. This method has been implemented so that
Cross-component validation can take place. It is the last controller method

That is processed before the UI is sent to the client.

96. What is the significance of supply function?
Supply function principles:
-         A supply function is used to populate an entire node collection.
-         Any context node may have a supply function defined for it.
-         All singleton nodes must have a supply function defined.
-         The existence of a supply function is defined declaratively.
-         A supply function is called automatically by the Web Dynpro Runtime when an attempt is made to read an empty node collection
-         A node collection could be empty node collection
-         A node collection could be empty for any one of the following 3 reasons.
1.      It has never been populated before.
2.      The lead selection in the parent node collection has changed.
3.      Application coding has explicitly invalidated the element collection.
Why are supply function needed?
-         A supply is needed primarily to populate a singleton node's element collection.
-         However if required, any context node can have a supply function defined for it.  

97. What is purpose of view container UI elements?
 I have a MAIN view where there is a view container UI element. This container holds one of 3 views (VIEW1, VIEW2 and VIEW3) depending on user input. Initially VIEW1 is displayed (this is set as the default view). Then the user navigates to VIEW2 and enters some selection criteria and confirms. Then VIEW3 is displayed with the entered selection criteria. Then the user clicks on search on the MAIN view and the RESULT view is displayed. When the user clicks on back functionality in the RESULT view,MAIN view is again displayed but the view container has VIEW1. The user wants to see VIEW3 in the viewcontainer in MAIN view.


98. What is Direct Context Mapping and Reverse Context Mapping?
When you bind this context node to your views and interface then it is called direct context binding.
Context mapping:
 Context mapping is the mechanism by which information can be shared between the contexts of different controllers. Usually these controllers live within the same component but the context mapping can also across a component boundary.
Context mapping is mapping between Contexts of different Controllers.
Suppose if we map contexts of viewController and ComponentController,by this the scope of attributes in view Controller will increase to the global scope.
 Two types of Context mapping.
 Internal Context mapping is the mapping between Contexts of different Controllers which are present in the same component.
 External Context mapping is the Context mapping between two controllers which are present in different components.
If the node is Interface Enabled, then automatically we will be able to transfer data between those components. We can call this as External Context Mapping as well Reverse Mapping.


99.  What is Cross Component Context Mapping?
1) Cross component context mapping - In this case, the properties of the interface context node of the used component would look like:
Interface Node: X
Input Element (Ext.): must not be set
 Then in the COMPONENT CONTROLLER of the using component, map the desired context node on the left hand side (of the component controller) to the interface node of the used component on the right hand side.
 This is done when we need to receive value of the interface context node of the used component in the using component.


100. What is a purpose of Interactive form UI element?
I have designed a view
For example,
 View details
View has one field and a button.
 Adobe PDF form details (purpose is printing)
It has also same field = view field. 
When I click the button it will open the PDF form and transfer the data view to PDF form (non-Interactive form).Mainly we going to adobe form for printing purpose(has no printing facility in view).what we give value in view that value pass to PDF form.UI interactive form is static.

101. How many plugs are available in Webdynpro?
Window Plugs: Startup and Exit
Like Web Dynpro views, each Web Dynpro window has Inbound and Outbound Plugs. Any number of these plugs can be defined as startup or exit plugs.
Startup Plug
The startup plug is a special inbound plug.
The Startup property, which you can define on the Inbound Plugs tab page in the window editor, declares for the inbound plug the option to instantiate a component and to start a new application. For this reason, a startup plug should be used only if it is also available to the window interface.
Components can be accessed externally using any plug that is defined as a startup plug.
Exit Plug
The exit plug is a special outbound plug.
If a Web Dynpro window is closed by means of an exit plug, the associated application is ended automatically
Inbound and Outbound Plug Parameters

As with all window plugs you can use startup and exit plugs with mandatory or optional parameters. These parameters must be of type STRING or TIHTTPNVP.

102. What is recursive node and non-recursive node?
When you want to display the Tree/hierarchical structure (recursive data structure) then you go for Recursive node and to display the Drop downs/tables you go for Value/Model node.
Value Nodes:
A Value Node is the most basic form of node that can exist within a Webdynpro Context. It is one in which all the necessary metadata to define the node attributes either is stored within the node itself or is obtained from a local Java Dictionary object.
A value Node that uses structure binding may not have any further child attributes added to it, but you may add further child nodes (which in turn may use structure binding if desired).
I{cn}Element newValueElement  = wdContext.node{cn}.create{cn}Element(); 
Model Nodes:
A Model node is similar to a value node in respect to its API however there are three important differences
1) A Context model node makes a model object look like any other context node i.e. it gives the model object an API that is very similar to a value node.
2) A Model Node is not considered valid until it is bounded to a corresponding model object; therefore a model node always inherits its metadata from the model object to which it is bound.
3) The element collection in a model node does not hold the actual runtime data instead it holds a collection of references to the relevant model object instances.
Recursive Nodes:

If you wish to represent a recursive data structure within the context, a recursive node is the correct node to use. The simplest example of recursive data within a hierarchical structure is a file system. A dictionary can contain either files or subdirectories. This definition is then repeated for each subdirectory level down the hierarchy.
Within the context, a recursive node is a special node that has only two properties: name and repeatedNode. As with any context node, a recursive node must itself name, but the repeatedNode property is where the recursion is defined. This property holds a reference to some parent node and indicates that, at runtime, the location of the recursive node will be occupied by a node of the type indicated in the repeatedNode property.
You should think of a recursive node as a design time placeholder used to indicate a node will be created at this location at runtime, and will be of the type named in the repeatedNode property.

The node name identified by repeatedNode must lie on the direct path back to the context root node.

103. What is singleton node and non-singleton node?
In general, dependent nodes are represented by a single node instance, whose content – that is, its data collection - changes each time the lead selection of the parent node changes. This is known as a singleton node. The representation of a single node instance reduces the required resources considerably..
 Web Dynpro allows you to define additional non-singleton nodes. Each non-singleton node has one node instance for each node element of the parent collection at runtime. The advantage is that each instance can be accessed directly. When using non-singleton nodes, the nodes are only created when the node values are retrieved. 

104. Explain About Webdynpro Architecture?
Web Dynpro for ABAP is SAP's new standard UI technology for developing user interfaces in the ABAP environment.
 Web Dynpro is the SAP NetWeaver programming model for user interfaces (UIs).
Every Web Dynpro application is structured according to the Model View Controller programming model:
The model forms the interface to the back end system and thus enables the Web Dynpro application access to data.
 The view is responsible for the representation of the data in the browser.

The controller lies between the view and the model. The controller formats the model data to be displayed in the view, processes the user entries made by the user, and returns them to the model. 

105. How creates OVS (object value selector)?
An OVS is a popup window to select a Business Object e.g. a customer in a sales Order or a service performer in a service order (it also enables the auto-completion function).
There are already a lot of OVS available and if you find one you can use, I recommend you to use this instead of creating a new.
But if you can`t find one, you can create one in By Design Studio by adding a new item -> Object Value Selector.
After that you can open the OVS in UI Designer, go to Data tab and bind a business object to the root node and attributes. By default return parameters are the ID and name of the bound Business Object (automatically created attributes of advanced list pane). So you only have to bind those 2 parameters and save and activate OVS.
Here is path to search for already available OVS`s:
SAP_BYD_APPLICATION_UI/publicovs/***

106. How many Types of Input Help Modes are Available?
Web Dynpro provides two types of pre-implemented search helps:
1. ABAP Dictionary Search help
2. OVS

107. Difference between External context Mapping and Internal Context Mapping?
Internal context mapping is the mapping within one component. For example beetween the Component Controller Context and the View Controller Context.
External context mapping however refers to the mapping between different components. In this case, context nodes would be added to a components interface.

108. What is Component Interface?
Component Interface: If you want to use view of one component in another, you first add it to the Component Interface in the runtime repository, this acts as interface to the outside world!
Component Usage: As the term indicates, the above defined view in the interface you can use here, in edit mode, add component usage, and you can use the above view in whatever component you want.

Interface view is nothing but the view you have added to component interface/usage.

109. What are the Events available for TableUI element?
On Filter, On Lead Select and On Sort

110.   Types of ABAP UI Technologies
       Webdynpro for ABAP, BSP

111.   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.   

112.  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.

113.   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.

114.  What is an Assistance Class and how it is 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.


115.   How do you debug a web based Application
      (Could be from ABAP Webdynpro, BSP or CRM Web UI)
       External break-points should be used to debug web UI's.

116.   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).
117.   How do you Navigate between Views in Webdynpro
       Navigation between Views is through Plugs (Inbound and Outbound),

118. 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.

119. 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 throughout 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.

120. 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 ).

121. 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)

122. 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

123. 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.

124. 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)

125. 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

126. 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.

127. 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.

128. 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.


129. Standard ALV Component required to create ALV Reports in Webydnpro
      SALV_WD_TABLE

130. 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

131. 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 

132. 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. 

133. 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.

134. What is the use of Interface views/nodes in Webdynpro.
       Interfaces nodes and views are created to use them in other webdynpro components.

135. How do you navigate between different Webdynpro applications?
      create a navigation class and trigger the target application to be called

136. 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,

137. 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.

138. 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’).

139. 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’). 

140. 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.

141. What are exit plugs?How are they created?
      Exit plugs are used to exit from the webdynpro page or a webdynpro window.
      Exit plugs are created in the window.

142. 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

143. 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.


144. How to create popups in webdynpro.
      Create a view and embed the view in the window and call the window to trigger the popup.

145. 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.

146. 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.

147. 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.

148. 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

 149. 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.

 150. 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.

151. 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.

 
152. 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

153. 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.

154. 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.

155. Is it possible to pass parameters to webdynpro URL?

     Yes you can pass parameters to webdynpro URL and it is passed as below.
     For ex: your url is http://server.com/wd_url_name?sap-system-login-basic_auth=X&sap-client=800&sap-
     language=E
     Here the parameter values are passed for sap-system-login-basic_auth,sap-client and sap-language
.


156. What are the types of Controllers in Web Dynpro ABAP?


157. What is Component Controller?
Component Controller is the King of all Controllers. It is the backbone of your Web Dypro Component. It is like a Global or Top Include for you program. It controls the entire activity of your Web Dynpro Component.

  158. What is an Interface Controller?
Whenever we want views, nodes or methods of a particular web dynpro component to be available to other the outside world (i.e. other webdynpro components), we make use of Interface controller. Interface Controller is created by default when a webdynpro component is created.
Interface Controller would generally come into picture when you are doing component usage of some sort in web dynpro i.e. re-using views/methods/nodes of one WD component in another.

159. What is a Custom Controller?
When your Component Controller grows big in size ( say more than 10-15 views and corresponding context nodes , methods , events , event handlers etc) , it might become tough to handle everything in the Component Controller . In such a scenario, you can create one or more custom controllers and modularize or segregate the logic into separate parts using Custom Controller.

160.Would you prefer creating multiple Custom Controllers OR would you go for separate Web Dynpro components and then do Component usage?
This would actually depend on the requirement, but ideally separate Web dynpro components should be created and reused.One can also use the assistance class for segregating business logic.

161. How many component controllers can a Web Dynpro Component have?
Component Controller is only one. You can create multiple controllers, but those are called Custom Controllers.

Note: If you are asked about the Web Dynpro architecture, you should talk about both the MVC framework and the controllers.
163. When do views become available in the interface Controller?
Whenever we embed any view in a window, at the moment that view becomes automatically available to the Interface Controller and shows up as an interface view in the Interface Controller. You do not have to declare a view as an interface view as is the case with interface nodes.

164. Is it true that each controller has its own Context node?
Yes, each controller has its own context, methods, and Events.

165. At design time how do you decide whether to declare a node in the Component Controller or in the View Controller?
This again depends on the requirement: If the node is going to be accessed in multiple views, it should be declared at the Component Controller level. However, if the node is absolutely specific to only one view, it can be defined in the View Controller. As the size of Webdynpro development grows, it starts becoming complex and the need to define attributes,nodes,methods etc. at the Component Controller increases.
167. What is Cardinality of a context node?
Cardinality simply indicates the minimum and the maximum no. of entries the node can have.
The 4 cardinalities are 0:1, 0: n, 1:1, and 1: n.

168. Is there any relation between Cardinality and Lead selection?
Yes, If the cardinality is set to 0:1 or 1:1, the user cannot select multiple records on the view.
So if you want the user to be able to select multiple records on the screen, the cardinality of that particular node must be set to 0:n or 1:n.
Some important Web Dynpro attributes that you should know:
Some attribute in webdynpro that are used very frequently and some of those that you must know are:
Wd_this
Wd_context
Each controller has the above two mentioned attributes.
To elaborate, if you are using the above two attributes say in a method of a View Controller, then WD_CONTEXT is the reference to the Context node of the View and WD_THIS is the reference to the View Controller itself.
Wd_comp_controller is the reference to the Component Controller. View and Window controller have this attribute defined by default and methods/attributes of the Component Controller can be accessed by using this attribute.
For example:
Wd_assist: This attribute is created when the assistance class is saved and activated for a web dynpro component. All the methods of the assistance class can be accesses by using this attribute.

 169. Can you use multiple layouts in one view?
Layouts can be assigned at the container level. For example, you define the layout for your view at the ROOTUIELEMENT container level.
So if at all you want to use multiple layouts in one view, you can create multiple transparent containers and assign different layouts to them.

170. How do you introduce line break for a UI element in any layout?
Say if you are using matrix layout, you will say Matrix Head data for the UI element for which you need a line break.

171. Can you call/launch one web dynpro application from another webdynpro application?
Yes, you can launch one webdynpro application from another webdynpro application.
First, you should get the URL of the web dynpro component that you want to launch and second, call that URL in an external window.
To get the URL of any web Dynpro component, you use the FM
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = ‘ZDEMO’
IMPORTING
out_absolute_url = str.
Once you get the URL in str, you can call this web dynpro using ‘str’ and fm: create_external_window.

172. Can you run a Webdynpro Application in background?
This is a tricky question. It doesn’t make sense to run a webdynpro application in background because in that case you are beating the purpose of the MVC controller architecture for webdynpro. However, you can build logic to create background jobs from a Web Dynpro Application.

173. What is the Web Dynpro Phase model?
Whenever a roundtrip occurs from the client (browser) to the server, a sequence of processing steps is executed. This sequence of processing steps in web Dynpro is called the ‘Phase Model’.
Executing all the tasks in the phase model is the responsibility of the Web Dynpro framework.
Each step is executed only once and errors if any are captured.

174. How will you delete selected rows in a Table / ALV?
Get the Table / ALV data in an internal table.
Delete the row selected by the user from the internal table.
Re-bind the internal table to the node bound to the Table/ALV.

175. Are all the hook methods available to all the Controllers?
No. They are specific to controllers. See the details in the image above: 
208. 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). 

209. What is View Assembly?
A window defines the superset 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. 

210. 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. 

211. 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). 

212. 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. 
213. 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 – showEmptyView. 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. 

214. 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). 

215. 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.

216. 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 declarationsthat have been aggregated for the specific purpose of reuse.

217. 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 ViewContainer.  This UI element, when added to a view layout, acts as a container for any other view. ViewContainers 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 ViewContainer 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)

218. 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 90°  T layout 180° T layout 270° Grid layout  Tab strip 
Each subdivision within the view set layout is known as a view area. 

219. Brief out the Structure of Webdynpro Component.
  It contains coding entities that are hidden from the outside world, and it also contains coding entities that are visible to the outside world.  
  It contains coding  entities that handle  the  visual representation of  data,  and coding entities that  handle the processing of data. 
 Within the  scope of  a component, the various  controllers are designed as independent, yet interrelated programs.  Therefore, if one controller wishes to  gain access  to  the data and functionality within another controller (in the same component), a usage declaration must first be made.
Model objects are defined outside  the  scope  of any particular Web  Dynpro component.  Once a model object has been created, any component can access its functionality by means of a usage declaration. 
 Web Dynpro components can use the data and functionality found within other Web Dynpro components.  In order to achieve this, a usage declaration must be made in order to establish a “Parent-Child” relationship between the two components. 

220. How many types of Search help you have as an option to provide for a field in se80 and also brief out the difference between them?
Dictionary Search Help.
Object Value Selector.
Single Value Selector.
Freely Programmed.
221. 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.

222. 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 Metamodel”, 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 Metamodel”, and acts a language neutral specification for both the visual appearance and development structure of aWeb Dynpro program.

223. 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 Web
Dynpro 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. 

224. 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.

225. 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. 

226. 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.

227. 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
• A context node must exist in the consuming controller

304. What are the methods available in “IF_WD_COMPONENT_USAGE”?

Methods
CREATE_COMPONENT
This method creates the Web Dynpro component to which the component usage points.
If an active component instance already exists for this component usage, a runtime error results when this method is called. For this reason before calling this method use HAS_ACTIVE_COMPONENT to check whether an active instance of this component already exists.
DELETE_COMPONENT
This method deletes the Web Dynpro component to which the component usage points.
This method cannot be called if no active instance of the component exists for the component usage.
HAS_ACTIVE_COMPONENT
This method specifies whether the Web Dynpro component that the component usage points to was already created, and if it is active.
GET_IMPLEMENTING_IF_VIEW_INFO
This method returns the metadata description of an interface view.
The result is an object of type IF_WD_RR_INTERFACE_VIEW.
GET_INTERFACE_CONTROLLER
This method returns a reference to the interface controller of a Web Dynpro component.
The result type of the method depends on the concrete definition of the interface controller in a Web Dynpro component and can be found in this controller’s properties.
ADD_EVENT_HANDLER
This method can be used to register an event handler on an event dynamically at runtime.
CREATE_COMP_USAGE_OF_SAME_TYPE
This method creates a component usage that refers to the same component.
The result is an object of type IF_WD_COMPONENT_USAGE.
ENTER_REFERENCING_MODE

You can use this method to determine that one component usage refers to a different component usage.

305. What are the methods available in “IF_WD_MESSAGE_MANAGER”?
 IF_WD_MESSAGE_MANAGER 
This interface is used as a message manager for messages integration, and is available to application developers in the Web Dynpro code wizard.
Methods
REPORT_EXCEPTION
Reports a Web Dynpro exception (may revert)
REPORT_SUCCESS
Reports a success message ( )
REPORT_WARNING
Reports a warning ( ).
REPORT_ATTRIBUTE_ERROR_MESSAGE
Reports a Web Dynpro exception for a context attribute
REPORT_ATTRIBUTE_EXCEPTION
Reports a Web Dynpro exception for a context attribute
REPORT_ERROR_MESSAGE
Reports a Web Dynpro error message ( ) with optional parameters. You can transfer a string here
IS_EMPTY
Queries whether or not there are any messages
REPORT_T100_MESSAGE
Reports a message using a T100 entry
REPORT_FATAL_EXCEPTION
This method reports a termination message. The reporting of a message of this type in the following methods causes the Web Dynpro application to terminate with a runtime error:
● WDDOINIT
● WDDOEXIT:
● WDDOMODIFYVIEW
● With in an inbound plug event handler

If a message of this type is generated in WDDOBEFORENAVIGATION or WDDOPOSTPROCESSING methods or within an action handler, processing is terminated at the point in question and an error message is displayed.

REPORT_FATAL_ERROR_MESSAGE
Reports a fatal WDA message with optional parameters.
The reporting of a message of this type in the following methods causes the Web Dynpro application to terminate with a runtime error:
● WDDOINIT
● WDDOEXIT:
● WDDOMODIFYVIEW
● Within an inbound plug event handler

CLEAR_MESSAGES
Deletes all messages.

REPORT_ATTRIBUTE_T100_MESSAGE
Reports a Web Dynpro exception to a context attribute

REPORT_ELEMENT_ERROR_MESSAGE
Reports a Web Dynpro exception for context attributes.

REPORT_ELEMENT_EXCEPTION
Reports a Web Dynpro exception for context attributes.

REPORT_ELEMENT_T100_MESSAGE
Reports a Web Dynpro exception for context attributes.

REMOVE_MESSAGE
This method deletes the message for a specified ID.

HAS_VAL_ERRORS_FOR_WINDOW
This method can be used to determine whether or not error messages with a context reference exist for a particular window.

HAS_VALIDATION_ERRORS
This method can be used to check whether or not there are error messages with a context reference.

GET_MESSAGES
This method returns a list of all available messages.

GET_MESSAGE_FOR_ID
This method returns information about a message.

90. Which Interface is used for Reporting Messages?
IF_WD_MESSAGE_MANAGER

Methods

REPORT_ATTRIBUTE_ERROR_MESSAGE (Parameter PARAMS)
REPORT_SUCCESS (Parameter PARAMS)
REPORT_WARNING (Parameter PARAMS)
REPORT_ERROR_MESSAGE (Parameter PARAMS)
REPORT_FATAL_ERROR_MESSAGE (Parameter PARAMS)

REPORT_ATTRIBUTE_EXCEPTION NO (Parameters ELEMENT, ATTRIBUTE_NAME)
REPORT_FATAL_EXCEPTION

REPORT_ATTRIBUTE_T100_MESSAGE (Parameters P1, P2, P3, P4)

REPORT_T100_MESSAGE (Parameters P1, P2, P3, P4).

REPORT_SUCCESS:
                This method is used to report (raise) the success messages.
REPORT_WARNING:
               This method is used to report (raise) the warning messages.
REPORT_ERROR_MESSAGE:
               This method is used to report the error messages .
REPORT_ATTRIBUTE_ERROR_MESSAGE:
               It is also used to generate the error messages but in this the error field is highlighted with red in                      color which is not available in the above method.

What is the difference between Drop down by key and drop down by index?
The main difference is data binding. 
In Dropdown by key we will bind the Key attribute to the local context which is having the Simple type (with enumeration values)
 And there is no need take special care while displaying the data from it.
 Where as if u use DD by index here we will map the text attribute property to attribute which is just a string data type.

 It will loads the data into it in Runtime and u need write the code for its population explicitly.

309. What is UIBB? What it contains?
Generic User Interface Building Block (GUIBB)
By introducing generic user interface building blocks, Floorplan Manager has made it possible to improve the uniformity of application-specific views. Generic user interface building blocks are design templates for which, at design time, the application defines the data to be displayed along with a configuration. The concrete display of the data on the user interface is not determined and generated by the GUIBB until runtime. This is done automatically using the configuration provided.

Floorplan Manager provides the following generic user interface building blocks:
Form component (Web Dynpro component: FPM_FORM_UIBB)
List component (Web Dynpro component: FPM_LIST_UIBB)

Tabbed component (Web Dynpro component: FPM_TABBED_UIBB)

 What is Cardinality of a context node?
Cardinality simply indicates the minimum and the maximum no. of entries the node can have.
The 4 cardinalities are 0:1, 0: n, 1:1, and 1: n.

Is there any relation between Cardinality and Lead selection?
Yes, If the cardinality is set to 0:1 or 1:1, the user cannot select multiple records on the view.
So if you want the user to be able to select multiple records on the screen, the cardinality of that particular node must be set to 0:n or 1:n.
Some important Web Dynpro attributes that you should know:
Some attribute in webdynpro that are used very frequently and some of those that you must know are:
Wd_this
Wd_context
Each controller has the above two mentioned attributes.
To elaborate, if you are using the above two attributes say in a method of a View Controller, then WD_CONTEXT is the reference to the Context node of the View and WD_THIS is the reference to the View Controller itself.

Wd_comp_controller is the reference to the Component Controller. View and Window controller have this attribute defined by default and methods/attributes of the Component Controller can be accessed by using this attribute.
For example:

Wd_assist: This attribute is created when the assistance class is saved and activated for a web dynpro component. All the methods of the assistance class can be accesses by using this attribute.
 Can you use multiple layouts in one view?
Layouts can be assigned at the container level. For example, you define the layout for your view at the ROOTUIELEMENT container level.
So if at all you want to use multiple layouts in one view, you can create multiple transparent containers and assign different layouts to them.
How do you introduce line break for a UI element in any layout?
Say if you are using matrix layout, you will say Matrix Head data for the UI element for which you need a line break.
Can you call/launch one web dynpro application from another webdynpro application?
Yes, you can launch one webdynpro application from another webdynpro application.
First, you should get the URL of the web dynpro component that you want to launch and second, call that URL in an external window.
To get the URL of any web Dynpro component, you use the FM
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = ‘ZDEMO’
IMPORTING
out_absolute_url = str.
Once you get the URL in str, you can call this web dynpro using ‘str’ and fm: create_external_window.
Can you run a Webdynpro Application in background?
This is a tricky question. It doesn’t make sense to run a webdynpro application in background because in that case you are beating the purpose of the MVC controller architecture for webdynpro. However, you can build logic to create background jobs from a Web Dynpro Application.
What is the Web Dynpro Phase model?
Whenever a roundtrip occurs from the client (browser) to the server, a sequence of processing steps is executed. This sequence of processing steps in web Dynpro is called the ‘Phase Model’.
Executing all the tasks in the phase model is the responsibility of the Web Dynpro framework.
Each step is executed only once and errors if any are captured.
How will you delete selected rows in a Table / ALV?
Get the Table / ALV data in an internal table.
Delete the row selected by the user from the internal table.
Re-bind the internal table to the node bound to the Table/ALV.



How do you display error / success / warning messages in Web Dynpro ?
How do you access methods of component controller in a view ?
Have you worked on roadmap UI element ? Elaborate .
What is the difference between Drop down by key and drop down by index ?
How do you display error / success / warning messages in Web Dynpro ?
How do you access methods of component controller in a view ?
Have you worked on roadmap UI element ? Elaborate .
What is dynamic ALV in web dynpro ?
24. What are the advantages of using Adobe forms in WDABAP apps?
34. Component controller? Under which situation we need to use component controller?
35. What is the purpose of creating an “Application” for WD component?
36. Can we use multiple webdynpro components under one project?
38. What is the basic structure of WD Component?
40. What is URL & FQDN in WDABAP?
41. What is the main intention behind WDABAP apps?
51. How to provide multi select functionality for table UI element in WDABAP?
53. What is cross controller method call?
76.What are the mandatory properties of Table,ProgressIndicator,Image,Inputfield,ItemListBox Dropdownbykey,Dropdownbyindex?
80.What are the events for Table Ui element ,dropdownbykey,dropdownbyindex?
81. How many controllers will be available as part of a component?
88. What happens when u apply service call?
89. How to access all static attributes of a Node Element?
91. How to provide Dynamic Value Selector?
93. How one component will communicate with another component?
94. What are windows?
95. What is the purpose of Business Graphics in webdynpro?
104. What is the Composite UI Element? Which UI elements are Composite?
105. What are the common standard hooker methods available in Every controller?
108. How to provide Multiselect functionality on Table UI elemnt?
109. How to provide Table Popins in Table UI element?
110. How to delete Selected records from a Table/Node UI element?
112. Which development objects are Faceless objects?
113. Which development objects are considered as Visual entities?
114. For which type of Nodes , supply functions are applicable?
119. What is the purpose of “WDDOMODIFYVIEW()” Method? When this method is
called? What type of coding is recommended in that method?
120. Whether Dynamic Programming is a Good Approach?
121. How many Types of Dynamic Modifications can be made at runtime?
What are they? What is the purpose of Dynamic Modifications? Under What Circumstances we need to prefer Dynamic Modifications?
124. What is purpose of Webdynpro Component Usage? What is the Advantage of it?

134. What is the Dynamic programming in webdynpro apps ?
135. How to create the inputfields,labels,DDBI,DDBK,TABLE
UIelements,Images,Progress Indicators Dynamically at runtime?
136. What is the purpose of "WDvisibility "? HOW to use it?
164. In which situation u will create custom controller?
166. What is the purpose of MIMES directory in Webdynpro apps?
167. How many Phases are involved in developing a WebDynpro application?
170. What are predefined methods in WD?
171. What are Lifecycle methods in WD?
172. How to Delete records from TABLE/NODE in WD Frontend without deleting the
180. Can u take up the challenge of Leading a TEAM for Webdynpro?
199. How to use “RoadMap” UI element in Webdynpro apps?
223. How you will update the new concepts ?
227. Difference between Popup window and External window, confirmation Dialog
windows?
228. What is COMPONENTIZATION?
229. How to use/call one component in another component?
241. Which Generic Functions are offered by WebDynpro ALV‟s?
242. Describe the ALV usage in WDABAP?
253. Can you display error message based on Attribute in WD ABAP?
277. What is the advantage of implementing/designing browser based Apps using WebDynpro ABAP Framework?
311.What are the standard components used for FPM Roadmap and Tab strip?

312. Can we design Roadmap scenario without using FPM? And How?
313. What are the standard events, methods and nodes of interface controller of SALV_WD_TABLE component?
314. What type of additional features you have customized for ALV integration in Webdynpro?
315. How to integrated Webdynpro Components into SAP Portal? What is the advantage of portal integration?
316. How to use Interactive Form in WEbdynpro ABAP applications






52. What are problems/errors u have encountered while developing WDABAP apps?
56. How you will convince your existing client to implement WDABAP apps?
57. Under which situation u will use Custom controller? Did u use it in u r Project?
75. What are the critical errors u have encountered as part of u r project development?
131. Can you describe the system landscape of your project?
154. What is the duration of u r project?
155. How many full-life cycle implementations u have completed?
156. How many views u have developed as part of u r project?
159. How many End users will access the apps/projects developed by u?
212. Explain about u r WD ABAP Projects?
213. What are the roles and responsibilities in u r projects?
214. Did u interact with u r clients?
215. Explain about u r Consultancy?
216. What is u r current salary [CTC]?
217. What is u r expected salary?
218. To whom u will report?
219. What is the “Organization Structure” of U Company?
220. To whom u will intimate if u get any problem?
221. How u will communicate with Ur co-developers, Project Manager, Team Lead and
administrators in u R Company?
222. What are the various resources to resolve the errors/ tickets/ problems in real time?
223. How you will update the new concepts?
251. How many components you have created in your each project?
266. What is the duration of each WebDynpro Project you have developed?
268. What is the total WebDynpro ABAP Experience?
174. What are the UI elements u have used as part of ur WD project?




42. Difference between “Method” and “Action”?
Web Dynpro: Method Type: The type of a method defines whether you have an event handler, a supply
                                            Function, or a (normal) method.
 Event Handler: Handlers of an event, a controller, an action, or an inbound plug of a view.
 Method: Modularization unit within a view or a controller. Methods of a view can only be called locally
                   Within this view. Methods of a controller (component or custom controller) can also be called from
                   A view or another controller, provided the controller is entered as controller used.

 Supply Function: Method for filling a context node.



component)
     












162.Suppose your Web Dynpro has 10 nodes in the Component Context. Will all 10 the nodes be available in the Interface controller?
Nodes from the Component context are available to the interface controller only when the nodes are declared as interface nodes. To create an interface node , set the interface property to yes as shown in the screenshot below:
To create an interface node, set the interface property to yes as shown in the screenshot to the right :

Once created , the interface node is indicated by a special symbol as shown in the figure below and the property Interface Node is set to yes:




166.What are Hook Methods in Web Dynpro ABAP?

Hook methods in webdynpro are standard web dynpro methods that are called at different time in the web dynpro lifecycle.These methods are listed in the screenshot below: These methods start with WD*.



176.Sequence in which web dynpro hook methods are called:
If you want to understand the sequence, put breakpoints in all these methods.Execute the web dynpro application, then do some action on the view, then close the application window:

Have a look at how the control passes from component to window and then to view:

1. WDDOINIT                                         (Component Controller)
2.WDDOINIT                                        (Window Controller) --> Handle default method of the window is called.
3. WDDOBEFORENAVIGATION    (Component Controller)
4.WDDOINIT                                        (View Controller)
5.WDDOMODIFYVIEW                    (View Controller)
6.WDDOPOSTPROCESSING            (Component Controller)

Now view is displayed. Suppose user does some action on the view:

7. WDDOAFTERACTION                  (View Controller)
8. WDDOBEFOREACTION                (View Controller)
9. WDDOBEFORENAVIGATION    (Component Controller)
     WDDOINIT                                       (View Controller) is not called this time.
10. WDDOMODIFYVIEW                  (View Controller)
11.WDPOSTPROCESSING                 (Component Controller)

View is displayed again.Now close button is clicked on the browser.

12. WDDOEXIT                                      (View Controller)
13.WDDOEXIT                                      (Component Controller)

Application is closed.

So now if you are being asked "What is called first: WDDOINIT or WDDOMODIFY?"  OR
"What is called first WDDOINIT for Window controller or WDDOINIT for View Controller”?
You should be able to answer thesuch questions.


 177.If one view is called 10 times in the lifespan of a webdynpro component, how many times will the method WDDOINIT be called and how many times will WDDOMODIFYVIEW be called?
WDDOINIT will be called only once.
WDDOMODIFYVIEW will be called 10 times.
WDDOMODIFYVIEW has a parameter FIRST_TIME. If this is ‘X’, then the view is getting called first_time. 

178.What are PRE POST and OVERWRITE exit methods in web dynpro?
Whenever a web dynpro component is enhanced, these 3 methods become available for all methods in Webdynpro. Let’s take an example of these methods for WDDOINIT.

PRE exit: This method is called before WDDOINIT is called.
POST exit: This method is called after WDDOINIT is called.
OVERWRITE exit: In this case, WDDOINIT is not called. Instead, OVERWRITE exit method is called.



179.What is an Assistance class in webdynpro ABAP? Where do you define an assistance class? How many assistance classes can a webdynpro component have?
Assistance class helps you achieve two things:
1) Segregation of business specific logic (one of the purpose of MVC).
2) Performance benefit.                                                        

We can write the business logic in the methods of the View, Window or even the Component controller. But it is not a good practice to load all the business logic in the views or windows. So SAP has provided an option of assistance class where you can write all your business logic. By this way, you are still in the framework of your webdynpro and also avoid loading too much logic in the components of webdynpro itself. Assistance class methods are much better from a performance point of view than calls of Web Dynpro controller methods.

A web dynpro component will have only one assistance class and it is defined at the component level as per the screenshot below. The assistance class is automatically instantiated when a component is called. You can access the instance of this class with the attribute wd_assist, which is created when you create the assistance class in web dynpro.   

180.What is Singleton Property of a Context Node?
Understanding Singleton property of a context node and how it works in conjunction with the lead selection event can be a bit complicated. If you do not already know what a Singleton set is , I recommend you going through an example of Cars(Parent node with cardinality 0..n ) and Customers ( Nested child node with cardinality 0...n ) on Singleton Node by clicking on the link. This is not that tough, just spend some time with it and you should be okay.

The best way to answer this question is by taking an example.
Say there are two ALV's on a View:
ALV1 ---> NODE_SO_HEADER----> Displays all the Sales Orders.
ALV2 ---> NODE_SO_ITEMS ------> Displays all the line items for the Sales Order selected in ALV1.

NODE_SO_ITEMS is the child node for NODE_SO_HEADER and is declared as Singleton node.
Since this node is declared as singleton, at runtime, it holds the line item data only for the Lead Selected Sales Order from NODE_SO_HEADER and not for all the Sales Orders from the parent node.
Whenever the lead selection changes for the parent node, line item data for that lead selected order is fetched from database and populated in the child node.

As a result great performance optimization is achieved.

I hope you get this one :).

181.What is a supply function? When is it called?
You can assign a supply function to a context node when you create a node. In simple terms, supply function is used to populate data records in the context node. A supply function is called when one or more elements of the node are accessed for the first time.

To give you an analogy, we all know that a constructor method of a class is called whenever an object of that class is instantiated. In the same way, a supply function for a context node is called when the node is accessed for the first time.

The supply function is generally used in combination with singleton nodes.So whenever the lead selection of the parent node changes, the supply function of the singleton node recalculates and repopulates the child node.

182.What is lead selection? Is it an event?
Yes, the lead selection is an event in web dynpro.
At run time a context node may contain many records, but only one of those is selected.
The user can select any record from the Table/ALV and this selection is called lead selection. 



183.What is Cardinality of a context node?
Cardinality simply indicates the minimum and the maximum no. of entries the node can have.
The 4 cardinalities are 0:1, 0: n, 1:1, and 1: n.


184. Is there any relation between Cardinality and Lead selection?
Yes, if the cardinality is set to 0:1 or 1:1, the user cannot select multiple records on the view.
So if you want the user to be able to select multiple records on the screen, the cardinality of that particular node must be set to 0: n or 1: n.


185.Some important Web Dynpro attributes that you should know:
Some attribute in webdynpro that are used very frequently and some of those that you must know are:
Wd_this
Wd_context
Each controller has the above two mentioned attributes.
To elaborate, if you are using the above two attributes say in a method of a View Controller, then WD_CONTEXT is the reference to the Context node of the View and WD_THIS is the reference to the View Controller itself.

Wd_comp_controller is the reference to the Component Controller. View and Window controller have this attribute defined by default and methods/attributes of the Component Controller can be accessed by using this attribute.
For example:

Wd_assist: This attribute is created when the assistance class is saved and activated for a web dynpro component. All the methods of the assistance class can be accesses by using this attribute.

186.What are layouts in Web Dynpro ABAP?
Flow layout, Row Layout, Grid Layout, Matrix layout and the form layout.
The layout can be set at a Container level.

187.Can you use multiple layouts in one view?
Layouts can be assigned at the container level. For example, you define the layout for your view at the ROOTUIELEMENT container level.
So if at all you want to use multiple layouts in one view, you can create multiple transparent containers and assign different layouts to them.


188.How do you introduce line break for a UI element in any layout?
Say if you are using matrix layout, you will say Matrix Head data for the UI element for which you need a line break.
Can you call/launch one web dynpro application from another webdynpro application?
Yes, you can launch one webdynpro application from another webdynpro application.
First, you should get the URL of the web dynpro component that you want to launch and second, call that URL in an external window.
To get the URL of any web Dynpro component, you use the FM
CALL METHOD cl_wd_utilities=>construct_wd_url
    EXPORTING
      application_name = 'ZDEMO’
    IMPORTING
      out_absolute_url = str.  
Once you get the URL in str, you can call this web dynpro using 'str' and fm: create_external_window.

189.Can you create a Tcode for Webdynpro Application?

Yes, you can create a Tcode for webdynpro application. Go to SE93, create Tcode, choose the last option and maintain default values as shown in the screenshot:

 190.Can you pass parameters in a webdynpro URL?
Yes, you can pass parameters in webdynpro URL and read them too in your web dynpro component.
Example: http://domainname.com:8000/sap/bc/webdynpro/sap/zdemo_webdynpro?sap-language=EN&var1=4500000001&var2=00010

191.how do you read parameters passed in the Web Dynpro URL?
First lets understand how a typical webdynpro application looks like:
When you create a web dynpro application , you can see the link URL generated by web dynpro.
It will be something like: http://domainname.com:8000/sap/bc/webdynpro/sap/zdemo_webdynpro?sap-language=EN&sap-client=100.

192.Whatever comes after the ‘?’ and is followed by ‘&’ is an URL parameter.
You can see sap-language and sap-client as default parameters whenever you launch your web dynpro in browser. The cool thing is you can add some custom variables too. http://domainname.com:8000/sap/bc/webdynpro/sap/zdemo_webdynpro?sap-language=EN&sap-client=100&var1=4500000001&var2=00010.
So var1 and var2 are custom webdynpro URL parameters and you can read them in the HANDLEDEFAULT method of your main window:

193.Can you run a Webdynpro Application in background?
This is a tricky question. It doesn’t make sense to run a webdynpro application in background because in that case you are beating the purpose of the MVC controller architecture for webdynpro. However, you can build logic to create background jobs from a Web Dynpro Application. 

So we have by now put a bunch of questions here. Let me know how you find these questions.
We haven't yet covered Web Dynpro component usage , ALV, Select Options , OVS , the coding part in web dynpro, Web dynpro enhancements etc. 

194.What is Web Dynpro Component Usage?
Real world business scenarios are quite complex and may involve multiple Web Dynpro Components.
While dealing with multiple WD components, you may come across a situation where you need to reuse already developed parts of an existing Web dynpro component.

The Web Dynpro framework provides you with a technique called ‘Component Usage’, with the help of which you can reuse the events, methods, and context of one WD component into another WD component.
Standard examples of Component Usage: Select Options , ALV , OVS.
You declare component usage both at the Component and at the view levels:

@Component Level:

@View Level:

195. Briefly explain how will you use implement Select Options in Web Dynpro?
1) Declare Component Usage for Standard WD component WDR_SELECT_OPTIONS both at component and view level. 



2) Place a VIEWCONTAINER on your main view and embed the view ‘WND_SELECTION_SCREEN’ of component WDR_SELECT_OPTIONS in it.

3) Use the methods CREATE_RANGE_TABLE and ADD_SELECTION_FIELD for your fields on Selection screen.

4) Use method GET_RANGE_TABLE_OF_SEL_FIELD to read user input before you do a SELECT.

196.What is the Web Dynpro Phase model?
Whenever a roundtrip occurs from the client (browser) to the server, a sequence of processing steps is executed. This sequence of processing steps in web Dynpro is called the ‘Phase Model’.
Executing all the tasks in the phase model is the responsibility of the Web Dynpro framework.
Each step is executed only once and errors if any are captured.

197.What is OVS? Can you explain the different phases used in OVS?
First we should understand the difference between Value help and OVS i.e. object Value Selector.
We use generic Value Help only for the field to which it is bound.
OVS is used when we want to populate multiple fields based on one field on the screen.

So as per the screenshot , If I select Userid from OVS help, First name and Last name will be populated automatically. The standard component WDR_OVS is used for implementing OVS.

OVS works on the PHASE MODEL and different tasks are performed during different phases.
The current phase is indicated by the parameter PHASE_INDICATOR.

Phase 1:
In this phase you have the possibility to define the texts, if you do not want to use the defaults: So You can play around with the highlighted texts in the screenshot below in this phase.
Here we call the method ovs_callback_object->Set_Configuration

Phase 2:
If you do not want the filter fields, you can do that in this phase and the table will be displayed directly. Refer screenshot below. The table is displayed directly. I have blurred some results.Here you can call the methodovs_callback_object->Set_Input_Structure


Phase 3:
In this Phase, You write the select queries that should run as per user input when the user hits ‘Start Search’ button and finally set the output table.You can call the method ovs_callback_object->Set_Output_Table for that purpose.

Phase 4:
In this phase , you pass the selected record to the Web dynpro Fields.
i.e. set the attributes using  ovs_callback_object->context_element->Set_Attribute 

198.Briefly explain how will you implement ALV in Web Dynpro?
To implement ALV in Web Dynpro, you need to use the Standard WD component SALV_WD_TABLE.
We need to use:
a) the view ‘TABLE’ of component SALV_WD_TABLE
b) the node ‘DATA’ of component SALV_WD_TABLE.
Here is the brief process:

1) Declare component Usage for SALV_WD_TABLE at the WD component level and the view level.
@ Component Level:


@ View Level:

2) Put a VIEWCONTAINER UI element on the MAIN view and ember the view ‘TABLE’ of
     SALV_WD_TABLE into it.


3) Let’s say the ALV data is to be populated in NODE_FLIGHT.
    Write the logic to select the ALV Data and bind it to NODE_FLIGHT:
    node_flight_alv->BIND_TABLE( lt_node_flight_alv ).

4) Do a Context mapping between NODE_ALV and the node ‘DATA’ of SALV_WD_TABLE.


 199.How to make columns in a table editable?
While doing the Binding for the Table, just choose 'Input field' instead of 'Textview'.
Refer the Screenshot below:

200.How will you delete selected rows in a Table / ALV?
Get the Table / ALV data in an internal table.
Delete the row selected by the user from the internal table.
Re-bind the internal table to the node bound to the Table/ALV.

201.How do you generate POP UP in WD? 
This can be easily done using the Wizard:
The CREATE_WINDOW method is used in this case.



202. How do you close a window in Web Dynpro?

There is a special outbound plug called ‘Exit Plug’ that can be used for this purpose.
wd_this->fire_to_exit_plg( url = url close_window = close_window ).



Also explore other Plug Types: 


203.Can you have Totals and Subtotals in Web dynpro ALV? How?
Hint: First get the reference of the ALV. Then get the columns.
          By looping at lt_columns , get to the required column.
          Once you achieve this, check methods create_aggr_rule and create_sort_rule of the class
          cl_salv_wd_field.

204.Can you have TOP OF PAGE and END OF PAGE? How? 
Hint: Check TOP_OF_LIST and END_OF_LIST events. 

Have you worked on events in ALV in web dynpro?
                  Which events do you know?


  205.Can you add custom buttons on Web Dynpro ALV toolbar ? How?


Can you add custom buttons in Web Dynpro ALV cells ? How?

 206.Can you add Image / Icons in Web Dynpro ALV cells ? How?
                   How do you define and implement action handlers for them?




 207.Can you add links in Web Dynpro ALV cells?


208.What is dynamic ALV in web dynpro ?


No comments:

Post a Comment