How to Integrate SAP xmii Services with Web Dynpro Java

Similar documents
POWL: Infoset Generation with Web Dynpro ABAP

Integration of Web Dynpro for ABAP Application in Microsoft Share Point Portal

Displaying SAP Transaction as Internet Application in Portal

Using Radio Buttons in Web Template

BAPI Execution in offline Adobe Form

Fetching User Details from the Portal and Displaying it in Web Dynpro with Authentication in the Portal

How to Create Top of List and End of List of the ALV Output in Web Dynpro for ABAP

Web Dynpro ABAP: Changing ALV Contents and Saving in Database

How to Reference External JAR Files in Web Dynpro DC in SAP NW Portal 7.3

Freely Programmed Help- Web Dynpro

Linking Documents with Web Templates

Web Dynpro: Coloring Table Conditionally

Template Designer: Create Automatic PDF Documents for Attachment or Print Purpose

Dialog Windows in WebDynpro ABAP Applications

MDM Import Manager - Taxonomy Data (Attribute Text Values) Part 3

Different Types of iviews in Enterprise Portal 7.0

Federated Portal for Composite Environment 7.1

Table Properties and Table Popin

Table Row Popup in Web Dynpro Component

SDN Community Contribution

Custom Password Reset Tool in SAP Enterprise Portal Using Web Dynpro for Java

Information Broadcasting Part 3 Scheduling the First Report

SDN Community Contribution

Creating Rules in Process Composer and using them in Process

Consuming SAP MII Business Logic Transaction as Web Service

How to Create Business Graphics in Web Dynpro for ABAP

How to Develop a Simple Crud Application Using Ejb3 and Web Dynpro

ecatt Part 6 System Data Container

Creating Custom SU01 Transaction Code with Display and Password Reset Buttons

Easy Lookup in Process Integration 7.1

MDM Syndicator: Custom Items Tab

Creation of Alert Data Service VC model for the BI query exception using Information Broadcasting

Adding Files as Attachments to SAP Interactive Forms in the Java Environment

SAP Biller Direct Step by Step Configuration Guide

Web Dynpro ABAP: Dynamic Table

Step by Step Guide How to Use BI Queries in Visual Composer

SUP: Personalization Keys and Synchronize Parameter

Step By Step Procedure to Implement Soap to JDBC Scenario

Replacement Path: Explained with an Illustrated Example

Step by Step Guide for PI Server Start and Stop Procedure

Web Dynpro Interactive Forms Data Transfer and Scripting

Graphical Mapping Technique in SAP NetWeaver Process Integration

Creating, Configuring and Testing a Web Service Based on a Function Module

Working with Dynamic Tables in Interactive Adobe Forms and WebDynpro ABAP

E-Sourcing System Copy [System refresh from Production to existing Development]

Internationalization in WebDynpro ABAP Applications

Dynamically Enable / Disable Fields in Table Maintenance Generator

Upload Image file from system in Web dynpro view

Developing Crystal Reports on SAP BW

SDN Community Contribution

SAP BusinessObjects Translation Manager Functionality and Use

How to Download Multiple Files in ZIP using WebDynpro Java

This article explains the steps to create a Move-in letter using Print Workbench and SAPScripts.

How to Integrate Web Dynpro ABAP in Portal and Capture Portal Logon User Name

SAP QM-IDI Interface. SDN Contribution. Applies to: Summary. Author Bio. SAP QM Interfaces

Working with Tabstrip in Webdynpro for ABAP

Creating Multiple Methods/Operations and Exposing BAPI as a Webservice

Open Text DocuLink Configuration - To Access Documents which are Archived using SAP

How to use Boolean Operations in the Formula as Subsidiary for IF Condition

Material Master Archiving in Simple Method

Step By Step: the Process of Selective Deletion from a DSO

Federated Portal Network Remote Role Assignment Step-by- Step Configuration

Download SAP Query Output to Local/ Network Folders in Background

Currency Translation in SAP BI Step by step Guide

Data Mining: Scoring (Linear Regression)

Printer Landscape Made Easy!!

Step-By-Step guide to Virtual InfoCube Implementation

Creating a Development Component

Setting up Connection between BW and R/3 for Data Load

SMT (Service Mapping Tool)

HOWTO: SCRIPTING LANGUAGE SUPPORT FOR SAP SERVICES - RUBY

Deploying BusinessObjects Explorer on Top of a SAP BI Query

Extracting Missing Fields of Data Source Which Are Present In Their Extract Structure

Add /Remove Links on ESS Home Page in Business Package 1.5

How to Create View on Different Tables and Load Data through Generic Datasource based on that View

