P. 1
Sappress Web Dynpro for Abap

Sappress Web Dynpro for Abap

|Views: 23|Likes:
Published by Murthy Vanka

More info:

Published by: Murthy Vanka on Sep 27, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/27/2011

pdf

text

original

Sections

  • 3Developing WD4A Applications
  • 3.1Transferring Parameters from a URI
  • 3.1.1Reading and Displaying Parameters
  • 3.2Influencing the Request/Response Cycle
  • 3.2.1Automatic Triggering of Requests
  • 3.2.3Automatic Forwarding
  • 3.3Implementation of Selection Options
  • 3.3.1Using Dropdown Lists
  • 3.3.2Using Radio Buttons
  • 3.4Presentation of Tree Structures

Ulli Hoffmann

Web Dynpro for ABAP®

Contents at a Glance
Introduction ....................................................................... 1 2 3 4 5 6 7 A B C On the Development of Web-Based Applications ............ WD4A Framework ............................................................. Developing WD4A Applications ........................................ 13 23 37 95

Multi-Component Applications ......................................... 185 Dynamic Component Applications .................................... 225 Reusing WD4A Components ............................................. 261 Integrating WD4A Applications ........................................ 293 Classes and Interfaces ....................................................... 317 Bibliography ....................................................................... 353 The Author ......................................................................... 354 Index .................................................................................. 355

Contents
Introduction ........................................................................................... 13

1

On the Development of Web-Based Applications ............
1.1 1.2 1.3 1.4 Mainframe and Client Server Systems .................................... Business Server Pages ............................................................ Web Dynpro Framework ....................................................... Web Dynpro for ABAP for Future Use ....................................

23
24 27 29 35

2

WD4A Framework ..............................................................
2.1 Web Dynpro Explorer ............................................................ 2.1.1 View Elements .......................................................... 2.1.2 View Designer ........................................................... 2.1.3 “Hello World“ ........................................................... Relationships Between Application and Component .............. Visual Parts ............................................................................ 2.3.1 Interface Views and Plugs ......................................... 2.3.2 View Layout .............................................................. 2.3.3 Windows .................................................................. View Controller and View Context ......................................... 2.4.1 Context Property Cardinality ..................................... 2.4.2 Singleton and Lead Selection Context Properties ....... 2.4.3 Supply Function Method ........................................... 2.4.4 Sample Applications .................................................. Controllers and Controller Methods ....................................... 2.5.1 Hook Methods .......................................................... 2.5.2 Instance Methods ..................................................... 2.5.3 Event Handler Methods ............................................ 2.5.4 Fire Methods ............................................................ 2.5.5 Additional Information About Context ...................... Navigation, Inbound Plugs, and Outbound Plugs ................... Phase Model .........................................................................

37
37 39 41 43 51 53 53 56 60 61 63 66 70 71 78 80 82 82 83 84 87 91

2.2 2.3

2.4

2.5

2.6 2.7

3

Developing WD4A Applications ........................................
3.1 Transferring Parameters from a URI ....................................... 3.1.1 Reading and Displaying Parameters ........................... 3.1.2 Controlling the Navigation Via Parameters ................

95
95 96 98

7

Contents

3.2

3.3

3.4

3.5

3.6

3.7

3.8 3.9

3.10

Influencing the Request/Response Cycle ................................ 3.2.1 Automatic Triggering of Requests .............................. 3.2.2 Automatic Triggering of Requests with User Interaction ........................................................ 3.2.3 Automatic Forwarding .............................................. Implementation of Selection Options ..................................... 3.3.1 Using Dropdown Lists ............................................... 3.3.2 Using Radio Buttons .................................................. Presentation of Tree Structures .............................................. 3.4.1 Sequential Building of Tree Structures ....................... 3.4.2 Recursive Tree Structures .......................................... User Guidance per RoadMap and Messages ........................... 3.5.1 Structure of the RoadMap Application ...................... 3.5.2 Message Handling ..................................................... Presenting Tables ................................................................... 3.6.1 Table Output and Row Selection ............................... 3.6.2 Selection of Single or Multiple Rows ......................... 3.6.3 Changing Single Cells Using Variants ......................... Calling Popup Windows ......................................................... 3.7.1 Message Popups ....................................................... 3.7.2 Query Popups ........................................................... 3.7.3 Popups with Navigation ............................................ Using Input Helps .................................................................. Internationalization ............................................................... 3.9.1 Online Text Repository .............................................. 3.9.2 Assistance Class ......................................................... Customization, Configuration, Personalization ....................... 3.10.1 Implicit and Explicit Configurations ........................... 3.10.2 Configuring Components and Applications ................

103 104 106 109 111 112 121 125 126 131 137 138 148 152 152 157 159 163 164 166 168 171 172 173 175 176 177 177

4

Multi-Component Applications .........................................
4.1 A Model of Layer Separation ................................................. 4.1.1 Strict Separation ........................................................ 4.1.2 Light Separation ........................................................ 4.1.3 Strict versus Light Separation .................................... 4.1.4 MVC Concepts in the WD4A Framework .................. Defining WD4A Component Usages ...................................... 4.2.1 Embedding Windows of Used Components ............... 4.2.2 Calling Methods of Used Components ...................... 4.2.3 Triggering Cross-Component Events .......................... 4.2.4 External Context Access Using Direct Mapping ......... 4.2.5 External Context Access Using Reverse Mapping .......

185
185 187 188 189 190 192 194 195 196 197 198

4.2

8

Contents

4.3

Componentizing an Application ............................................. 4.3.1 Structure of the Sample Application .......................... 4.3.2 Implementing the Components ................................. 4.3.3 Result of Componentization ...................................... 4.3.4 Redesigning the Sample Application ......................... 4.3.5 Overview of Used Components and Sample Applications ..................................................

200 201 202 218 218 224

5

Dynamic Component Applications ....................................
5.1 Types of Dynamic Changes .................................................... 5.1.1 Dynamic Modification of the Properties .................... 5.1.2 Dynamic Modification of the UI Hierarchy ................ 5.1.3 Dynamic Binding of Properties .................................. 5.1.4 Dynamic Modification of the Context ........................ 5.1.5 Dynamic Modification of Action Assignments ........... Dynamic Programming—A Sample Application ...................... 5.2.1 Dynamic Display of Address Data .............................. 5.2.2 Creating Business Partners ........................................ 5.2.3 Metadata for the Address Formats ............................ 5.2.4 Implementation and Layout of the Component .........

225
225 226 229 234 235 236 237 237 241 242 246

5.2

6

Reusing WD4A Components .............................................
6.1 6.2 Comparing Classes and Components ...................................... ALV Component SALV_WD_TABLE ....................................... 6.2.1 Using the ALV Component ........................................ 6.2.2 Accessing the ALV Configuration Model ................... OVS Component WDR_OVS .................................................. SO Component WDR_SELECT_OPTIONS ............................... Developing Input-Help Components ...................................... 6.5.1 Implementation of the Input-Help Component ......... 6.5.2 Using the Input-Help Component ............................. Enhancements of Components ...............................................

261
261 263 264 267 270 275 282 283 286 288

6.3 6.4 6.5

6.6

7

Integrating WD4A Applications ........................................
7.1 Integration into the SAP NetWeaver Portal ............................ 7.1.1 Triggering Portal Events ............................................ 7.1.2 Registration to Portal Events ..................................... Graphical Display of Data ...................................................... 7.2.1 Using the BusinessGraphics View Element ................. 7.2.2 Connecting the Data Source ......................................

293
293 294 295 297 299 303

7.2

9

......... A............3.................... A........1.............. A............................. A....2.....1 IF_WD_WINDOW ...................... A.......... 308 309 309 311 A Classes and Interfaces ...7........................6 CL_WD_UTILITIES ......2 IF_WD_MESSAGE_MANAGER ................................4 A.................................. A....2 IF_WD_PORTAL_INTEGRATION ................ Other .........................1 IF_WD_CONTEXT ..............1..............................4 IF_WD_VIEW_ELEMENT ......... A................................................. A.......3............... A........................................ A..3.........................7 10 .........................2.............. Context ........4....3 CL_WD_ADOBE_SERVICES .. A.. 7.....3................................. Window ..... A...............4 IF_WD_PERSONALIZATION .......3 IF_WD_COMPONENT_USAGE_GROUP ..........1......... Integration ............1 IF_WD_ACTION ........... A................................................................................. A........................................... A................................................1..5..........2 IF_WD_CONTEXT_NODE ............................ 7..........2 A............5 A..3 IF_WD_NAVIGATION_SERVICES ............................ A..... Application ...................4 IF_WD_CONTEXT_ELEMENT ..... A.........5............. 317 317 317 320 324 325 326 326 328 329 332 332 335 335 336 337 338 338 339 339 341 341 341 342 342 342 342 343 343 344 346 348 348 349 A.....3 Using the InteractiveForm View Element .................................................7........................5 IF_WD_VALIDATION .......... 7........2 IF_WD_VIEW ............7.. A......2....................3 IF_WD_CONTEXT_NODE_INFO ............6............4...............................2........................ A..3..................................... A.6 A..............................................1 System Requirements for Interactive Forms .........1 IF_WD_APPLICATION ....3 A...... A.3..3 Interactive Forms Via Adobe Integration ......2 IF_WD_WINDOW_CONTROLLER ..................................1 IF_WD_CONTROLLER .......... A..........5 CL_WD_RUNTIME_SERVICES ..........4 CL_WD_CUSTOM_EVENT ............................................... A......................................3 IF_WD_VIEW_CONTROLLER .... A....7.............2...................5..1 Component ...............2 IF_WD_COMPONENT_USAGE ...........................................2 Scenario for Using Interactive Forms .........3...........Contents 7. A.3...... View ..................................................................7............................... A........................5 CL_WD_CONTEXT_SERVICES ........7..............................1 IF_WD_COMPONENT .....................1 CL_WDR_PORTAL_OBNWEB_SERVICE ............................ A...............................................

