GRC
HR
SCM
CRM
BI


Article

 

Java Development for SAP e-Business Solutions: Borland's JBuilder and New SAP Add-Ons

by Gesine Raith | SAPinsider

October 1, 2001

by Gesine Raith, SAP AG SAPinsider - 2001 (Volume 2), October (Issue 4)
 

Java, as an open standard in the world of web application development, provides a development environment that more and more companies are exploiting to bring their business processes to the web. mySAP Technology fully embraces Java over the entire e-business solution lifecycle.

     Our new, integrated software tool set offers comfortable, efficient, and rapid web application development for developing complex Java software solutions. An open IDE, which is already familiar to the Java development community, SAP-focused features, an add-on for multi-language capabilities, and an easy-to-use design round out SAP's kickoff to its Java-oriented developer tool set. The end result? Efficient access from Java applications to the business processes in mySAP.com solutions.

The Java IDE - SAP's Choice: Borland's JBuilder

SAP has adapted a Java IDE that is well-known and already in wide use by the Java developer community: Borland's JBuilder Enterprise Version (see Figure 1). JBuilder offers a variety of features, including all the "must haves" of a useful Java development environment. The following lists just some of the functionality of JBuilder 5, Borland's latest release, which provides:

  • Support for JSP and Servlet development


  • Easy EJB and Web development


  • A state-of-the-art Java IDE hosted on Java 2 SDK 1.3 (giving the programmer a choice of Java Development Kit)


  • Web archive (WAR) and enterprise deployment enterprise archive (EAR) support for packaging web applications and sets of components


  • A scalable team development environment for simplified, concurrent management of source code


  • Guaranteed platform independence


  • A wealth of visual tools and wizards for all common tasks: creating objects (e.g. projects, classes, interfaces, servlets), implementing interfaces, creating JAR files, and deploying EJBs


  • Code patterns (i.e., if, for, while) for statements


  • High-level code navigation


  • Two-way editing, so that changes made via the editor are immediately applied to source code, and source code changes instantly appear in the special editor


  • CodeInsight for streamlined coding, providing support for fast code analysis and code completion


  • Extensibility of the IDE via Open Tools API


Figure 1 JBuilder 5 Interface

     Now, for development of Java web applications in the SAP environment, SAP has taken the next step, and extended JBuilder's solid Java development environment with additional, SAP-specific features.

The Interface Between Java and ABAP: JCo

Making communication between Java and the SAP system is the SAP Java Connector (JCo), a high-performance JNI-based RFC middleware. The easy-to-use JCo API supports SAP R/3 Release 3.1H and higher, as well as any mySAP.com components that contain BAPIs or Remote Function Modules. JCo provides synchronous, transactional, or queued Remote Function Call (RFC) capabilities. This allows a Java programmer to call SAP functionality (inbound communication) and an ABAP programmer to call a Java application (outbound communication). Codepages, data type conversion, connection pooling - the programmer does not have to handle these interface-specific tasks.1

The SAP Add-Ons

As a global player in e-business, SAP introduces tool enhancements that can be used for development in J2EE-compliant server environments, including:

   New Tools for Java-Based Access to SAP Business Processes
Two new SAP add-ons enable you to take your SAP functionality and use it in your Java web application:

  • The BAPI Browser for an easy connection to the SAP system
  • The Java Proxy Generator for quick creation of Java classes that include SAP functionality

     The BAPI Browser is completely integrated into JBuilder: you can call the browser from your JBuilder menu and connect quickly to the appropriate SAP system (see Figure 2).

Figure 2 BAPI Browser

     As you can see in Figure 2, the BAPI Browser allows you to use filters to easily search, select, and display the corresponding Remote Function Modules or BAPIs. After selecting the objects you need, you can trigger the proxy interface from the BAPI Browser by simply selecting the "Generate" button. From there, the Java proxy generation process begins (see Figure 3).

     For these selected function modules, the XML Generator generates XML files. The XML files are transformed into Java source files via XSLT (eXtensible Stylesheet Language Transformation). In addition to being the basis for your web application, the Java proxies are important for object-oriented control and for encapsulating application server functions.

     In the future, the XML files for Java applications will also be stored in the SAP Interface Repository (IFR). From the IFR, you will be able to work with simple Java classes that contain the business functionality you need for your Java applications, in addition to the mySAP.com interfaces already available from the IFR.2