How to Display Traffic Lights for Exceptions in BI Web Reports

Using Drop Down By Index in Table UI Element in WebDynpro ABAP

Errors while Sending Packages from OLTP to BI (One of Error at the Time of Data Loads through Process Chains)

Step by Step Method for File Archival in BW

Step by Step Procedure for DSO Creation

SDN Community Contribution

Data Mining: Decision Trees

MDM Syndication and Importing Configurations and Automation

SAP BI BO Unit/Currency Logic for Unknown Units Case Study

Config Tool Activities

WDJ - Application to execute MDX query using the BI Java SDK

Material Listing and Exclusion

Purpose of Goods Receipt Message indicator in Purchase Orders

BPM Multi Line Container in Integration Process

Explore to the Update Tab of Data Transfer Process in SAP BI 7.0

External Driver Configuration in Process Integration 7.1 Using JSPM

WDA Tutorial II: Using Select Options in a WDA Application

Solution to the Challenges in Pivoting

DB Connect with Delta Mechanism

Changing the Source System Assignments in SAP BW Objects without Affecting the Data Modeling

How to Create Tables in MaxDB using SQL Studio

Transfer Material Attributes (Material Type) from R/3 to SAP GRC Global Trade Services (GTS)

Extraction of Hierarchy into Flat File from R/3 and Loading in BW System

How to Create and Execute Dynamic Operating System Scripts With XI

Access SAP Business Functions (ABAP) via Web Services

Transcription:

How to Integrate SAP xmii Services with Web Dynpro Java Applies to: SAP xmii 11.5 SAP Netweaver 04s Summary This document gives a step by step description on how SAP xmii services and objects can be exposed as web services or HTTP services and can be integrated with Web Dynpro Java. Author(s): Dipankar Saha Company: IBM India Pvt. Ltd Created on: 10 November 2006 Author Bio Dipankar Saha is presently working in IBM India as Advisory System Analyst developing composite applications using SAP xmii. Previously he worked for SAP Labs India and was involved in development of xmii product, composite applications using Web Dynpro Java and ISA95 business package. Dipankar has about 5 years of experience in application software development. 2006 SAP AG 1

Table of Contents Applies to:... 1 Summary... 1 Author Bio... 1 Introduction... 2 Scenario... 2 Developing the Pieces... 3 SAP xmii BLS Transaction As Web Service... 3 Creating the Web Dynpro Java Project... 4 Creating the Web Dynpro Model Object... 4 Defining Model Usage... 8 Applying Web Dynpro Pattern to the Component Controller... 10 Create Context Attribute for SAP xmii ichart Object Image Source... 14 Map Controller and View Context... 15 Adding UI Elements to View... 16 Modifying the Method... 26 Execute the Web Dynpro Application... 28 Conclusion... 29 Related Content... 29 Disclaimer and Liability Notice... 30 Introduction Composite applications developed using SAP xmii uses the xmii Business Logic Transaction for developing business logic, Query Templates and Display Templates to aggregate and process data from various shop-floor systems and display them using graphical and statistical charts. But the UI development of SAP xmii composite application has no well-defined framework and most of the times xmii developers develops the UI in HTML and Javascript using notepad or other third-party web editors. But xmii developers can leverage the power of Web Dynpro Java to easily generate powerful UI embedding the xmii charts and BLS data in them. Scenario To aggregate and process shop-floor data we use the SAP xmii Business Logic transactions. These BLS transactions can be easily exposed as web services to be used by other applications like Web Dynpro. SAP xmii charts (ichart object) can also be exposed using a http service which gives a gif image of the chart. Web Dynpro Java is based on MVC (model-view-controller) architecture and uses a backend model to retrieve data. This model can be a web-service (SAP xmii BLS Transaction) as well. Any image with a HTTP URL can also be embedded in a Web Dynpro page. We ll use these features to develop a composite application using Web Dynpro Java accessing xmii services on the backend. 2006 SAP AG 2

Developing the Pieces SAP xmii BLS Transaction As Web Service Any SAP xmii Business Logic Service Transaction can be exposed as a web service (WSDL) by the following URL: http://<server>:<port>/lighthammer/wsdlgen/<blstransactionname> The BLS web service can be executed as a web service by the following URL: http://<server>:<port>/lighthammer/soaprunner/<blstransactionname> In this scenario we have a BLS Transaction to do QM analysis on data collected from LIMS, which accepts some input parameters and returns the data in XML format. To define the output XML structure we need to create a XML in SAP xmii format and assign that to the output parameter s value. To do this, run the BLS transaction as a XacuteQuery using a Query Template and get the output in XML format as below (Select text/xml option while testing the query). Copy the XML from the web page source. Open the BLS transaction and edit the output parameter (of type Xml). Paste the copied XML into the Value field as below. 2006 SAP AG 3