........................... 355 11 ...............Contents B Bibliography ............ 353 354 Index ................................................................................................................ C The Author ..................................................................................

and in so doing. Before and while this book was being written. you will have ample knowledge to implement the new SAP user interface strategy based on the WD4A (Web Dynpro for ABAP) framework. and it will help you with problems that can arise during the migration to the WD4A framework. The goal of this book is to create a foundation that can be used with the SAP Help Portal (http://help. This book will help you to better support users.sap. or by using Drag&Drop in the layout preview. Therefore.com) to meet the requirements and challenges of new projects regarding Web Dynpro for ABAP and to find a solution whenever questions arrise. It's up to you to use your intuition and curiousity to find other solutions. new ideas and suggestions for enhancing and extending the 13 . program fragments can be created either manually or by using a code wizard. This book will discuss general concepts for designing and developing web-based systems and specifically detail their specifications when they are implemented within the WD4A framework. or addressing component-based reuse-focused software development. the procedures presented in this book use rather basic and easy-to-comprehend methods. Audience This book is intended for ABAP application developers who are familiar with the ABAP Development Workbench and the user interface development methods available. For example. however.Introduction After you have read this book and implemented the examples and scenarios. there existed great communication between the first application developers using the WD4A framework and the groups responsible for the design and implementation of the framework.com) and the SAP Developer Network (http://sdn. The layout can be designed by adding view elements to the UI tree.sap. the separation of business and presentation logic while observing the Model View Controller (MVC) concept. The WD4A framework enables you to use different methods for solving a problem. enhance the knowledge that you will gain in this book. and who now want to implement business processes and their user interaction based on the WD4A framework. there may be a specific design procedure for which a different control sequence is used and is not mentioned here. for example. For this reason.

Therefore. Additional references are listed in the bibliography (see Appendix B). 14 . Business Server Pages (BSP). Prerequisites Because the WD4A framework was developed completely in ABAP Objects. If you already gained some experience in developing web applications based on Java Server Pages (JSP).sap-press. XML.Introduction WD4A framework reached the responsible departments very quickly.com). we cannot go into detail regarding the concepts of object-oriented programming and its implementation in ABAP Objects. a sound knowledge of object-oriented ABAP programming is integral for understanding the topics discussed in this book. SAP PRESS.1 You should be familiar with handling classes and interfaces in ABAP Objects and with the most common ABAP language items.sap. you can download a test version of SAP NetWeaver Application Server ABAP from the SAP Developer Network (http://sdn. you will encounter object-oriented concepts throughout the implementation. or other technologies. publications and sources that provide additional useful information for specific areas will be referenced. in particular. It is assumed that the WD4A framework will be continuously developed and extended by new functionalities. Therefore. to integrate the growing library of view elements in your applications.com) that can be installed locally on your PC. In the Downloads • SAP Evaluation Software • Web AS area. you might be surprised at the restrictive handling of the WD4A framework when it comes to the manual integration of JavaScript. but are the foundation for every other web application. CSS. HTML. offers a wide range of literature in this respect (http://www. This restriction was introduced in order to enable the WD4A applications to support emerging client technologies that don't use JavaScript for client-side flow control. To reproduce the examples given in this book. ultimately. These are not specific to the WD4A framework. The objective of the WD4A framework development is to encapsulate the complex and specific details and connections of these technologies so that they will eventually become transparent to you and you can then completely focus on implementing the program logic. navigate to the Sneak Preview SAP NetWeaver 04s—Full ABAP Edition with Web Dynpro for 1 Whenever it makes sense. and. WD4A applications integrate a number of technologies like HTTP. and client-side scripting. this book should encourage you to discover these new features. to test them.

when you have the knowledge 15 . Then. the component is the most important part. you'll be introduced to the most important steps of component and application development. you should be at least somewhat familiar with the following topics: Communication processes in HTTP or HTTP request/response cycles Particularities of programming within distributed development environments Differences between client-side and server-side scripting Purpose and use of design patterns in programming The parameters to be used for designing layouts are based on Cascading Style Sheets (CSS) standards. Based on the functionalities of the BSP technology and its predecessors. the Web Dynpro Explorer that is integrated in the Object Navigator. To better understand the WD4A framework. By our first presenting the architecture of the WD4A framework. The componentbased software development therefore facilitates reuse and reduces development costs. ABAP Objects constructs belong to the essential part of a WD4A application so that another focus should also be on the presentation and discussion of program fragments that can be used to solve problems. When developing WD4A applications. First.Introduction ABAP package. Structure For most developers. such as the component controller. WD4A applications can be composed of one or more components. the actual implementation is the quickest way to become familiar with a new technology. view. It is therefore helpful to have a certain overview of CSS language items and units. window and application. The present status and the concepts behind it will be closely examined. go to the Installation Guide file. For detailed information about the installation process and system requirements. you will get to know the characteristics and advantages of the WD4A framework. Chapter 1 deals with some particularities regarding the design and the development of web-based applications. Chapter 2 introduces you to the WD4A development environment. The structure of this book is therefore based on using simple examples and scenarios in the introductory sections to illustrate the concepts. you learn about the immediately visible parts.

you learn how to output messages about the user via the message manager. even more complex applica- 16 . The layout is defined separately from the business logic.Introduction necessary to create your first simple components. but they are based on the same concepts with regard to their implementation and handling in the WD4A framework. The framework controller methods are called at different times in the phase model of the WD4A framework and form a kind of user exit of the framework that enables you to influence the programmatic process. It concludes with a list of the input help concepts implemented in the WD4A framework. The most complex and most commonly used view element when visualizing business data is the Table element. This chapter also provides procedures for implementing popups and using the RoadMap and Tree elements. this chapter introduces important view elements contained in the view element library of the WD4A framework and describes their function.. The view controller therefore also controls the view. By implementing scenarios that might be familiar to you from web applications based on other technologies (e. Based on this concept. and the implementation of supply function methods. we'll show you display formats and properties and discuss the handling of cell variants. and embed it in a window. and the data provision for the view can be implemented in methods of the view controller. additional relationships are shown that exist within the WD4A framework among component. Dropdown lists and radio buttons are different with regard to their usage. the parts of the context and of the framework controller methods. you get your first insight into using the context. Chapter 3 builds on your newly acquired abilities and knowledge in order to help you develop more complex components based on the available view elements. These include the functions of the inbound and outbound plugs.g. Additionally. and view elements. the data binding. window. the view element properties.). Examples whose structure is based on the Model View Controller concept are developed. Chapter 4 deals with the concepts required for developing multi-component applications. Whereas the components created and described so far used only simple view elements like the TextView view element. automatic forwarding. you learn how to design a simple. Using three differently structured “Hello World“ applications. structured view. For this element. They are discussed using example applications. the functions of the actions and their event handler methods. periodic polling of the web browser. followed by the other parts of the framework. etc.

in the view. For action-triggering view elements like the Button element. by using a Uniform Resource Identifier (URI). We will also show you how context node attributes can be added and the properties of dynamically created view elements can be bound against them. When implementing the componentization. Additionally. By reusing existing components. The concept of direct and reverse context mappings is described in this context.Introduction tions can be separated into different components: UI components that organize the arrangement of view elements. the context. parameters are determined from the address data at runtime. and its mapping types are the central parts. These concepts of dynamic programming will be illustrated in an example application: business partner addresses will be presented in the client under consideration of the format used in the respective country. Accelerated 17 . You'll learn how you can add view elements to the UI hierarchy of the layout definition at runtime and thereby dynamically influence their properties. Context data can be defined in the component. mapping components can access and change the data of other components. These parameters can be dynamically generated to enable the localization of the respective business partner via Google Map. and applied for many years. actions can also be defined at runtime in dynamic programming. current resources can be used more efficiently. The concepts that pertain to the ability to program dynamically will be described in Chapter 5. the concepts already presented are extended for reuse in the WD4A framework. as a data container. The various components communicate by using context and events that are accessible via their interfaces. The idea of reusability of software modules has been examined. In Chapter 6. propagated. Because parts of the address and their arrangement can be different from country to country. and in the window controller. By defining the context nodes as interfaces. the model component is responsible for data storage and program logic. The main component or controller component is responsible for instantiating the use and its lifetime. which then trigger event handler methods generated by the WD4A framework. requirements that change program processes and layout structures at runtime can emerge. To be able to consider these requirements when developing components. the arrangement of the view elements will be created dynamically at runtime. the WD4A framework enables the dynamic programming of components. During the design phase of complex WD4A applications.

From the names of context nodes and context attributes. From different chart types and chart rendering methods—comparable to those given in Microsoft Excel—you can select the display format that best meets your needs. you can anticipate default implementation steps. Input helps support the user when editing forms.Introduction development cycles and cost reduction are two main reasons for further promoting these concepts. Conventions The WD4A framework uses the term context for describing structured data storage within the controller. and the user-specific development of input-help components. this chapter will show you how to implement the use of the ABAP List Viewer (ALV) component. along with some extensions. The length of these names. Simple input helps based on the ABAP Dictionary can be implemented very quickly by selecting the context attribute type. the WD4A framework generates the names of the type definitions and interfaces. the ALV component provides extensive personalization and configuration options that are described in detail. We will present the numerous possibilities with an example that uses the Google Web APIs service as a data source. 18 . Based on the componentization described in Chapter 4. The integration of business graphics in WD4A components enables the presentation of charts and geographic map material. they can be implemented in a component to be available to other WD4A applications. which enables the creation of interactive PDF forms that can be edited both online and offline. scenarios are enabled by integrating applications that are based on other web technologies. For the tabular presentation of data. These include the integration in the SAP NetWeaver Portal and the resulting possibilities for implementing client-side eventing. The WD4A framework now enables you to build component-based business applications from the user interface and to structure them in a reusable way. For more complex selection scenarios. the object value selector component. You will also get to know a scenario that shows the integration of the Adobe Document Service in the WD4A framework. Chapter 7 finally deals with the integration possibilities of WD4A applica- tions. This enlarges the integration potential in heterogeneous system landscapes. Using the SAP NetWeaver Portal. The main parts of the context are context nodes and context attributes. the select options component. In this context.

To unify the IDs and to better distinguish the individual view elements. we will identify them using the prefixes shown in Table 1. Therefore. View Element BusinessGraphics Button ButtonRow Caption DropDownByIndex DropDownByKey FileUpload Group HorizontalGutter InputField InteractiveForm Label LinkToAction LinkToURL RadioButton RadioButtonGroupByIndex RadioButtonGroupByKey RoadMap RoadMapStep Table TextEdit ID Prefix BGR_* BTN_* BTR_* CPT_* DDI_* DDK_* FUD_* GRP_* HOG_* INP_* IFO_* LBL_* LTA_* LTU_* RBT_* RBI_* RBK_* RMP_* STP_* TBL_* TXE_* Example ID BGR_SALES BTN_SAVE BTR_DETAILS CPT_COLUMN DDI_COUNTRY DDK_REGION FUD_CONTRACT GRP_FORM HOG_ROADMAP INP_NAME IFO_CUSTOMS LBL_INPUT LTA_SEARCH LTU_VENDOR RBT_MALE RBI_GENDER RBK_TYP RMP_DIMENSIONS STP_DIMENSION TBL_ADDRESS TXE_INFO Table 1 Prefixes of Used View Element IDs 19 . For example. the part of the type definition following the => character combination cannot exceed a maximum of 30 characters.Introduction however. is limited to 30 characters. You should keep this in mind when selecting the names of context nodes and context attributes. as far as they are mentioned in this book. creating a context node named EXAMPLE_NODE in the V_DEFAULT view results in the type definition if_v_default=>element_example_node being stored in an interface. The total length to be observed results from the element_ and example_node parts.

the prefixes listed in Table 2 are selected. the font style conventions shown in Table 3 are used: Component Part Example TextView TXV_INTRO text header1 CONTENT MANDT View element View element ID Property Property value Context node Context attribute Table 3 Identification of Component Parts 20 . Element Prefix W_* V_* IP_* OP_* Example W_DEFAULT V_DEFAULT IP_START OP_EXIT Window View Inbound-Plug Outbound-Plug Table 2 Prefixes of Component Elements For distinguishing different parts within the components.) For component elements.Introduction View Element TextView TimedTrigger TransparentContainer Tray Tree TreeNodeType TreeItemType ViewContainerUIElement ID Prefix TXV_* TTR_* TCO_* TRY_* TRE_* TNT_* TIT_* VCU_* Example ID TXV_INTRO TTR_NOTIFY TCO_TABLE TRY_FORM TRE_SIMPLE TNT_FOLDER TIT_FILE VCU_ROADMAP Table 1 Prefixes of Used View Element IDs (cont.

You can either load the examples as a transport into your installation of the SAP NetWeaver Application Server ABAP. German user interface elements appear. and to build up the necessary expertise in this environment thanks to independent web projects (based on previous SAP technologies). mr_* DO_SET_COUNTER Controller attribute Controller actions Table 3 Identification of Component Parts (cont.) Additionally. mt_*. Acknowledgement When compiling the contents of this book—already during the development phase of the WD4A framework—I had the great advantage to gain insights into the design.Introduction Component Part Example mv_*. or implement them manually using screenshots and ABAP statements in TXT format. to cooperate on additional functionalities.sap-press.com or www. All components and applications described in the following chapters and sections and using this prefix are available for download in two formats on the web pages of the book under http://www. 21 . Where these words are referred to in the text. the WD4A framework contains the reserved keywords from Table 4. Reserved Keywords CONTROLLER COMPONENT F_APPL_CLASS FIRST_INIT RESULT CONTROLLER_NAME EVENT F_ROOT_INFO PLUG VIEW COMMAND EVENT_NAME F_ROOT_NODE PARAMETERS VIEW_NAME Table 4 Reserved Keywords in the WD4A Framework The names of components and applications used in this book have the prefix ZEXP_*. ms_*. we have provided the English translation in parentheses.de/1214 respectively. In some of the screenshots.sappress.

I would particularly like to thank Regina Breuer. I could always rely on the WD4A forum in the SAP Developer Network (SDN) when I was compiling the topics and contents. and especially my editor Stefan Proksch. which was only accessible to SAP-internal users until the official market launch of the WD4A framework. Thomas Szuecs. 22 . The forum. I could rely on the knowledge of the respective SAP experts. and Dirk Jennerjahn. however. support. I could always rely on the direct feedback of Regina Breuer. Stefanie Mayer. Additionally. Uwe Klinger. their tips regarding the contents and the structure. My biggest thank you. and develop examples from the scenarios described therein. I could design parts of this book. Ariane Buster. I could draw on the extensive experience and procedures of application developers during the making of this book. and may you continue having great ideas and fun developing! For their time spent reviewing the material. Predicated on this basis. Brian McKellar. I got great support from Nestor Sosa. goes to Claudia for her love. and hopefully pass on their wisdom in a sensible way. Without their valuable support. this book would not have been possible. When I was working on the technical details and specific scenarios. gave me a detailed insight into the developers' questions and problems that arose during their adjustment to the new UI technology. compose individual subject areas. When I was reviewing and designing specific scenarios and examples. I would like to thank Rüdiger Kretschmer. Klaus Ziegler.Introduction Whenever I had to become familiar with areas that were still unknown to me. Aiga Uhrig. even before the first version of the WD4A framework to be released to the market was finalized (Release SAP NetWeaver 2004s). In this way. Thomas Weiss. and Heidi von Geisau— thank you all. and Dirk Feeken for their suggestions and tips regarding Web Dynpro. and understanding for the enormous amount of time that is taken up by such a project. Uwe Klinger. Thomas Szuecs. Thorsten Kampp.

?. @. the restrictions for query components listed in RFC 23961 apply.google. 95 . we'll introduce several typical web scenarios. Our goal here is to clarify the coherences that exist within a component among component controller. +. /. for example. and window controller. we'll take a closer look at the development of WD4A (Web Dynpro for ABAP) applications. .com/search?hl=com&q=webdynpro 1 RFCs (requests for comments) deal with standards as well as advanced ideas.In this chapter. and $. reserved characters are . :. concepts. Two potential scenarios are the transfer of data between two applications that call each other or the control of actions on the server. The query component can be used in many ways. all other parameter pairs are separated by the & character. The WD4A framework implements the transfer of parameter value pairs in the URI's query component as follows: [parameter_name]=[parameter_value] The first parameter pair is attached to the URI using the ? character.. 3 3.. Otherwise. view controller. =. A URI with two parameter value pairs could therefore have the following format: http://www. for presenting tree structures and tables. and descriptions about the Internet.1 Developing WD4A Applications Transferring Parameters from a URI Parameters and their values that are part of the Uniform Resource Identifier's (URI) query component can be attached to the URI of an application or website to be called. To do this. as well as a number of more complex view elements. &.

the name of this inbound plug is preset in the window as a DEFAULT.2). but results in a clean solution because the lack of parameters in the URI would lead to a runtime error. however. In the method. the parameters defined in the inbound plug can be assigned default values (see Figure 3. and therefore.1). a Value of any_name is specified. Figure 3. the values are read and assigned to the context attributes (see Figure 3. for both parameters. FIRST_NAME and LAST_NAME. you must define the parameters that are expected in the event handler method of the component window inbound plug that is marked as the startup plug. In the WD4A framework. In this case. we will now show how URI parameters can be passed to an application and evaluated in the WD4A framework. This is not mandatory. Therefore. 96 . The parameters first_name and last_name are defined as Importing parameters in the event handler method handledefault().1 Event Handler Method of the Startup Inbound Plug In the WD4A application. every other inbound plug created by the user can be marked as the startup plug. the context in the windows controller consists of a context node named CONTENT and two STRING attributes named FIRST_NAME and LAST_NAME. In every component.3 Developing WD4A Applications 3.1.1 Reading and Displaying Parameters Using the example ZEXP_PARAMETER_APP. their names must match the name in the URI exactly.

2 Preassignment of the Application Parameters The window controller must be defined in the V_DEFAULT view as Used Controller (see Figure 3.1 Figure 3.4).4 Mapping the Window Controller Context 97 . Figure 3. click on the creation icon on the left-hand side and select the controller name W_DEFAULT. In the Properties tab.3 Defining the Use of the Window Controller Figure 3.Transferring Parameters from a URI 3. How the window controller will be used must be defined in order to map the context node of the window controller in the view controller (see Figure 3.3). you can then bind the attributes FIRST_NAME and LAST_NAME to the text property of the TextView view elements that are responsible for the output of the parameter values. In the view layout.

7 or Figure 3. We will illustrate this by using the implementation of another component named ZEXP_PARAMETER_NAV. To implement this example.5 Client Output without Parameters in the URI If you complete the URI in the Address line accordingly. If the target_view parameter is set to a value of one.3 Developing WD4A Applications After the initial call of the application without the parameters transferred in the URI. the view V_ONE will be displayed. Figure 3.5). the view V_TWO will be displayed. by adding parameter names and values. in the view editor. You can minimize the effort necessary for the layout. 98 . create two views named V_ ONE and V_TWO for the component ZEXP_PARAMETER_NAV. Figure 3. if the target_view parameter is set to a value of two. Here. The navigation to various views will be implemented based on URI parameter values at program runtime. It is therefore sufficient if you integrate a TextView view element that outputs a distinguishable text as shown in Figure 3.2 Controlling the Navigation Via Parameters In addition to simply displaying the parameters passed via the URI.1. the default values defined in the application characteristics are displayed (see Figure 3. the result should correspond to the display shown in Figure 3.8.6. since we only need some indication in the display that the navigation was performed to the right view.6 Display of the Parameters Passed in the URI 3. they can also be analyzed on the server and used to control processes or calls. the parameters first_name and last_name were assigned the values John and Doe.

we are ready to move to the window editor. Depending on the triggered inbound plug. Figure 3.9 Definition of the Inbound Plug in the View V_ONE Now that we have completed the tasks to be performed in the view editor. which is triggered based on the transferred URI parameter value. Name the inbound plug for the V_ONE view IP_V_ONE and the inbound plug for the V_TWO view IP_V_TWO. As described in Section 2.7 Result with Parameter One Figure 3. There is always only one view that is marked as the default view. you need to indicate an inbound plug of the window marked as a startup plug when you create the application.9 shows an example of the inbound plug definition for V_ONE.8 Result with Parameter Two The views additionally each require an inbound plug. the identification of the default view must be confirmed or changed during the development phase. the appropriate view is displayed. Figure 3.1 Figure 3. The WD4A framework always sets the first view embedded in the window as the default view.3. Consequently.1. Usually.Transferring Parameters from a URI 3. This plug is the link between the application URI and the component window. 99 . the view that is displayed first within the window is the view that has the Default property set.

For this purpose. Additionally.10.10 Definition of Outbound Plugs in the Window The linking of the window's outbound plugs to the view's inbound plugs takes place in the window structure editor. as shown in Figure 3. Figure 3.3 Developing WD4A Applications However. Repeat this step for the outbound plug OP_TO_V_TWO by linking it to the inbound plug IP_ V_TWO. Alternatively. which is performed at runtime. V_ONE would be displayed first at application startup. The navigation is influenced by triggering outbound plugs of the window that are each bound to an inbound plug of the respective view. you can select the target view and its inbound plug. We will now override the default behavior implemented in the WD4A framework by evaluating the URI parameter target_view in the event handler of the window's startup plug and by making the corresponding decisions about the further navigation that is necessary.12). the evaluation of the URI parameter target_view. The outbound plugs are defined in the window editor. and without previously evaluating the URI parameters. it is necessary to define the outbound plugs of the window and link them to the inbound plugs of the view. you can transfer this identification to another view as well. open the context menu by right-clicking on the outbound plug OP_TO_V_ONE and select the Create Navigation Link option (see Figure 3. In the following popup window. must be implemented in the event handler method of the window's startup plug.11). in our ZEXP_ PARAMETER_NAV example. If the view V_ONE was set as the default value view. 100 . you need to define the parameter as it is shown in the URI as an import parameter of the event handler method (see Figure 3. The plugs are defined in the Outbound Plugs tab. In the last step. this is the inbound plug IP_TO_V_ONE. Name the outbound plug that performs the navigation to the V_ONE view OP_TO_V_ONE and the second outbound plug OP_TO_V_TWO. For this purpose. you can also link the plugs using Drag&Drop.

1 Figure 3. WHEN 'one'. Depending on the value for the import parameter target_view. the WD4A framework automatically creates an inbound plug named DEFAULT and marks it as the startup plug. wd_this->fire_op_to_v_two_plg( ). METHOD handledefault.1 Implementing the Event Handler Method 101 . Listing 3. Figure 3. CASE target_view. ENDMETHOD. At this time. WHEN 'one'.1.Transferring Parameters from a URI 3. which are to be implemented in the event handler method. are presented in Listing 3. wd_this->fire_op_to_v_one_plg( ).12 Definition of the URI Parameter as the Import Parameter The statements for evaluating the parameter and triggering the navigation. the two outbound plugs of the window are triggered. ENDCASE.11 Define Navigation Link When a window is defined. the WD4A framework also creates the corresponding event handler method named handledefault().

A view cannot be directly called in the event handler method.13 Controlling Views to Be Displayed Using the Event Handler As explained in Section 3. in our case. the view V_ONE is always displayed.13 again illustrates the coherences between the outbound plug of the window and the inbound plugs of the views. The outbound plugs OP_TO_ V_ONE and OP_TO_V_TWO are parts of the W_DEFAULT window. the lack of the parameter target_view in the URI would lead to a runtime error. This means that if the parameter target_view is missing.14). this is a value of one (see Figure 3. the inbound plugs IP_V_ONE and IP_V_TWO are parts of the respective view. must be linked to the respective inbound plug of the view. but is always called by triggering outbound plugs.1. in turn. To prevent this from occurring. Figure 3. you can preassign the parameter with a value in the parameter definition of the application. Window W_DEFAULT Event Handler handledefault Outbound Plug OP_TO_V_ONE Outbound Plug OP_TO_V_TWO Inbound Plug IP_V_ONE View V_ONE Inbound Plug IP_V_TWO View V_TWO Figure 3.14 Definition of a Default Value for the URI Parameter Another exception that might occur at the runtime of the application would be an undefined value that could be passed to the parameter target_view in 102 . which.3 Developing WD4A Applications Figure 3.

HTTP Request Client 2.2 the URI.15 Client/Server Communication In most cases. and the response is composed based on the action performed by the user and then sent to the client. this view would have to be marked in the window as the default view. if the URI parameter target_view was not defined. On the server. If the view V_TWO will be displayed if the target_view value cannot be evaluated. On the server. 3.. the view V_ONE (i. Fortunately. this value can be intercepted within the program logic.. you would extend the CASE control structure in Listing 3.2 Influencing the Request/Response Cycle An important characteristic of HTTP is the request/response cycle coming from the client. the incoming request is analyzed. [. To do this.] Another option would be to determine the view to be displayed if none of the window's outbound plugs are triggered. HTTP Response Web Server Figure 3. 1. by defining the default view in the window W_DEFAULT. the default view) would always be displayed in our example.Influencing the Request/Response Cycle 3. nor can it send data to the client when there is no active HTTP request/response cycle (see Figure 3.1 by a statement block in which you deal with the exception: WHEN OTHERS. Since we left the default values of the WD4A framework unchanged. 103 .15). The server cannot be the initiator of the roundtrip. the trigger of a client request is a user action like a click on a button or a link on the page displayed by the client. the response to the request received from the client is created and then returned to the client.e..

An example would be the flow of an asynchronous process on the server and the corresponding notification of the user after the process has completed or errors have occurred. 104 . In the next step.1 Automatic Triggering of Requests In special application scenarios.3 Developing WD4A Applications 3. This context attribute should contain the current value of the counter. The method onactionset_counter() has the task of incrementing the value of the context attribute COUNTER with every server roundtrip. The implementation of the view element TimedTrigger consists of JavaScript functions that are not visible to the user. the WD4A framework enables periodic requests to be sent from the client to the server and therefore to either update information that is displayed in the client or to visualize status changes in the client that occurred on the server. The text property of the TXV_COUNTER view element is bound to a context attribute and represents the server round trips. the embedding of the view element in the view and the values of the properties do not affect the layout and the arrangement of the remaining view elements.2 shows the processes to implement. Select the Actions tab and name the action SET_COUNTER. the client is to output a value that is incremented on the server with every roundtrip. you need to create a new node named CONTENT in the context of the view controller and underneath a STRING context attribute named COUNTER. you assign the name of the action to be called with every client request to the property onAction of the TimedTrigger view element. it is sometimes desirable to update the data displayed by the client without the user having to become active. Listing 3. the WD4A framework creates the event handler method at the same time. In a first component to be implemented. But first you need to define an action in the view editor of the V_DEFAULT view.16). that is. The component consists of a view V_DEFAULT with two TextView view elements and a TimedTrigger view element TTR_COUNTER. To achieve this.2. The function and the use of the TimedTrigger view element will be explained in detail in the following section. If the TimedTrigger view element is used. With the definition of the action. create a component named ZEXP_TTRIGGER_APP. it is called onactionset_counter() (see Figure 3. The view element TXV_TOPIC is used to display the static text “Number of server round trips:“. For this purpose.

Listing 3. DATA lv_counter TYPE i.2 Figure 3. *-----. Figure 3.Increment attribute lv_counter = lv_counter + 1. ENDMETHOD.Get reference of context node 'CONTENT' lr_context_node = wd_context->get_child_node( 'CONTENT' ). the delay property of the TimedTrigger view element is for determining the time interval between the requests that are triggered by the client. METHOD onactionset_counter.17).Set new value of node attribute 'COUNTER' lr_context_node->set_attribute( EXPORTING name = 'COUNTER' value = lv_counter ). *-----.17 View Layout of the Component ZEXP_TTRIGGER_APP 105 . DATA lr_context_node TYPE REF TO if_wd_context_node. *-----. *-----.2 Implementation of the onactionset_counter() Method Additionally.Get value of node attribute 'COUNTER' lr_context_node->get_attribute( EXPORTING name = 'COUNTER' IMPORTING value = lv_counter ). Set its value to “3“ (see Figure 3.16 Definition of an Action You can add the listing to the currently empty event handler method by double-clicking on the name of the event handler method within the definition of the action. or by using the Methods tab to change to the editor.Influencing the Request/Response Cycle 3.

3. METHOD wddoinit. 106 . 3. all necessary steps for implementing the component are completed. Listing 3.3 Initialization of the Counter Now that the processes in the event handler methods and in the wddoinit() method have been determined. Use the specifications shown in Listing 3. Now just create the WD4A application in order to test the component. Figure 3. you finally need to implement the initialization in the wddoinit() method of the view controller. A potential scenario would be that a user makes entries in a web form. When the data is saved. the progress of which is to be displayed in the client via a periodic query of the process status.18. an asynchronous process is started on the server.2 Automatic Triggering of Requests with User Interaction Let us now assume that we could trigger the shown procedure only after a user action was defined.3 Developing WD4A Applications To initialize the counter after the application startup.2. DATA lr_context_node TYPE REF TO if_wd_context_node. The result displayed in the client should match the output shown in Figure 3.18 Client Output for Counting Server Round Trips Due to the way in which we implemented the TimedTrigger view element in the ZEXP_TTRIGGER_APP component. The goal of the following application is to initially leave the TimedTrigger view element inactive after startup and not to start the periodic sending of requests in the client until a button is clicked. lr_context_node = wd_context->get_child_node( 'CONTENT' ). lr_context_node->set_attribute( EXPORTING name = 'COUNTER' value = 0 ). the sending of requests from the client to the server begins immediately after the application has been started and is repeated in intervals of three seconds each. The number of triggered server round trips is again made visible by using a counter in the client. ENDMETHOD.

we will use “Activate TimedTrigger“. METHOD onactionset_tt_active. but we'll deal with that later. ENDMETHOD.19). delete the definition of the action in the onAction property. copy the ZEXP_TTRIGGER_APP component to a new component named ZEXP_TTRIGGER_USR. Listing 3. assign this text to the text property. Figure 3. In the layout of the V_DEFAULT view in the view element TTR_COUNTER. First.19 Creating View Controller Attributes After the button has been clicked.5. It is activated dynamically at runtime.Influencing the Request/Response Cycle 3. Controller attributes are defined in the Attributes tab of the controllers.4 Event Handler Method for the Button Action This controller attribute is of the WDY_BOOLEAN type. As a label. the appropriate ABAP code can be taken from Listing 3. This results in the TimedTrigger view element being inactive after application startup. wd_this->mv_tt_active = abap_true. After the application has been 107 . this attribute is set to the value abap_true in the event handler method onactionset_tt_active() at runtime. the attribute is predefined with the value abap_false in the wddoinit() method. It consists of a single line in which the controller attribute mv_tt_active is set. its implementation is shown in Listing 3. Depending on the view controller attribute mv_tt_active. in the V_DEFAULT view. The action that is triggered when the button is clicked should be called SET_ TT_ACTIVE.4. add a Button view element named BTN_TRIGGER_ACTIVATE. possible values are abap_true and abap_false and it contains the information for activating the TimedTrigger view element at runtime (see Figure 3.2 For the implementation. the TimedTrigger view element is then activated in the wddomodifyview() method. under the existing view elements. The WD4A framework assigns the name onactionset_tt_active() to the event handler method that is generated for the action.

5 Dynamic Action Assignment of the TimedTrigger View Element The implementation of the event handler method set_counter() remains unchanged as compared to the example component ZEXP_TTRIGGER_APP (see Section 3. ENDIF. lr_timedtrigger->set_on_action( 'SET_COUNTER' ). the counter initially keeps its initial value of 0. which replaces the controller attribute mv_tt_ active. Listing 3. ENDIF. lr_timedtrigger->set_on_action( '' ).3 Developing WD4A Applications started. because its onAction property is not set. When you have created and started the application.20). *-----. If the user now clicks on Activate TimedTrigger. does the periodic sending of requests from the client to the server begin.Get reference to timedtrigger control lr_timedtrigger ?= view->get_element( 'TTR_COUNTER' ). Only after the button Activate TimedTrigger has been clicked. ELSE. along with the incrementing of the counter variable in intervals of three seconds each (see Figure 3. and the action SET_COUNTER is assigned to the view element TTR_COUNTER when the wddomodifyview() method is processed. ENDMETHOD. the implemented methods wddoinit() and wddomodifyview() are first processed. the view controller attribute mv_tt_active is set in the event handler method of the button.20 Server Round Trips Triggered by the User Another way of implementing the user-controlled activation would be by using a context attribute to which the enabled property of the TimedTrigger view element is bound. IF wd_this->mv_trigger_active EQ abap_true.2). *-----. When the button is clicked. the context attribute is set in the event 108 . The TimedTrigger view element remains inactive. DATA lr_timedtrigger TYPE REF TO cl_wd_timed_trigger. METHOD wddomodifyview. Figure 3.Activate/Deactivate timedtrigger control IF lr_timedtrigger IS BOUND.

make sure that the identification of view V_ONE as the default view remains unchanged. an inbound plug named IP_ V_TWO. The steps that are processed after the application has been started are shown in Figure 3. create two views named V_ONE and V_TWO. This would be necessary. The evaluation of the URI parameter took place in the window and specifically in the event handler method of the startup plug. In the next step. V_ONE and V_TWO are to be embedded in the window. for example. In the window editor of the component. and the text property has been assigned the text “Example Navigation—View ONE“.3 Automatic Forwarding In Section 3. The view contains the TextView view element TXV_TOPIC. create a window W_DEFAULT. and the dynamic assignment in the wddomodify() method is omitted. we implement two views. The action can therefore be determined at the time of development. For the view V_ONE. 3.1. When the application is started. and in the view editor.22.2. The text is to enable us to differ the displayed views at runtime. a view other than the default view is called. To transfer this scenario to a WD4A component. Now. if context data of the view controller is to be considered. we showed how to decide which view should be displayed if there are several views by evaluating URI parameters. The two views each contain only a TextView view element that is assigned a text to identify the respective view. To define navigation from the view V_ONE to the view V_TWO. As the component name for this example. This example is based on the common Internet scenario of automatic forwarding to a resource other than the one specified in the URI. Figure 3. we will now find out how deciding which view to display can be shifted from the window controller to the view controller of the default view. 109 . we choose ZEXP_NAVIGATION_AUTO. this would be an outbound plug named OP_TO_V_TWO.21 shows the layout structure of the view V_ ONE. the appropriate plugs need to be created.2 handler method and the view element is activated.Influencing the Request/Response Cycle 3. for V_TWO.

22 Process of Automatic Forwarding to a Second View 110 .21 Creating the Views Window W_DEFAULT View V_ONE Method WDDOINIT Outbound Plug OP_TO_V_TWO Inbound Plug IP_V_TWO View V_TWO Figure 3.3 Developing WD4A Applications Figure 3.

Insert this statement in the wddoinit() method.23 Linking the View Plugs The triggering of the outbound plug at runtime could now be made dependent on various conditions. Remember that whenever the condition is not met.3 Implementation of Selection Options Up to now. We did not deal much with the design elements of the application interface—the examples displayed only simple text output—but focused on the technical aspects and described processes that occur in common HTTP request/response cycles. Figure 3.3 In the W_DEFAULT window. 3. we tried to imitate some familiar scenarios from web-based applications in Web Dynpro for ABAP using simple WD4A components and applications. and describe the implementation of the different characteristics 111 . V_ONE would be displayed because it is specified as the default view. the output plug OP_TO_V_TWO is triggered in view V_ONE in the wddoinit() method by calling the fire method: wd_this->fire_op_to_v_two_plg( ). you can thus define a link between OP_TO_V_TWO and IP_V_TWO (see Figure 3.23). emphasize its particularities. To navigate to the second view V_TWO per forwarding without user interaction.Implementation of Selection Options 3. In the following sections. the default view is displayed. You can try this out yourself and make the triggering of the outbound plug dependent on the user name or the system time. we'll develop components by integrating the extensive view element library of the WD4A framework. If the application were started now.

This means that the design property of the TextView view element is set depending on the value selected from the list. the design of a text is to be controlled by selecting a value from a dropdown list. like the transferring of input values or the handling of user actions. The WD4A framework provides an extensive selection of view elements. we will content ourselves with emphasized. In a sample application.25). The WD4A framework provides two different view elements. Figure 3. DropDownByIndex and DropDownByKey. 112 . the design property provides many more types (see Figure 3. instead of your having to deal with implementations that recur in every application.3 Developing WD4A Applications of the view elements. header1. which differ in the implementation of the provision of selection data. Their diverse functionalities simplify the development of standardized and recurring processes. 3.3.24). Technically. header2. Regarding the text design types used in the sample application. This event will lead to a change of the design property of the TextView view element that represents the text. thereby enabling you to focus on the design of efficient and intuitive user interactions. A web application is only met with user acceptance if it has a user-friendly interface that can be used intuitively. this means that an event should be triggered with every change of the value in the dropdown list that is underneath the text.24 Property Design of the TextView View Element The goal of the implementation is to change the design of a given text (“Example Dropdownlist—ByIndex“) that is displayed in the client with every new selection from the values provided in the dropdown list (see Figure 3. however. and header3 to keep matters simple.1 Using Dropdown Lists We will begin with dropdown lists.

In this case. respectively. the Cardinality property of the context node is set to 0. The action is named DO_TEXT_DESIGN.Implementation of Selection Options 3.. defined in the Actions tab and assigned to the onSelect property of DLB_DESIGN. The DropDownByIndex view element requires a context node that provides the values to the selection list.27). We will add two context attributes to the context node: the attribute KEY for the key of the respective selection list entry and the attribute VALUE for the description of the entry. and the DropDownByIndex view element DDI_DESIGN (see Figure 3. which means that the selection list can either contain one or more entries.n. the WD4A framework automatically inserts an empty row. 113 .n. the Label view element LBL_DESIGN. the context node TEXT_DESIGNS is created in the view controller of V_DEFAULT for this purpose (see Figure 3. The attribute VALUE is bound to the texts property of the view element DLB_DESIGN in the view's layout so that the descriptive texts are displayed in the selection list.3 Figure 3.. If an initial row is to be displayed for a selection list.25 Selection of the Design Type In the following two sections. we'll show how this functionality can be developed using the DropDownByIndex or the DropDownByKey view element. an action is to be triggered to change the lead selection of the elements in the corresponding context nodes. DropDownByIndex The component that will be developed first will be named ZEXP_DDLB_INDEX. The layout of the component's V_DEFAULT view consists of the TextView view element TXV_TOPIC. In the example.26). This context node should have the cardinality 1. With every selection of a value from the dropdown list. The attribute KEY is bound to the design property of the Label view element and determines the design for representing the text.

METHOD supply_text_designs.26 View Elements of the View Figure 3. 114 .3 Developing WD4A Applications Figure 3. the key value pairs are composed as an internal table and bound to the context node (see Listing 3.6). ls_text_design-value = 'emphasized'. implement the supply function method supply_text_designs(): In this method. DATA ls_text_design TYPE if_v_default=>element_text_designs. APPEND ls_text_design TO lt_text_designs.Create value key list of different text designs ls_text_design-key = cl_wd_text_view=>e_design-emphasized. ls_text_design-key = cl_wd_text_view=>e_design-header1. DATA lt_text_designs TYPE if_v_default=>elements_text_designs. *----.27 Definition of the Context in the View Controller To populate the context node.

the lead selection referring to the selected element of the selection list is initialized with the index “1“ after the application has been started. Because the KEY context attribute of the context node TEXT_DESIGNS is bound to the design property of the TextView view element. and the text is displayed according to the design (see Figure 3. APPEND ls_text_design TO lt_text_designs. the change of the lead selection is handled by the WD4A framework. ls_text_design-value = 'header3'. Therefore. Now the application is to be changed so that the preselected value of the selection list represents a value other than emphasized. This can be achieved by manipulating the lead selection. ENDMETHOD. it always contains the key value of the lead selection. Listing 3.28 Initial Client Output With every new selection from the dropdown list. the design type emphasized—appears to be selected in the display. APPEND ls_text_design TO lt_text_designs. *----.Fill context node TEXT_DESIGNS node->bind_table( new_items = lt_text_designs ).3 ls_text_design-value = 'header1'. the design of the text always corresponds to the value selected in the dropdown list. the lead selection is set automatically when the context node is populated (Initialization Lead Selection 115 . This means that the lead selection is set to the first element of the context node. ls_text_design-key = cl_wd_text_view=>e_design-header3. Therefore. ls_text_design-value = 'header2'.28). The event handler for the action does not need to be implemented.Implementation of Selection Options 3. ls_text_design-key = cl_wd_text_view=>e_design-header2.6 Supply Function Method of the Context Node TEXT_DESIGNS Because the Initialization Lead Selection property of the context node TEXT_ DESIGNS remains unchanged. Due to the settings of the context node TEXT_DESIGNS chosen in the previous example. an action—and therefore a server round trip—is triggered that leads to a change of the lead selection of the elements of the context node TEXT_DESIGNS. APPEND ls_text_design TO lt_text_designs. Figure 3. the first entry of the selection list—in our example.

the lead selection must be specified accordingly. As a value set. You can use the set_lead_selection_index() method via the index.29). When the application is run again. and the text above it is displayed in the corresponding design (see Figure 3. or. you have two options. where the index must be passed as an integer value. whereby a reference to the element is passed that is designated as the lead selection. To set the lead selection of the context node. an error is triggered at runtime. If this preference is changed. the WD4A framework expects the composition of a list of key value pairs of the WDY_KEY_VALUE_ TABLE type. we set the lead selection via the index. otherwise. The key of the value selected by the user can be determined from the bound attribute by evaluating the lead selection. this value is preselected in the dropdown list. we need to store a value set at the attribute info of the attribute to which the selectedKey property is bound. This value set. The attribute info of a context attribute is determined via the context node info. you can use the set_lead_selection()method.3 Developing WD4A Applications property). The node info and the attribute info contain the description data for the respective context node and its attributes. the values stored in the attribute info of KEY are displayed in the selection list. The second entry in the internal table of the possible TextView designs contains the header1 type. Figure 3. Because we used an internal table to populate the TEXT_DESIGNS context node in our example. If the selectedKey property of the DropDownByKey view element is bound to this attribute. Via the node info of the context node. after the context node has been populated. the setting of the lead selection is the default. Add the following program line to the end of the supply_text_ designs() method: node->set_lead_selection_index( index = 2 ). 116 .29 Output with a Changed Lead Selection DropDownByKey Another means of presenting selection lists is provided by the view element DropDownByKey. corresponds to an internal table. in turn. Then.

DATA lt_value_set TYPE wdy_key_value_table. In the context of the view controller of V_DEFAULT. DATA lr_node_info TYPE REF TO if_wd_context_node_info.1. The supply function method can be removed as well (see Figure 3. In the wddoinit() method of the view controller. 117 . replace the DropDownByIndex view element with DropDownByKey.Create value key list of different text designs ls_value-key = if_wdl_standard=>textviewdesign_emphasized.. Figure 3. For this purpose.30). APPEND ls_value TO lt_value_set. The same entries are used here as in the component ZEXP_DDLB_INDEX that has just been described.30 Context of the View Controller METHOD wddoinit. The value set to be passed to the attribute info must be of the WDY_KEY_VALUE_TABLE type and is added to the context attribute KEY of the context node TEXT_ DESIGNS.3 We will illustrate this procedure using an example.Implementation of Selection Options 3. copy the component ZEXP_DDLB_INDEX to the component ZEXP_DDLB_KEY. *----. Listing 3. In the view layout.7 contains both the statements for composing the value set and the calls for writing the attribute info. ls_value-key = if_wdl_standard=>textviewdesign_header1. the cardinality of the context node TEXT_DESIGNS is changed to a value of 1. The VALUE attribute is no longer required and can be deleted. the selection value pairs of the dropdown list are now composed. DATA ls_value TYPE wdy_key_value. ls_value-value = 'emphasized'.

When you start the application after it has been created. To apply the design type to the text to be displayed after the selection has been changed. APPEND ls_value TO lt_value_set.3 Developing WD4A Applications ls_value-value = 'header1'.7 Setting the Attribute Info for DropDownByKey In the view layout.Set attribute info lr_node_info->set_attribute_value_set( name = 'KEY' value_set = lt_value_set ). APPEND ls_value TO lt_value_set. particularly if existing fixed values from the Data Dictionary are to be provided as default values. APPEND ls_value TO lt_value_set. you need to bind the design property of the view element TextView to the KEY attribute of the context node as well.31). lr_node_info = lr_node_info->get_child_node( 'TEXT_DESIGNS' ). ENDMETHOD.Retrieve node lr_node_info = wd_context->get_node_info( ). ls_value-key = if_wdl_standard=>textviewdesign_header2. the resulting output in the client corresponds to that of the ZEXP_DDLB_INDEX application. the context attribute KEY is then bound to the selectedKey property of the DropDownByKey view element. ls_value-key = if_wdl_standard=>textviewdesign_header3. Figure 3. you only need to assign the appropriate data type from the Data Dictionary to the context attribute. ls_value-value = 'header3'. Every new selection of the design type triggers a server round trip. *----. and the change of the design type becomes visible in the displayed text (see Figure 3. The definitions that are transferred to the W_DEFAULT window remain unchanged.31 Client Output of ZEXP_DDLB_KEY The DropDownByKey view element should be used. ls_value-value = 'header2'. All other functions—like determining the default 118 . It is then not necessary to compose the value list in the wddoinit() method. Listing 3. *----.

preparing them in an internal table. The component that we'll be implementing is named ZEXP_DDLB_KEY_DDIC. In our example. After creating and starting the application.32 Fixed Values of the Domain for the TextView Design The only step you need to perform in order to present the fixed Data Dictionary values in the view is to assign the data type to the context attribute in the view controller of the V_DEFAULT view. We'll clarify these procedures again by using an example.3 values. The layout of the view and the binding of the KEY context attribute remain unchanged. you can just copy the component we developed last. The initialization in the wddoinit() method is no longer required and can be deleted. the definition of the selection values is stored in the Data Dictionary in the data type WDUI_TEXT_VIEW_DESIGN that is based on the domain WDUI_TEXT_VIEW_DESIGN (see Figure 3. and adapt it as needed. 119 . you can see that the list of selectable design types now corresponds to the entries in the WDUI_TEXT_VIEW_ DESIGN domain in the Data Dictionary (see Figure 3.33) and is no longer restricted to our four entries. ZEXP_DDLB_KEY. Figure 3.Implementation of Selection Options 3. For our example. the KEY context attribute is now of the type WDUI_TEXT_VIEW_DESIGN. and presenting the values—are then performed by the WD4A framework.32).

For example. DropDownByKey would be an effective means of establishing a connection between the Data Dictionary and the user interface. For freely definable dropdown lists.3 Developing WD4A Applications Figure 3.n.. You should therefore have a sound knowledge of the dependencies involved. However. however. changes frequently.n or 1. and will be influenced dynamically. you should only use the view element DropDownByKey if the number of values in the selection list is very high. If you use DropDownByKey. the use of the DropDownByIndex view element requires the creation of a context node. These steps can adversely affect runtime when the number of selection list entries is high.33 Client Output of ZEXP_DDLB_KEY_DDIC Comparison of the Two Variants The two available view elements for presenting selected text via dropdown lists raise the following question: When will which of the two view elements be active. using the DropDownByIndex view element is inevitable if selection lists with different values are to be displayed for different rows. in which situations? If the default values from the Data Dictionary were to be provided. that is. DropDownByIndex is easier to handle than DropDownByKey. When using dropdown lists in table columns. Note that you can begin with a DropDownByIndex view element and switch to DropDownByKey. the instantiation of context node elements. you should consider various factors that can affect performance. and the manipulation of the lead selection. Changes to the context node info are also very complicated and should only be made if you fully understand the potential of their affects.. The DropDownByKey view element cannot be used 120 . but only if the system performance noticeably deteriorates. because the changes always affect all attributes of all elements of a context node. Furthermore. the change of the attribute info affects all elements of a context node with cardinalities of 0.

the descriptive texts for every radio button are displayed. The RadioButtonGroupByIndex view element requires a context node that provides the values for the individual radio buttons. we'll use radio buttons in the client instead of dropdown lists. 3. The layout of the V_DEFAULT view of the component consists of the view element TXV_TOPIC and the view element RDB_DESIGN of the type RadioButtonGroupByIndex.3 here. which means that there is at least one radio button. two types of view elements are distinguished: the RadioButtonGroupByIndex type and the RadioButtonGroupByKey type. Here again. Selecting a radio button triggers an action that leads to a change of the design type used for the presentation of text. however. an action will be triggered to change the lead selection of the elements in the corresponding context nodes. the change of the design type for a text). however. Again. The action is named DO_TEXT_DESIGN and is defined in the Actions tab.3. This time. the VALUE attribute is bound to the texts property of the view element RDB_DESIGN in the layout of the view. To implement the scenario.n. now.e. RadioButtonGroupByIndex We'll use the same scenario for our example (i.Implementation of Selection Options 3. 121 . we'll create this context node in the view controller of V_DEFAULT using the name TEXT_DESIGNS. This context node has a cardinality of 1.6). Using this assignment. With every change of the selected radio button.. The attribute KEY is bound to the design property of the TextView view element TXV_TOPIC and determines the design for representing the text.34). this characteristic applies to every row and would therefore result in the same contents being displayed in every row. because the value set is always valid for all elements of a context node.2 Using Radio Buttons The use of radio buttons is based on the same concepts that were described with regard to dropdown lists. As in the previous examples.. To populate the context node. the context node contains two attributes: the KEY attribute for the key and the VALUE attribute for the label of the respective radio button. and the onSelect property of view element RDB_DESIGN is bound to this action (see Figure 3. For a table. create a new component that we'll call ZEXP_ RADIOBTN_INDEX. you implement the supply function method supply_text_designs() in which the key value pairs are composed as internal tables and bound to the context node (see Listing 3.

the lead selection for the radio button to be selected is initialized with the index “1“.34 RadioButtonGroupByIndex Layout in the View Controller Because the Initialization Lead Selection property of the context node TEXT_ DESIGNS remains set. which means that it is set to the first element of the context node after the application has been run. it always contains 122 . Again. the first radio button in the list. is selected. The event handler method for the action does not need to be implemented. the WD4A framework controls the change of the lead selection.35 Client Output With RadioButtonGroupByIndex With every new selection of a radio button. represents the emphasized design type. The text is presented in accordance with the selected design (see Figure 3. Therefore.35). which. Figure 3.3 Developing WD4A Applications Figure 3. an action and therefore a server round trip is triggered. in our example. which leads to a change of the lead selection of the elements of the context node TEXT_DESIGNS. Because the design property of the TextView view element is bound to the KEY context attribute of the TEXT_DESIGNS context node.

causes the design of the text to correspond to the lead selection at all times. and therefore to correspond to the selected radio button as well. The WD4A framework accepts the change of the lead selection and the assignment to the corresponding property of the TextView view element. The only purpose of the event handler method do_text_design() is to enable the client to trigger the onSelect event when a radio button is selected. RadioButtonGroupByKey Another means of making a selection via radio buttons is provided by the RadioButtonGroupByKey view element (see Figure 3.Implementation of Selection Options 3. we have to store a value set at the info of a context attribute. This value set. The attribute info of a context attribute is determined via the context node info. Figure 3.36 RadioButtonGroupByKey Layout in the View Controller If the selectedKey property of the RadioButtonGroupByKey view element is now bound to the KEY attribute.3 the key value of the lead selection. corresponds to an internal table and must be of the WDY_KEY_VALUE_TABLE type. 123 . the values stored in the attribute info of KEY are displayed and the selected radio button can be determined from the bound attribute. in turn. No additional programming effort is required within the event handler method. As in the procedure using DropDownByKey. which.36). in turn.

In the wddoinit() method of the view controller.Create value-key list of different text designs ls_value-key = cl_wd_text_view=>e_design-emphasized. replace RadioButtonGroupByIndex with RadioButtonGroupByKey. APPEND ls_value TO lt_value_set. the cardinality of the context node TEXT_DESIGNS is changed to a value of 1. The same applies to the supply function method supply_text_ designs(). *----. the KEY attribute is now bound to the selectedKey property of the RadioButtonGroupByKey view element. ls_value-key = cl_wd_text_view=>e_design-header3. APPEND ls_value TO lt_value_set. In the layout of the view.Retrieve node lr_node_info = wd_context->get_node_info( ). *----. The VALUE attribute is no longer required and can be deleted. *----. you need to bind the design property of the view element TextView to the KEY 124 . ls_value-value = 'header1'.Set attribute info lr_node_info->set_attribute_value_set( name = 'KEY' value_set = lt_value_set ). ls_value-value = 'emphasized'. To apply the design type to the text to be displayed. APPEND ls_value TO lt_value_set.8 Setting the Attribute Info for RadioButtonGroupByKey In the layout of the view. APPEND ls_value TO lt_value_set. the values of the radio buttons list are composed. ENDMETHOD. lr_node_info = lr_node_info->get_child_node( 'TEXT_DESIGNS' ). For this purpose.1. copy the ZEXP_RADIOBTN_INDEX component from the previous section to the ZEXP_ RADIOBTN_KEY component. The value set to be passed to the attribute info must be of the WDY_KEY_VALUE_TABLE type and is added to the context attribute KEY of the context node TEXT_DESIGNS (see Listing 3. ls_value-value = 'header3'.8) METHOD wddoinit. DATA ls_value TYPE wdy_key_value. In the context of the view controller of V_DEFAULT. The same entries as in the ZEXP_ RADIOBTN_INDEX component will be used. after the selection has been changed.3 Developing WD4A Applications We will again illustrate this using an example. ls_value-key = cl_wd_text_view=>e_design-header1.. DATA lt_value_set TYPE wdy_key_value_table. DATA lr_node_info TYPE REF TO if_wd_context_node_info. ls_value-value = 'header2'. Listing 3. ls_value-key = cl_wd_text_view=>e_design-header2.

Presentation of Tree Structures 3. A sequential implementation is used if the depth of the tree is known at the time of development. Aside from the two implementation techniques for presenting trees. or aren't known at the time of development. you can start the application after its creation. Again.37). Therefore. The result shown in the client corresponds to that of the ZEXP_DDLB_INDEX application. The sample structures Structure 1 and Structure 2 show a regular nesting. the WD4A framework provides the Tree view element with two possible implementation techniques: sequential and recursive. on the other hand. The recursive implementation is used if the tree depths of the individual nodes vary. only the parts that are visible to the user can be loaded. the sequential method would be appropriate 125 . Therefore. the sample structures Structure 3 and Structure 4 have irregularly distributed lower-level nodes and leaf elements. Every other selection of the design type triggers a server round trip and the change of the design type becomes visible in the displayed text (see Figure 3. Performance and resources each play an important role.37 Client Output with RadioButtonGroupByKey 3. all elements can be loaded and the tree hierarchy can be completely created. On the one hand. The definitions in the window W_ that were transferred from the previous example remain unchanged. Figure 3.4 Presentation of Tree Structures For the visual presentation of hierarchically structured data sets. Figure 3. and they each must be considered on a case-bycase basis. Generally. it is impossible to know how many lower-level nodes are under the root node. or how deeply a tree is nested.4 DEFAULT attribute of the context node as well.38 shows some examples of tree structures. there are also differences in controlling the chronological order of building the tree hierarchy. the recursive technique is the implementation that is most frequently used. when presenting tree structures.

301 Component 38. 264 ALV configuration model 267 Application class 27 Assistance class 175. 317 Enhancement 288 Component concept 32 Component configurator 177 Component controller 39. 75 Context binding 62 Context mapping 85 Context node 61. 191 Attribute info 116. 103. 192. 59 Cell editor 155 Cell variant 159 Chart Designer 299 CL_SALV_WD_COLUMN 268 CL_SALV_WD_COLUMN_HEADER 268 CL_SALV_WD_CONFIG_TABLE 267 CL_WD_ABSTRACT_INPUT_FIELD 228 CL_WD_ADOBE_SERVICES 342 CL_WD_COMPONENT_ASSISTANCE 175 CL_WD_CONTEXT_SERVICES 333 CL_WD_CUSTOM_EVENT 296.Index A ABAP Dictionary 28. 164. 78 Customer namespace 44 B Bar chart 297 BSP extensions 29 Business object 294 Business Server Pages (BSP) 27. 123. 203 ABAP List Viewer 263 ABAP Objects 14. 165. 166 CL_WD_RUNTIME_SERVICES 348 CL_WD_TRANS_PARENT_CONTAINER 231 CL_WD_UTILITIES 175. 348 D Default view 99. 72. 78. 349 CL_WDR_PORTAL_OBNWEB_SERVICE 341 Classes 317 Client technologies 33 Client-server architecture 186 close_window() 285 Closed implementation 190 Column chart 297. 236 Active Server Pages (ASP) 27 ADC 308 Adobe Document Service 308 Adobe LifeCycle Designer 309 Adobe Reader 309 ADT 262 ALV component 263. 220 Component interface 38 Component usage 199. 262 ABAP runtime 35 Abstract data types 262 Abstraction 262 Action 80. 293 C Cardinality 63 Cascading Style Sheets (CSS) 15. 207. 326 Context attribute 61. 109 355 . 51. 124 Automatic forwarding 109 CL_WD_INPUT_FIELD 228 CL_WD_POPUP_FACTORY 163. 265 Component use 73 Component-based software development 261 Configuration 176 application 182 component 179 explicit 177 implicit 177 Configuration controller 181 Context 61. 77. 234 Controller usage 210 Conventions 18 Coupled implementation 190 Custom controller 39. 104. 173.

229 E Encapsulation 262 Enhancement framework 288 Entry component 52. 336 IF_WD_VIEW_CONTROLLER 337 IF_WD_VIEW_ELEMENT 338 IF_WD_WINDOW 165. 236 Explicit configuration 177 External context access 197 F F4 help 171 Fire method 83. 317 Internationalization 172 Internet Communication Manager (ICM) 27 Internet Connection Framework (ICF) 27 Internet Graphics Server (IGS) 297 Internet Transaction Server (ITS) 26 IWD_VALUE_HELP 282 356 . 270. 236 binding properties 226. 268 inbound plug 54 Interfaces 283. 229 HTML 186 HTMLB tag library 29 HTTP 23.Index Development environment 37 Dialog boxes 282 Direct mapping 197. 194. 303 Graphical user interface (GUI) 25 H Hook method 80. 143. 54 estimatedTotalResultsCount 304 Event 196 DATA_SELECTED 286 onAction 277. 208 Form Builder 309 G Gantt chart 298 GIF 299 Google Maps 239. 82. 87. 204 startup type 49. 192. 328 IF_WD_CONTEXT_NODE_INFO 329 IF_WD_CONTROLLER 343 IF_WD_MESSAGE_MANAGER 150. 303 I IF_SALV_WD_TABLE_SETTINGS 268 IF_WD_ACTION 335 IF_WD_APPLICATION 342 IF_WD_COMPONENT 93. 321 IF_WD_COMPONENT_USAGE 320 IF_WD_COMPONENT_USAGE_GROUP 324 IF_WD_CONTEXT 326 IF_WD_CONTEXT_ELEMENT 236. 317. 100 type startup 54 Inheritance 262 Input help 171. 295. 151. 53. 250 Google Web APIs service 299. 192 Interface view 49. 216 Drag&Drop 13 Dynamic programming actions 226. 88. 235 UI hierarchy 226. 61. 282 Input-help component 283 Instance method 82 Instantiating used components 196 Interactive Forms 308 Interface controller 78. 339 IF_WD_WINDOW_CONTROLLER 341 IF_WD_WINDOW_MANAGER 163 IF_WDL_CORE 227 IF_WDL_STANDARD 227 IF_WDR_OVS 273 IGS 297 Implicit configuration 177 Inbound plug 46. 61. 344 IF_WD_NAVIGATION_SERVICES 346 IF_WD_PERSONALIZATION 325 IF_WD_PORATL_INTEGRATION 294. 301 Event-handler method 80. 96 default type 209 interface type 203. 51. 332 IF_WD_CONTEXT_NODE 236. 342 IF_WD_VALIDATION 338 IF_WD_VIEW 161. 234 context 226.

83. 87 OVS 172 OVS component 270 OVS_CALLBACK_OBJECT 273 P PDF 266.Index J Java Server Pages (JSP) 27 JPG 299 K Keywords. 301 dataSource 129. 310 Personalization 183 Phase model 91 PHASE_INDICATOR 273 Plug name 49 Polymorphism 262 Popup windows 163 Portal event registering to 295 trigger 294 Portal eventing 294 Post-exit method 289 Pre-exit method 289 Prefixes 20 Program FP_PDF_TEST_00 309 Programming declarative 30 dynamic 30 Property alignment 226. 235. 115. 38 Object value selector 270 Object-based navigation 294 Online text repository 173 357 . 301. 286 Interface 204 onAction 104 passwordField 226 pdfSource 311 readOnly 226 L Layout 230 Layout category 39 FlowLayout 57 GridLayout 58 MatrixLayout 59 RowLayout 58 Layout data 230 Layout type 232 FlowLayout 232 MatrixLayout 232 RowData 252 RowLayout 246 Lead selection 66. 228 cardinality 153. 200 MODEL_USAGE 323 N Navigation 87. reserved 21 Open SQL 34 OTR 173 Outbound plug 46. 157. 248 M Mainframes 24 Mapping 192 Message handling 148 Message Manager 234 MIME 39. 113 Dictionary Search Help 172 Dictionary structure 153 dimension 298. 311 explanation 226 ID 226 Input Element (Ext. 109 Node info 235 O Object tree 37. 308. 29. 113. 277. 185. 153. 100.) 204 Input Help Component Usage 286 Input Help Mode 171. 131 MIME Repository 131 Model View Controller (MVC) 13. 311 description 301 design 47. 301 enabled 226. 129. 264 chartType 298.

295 Supply function method 70. 252 UI technology 31 Uniform Resource Identifier (URI) 49. 284 View 39 lifetime 84. 296 page 293 workset 293 SAP R/2 24 SAP Smart Board 34 SAP Web Application Server 44 searchQuery 304 Select Options 275 selectionMode 69 Server-Side Rendering (SSR) 34 set_global_options() 278 set_lead_selection_index() 116 Simple Object Access Protocol (SOAP) 303 Singleton 66. 251 Reuse 51. 283 SE38 309 SE80 37. 289 Support package 44 T T100 message 150 Tables 152 Thin client 32 Three-tier model 187 Tooltip 269 Transaction BP 239.Index selectedCellVariant 160 selectedKey 123 selectedStep 210 Selection 158 selectionMode 158 Singleton 129 supply function 154 templateSource 312 text 47 texts 113 value 272. 91. 95. 253 parameter 95. 28. 34. 87 View designer 41 View editor 39 View element 39. 216. 169. 43. 241 SE11 172. 282 Reverse mapping 198. 109. 152 358 . 133 Smart Client 32 V Value help component 286 Value set 117 VH_WINDOW_CLOSED 283. 234 View controller 39. 230 BusinessGraphics 297 Button 107. 76. 284 VH_WINDOW_OPENED 282. 56. 131 SFP 309 ST22 65. 221 Rich Client 32 ROOTUIELEMENTCONTAINER 39. 56 U UI element 230 UI element container 230. 202. 288. 41. 276 Trees recursive 131 sequential 126 R Radio buttons 121 Repository Browser 43 Request/response cycle 23. 100. 103. 254 S SALV_WD_TABLE 264 SAP Developer Network (SDN) 13 SAP GUI 27 SAP Help Portal 13 SAP NetWeaver Application Server ABAP 27. 303 SAP NetWeaver Portal 293 iView 293. 79. 206 ButtonRow 206 Caption 154 Category 301 Composite 42.

277 TableColumn 152. 93. 93. 294 Web Dynpro Explorer 37. 246 LinkToUrl 159. 160 TabStrip 227 TextView 232. 107. 236 WDR_CONTEXT_ATTRIBUTE_INFO 236 WDR_CONTEXT_ELEMENT_SET 158 WDR_OVS 270 WDR_POPUP_BUTTON_KIND 165 WDR_POPUP_MSG_TYPE 165 WDR_SELECT_OPTIONS 276 WDUI_TEXT_VIEW_DESIGN 119 WDY_BOOLEAN 107 WDY_KEY_VALUE_TABLE 116. 44. 97 Window editor 48 Window Manager 168 Window structure 48 WND_SELECTION_SCREEN 276 X XML 186. 210 RoadMapStep 206 simple 42 SimpleSeries 302 table 152. 123 WDY_MD_UI_VISIBILITY 227 Web Dynpro Code Wizard 151. 246 DropDownByKey 116 FileUpload 310. 195. 92. 161 359 . 113. 301 Tree 125 TreeItemType 129 TreeNodeType 130 ViewContainerUIElement 206. 208. 37. 78. 108. 117. 200. 111 View element property 42 View layout 56 wddoonclose() 82 wddopostprocessing() 81. 221 Window controller 39. 52 WD4A framework 13. 93 WDEVENT 130. 314 InputField 146. 295 InteractiveForm 310 label 113. 277 View element library 39. 54. 253 MessageArea 149 property 47. 206. 56 RadioButton 252 RadioButtonGroupByIndex 121 RadioButtonGroupByKey 121. 29. 49. 151 wddobeforenavigation() 81. 35 Window 39. 268. 46. 246 TimedTrigger 105 TransparentContainer 230. 49 Web Dynpro for ABAP 30. 303 W wd_assist 175. 317 WD4A runtime 34 wddobeforeaction() 82. 92 wddoexit() 81 wddoinit() 81. 204. 92. 51 WD4A components 31. 203. 219. 263. 236. 299. 38. 191 wd_this 82 WD_VALUE_HELP 283 WD4A application 45. 268 wddomodify() 257 wddomodifyview() 81. 264. 35. 123 RoadMap 137. 204. 192. 221. 60. 227.Index DropDownByIndex 112.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->