A case-study about a web business application implemented in different SAP UI technologies A.D.Berdie*, M.Osaci*, I. Muscalagiu* and G. Prostean** * Politehnica University of Timisoara, Engineering Faculty of Hunedoara, Department of Electrical Engineering and Computer Industry, Hunedoara, Romania ** Politehnica University of Timisoara, Faculty of Management in Production and Transportation, Timisoara, Romania adela.berdie@fih.upt.ro, mihaela.osaci@fih.upt.ro, ionel.muscalagiu@fih.upt.ro, gabriela.prostean@mpt.upt.ro Abstract— This paper proposes a case study about a web business application implemented in three SAP (System Application and Products in Data Processing) UI (user interfaces) technologies: Web Dynpro (WD) ABAP (Advanced Business Application Programming), Floorplan Manager (FPM) and Customer Relationship Management (CRM) WebClient UI. This study is comparatively realized: both in terms of application achievement, and also in terms of the obtained front end time displayed to the end-user. The application is based on SAP database tables and the measurements performed to obtain the front end time to the user are made for the same query in the database with the help of Internet Explorer HTTP Watch tool. I. SAP UI TECHNOLOGIES During the time, SAP developed many products and solutions that are implemented by a lot of UI technologies. One of the SAP solutions is SAP Business Suite and is based on the SAP technology platform called SAP NetWeaver (NW). This platform contains a set of cooperative technologies that provide internal connectivity between SAP modules and external connectivity with other systems. For ABAP developers, the SAP NW technologies and tools include Web Dynpro ABAP which includes the Floorplan Manager and, for SAP CRM, the WebClient UI Framework. A. Web Dynpro ABAP Web Dynpro ABAP is the UI development platform preferred from many ABAP developers, and enables the creation and configuration of web UIs for complex applications according to the business users’ needs. This framework, realized in according to the Model View Controller (MVC) paradigm, is completely integrated in the ABAP Workbench and contains both an execution and a graphical development environment with special Web Dynpro tools. The Web Dynpro ABAP applications are developed in the ABAP Workbench (transaction SE80). The creation of applications using Web Dynpro is structured in Web Dynpro components [1], see Fig.1: • component interface – provides the user’s or other components’ access to the inner workings of a component; Figure 1. • Web Dynpro component component usage – defines a component usage and can embed other components into a component; • controller – data flow and binding that are handled through the controllers; • view – is the visible area for the UI that contains all the view elements; • window – using windows, the views can be arranged in complex screen layout; • context – via contexts, used to do all the data processing in a WD application; • view element – is the smallest part of a view, and describes a visible area in the client. A Web Dynpro component can contains several Web Dynpro views. Each view contains a hierarchic set of context variables. These variables serve as data containers and can be accessed programmatically. An event logic can be attached e.g. to a button or to an input field. The views are connected with inbound and outbound plugs. These are usually triggered by navigation events. A Web Dynpro application can be created when the WD component is ready. She delivers the URL to start the application in the browser as in [2]. The behaviour of the component is programmed within its controllers. Every controller can implement different types of methods. They are [3]: • the hook methods, which interfere with the program flow at certain times; • the event handler methods, which are implemented to respond to events of controller, to action received from the client, and to events of navigation plugs; • the supply function methods, which populate the context attributes of the context node elements; • other additional methods that manage data and control logic. According to the complexity of the web business application, the WD component can be achieved through several methods: the classical method, componentization (application realized with usage of WD components) or assistance class. B. Floorplan Manager Floorplan Manager Framework, based on Web Dynpro ABAP technology, is the standard UI Framework for SAP Business Suite applications. It is implemented as a Web Dynpro ABAP component and integrated into the Web Dynpro ABAP development environment, see Fig.2. FPM Framework currently supports the users in creating and configuring UIs with the following floorplans, which can be configured using the FPM Configuration Editor [4]: • Object Instance floorplan (OIF) • Guided Activity floorplan (GAF) • Overview Page floorplan (OVP) FPM Framework supports the following floorplan areas: • Identification Region (IDR) • Message Region (MR) • Context Navigation Region (CNR) • Roadmap Element This framework can be used to configure web business applications based on reusable building blocks. These components do not have to be implemented again by an application developer, but can be reused by leveraging the framework provided by the Floorplan Manager. In this way, using the Floorplan Manager decreases the amount of coding and implementation effort, reducing the cost of development [5]. To create Web Dynpro applications, FPM Framework, provides many components: floorplans, UI Building Blocks and a configuration tool. The main task of FPM is to connect UI Building Blocks (UIBB) or Generic UIBB. At the Generic UIBBs, Web Dynpro applications define an input parameter and a field catalog in flat structure for the business logic. A field catalog is defined as a list of fields and provides a certain interface for Generic UIBBs. Figure 2 Floorplan Manager Framework’s architecture Through this interface the Generic UIBBs can communicate with these fields. Input parameters are defined as special field catalogs for the input attributes. Usually, UIBBs are provided by the external application and they communicate with the FPM via APIs. The APIs consists of methods encapsulated in the interface [6]. FPM Framework and the Web Dynpro application components, which include Generic UIBBs, communicate via FPM Interfaces during the floorplan event loop. The floorplan event loop comprises a sequence of predefined methods belonged to a class, named feeder class. These class starts when the floorplan is instantiated at runtime. At the same time, feeder classes supply the specific information for the UIBBs within the WD applications by implementing the FPM Interface together with the predefined methods at runtime. The communication between the WD applications and the Generic UIBBs within feeder classes include [7]: • Web Dynpro application definition: for example, data definition, structure or table definitions and the technical aspects; • Possible default layout information and the corresponding field dependencies; • The action definition based on metadata from Business logic; • The action or event handling and data is forwarding to the underlying application model. The Floorplan Manager can adopts many Web Dynpro enhancements and accelerate the innovation for the end user. C. CRM WebClient UI The WebClient UI Framework belongs to the Business Suite Foundation Layer, is a highly configurable and customizable UI framework and is useful for developing applications that tightly integrate with SAP CRM [8]. CRM is a business strategy that aims to optimize customer interaction in order to maximize the success of the business. The WebClient UI frameworks interface is based on a solution, available only in CRM. CRM has its own navigation framework, the concept of role and UI programming technique. The UI technology from CRM is not based on Web Dynpro, but is based on Business Server Pages (BSP) technology, which is a combination of ABAP code and BSP extensions. These extensions consist of HTMLB (Hypertext Markup Language Business) tags, more complex than the conventional HTML (Hypertext Markup Language) tags. The BSP technology is a set of pages that represent a UI and contain server-side scripting code. Through the BSP existing SAP logic is directly used in Web applications. Like at WD ABAP, the architecture of the CRM WebClient UI framework is divided into three strictly separated levels: Database Layer, Business Layer and Presentation Layer [9], see fig.3: • The Database Layer consists of the relational model of the CRM database and all the APIs, provided for reading and writing corresponding to the business object. data Figure 3. CRM WebClient Framework’s architecture • The Business Layer provides the separation of the UI from the business logics implemented by the database layer. This level consists of two components: BOL (Business Object Layer) and GenIl (Generic Interaction Layer). The BOL component contains the persistent business objects data and exposes them to the presentation level, as well as to the APIs programming interfaces at the Business Logic Level. The data transfer from the BOL to the persistent system of database is ensured by the GenIl component. The BSPs from the presentation level are not able to control the business logics of any CRM object and process. • The Presentation Layer is responsible with the visual part of the application, and consists of the web pages that are performed at runtime based on BSP extensions, classes that contain the navigation logic and calls to the business logic. This level is divided into three levels, known as MVC. The Model contains information about the range of used data structures, known as a context. In the Business Layer, the context data is mapped to be understood by the database and GenIl will make the connection with the database. The View contains an HTML file and is responsible for displaying the business objects data and for defining the layout for each page. Through the view is defined the design of the page: buttons, tables, fields and labels, which will be displayed for each context. This is the most frequently customized WebClient UI part. The business users can easily make changes on the UI with the UI Configuration Tool, and no programming skills are required. The tool used to develop, test, and enhance components is the BSP WD Component Workbench (transaction BSP_WD_CMPWB). When creating a web component, the system generates [9]: • a BSP application with the name of the component • a component controller (BSP controller and corresponding component controller class) • A default window named MainWindow (BSP controller, corresponding controller class and BSP view) • a Runtime repository XML file (BSP page Repository.xml) in the component’s BSP application As well as the WD ABAP including Floorplan Manager, a web business application achieved in CRM WebClient UI can be very easy configure with different tools as: UI Configuration tool (transaction BSP_WD_CMPWB), Design layer customising, Easy Enhancement Workbench, Changing Skins. So in [10], component enhancements improve the functionality of components, views, and controllers provided by SAP. The components are not modified because they use inheritance and references. Component enhancements use the replacement concept for components at runtime. II. EXPERIMENTAL RESULTS The web business application made in all the three technologies consists of a user interface that can perform searching and displaying results from the database. The data model, from which the results come, is based on the related tables BUT000, BUT020 and ADRC of the SAP system see Fig.4, tables which contain 9973 records. The application achieved in the WD ABAP technology is realized from a single component [6]. Through an input field, data from some fields of the system tables: business partner - BUT000 and address - ADRC, are displayed according to a search parameter, see Fig.5. All specific methods for the searching and displaying of data are defined in the Controller. Here, through a maintenance view that contains attributes from our tables, reading the context, implementing open SQL instructions and calling the bind_table() method from the IF_WD_CONTEXT_ NODE interface, the data will be return from the database in accordance with the customer request. This, shapes up the model data to be displayed in the view processes user entries and returns them to the model. Using the WD ABAP including Floorplan Manager, an application similar to the previous can be achieved by taking an OVP floorplan, named Business Partner Query, with two Assignment Blocks, see fig.5 and [6]. These are the Search Component – GUIBB Search - a generic design template for searching and a Generic UIBB for result displaying. These GUIBBs will be configured at the design time, and the fields from the field catalogue Figure 4. Database SAP tables Figure 5. Web business application achieved in WD ABAP, FPM and CRM WebClient UI may communicate with the GUIBBs via the IF_FPM_GUIBB_SEARCH interface. Through two methods GET_DEFINITION and GET_DATA within the FPM event loop, the feeder class will implement the search logic and then generate the shape of the result to display. These methods, allows the feeder to provide all the necessary information for configuring the search: a list of available search attributes and a list of columns for the result table. [11]. A web application built using the CRM WebClient UI's framework is based on a single BSP component of the CRM system, BP_HEAD_SEARCH (search page). Using the UI Configuration Tool and through the enhancement technique, we will adapt the component's view in order to obtain an application similar to the Web Dynpro ABAP application, see fig 5 and [6]. This search page provides the users with comprehensive search capabilities for every CRM component. The page consists of a search criteria area (including a save function for search queries) and a search result list. The new BSP application, inherit all the functionality and the implementation part of the BP_HEAD_SEARCH component. The two views of the component: MAINSEARCH and MAINSEARCHRESULT will be separately configured. All the component structures BP_HEAD_SEARCH are mapped in View layout with a class and then displayed by the *.htm page [11]. To perform a query in the database we have used the HTTP Watch Tool for measuring the front end time to the end user. This Tool is a HTTP monitoring plug-in for Microsoft Internet Explorer that give detailed information about applications or websites that are loading in the browser. It displays the overall time required to load a website (e.g. our application), and the individual time for loading of each element of the website. The set of measurements was realized for two cases: a search query for a total of 9973 records in the database and a display list with 9 displayed lines, and the same search query for 9973 records, but a display list with 100 displaying lines. The obtained average time values for searching with Web Dynpro ABAP, with Floorplan Manager, and with CRM WebClient UI are transposed and evaluate directly into the graphic, Fig. 6. These values based on measurements, was done on reference hardware for NetWeaver 7.20 (2.4 GHz single core CPU, 1GB Memory, Windows XP SP2, Internet Explorer 6) which reflects the standard equipment used at many customer sites. 14000 12000 10000 8000 100 Displayed 6000 9 Displayed 4000 2000 0 CRM FPM WD ABAP Figure 6 Request time in front-end III. CONCLUSION In conclusion, through this study we noted that: the shortest time for applications achieving, was obtained for the CRM WebClient UI technology. Evaluating the results obtained by measurements, we observed that the application realized with the WD ABAP technology is the most efficient: the front end time to the user is the smallest. This is because the WD application is realized without UI Building Block components which make the process of extracting data from the database slower. To optimize this time, important factors are the quantity (total number of UI elements), and the quality (different UI elements take different times to get displayed) of the UI elements which are used for the realization of the web application. REFERENCES [1] [2] [3] [4]: [5] [6] [7] [8] [9] [10] [11] SAP Help Portal URL: http://help.sap.com Ulli Hoffmann, Web Dynpro for ABAP, Publishing House SAP, Galileo Press, Bonn, Germany, 2007 Ulli Hoffman - Get started developing Web – native custom SAP application with Web Dynpro for ABAP, SAP Professional Journal July/August 2007, URL: http://www.sappro.com Floor Plan Manager Developer’s Guide. SAP AG Internal, URL: https://portal.wdf.sap.corp/irj/go/km/docs/room_project/cm_stores /documents/workspaces/e1f2879b-3584-2c10-0ca9bc6e2c47815c/FPM%20Developer's%20Guide%20702e.pdf. URL: http://www.wiki.sdn.sap.com A.D.Berdie, M.Osaci, A survey on evaluating the performance of a software application implemented with SAP technologies, IJSEKE, 2012, unpublished. Saundattikar, Rohan. SAP WiKi: GUIBB. SAP AG. June 2009. URL: https://wiki.wdf.sap.corp/wiki/display/FPM/GUIBB http://help.sap.com/saphelp_crm700_ehp01/helpdata/en/4c/ ea2be450e94597b5a6017f095a6132/frameset.htm Michael Füchsle, Matthias E. Zierke, SAP CRM Web Client Customizing and Development, Galileo Press 2009 WebClient UI Architecture, SAP CRM 2007, SAP AG Document, July 2008, URL: http://service.sap.com/rkt-crm A.D.Berdie, M.Osaci, L.D.Lemle, Comparative statistical study of some SAP UI technologies, ICNAAM 2011, Greece