Save the transaction and from now on while generating the WSDL the correct structure of the output parameter will be reflected in the WSDL. Creating the Web Dynpro Java Project Open the Netweaver Developer Studio in Web Dynpro perspective to create the Web Dynpro Java project. Create a new Webdynpro Java project and create a Webdynpro component also. Creating the Web Dynpro Model Object You need to import the model which is the SAP xmii BLS transaction exposed as a web service. Select Create Model option and on the dialog box select Import Web Service Model option as below and click on Next. 2006 SAP AG 4

In the next step specify a Model name and model package. Select Local File System or URL option and click on Next. 2006 SAP AG 5

In the next step enter the WSDL URL for the SAP xmii BLS web service. It s typically in the format http://<server>:<port>/lighthammer/wsdlgen/<blstransactionname>. Click on Next 2006 SAP AG 6

In the next screen Proxy Definitions are shown. Click on Finish. The logical port created while importing the model can be configured later as well. For Example if you want to change the xmii server s host name/ip you can change it in the Logical Port s Target Address as shown below. 2006 SAP AG 7

Defining Model Usage Open the Web Dynpro component. We need to add the model created above as a Used Model for the component. Right-click on the Used Models area and select the SAP xmii web service Model and click on OK. 2006 SAP AG 8

Now the screen should look as below. 2006 SAP AG 9

Applying Web Dynpro Pattern to the Component Controller Web Dynpro component controller is the default controller of the Web Dynpro component. It calls the web service model object and gets the data to be displayed in the view. You can use the Service Controller pattern to create the necessary context nodes, mappings and methods. Select the Component Controller and right-click on it. Select the Apply > Template option. Select the Service Controller option as below and click on Next. 2006 SAP AG 10

Select the model class and click on Next. 2006 SAP AG 11

Select the required context elements from the model parameter and click on Next. You must select loginname and loginpassword attributes. This is due to the fact that SAP xmii doesn t support basic authentication and we need to pass the login username and password as web service parameters only. 2006 SAP AG 12

Select the Generate method option. You can also change the name of the method if you wish. This will be the controller method created by the wizard to invoke the model object s execute method (calling web service). Click on Finish. 2006 SAP AG 13

Create Context Attribute for SAP xmii ichart Object Image Source We also want to display a SAP xmii ichart object in the UI. For this we need to create another context attribute to hold the ichart image URL. Open the controller s context and create a new context attribute (value attribute) called imagesource. 2006 SAP AG 14

Map Controller and View Context We need to map the controller s context to the view context before we create the view layout elements. Open the component and create a mapping link between the view and the controller and map the context elements as below. 2006 SAP AG 15

Adding UI Elements to View Now we ll create the UI elements in the default view using the Template wizard. Select the RootUIElementContainer and right-click and select apply template. Select the Form option and click Next. 2006 SAP AG 16

Select the required context elements and click Next. You cannot select the date elements here because while creating the Web service model a XML datetime field is converted to java.util.calendar in the Web Dynpro proxy class. As java.util.calendar is a complex data type you can t link that to an input field (textbox). If you want to use the date fields then we need to manually create the date context elements of type java.sql.timestamp and then link them to the corresponding input fields. In the controller method for executing the web service you can write a line of code to read the date fields and then assign them to the corresponding model context attributes. 2006 SAP AG 17

In the next screen you can modify the field names and labels and order of display. Click on Next. 2006 SAP AG 18

Now we have to add an action button to the view. Select the view and click on Apply Template option. Select the ActionButton option and click Next. 2006 SAP AG 19

Enter the label of the action button and click Next. Automatically the wizard will select the Action and Event to be linked with the button click. 2006 SAP AG 20

Select the Controller and the execute method and click Finish. The wizard will add the action button to the view and generate the necessary code for it. 2006 SAP AG 21

Now we need to add a table to the view for displaying the output data. To do this we need to again apply a Template to the view of type table as below. 2006 SAP AG 22

Select the required context attributes to be bound to the table output. Again here also you can t select the date element to be bound to the table column. Instead if you want to display the dates you need to create a new context attribute of type java.sql.timestamp, bind it to the table output and then have to write a line of code in the controller execute method to assign the model output to the custom context attribute. 2006 SAP AG 23

In the next screen you can modify the table column names, arrange the order of columns and select the output type. Click on Finish. Now the view will look as below. 2006 SAP AG 24

You also need to add an image output element to display the xmii chart. Add a new Image element below the table. 2006 SAP AG 25

