SAP provides customers with an arsenal of development tools and functionalities for building and extending their business applications. Over time, this portfolio of tools has grown to meet changing needs and evolving technology trends. While this growth means that customers have a comprehensive set of development resources at their disposal, it also means contending with a sometimes overwhelming array of options and technology environments. For instance, some tools ran in SAP GUI, such as the ABAP Workbench (SE80), while others were based on Java Swing, such as SAP Process Integration, while still others were PC-based tools that connected to back-end systems with varying degrees of support for integration and interoperability.
The need to integrate SAP’s portfolio of development tools on a common platform was clear, and with the role of on-demand and in-memory technologies continuing to grow in business environments, a strategy for incorporating SAP HANA and the cloud became a priority. To help you understand what SAP’s unified strategy for SAP HANA and cloud-based development means for your own development work, this article walks through SAP’s current main tooling environments for supporting SAP HANA and the cloud. (For more on the announcements at SAP TechEd in the fall of 2014 on SAP’s unified approach to development, see the sidebar.) It first looks at the desktop-based Eclipse environment, and then at two browser-based environments, one of which centers on SAP HANA native development, and another that focuses on development using SAPUI5, which is SAP’s interpretation of the HTML5 standard.
The result is a set of guidelines that you can use to decide when to use which platform offering, and which tools are available to fulfill the requirements of your most pressing development projects.
Desktop-Based Development with Eclipse
In addition to ease of use, especially when getting started, a key criterion for SAP’s desktop-based development environment for SAP HANA and the cloud is flexibility — in particular, the ability to integrate tools from third-party providers, which was not well supported with previous platforms, and the ability to selectively install individual tools. The Eclipse-based SAP NetWeaver Developer Studio, for instance, pioneered plug-ins for Java development in SAP environments, but offered these plug-ins only in an all-in-one fashion.
To meet these requirements, SAP’s desktop tooling strategy for SAP HANA and cloud-based development is based on a standard Eclipse environment, where users install development tools in their workspace via plug-ins. Unlike with SAP NetWeaver Developer Studio, however, users can now customize their Eclipse workspace by picking and choosing which plug-ins to install — both those from SAP and those available from external partner sites. They are also not limited to Java development. If you do not already have a local installation of Eclipse (the minimum required version is currently Kepler), the effort to set up a workspace is fairly minimal: Simply download the latest version of Eclipse (currently Luna) from the Eclipse site and extract the corresponding archive to your desktop.
To support this development environment, SAP provides an update site (https://tools.hana.ondemand.com) from which customers can download and install SAP’s various Eclipse plug-ins for SAP HANA and cloud development according to their needs. Let’s take a closer look at the plug-ins provided at this site:
- ABAP: The ABAP development tools for SAP NetWeaver (known as ABAP in Eclipse), shown in Figure 1, are designed to support modern ABAP programming, including features to support SAP HANA development.1 ABAP in Eclipse essentially takes the role of the ABAP Workbench (SE80) for Eclipse-based development. Most ABAP artifacts — including ABAP programs, classes, and function modules — are natively supported, along with traditional user interface technologies, such as Web Dynpro. If an artifact cannot be represented natively — for example, a Data Dictionary object — a corresponding embedded SAP GUI session will display the object, ready for editing using the corresponding SE80 tool. New SAP HANA-based programming models, such as core data services (CDS), are supported only via the Eclipse plug-ins — there is no editor available for CDS in SE80.2
- BW: The modeling tools for SAP Business Warehouse (SAP BW) powered by SAP HANA combine SAP BW metadata objects with SAP HANA views, such as analytical and calculation views, within a modern modeling environment. These modeling tools replace older, standalone, SAP GUI-based tools by taking advantage of the strengths of SAP’s traditional warehouse solution with the direct computation features of a real-time, in-memory database within a user-friendly Eclipse-based user interface.
- SAP Gateway: The SAP Gateway plug-ins provide tools for designing and provisioning OData services to connect data sources to devices and environments. Modern user interface development approaches follow an “outside-in” approach to building user interfaces, where services must be exposed for consumption by the user interface logic running directly in the browser. This approach requires access to the business logic in back-end SAP systems through the semantic modeling offered by the OData protocol and abstractions, rather than a purely technical approach based on Remote Function Call (RFC) or web services technology. The SAP Gateway tools allow developers to model OData services and generate skeleton implementations that allow applications running on SAP HANA Cloud Platform, for instance, to access data in a back-end SAP system.
- SAP HANA: The SAP HANA plug-ins provide tools for desktop-based SAP HANA development, modeling, and monitoring, using your own SAP HANA server. The SAP HANA studio is the Eclipse-based workspace for SAP HANA development. Many developers initially start with the plug-in for SAP HANA studio and then add other plug-ins, such as ABAP in Eclipse, as needed. The SAP HANA plug-ins enable developers to create database content and artifacts, such as tables, views, stored procedures, analytical views, and calculation views, some of which are not available on any other supported database. Developers can also perform tasks such as examining and monitoring database processes in detail, running analytical reports on the fly with sophisticated displays of information, and assigning roles where needed.
- SAP HANA Cloud Integration: The SAP HANA Cloud Integration plug-ins provide tools for enabling business process and data integration across on-premise and on-demand applications. Using SAP HANA Cloud Platform services, these tools provide functionality, including predefined content, for modeling data and process integration in scenarios that incorporate solutions running both on premise and in the cloud — think of SAP ERP Human Capital Management running in conjunction with SuccessFactors Employee Central, for instance.
- SAPUI5: SAPUI5 is SAP’s adoption of the HTML5 standard for highly interactive browser-based applications that run both on desktop environments and modern mobile devices. The SAPUI5 tools allow developers to create projects that support the model-view-controller (MVC) model of user interface abstraction, and can be deployed on all major SAP runtime platforms, including the ABAP stack, the Java stack, SAP HANA Cloud Platform, and native SAP HANA. SAPUI5 works in close conjunction with the SAP Gateway protocol to retrieve and update back-end data, and is used for developing SAP Fiori applications — applications designed using SAP’s simplified, personalized, and responsive approach to the user experience.
When to Use Desktop-Based Development with Eclipse
The desktop-based Eclipse development tools provide professional developers with comprehensive functionality for building full-featured applications and increasing productivity. SAP’s Eclipse-based plug-ins are simple for developers to use and learn, and due to the extension concept of the Eclipse environment, SAP’s plug-ins can be easily complemented by add-ons from third parties. The integration of the plug-ins makes it easy for a developer to prototype applications in an ad hoc fashion. For example, an ABAP developer can use the SAP HANA studio with ABAP in Eclipse for basic development tasks, and then add SAPUI5 and SAP Gateway to create an appealing SAP Fiori user experience. A Java developer can follow a similar approach using Java plug-ins, such as the Java EE development tools perspective, with the SAPUI5 and SAP Gateway tools, and an SAP BW developer could combine the SAP BW tools with ABAP in Eclipse.
Using the Eclipse-based tools requires the local configuration of a full Eclipse development environment, which incorporates proxy settings for web access, back-end connectivity to ABAP-based systems, and access to local and cloud runtime environments, depending on the intended development scenario. While this configuration requires diligence, it is well suited if you have ongoing projects where you access your development landscape on a regular basis in a coding-oriented fashion.
While desktop-based Eclipse development is the platform of choice for the professional developer, new usage scenarios such as cloud, mobile, and big data require immediate access to wizards, templates, and artifacts without the need to set up an entire development environment. With the dramatic evolution of browser technologies, which are now able to provide a sophisticated, consumer-level experience to users, modern tooling environments can take advantage of these browser capabilities to deliver a similarly high-end user experience for developers in a responsive development workspace, with instant, easy access to tools and complex back-end environments.
SAP currently offers two breeds of web-based development environments: the SAP HANA web-based development workbench for native SAP HANA development, and the SAP Web IDE for SAPUI5-based development of SAP Fiori applications.
Web-Based Development for SAP HANA
The SAP HANA web-based development workbench is a fully web-based development environment that runs completely inside a browser without any local installation on the desktop. Provided as a part of SAP HANA extended application services with support package stack (SPS) 06 and higher for SAP HANA, the SAP HANA web-based development workbench enables developers to build and test native SAP HANA applications using objects in the SAP HANA repository. You no longer need to install the SAP HANA studio for basic SAP HANA-based development. You simply log into the workbench development environment using a web browser, and use an intuitive user interface and convenient wizards to complete your development tasks. All that is required is a connection to your SAP HANA server or SAP HANA Cloud Platform.
To demonstrate the ease of browser-based development, let’s look at an example. Figure 2 shows a simple, straightforward SAP HANA native application that uses SAP Fiori technology for the representation of its user interface. This example application enables SAP TechEd attendees to provide event feedback. As you can see, the available events are listed on the left side of the page, and the feedback for the selected event is on the right. An end user can easily add a new event or comment using the functions at the bottom of the page. When the end user sets an event rating, the average rating per event is calculated immediately and updated on the page.
Let’s take a look at the data model underlying this example application. To access the SAP HANA web-based development workbench, you simply log on with a specified URL that points to your SAP HANA server or SAP HANA Cloud Platform. Figure 3 shows the data model model.hdbdd of the project fiori_like_comments opened in the workbench’s editor tool, which allows developers to create, edit, execute, debug, and manage SAP HANA artifacts. Using the editor tool, you can immediately start examining and editing the code as you would with any other tooling environment. The definition of the data model for the example application is based on core data services and consists of two entity types: event and comment.
An association is defined between a comment and its associated event, and the view eventStatus calculates the average rating obtained from the comments provided for a given event.
Since the example application has an SAP Fiori user interface, OData services must be specified to retrieve the available events and the comments per event. Figure 4 shows the OData service fiori_like_comments.xsodata defined for the example application displayed on a different tab in the editor tool. As you can see, the SAP HANA web-based development workbench uses a tabbed display to enable developers to easily navigate between the different editors that are currently open. Lastly, the user interface elements must be defined with SAPUI5 artifacts. Each aspect of the user interface — such as the overview section, the detail view, and pop-ups to create events and feedback — has files that contain the user interface layout and controller code.
After creating the various artifacts required for the application — the data model, OData services, and the user interface based on SAPUI5, for instance — you want to investigate the corresponding physical tables to create initial content, examine the actual values, and so on. To view the tables, use the workbench’s catalog tool, which displays the application’s schema and runtime objects, including low-level database artifacts such as SAP HANA tables and procedures. Figure 5 shows the table fiori_like_comments.data::model.comment of the example application open in the catalog tool, which you can use to display all comments in tabular form. The catalog also lets you fire queries against the SAP HANA database and analyze the retrieved records, so that you can run more complex calculations on the direct table level and perform error analysis.
Once the artifacts are developed and all the files shown in the project hierarchy are complete, the corresponding underlying SAP HANA repository is populated, and you can start to test your application. The workbench provides full source-level debugging and versioning support. You can also perform many administrative tasks — such as managing users, roles, and authorization assignments — directly from the browser using the workbench’s catalog tool.
Web-Based Development for SAPUI5
In addition to the web-based SAP HANA native development tools, SAP offers the SAP Web IDE. Available with SAP HANA Cloud Platform, which is ideally suited to delivering web-based tools for immediate development access, the SAP Web IDE is an extensible development environment that runs in the cloud and can be accessed via a Google Chrome-based browser. It is primarily intended for the rapid development of SAP Fiori applications built with SAPUI5-based interfaces for consuming back-end services, and includes many sophisticated templates and wizards that accelerate the quick creation of prototypes.
The SAP Web IDE provides a customizable collaborative development environment where multiple users can work together from a common interface to prototype, develop, and deploy SAPUI5-based applications. It includes interactive code editors, templates, and integrated developer assistance to support users of varying skill levels, including both SAP application developers and business experts and designers.
Let’s look at an example. Figure 6 shows an example application with an SAPUI5-based interface built using SAP Fiori. With this application, users can easily manage and monitor claims coming from customers in an insurance scenario. As you can see, claims are listed on the left side of the page, and the damage report details for the selected claim are on the right. The user can approve or reject a claim using the functions at the bottom of the page.
As you can see, the SAP Web IDE has a layout that is similar to the SAP HANA web-based development workbench, with the project outline on the left and the tabbed editor area on the right. The SAP Web IDE also offers a contextual pane on the right for access to open source repositories such as Git, and collaboration and help functions, such as API documentation. You can deploy a new application directly from the SAP Web IDE and run it instantly on SAP HANA Cloud Platform.
When to Use Web-Based Development
There is no easier access to a complex back-end environment than a browser URL. SAP’s web-based development tools allow developers to quickly build applications and access complex back ends without the need to install and configure any development tools or environments. The SAP HANA web-based development workbench environment is self-comprised and allows developers to perform development tasks without using tools such as the SAP HANA studio. SPS 09 for SAP HANA brings in brand-new workbench features, such as code completion, advanced syntax coloring, error detection, a function call graph, and much more. The SAP Web IDE provides wizards, templates, and feature-rich code editors that help speed application development, along with graphical layout editors for user interface design and adaptation.
Both offerings demonstrate that a web-based development environment is not limited when it comes to developer productivity, and that it offers an integrated approach similar to a desktop environment. For heavy-lifting tasks such as fully featured, complex, layered application development, customers often continue to rely on the on-premise Eclipse-based approach, but for a simple extension to an SAP Fiori application, for instance, a web-based approach can provide all of the development functionality that is necessary, without the overhead of a full development environment installation. In addition, browser-based tools are a very natural choice to explore cloud development environments.
SAP is investing heavily in its desktop-based and web-based development environments to meet the needs of its customers’ big data and cloud development projects.
The desktop-based tools reside on the comprehensive foundation of Eclipse. These tools offer a high degree of integration and easy access to updated tool plug-ins through SAP’s update site. For the professional developer, the desktop-based tools are an ideal choice for developing full-featured applications and increasing productivity, and going forward, these tools will replace previous desktop-based tools in their entirety, while still supporting older artifacts with a fully embedded SAP GUI.
The web-based tools offer new ways to quickly prototype new applications in an ad hoc fashion without the need to configure your desktop environment. While the SAP HANA web-based development workbench is intended for SAP HANA native development, the SAP Web IDE offers a cloud-based development approach that typically starts with SAPUI5-based development activities, which in turn consume back-end services. Over time, these two approaches will converge more closely, as with the current Eclipse-based tools, to offer SAP customers a fully unified development experience.
1 For more on ABAP in Eclipse, see my SAPinsider articles “Turbocharge Your ABAP Development with Innovation from Eclipse” (October-December 2012); “End-to-End Development Scenarios from SAP: Bridging the On-Demand and On-Premise Divide with SAP Tools for Eclipse” (October-December 2013); and “Take Your SAP Solutions to New Heights with the Latest Release of SAP NetWeaver 7.4” (April-June 2014). [back]
2 For more on core data services (CDS), see my SAPinsider articles “Take Your SAP Solutions to New Heights with the Latest Release of SAP NetWeaver 7.4” (April-June 2014) and “Where ABAP Meets SAP HANA: Get the Best of Both Worlds with the Newest Development Features for SAP NetWeaver 7.4” (October-December 2014). [back]