Figure 3 Java Proxy Generation: An Architectural Model

   Translating Java Applications: SAP's Localization Add-On

SAP has used its experience and know-how in language technology and delivery to develop a translation tool for the J2EE environment. With SAP's localization add-on, developers have a tool to adapt Java-based web applications to various languages without having to make any engineering changes, or recompiling the code. You add the localized data, and the same executable program code can run for users no matter what their language.

     Text elements, such as status messages and graphical user interface (GUI) components, are stored outside the source code and retrieved dynamically later on. Country-specific formats and data, such as date formats and currencies, conform to the end user's country and language. This SAP add-on also enables the Java programmer to add important text information that the translator of the user interface will need later on.

     In addition to the benefits to users, the Java localization process ensures an optimized development workflow. The files are created automatically, based on so-called resource bundle files, which are typical Java classes. Additional information is collected in the Java development environment. The files run through the localization process, then are converted back into the resource bundle files. These localization features help provide a solid infrastructure for developing high-quality, global online applications.

  User-Friendly Design for Developers

SAP also provides a sophisticated, pluggable look and feel for Borland's JBuilder 5 Enterprise version. This user interface is designed with a familiar, user-friendly layout and comes with a set of tabstrips that increases ease of use. As a result, users don't have to adjust to yet another interface when developing SAP web applications in Java. And you even have the option to customize the user interface via the tool list through the Open Tools API.

The Java Proxy Generation Process

For each SAP Remote Function Module or BAPI, the Java proxy interface generates:

  • A Java proxy class
  • One static method
  • Several methods within the Java proxy class
  • A nested inner class, including complex table or structure parameters

     The Java proxy class (e.g., Proxyclassname.java) generally contains several methods that represent the corresponding function modules or BAPIs in the SAP system. Complex parameters, like table or structure, defined in a function module, are represented as inner classes. These parameter classes provide containers for parameter definitions and are suitable for hiding the details of parameter information.

     To define the request and response parameters, a request container class and a response container class are generated as inner classes. For each global definition of a referred complex parameter type defined as dictionary structure or table, the proxy interface generates one separate type definition class (e.g., TypenameTable.java or TypenameStructure.java).

Generated File Description
Proxyclassname.java Proxy class that contains the methods for corresponding BAPIs or function modules, with some inner classes defining the container for complex parameters.
TypenameTable.java Separate classes used to map the single Dictionary types.
TypenameStructure.java Separate classes used to map the single Dictionary types.

Conclusion

SAP will continue to provide more features for comfortable Java web development. These include enhanced tool support for convenient and efficient modeling of Java applications, along with implementation of a repository so that high-functionality features, like where-used lists, are destined to become standard in any SAP Java development environment. BAPI Browser functionality will also be extended: a detailed view of the corresponding interfaces and display of interface documentation are only part of the improvements planned for the near future. These examples provide just a brief glimpse of SAP's plans for further tool support of the Java application development environment.


Gesine Raith is with the Product Management Team of Business Programming Frameworks. She joined SAP AG in 1991. For further information concerning Java tool support, she can be reached at gesine.raith@sap.com.


1 For more information on JCo, see the article "New Features in SAP Java Connector (JCo) 1.1" by Thomas G. Schuessler in this issue of SAP Insider. Additional coverage of JCo is available in the Apr-Jun and Jul-Sep 2001 issues online in the SAP Insider archives at www.SAPinsider.com.

2 For an introduction to the SAP Interface Repository, see "The SAP Interface Repository Now Offers Developers 2,000+ mySAP.com XML Interfaces" in the October 2000 issue of SAP Insider (Vol. 1, No. 2), available online at www.SAPinsider.com.

An email has been sent to:






More from SAPinsider



COMMENTS

Please log in to post a comment.

No comments have been submitted on this article. Be the first to comment!


SAPinsider
FAQ