The image added should be bound to a context attribute which will provide it s image location. Bind the image source property to the imagesource context attribute. Modifying the Method Open the Implementation tab of the view and go to the onactionsearch method. This is the method called when the action button on the view is clicked. Notice that the code for calling the controller s execute method has been automatically added by the template wizard. //View Method //@@begin javadoc:onactionsearch(serverevent) /** Declared validating event handler. */ //@@end public void onactionsearch(com.sap.tc.webdynpro.progmodel.api.iwdcustomevent wdevent ) { //@@begin onactionsearch(serverevent) //$$begin ActionButton(-223265440) wdthis.wdgetqmanalysiscompcontroller().executerequest_xacutewssoap_xacute(); //$$end //@@end } Go to the controller and open the Implementation tab. Go to the executerequest_xacutewssoap_xacute() method. Notice that the code for calling the model object s web service has already been added by the template wizard. You need to add a few lines of code here. As SAP xmii doesn t support BASIC authentication you need to pass the logon information programmatically along with the web service parameters. 2006 SAP AG 26

Also as you need to display the chart plotted by SAP xmii we need to get the URL of the image source and assign it the context attribute. Any SAP xmii ichart object can be accessed by the following URL as a gif image: http://<server>:<port>/lighthammer/chartservlet?width=<width pixel>&height=<height pixel>&querytemplate=<query template name>&displaytemplate=<display template name>&content- Type=image/gif&IllumLoginName=<login-name>&IllumLoginPassword=<login-password>&Param.1=<param 1 for query template> So after the execution of modelobject get the endpoint address i.e. the web service execution URL. Typically any web service (BLS transaction) of SAP xmii can be executed by the following URL: http://<server>:<port>/lighthammer/soaprunner/<transaction name> So the end point address returns the above URL with actual server name. You need to read the server name from this URL and construct the image source URL. By substring operations read the server name (and port also if present) and construct the URL to access the ichart object s image. Assign the new URL to the imagesource context attribute. //Controller Method //@@begin javadoc:executerequest_xacutewssoap_xacute() /** Declared method. */ //@@end public void executerequest_xacutewssoap_xacute( ) { //@@begin executerequest_xacutewssoap_xacute() //$$begin Service Controller(-1387999182) IWDMessageManager manager = wdcomponentapi.getmessagemanager(); try { wdcontext.currentrequest_xacutewssoap_xacuteelement().setloginname("demo2"); wdcontext.currentrequest_xacutewssoap_xacuteelement().setloginpassword("demoxm2"); wdcontext.currentrequest_xacutewssoap_xacuteelement().modelobject().execute(); wdcontext.noderesponse().invalidate(); wdcontext.noderesult().invalidate(); wdcontext.noderow().invalidate(); //get endpoint address String strdestination = (String) MaterialQMInspectionModel.getServiceImpl().getXacuteWSSoap()._getProperty(Material QMInspectionModel.getServiceImpl().getXacuteWSSoap().ENDPOINT_ADDRESS_PROPERTY); strdestination = strdestination.substring(7, strdestination.indexof('/', 7)); //construct image source URL String imagesource = "http://" + strdestination + "/Lighthammer/ChartServlet?Width=400&Height=300&QueryTemplate=UserTemplates/PoC/Di pankar/xagetplanticlist&displaytemplate=usertemplates/poc/dipankar/ichartplanticli st&content- Type=image/gif&IllumLoginName=demo2&IllumLoginPassword=demoxm2&Param.1=" + (String) wdcontext.currentinputparamselement().getattributevalue("material") 2006 SAP AG 27

+ "&Param.2=" +(String) wdcontext.currentinputparamselement().getattributevalue("inschar"); wdcontext.getcurrentelement().setattributevalue("imagesource", imagesource); } } catch(exception e) { manager.reportexception(e.getmessage(), false); } //$$end //@@end Execute the Web Dynpro Application Build the Web Dynpro project, create archive, deploy and run the application. Enter the material and inspection characteristic name and click on Search. The web service (BLS Transaction) is called in SAP xmii and the data is retrieved which is displayed in the table below. Also the chart plotted by SAP xmii is displayed as a gif image. 2006 SAP AG 28

Conclusion SAP xmii composite application developers can leverage the Web Dynpro Java UI development framework to develop SAP xmii based composite applications using the xmii services as described above. Related Content SAP XMII Getting Started Guide Calling Services and Queries in SAP xmii 11.5 from ABAP 2006 SAP AG 29

Disclaimer and Liability Notice This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade. SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document, and anyone using these methods does so at his/her own risk. SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or code sample, including any liability resulting from incompatibility between the content within this document and the materials and services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this document. 2006 SAP AG 30