<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>florian.mueller2</title>
    <link>http://scn.sap.com/people/florian.mueller2/blog</link>
    <description />
    <pubDate>Thu, 22 Dec 2011 21:21:41 GMT</pubDate>
    <generator>Jive SBS 5.0.1.1  (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2011-12-22T21:21:41Z</dc:date>
    <item>
      <title>SAP Glossary availbale within App Store</title>
      <link>http://scn.sap.com/people/florian.mueller2/blog/2011/01/19/sap-glossary-availbale-within-app-store</link>
      <description>&lt;!-- [DocumentBodyStart:4bd3d618-86f0-4b6e-9a99-1881d7418c8e] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h2&gt;SAP buzzword glossary released as iPhone App&lt;/h2&gt;&lt;p&gt;During one of our technology evaluations we have created a SAP Glossary iPhone application containing several "SAP buzzwords" and corresponding explanations - nothing big but maybe useful for sales guys catching up some buzzwords during lunch and looking these up directly instead of talking about unknown technology...&lt;br/&gt;If you want to provide additional content feel free to contact us, we are willing to extend contents, feedback is taken seriously!&lt;/p&gt;&lt;p&gt;&lt;br/&gt;You can download the application within the App Store, it's called "Resource Sales Glossar" &lt;/p&gt;&lt;p&gt;(&lt;a class="jive-link-external-small" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?mt=8&amp;amp;ign-lr=Lockup_r2c1&amp;amp;id=402205056"&gt;iTunes Link&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Currently the glossary is base on German language we are planing to provide an English version as as soon as possible...&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Cheers, Florian!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4bd3d618-86f0-4b6e-9a99-1881d7418c8e] --&gt;</description>
      <pubDate>Wed, 19 Jan 2011 02:45:49 GMT</pubDate>
      <guid>http://scn.sap.com/people/florian.mueller2/blog/2011/01/19/sap-glossary-availbale-within-app-store</guid>
      <dc:creator>Florian Mueller</dc:creator>
      <dc:date>2011-01-19T02:45:49Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/people/florian.mueller2/blog/comment/sap-glossary-availbale-within-app-store</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/people/florian.mueller2/blog/feeds/comments?blogPost=56466</wfw:commentRss>
    </item>
    <item>
      <title>Creating mobile apps on top of SAP - Part2</title>
      <link>http://scn.sap.com/people/florian.mueller2/blog/2011/01/02/creating-mobile-apps-on-top-of-sap--part2</link>
      <description>&lt;!-- [DocumentBodyStart:ce65c4fb-79ce-4549-a5a4-93b3bc799788] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h3&gt;&lt;span&gt;Outlook&lt;/span&gt;&lt;/h3&gt;&lt;span&gt;
&lt;/span&gt;&lt;p&gt;&lt;span&gt;Welcome to the second part of our mobile&lt;/span&gt;&lt;br/&gt;&lt;span&gt;SAP tutorial! Let's quickly sum up the overall goal which is creating so called&lt;/span&gt;&lt;br/&gt;&lt;span&gt;"instant value mobile applications" in terms of lightweight mobile&lt;/span&gt;&lt;br/&gt;&lt;span&gt;solutions which do not require a fully blown Sybase stack - of course the&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Sybase stack can not be replaced based on this simple stack, but as already&lt;/span&gt;&lt;br/&gt;&lt;span&gt;mentioned, there might be requirements which could be solved in a more&lt;/span&gt;&lt;br/&gt;&lt;span&gt;efficient manner using a lightweight approach...&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;In the first part of this tutorial series&lt;/span&gt;&lt;br/&gt;&lt;span&gt;we chalked out how to expose a SAP BAPI as a Web Service. We used the common&lt;/span&gt;&lt;br/&gt;&lt;span&gt;known FLIGHT BAPI so at the current state of the tutorial we have a Web Service&lt;/span&gt;&lt;br/&gt;&lt;span&gt;up and running providing a simple method called "Flight Get List". If&lt;/span&gt;&lt;br/&gt;&lt;span&gt;you should have missed the first part of the tutorial, here's a link to the&lt;/span&gt;&lt;br/&gt;&lt;span&gt;first part:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.resource.ch/userfiles/medien/blog/SAP_mobile01.pdf"&gt;http://www.resource.ch/userfiles/medien/blog/SAP_mobile01.pdf&lt;/a&gt;&lt;span&gt; | &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.resource.ch/userfiles/medien/blog/SAP_mobile01.pdf"&gt;http://www.resource.ch/userfiles/medien/blog/SAP_mobile01.pdf&lt;/a&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Please&lt;/span&gt;&lt;br/&gt;&lt;span&gt;notice as well: if you should have a different Web Service instead of FLIGHT&lt;/span&gt;&lt;br/&gt;&lt;span&gt;BAPI, no matter, the following steps apply to any SAP Web Service - it's&lt;/span&gt;&lt;br/&gt;&lt;span&gt;completely up to you whether you wanna show up some flights or some CRM data on&lt;/span&gt;&lt;br/&gt;&lt;span&gt;your mobile device.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;h3. 1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sum&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Up&lt;/span&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Ok, last tutorial has been released couple&lt;/span&gt;&lt;br/&gt;&lt;span&gt;of weeks before this part, so we will start with a quick sum up in order to get&lt;/span&gt;&lt;br/&gt;&lt;span&gt;you up to date on what has been achieved as well as what will be achieved&lt;/span&gt;&lt;br/&gt;&lt;span&gt;today. As already mentioned, we have a simple Web Service up and running&lt;/span&gt;&lt;br/&gt;&lt;span&gt;providing SAP related data based on several input parameters. This is always&lt;/span&gt;&lt;br/&gt;&lt;span&gt;kind of basic step before you actually start thinking about the client layout,&lt;/span&gt;&lt;br/&gt;&lt;span&gt;technology etc.; as already mentioned, you can use any Web Service from your&lt;/span&gt;&lt;br/&gt;&lt;span&gt;SAP system and do not require our FLIGHT BAPI Web Service.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;We suggest, you use SOAPUI and test your&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Web Service before you continue with our implementation, at this state you&lt;/span&gt;&lt;br/&gt;&lt;span&gt;should have an accessible Web Service which returns some data from your SAP&lt;/span&gt;&lt;br/&gt;&lt;span&gt;system when executing a dry run within the SOAPUI environment (SOAPUI is free&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;span&gt;of charge and can be downloaded here: &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.soapui.org/"&gt;http://www.soapui.org/&lt;/a&gt;&lt;span&gt;). Our Web Service&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;for example returns 15 flights when passing in the "LH" (Lufthansa)&lt;/span&gt;&lt;br/&gt;&lt;span&gt;carrier, see screenshot below:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;!&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.richability.com/resources/tmp/pic02.png|alt=|src=http://www.richability.com/resources/tmp/pic02.png"&gt;http://www.richability.com/resources/tmp/pic02.png|alt=|src=http://www.richability.com/resources/tmp/pic02.png&lt;/a&gt;&lt;span&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Ok, so this should have been achieved after&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the last part of the tutorial so let's switch to the next chapter and see what&lt;/span&gt;&lt;br/&gt;&lt;span&gt;we will achieve within this second part of the tutorial.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;h3. 2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Outlook - what we will achieve&lt;/span&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Please remind the big picture (see below) -&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the grey box is up and running for now so let's focus the blue box above: on&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the one hand the blue box provides UI stuff to our mobile client (this is NOT&lt;/span&gt;&lt;br/&gt;&lt;span&gt;covered within this 2nd tutorial part), on the other hand the blue box connects&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the Web Service - which is what we will do today. It is important to connect&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the Web Services using Java language as the client interface (vaadin) will be&lt;/span&gt;&lt;br/&gt;&lt;span&gt;created based on Java as well - so if we have the Web Services accessible&lt;/span&gt;&lt;br/&gt;&lt;span&gt;through Java we can easily use these within our mobile client.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;The Web Services will be connected via&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Apache Axis 2 - the cool thing about Axis: Axis will translate the WSDL to Java&lt;/span&gt;&lt;br/&gt;&lt;span&gt;classes automatically so all you need to know is how to invoke Axis on your Web&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Service. After generation there will be a Java stack available enabling you to&lt;/span&gt;&lt;br/&gt;&lt;span&gt;access your Web Services easily.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;#160;!&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.richability.com/resources/tmp/pic03.png|height=650|alt=|width=650|src=http://www.richability.com/resources/tmp/pic03.png"&gt;http://www.richability.com/resources/tmp/pic03.png|height=650|alt=|width=650|src=http://www.richability.com/resources/tmp/pic03.png&lt;/a&gt;&lt;span&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;h3. 2.1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Requirements/installations&lt;/span&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;In order to&lt;/span&gt;&lt;br/&gt;&lt;span&gt;generate the Java stubs on top of your Web Service (as well as for the vaadin&lt;/span&gt;&lt;br/&gt;&lt;span&gt;UI creation in the next part of the tutorial), you require several tools:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span&gt;Eclipse IDE for&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;&lt;span&gt;Java EE developers (3.6): &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.eclipse.org/downloads/"&gt;http://www.eclipse.org/downloads/&lt;/a&gt;&lt;span&gt; (!!! MAKE SURE YOU &amp;#160;CHOSE THE "&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;IDE FOR JAVA EE DEVELOPERS&lt;/strong&gt;&lt;span&gt;" !!!!)&lt;/span&gt;&lt;ul class="noindent"&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;Apache Axis&lt;/span&gt;&lt;br/&gt;&lt;span&gt;&lt;span&gt;(2.1.5.2): &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://axis.apache.org/axis2/java/core/"&gt;http://axis.apache.org/axis2/java/core/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Download Eclipse&lt;/span&gt;&lt;br/&gt;&lt;span&gt;IDE as well as Apache Axis, next fire up Eclipse and your are close to implementing/generating&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the Web Service stubs.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;You can create a&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;new workspace (Eclipse will ask you when launching first time), just give it a&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;name such as &lt;/span&gt;&lt;em&gt;myMobileSapWorkspace&lt;/em&gt;&lt;span&gt; and&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;wait until Eclipse finished loading. There is one important configuration issue&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;which needs to be achieved in order to run Axis2 as Eclipse by default ships&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;with the old Axis1 - using the old Axis would work as well but as there have&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;been huge changes from Axis1 to Axis2 you should link in Axis2:&lt;/span&gt;&lt;em&gt;HttpTransportProperties.Authenticator&lt;/em&gt;&lt;br/&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;auth = &lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;span&gt; HttpTransportProperties.Authenticator();&lt;/span&gt;&lt;em&gt;&amp;lt;br /&amp;gt;&lt;/em&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;auth.setUsername("username");&lt;/span&gt;&lt;em&gt;&amp;lt;br /&amp;gt;&lt;/em&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;auth.setPassword("*******");+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _operationClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.&lt;/span&gt;&lt;em&gt;AUTHENTICATE&lt;/em&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;auth);&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;4) here's what the whole block should look&lt;/span&gt;&lt;br/&gt;&lt;span&gt;like;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;...&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;try{&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;org.apache.axis2.client.OperationClient _operationClient = &lt;/span&gt;&lt;u&gt;serviceClient.createClient(&lt;/u&gt;&lt;span&gt;operations[0].getName());+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;HttpTransportProperties.Authenticator+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;auth = new HttpTransportProperties.Authenticator();+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;auth.setUsername("username");+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;auth.setPassword("********");+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;_operationClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;u&gt;operationClient.getOptions().setAction("urn:sap-com:document:sap:soap:functions:mc-style:z&lt;/u&gt;&lt;span&gt;get_flight_list:ZFlightGetlistRequest");+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;_operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;...&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;This adds security credentials to the&lt;/span&gt;&lt;br/&gt;&lt;span&gt;request before the request is actually being send to the Web Service, if you&lt;/span&gt;&lt;br/&gt;&lt;span&gt;have no security on top of your Web Service you can skip this step.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;h3. 3.1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Using Java Web Service Stub&lt;/span&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Ok, the whole Web Service stub is ready for&lt;/span&gt;&lt;br/&gt;&lt;span&gt;usage right now - which means, we can create a very simple demo app (simply add&lt;/span&gt;&lt;br/&gt;&lt;span&gt;new Class to your src directoy), the class could look like this:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;class&lt;/strong&gt; TestService&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;em&gt;{&lt;/em&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;span&gt; main(String[] args)+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;em&gt;&lt;/em&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;span&gt; Exception&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; onSearch("FRANKFURT", "TOKYO");+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;span&gt; onSearch(String&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;fromCity,String toCity)+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;em&gt;&lt;/em&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;span&gt; Exception&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Z_get_flight_listStub&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;stub = &lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;Z_get_flight_listStub();+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Z_get_flight_listStub.ZFlightGetlist&lt;/span&gt;&lt;br/&gt;&lt;span&gt;request = *new &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *Z_get_flight_listStub.ZFlightGetlist();+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // from+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Char20&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;from = &lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;span&gt; Char20();+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; from.setChar20(fromCity);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; request.setImwCityFrom(from);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // to+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Char20&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;to = &lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;span&gt; Char20();+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; to.setChar20(toCity);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; request.setImwCityTo(to);+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // fire request+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;Z_get_flight_listStub.ZFlightGetlistResponse resp = &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; stub.zFlightGetlist(request);+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // extract&lt;/span&gt;&lt;br/&gt;&lt;span&gt;results...+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;span&gt; numberOfItems =&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;resp.getExtFlights().getItem().length;+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println("Found&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;flights: " &lt;/span&gt;&lt;em&gt;numberOfItems);&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;+&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }+&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;}&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;You are done! Test the service by simply&lt;/span&gt;&lt;br/&gt;&lt;span&gt;running this class - in our case the service returns 15 flights from Frankfurt&lt;/span&gt;&lt;br/&gt;&lt;span&gt;to Tokyo which have been looked up within the SAP system.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Let's sum up what we are doing within this&lt;/span&gt;&lt;br/&gt;&lt;span&gt;class:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;1) Instantiate sup and create request on&lt;/span&gt;&lt;br/&gt;&lt;span&gt;top of stub:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+Z_get_flight_listStub stub = &lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;Z_get_flight_listStub();+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;Z_get_flight_listStub.ZFlightGetlist request = *new *Z_get_flight_listStub.ZFlightGetlist();&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;2) Use the generated datatype classes and&lt;/span&gt;&lt;br/&gt;&lt;span&gt;populate these - datatype classes? you might wonder...Axis is pretty clever -&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Axis checks automatically the datatypes required by your Web Service and&lt;/span&gt;&lt;br/&gt;&lt;span&gt;creates datatype classes - this ensures you do ot push String longer than&lt;/span&gt;&lt;br/&gt;&lt;span&gt;expected/allowed to the Web Service, it's a nice and efficient manner to&lt;/span&gt;&lt;br/&gt;&lt;span&gt;prevent you from checking "what dataytpe and which length is expected at&lt;/span&gt;&lt;br/&gt;&lt;span&gt;the service...?". (Char20 means datatype Char, maxlength 20)&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;// from&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;Char20 from = &lt;strong&gt;new&lt;/strong&gt; Char20();&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;from.setChar20(fromCity);&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;request.setImwCityFrom(from);&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;// to&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;Char20 to = &lt;strong&gt;new&lt;/strong&gt; Char20();&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;to.setChar20(toCity);&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;request.setImwCityTo(to);&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;3) fire request and process results...:&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;// fire request&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;span&gt;+&lt;/span&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;span&gt; Z_get_flight_listStub.ZFlightGetlistResponse resp&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;= &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;stub.zFlightGetlist(request);+&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;// extract results...&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;int&lt;/strong&gt; numberOfItems = resp.getExtFlights().getItem().length;&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;4) done! you just accessed you SAP Web Service&lt;/span&gt;&lt;br/&gt;&lt;span&gt;through a Java Axis layer, this Axis layer now can connect to any Java related&lt;/span&gt;&lt;br/&gt;&lt;span&gt;mobile UI technology - which is great and enables us to create a nice vaadin&lt;/span&gt;&lt;br/&gt;&lt;span&gt;iPhone UI on top of this stub within the next tutorial...!&lt;/span&gt;&lt;/p&gt;&lt;span&gt;h3. 4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Next&lt;/span&gt;&lt;br/&gt;&lt;span&gt;steps&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;The next tutorial will get you in touch&lt;/span&gt;&lt;br/&gt;&lt;span&gt;with development of mobile UI based on vaadin. As vaadin is plain Java there&lt;/span&gt;&lt;br/&gt;&lt;span&gt;will be no difficulties to connect the stubs created within this tutorial part.&lt;/span&gt;&lt;br/&gt;&lt;span&gt;Basically the "boiler plate stuff" is done at this point of the&lt;/span&gt;&lt;br/&gt;&lt;span&gt;tutorial, next thing is the really exciting (and funny!) part , which is&lt;/span&gt;&lt;br/&gt;&lt;span&gt;creating the iPhone UI...!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ce65c4fb-79ce-4549-a5a4-93b3bc799788] --&gt;</description>
      <pubDate>Sun, 02 Jan 2011 16:24:01 GMT</pubDate>
      <guid>http://scn.sap.com/people/florian.mueller2/blog/2011/01/02/creating-mobile-apps-on-top-of-sap--part2</guid>
      <dc:creator>Florian Mueller</dc:creator>
      <dc:date>2011-01-02T16:24:01Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/people/florian.mueller2/blog/comment/creating-mobile-apps-on-top-of-sap--part2</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/people/florian.mueller2/blog/feeds/comments?blogPost=56252</wfw:commentRss>
    </item>
    <item>
      <title>"App" or "Application" development</title>
      <link>http://scn.sap.com/people/florian.mueller2/blog/2010/12/06/app-or-application-development</link>
      <description>&lt;!-- [DocumentBodyStart:11d888e0-f133-4449-b100-0538076d20a6] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h1&gt;&lt;strong&gt;"App" or "Application" development?&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;"mobile apps are in!", there is no doubt regarding this statement - everybody is mobile, you cant even walk down a street without passing some guys focusing concentrated on their mobile devices. So there seems to be a huge target audience to mobile solutions, the question is just whether there is a need as well...as I neither want to follow the philosophic track within this article nor want to get into the "Gartner track" such as "we have analyzed that 79,3% of 30% of all people aged between 24 and 32...." I will simply come up with some common thoughts and results we discovered while we took our first steps entering the mobile SAP market and would like to share these common thoughts.&lt;/p&gt;&lt;p&gt;Let's focus on technical aspects of mobile SAP applications first before we switch to business related thoughts. As you might know there are several tools and frameworks around which enable you to "mobilize" your SAP system, on top of these the powerful Sybase flagship. Basically the Sybase approach enables you to focus entirely on business aspects of your application, we will not get into details of Sybase platform within this article but chalk out the major benefits of using Sybase Unwirde Platform: Sybase provides a powerful IDE, the IDE can be used for UI creation as well as UI wiring to BAPIs/Web Service/database etc. - all based on drag &amp;amp; drop without writing a single line of code. But Sybase is much more than mobile application development "only", Sybase provides a full stack of enterprise related features such as app distribution, device management, offline scenarios, security etc.. Previously listed features are exactly the major difference between "App" and "Application" devlopment, as Applications should provide the following features (besides the core business aspects):&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;#160;security (a web service being access from within a DMZ always needs to be secured!)&lt;/li&gt;&lt;li&gt;offline capabilities (what if the network goes down while entering data? Re-entering data is not an option...!)&lt;/li&gt;&lt;li&gt;device management (manager has different data view than employee)&lt;/li&gt;&lt;li&gt;automatic distribution(manager does not want to browse the App-Store)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you do not require these features you can head for "App" development which is in nothing but exposing BAPIs to Web Services and accessing these Web Services through native mobile clients (iPhone/Android/Symbian etc.). Exposing BAPIs to Web Services is a default feature available within any SAP system so the workload is shifted to client development.&lt;/p&gt;&lt;p&gt;So when to chose "App" development and when to head rather for "Application" development? Is there kind of checklist which could be used chalking out whether an App or an Application is required? Unfortunately there is not but there is an easy path which could be followed, Resource AG uses this path for a couple of months and we would like to share our experinces right here: Chosing Sybase as implementation framework usually results in licence fees and a very huge consulting project as Sybase Unwried Platform is nothing which simply gets installed and configured, creating your application based on Sybase Unwired Platform will result in a project &amp;gt; 6 months, therefore you will benefit from all features listed above. &lt;/p&gt;&lt;p&gt;So customers need to think well about this decision, there is always big danger of using a sledgehammer in order to crack a nut - on the other hand there is a lightweight approach which results in client development only and could be used after couple of days iPhone/Andorid client development, so customers as well as consultants are facing the issue of over/undersizing cutomer requirements. That's exactly the point which is misunderstood as there is no decsion such as "either or", it's much more about following both tracks: customers should never start implementing based on Sybase Unwired Platform directly: usually requirements for mobile applications are pretty foggy as there is not much experience within this topic (compare to Java apps: did you ever join/launch a Java project without requirements changing during project implementation? I guess ou never will, even Java is very etsablished and well known...). &lt;/p&gt;&lt;p&gt;So the first thing you should always do is creation of prototypes mirroring the requirements of your application. You can do these prototypes based on the lightweight approach as this approach enables you to create results instantly and provide thes to your customers/employees. Next you can figure on aspects such as offline capabilities and figure out whether you really need these: it's much easier to decide about this based on a running prototype which can be passed to a field service engineer in order to determine whether he is actually facinf offline situations or whether these never occur and in consequence should not be implemented. If so, you can follow the lightweight approach, if not you should switch to the Sybase track: your benefit from switching at this point is that your screens can be reused! Sybase (currently!) does not provide iPhone client development which means you have to create the client on your own within the XCode development IDE - so this step is required for "App" as well as "Application" development so there is no need to wire this step to Sybase / lightweight development; but as setup of a complex Sybase landscap takes time and experience you should simply start creating an application without any Sybase technology and switch to the Sybase track as soon as you are facing a need which can not be covered following the lightweight approach. Several Resource AG customers noticed during development following the lightweight approach that this approach would cover and adress all of their requirements, others noticed they would require Sybase for several reasons, but you should never decide about the technology (Sybase or custom?) directly without creating a lightweight prototype! Chosing Sybase as this is what SAP recommends and pushes is not an option, you should always decide based on a technology base instead of marketing papers which results in the followin decision steps:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;create a prototype based on core Web Services and native client development&lt;/li&gt;&lt;li&gt;check whether you really require sophisticated features by testing the prototype&lt;/li&gt;&lt;li&gt;decide about technology (custom or Sybase)&lt;/li&gt;&lt;li&gt;start implementation...&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;We recommend these steps to any customer or conulting company, if you should have further questions on our prototype concept dont hesitate and get in touch with us directly, &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:info@resource.ch"&gt;info@resource.ch&lt;/a&gt;&lt;span&gt; or &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:Florian.Mueller@resource.ch"&gt;Florian.Mueller@resource.ch&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Cheers, Florian!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:11d888e0-f133-4449-b100-0538076d20a6] --&gt;</description>
      <pubDate>Mon, 06 Dec 2010 09:25:33 GMT</pubDate>
      <guid>http://scn.sap.com/people/florian.mueller2/blog/2010/12/06/app-or-application-development</guid>
      <dc:creator>Florian Mueller</dc:creator>
      <dc:date>2010-12-06T09:25:33Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/people/florian.mueller2/blog/comment/app-or-application-development</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/people/florian.mueller2/blog/feeds/comments?blogPost=56003</wfw:commentRss>
    </item>
    <item>
      <title>Creating mobile apps on top of SAP - Part1</title>
      <link>http://scn.sap.com/people/florian.mueller2/blog/2010/11/23/creating-mobile-apps-on-top-of-sap--part1</link>
      <description>&lt;!-- [DocumentBodyStart:350ba246-5614-4864-ba4f-907058a16956] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;As you might have noticed there is happening a lot within the space of mobile application development. Focusing on SAP applications and tooling there is Sybase on the one hand, on the other hand there is SAP Netweaver mobile platform, both frameworks apply to what we gently call &amp;#8222;heavy frameworks&amp;ldquo; &amp;ndash; be assured you need several consultants and SAP trainings in order to establish this landscape within your company or your customer&amp;rsquo;s environment...&lt;/p&gt;&lt;p&gt;But there is another approach as well &amp;ndash; it is not hyped the way Sybase is currently celebrated but for certain requirements applies much better than heading for a heavy approach. Of course you can use a sledge-hammer to crack a nut but there might be alternatives around.&lt;/p&gt;&lt;p&gt;During this series of&amp;#160; tutorials we will come up with several ways of implementing mobile frontends for your SAP system. As we know that it is not on everybody&amp;rsquo;s agenda to buy a Macbook before we actually start creating iPhone/iPad user interfaces we will show ways of using powerful HTML5 frameworks which result in 100% iPhone/iPad look and feel, have a look at the following screen, this is what based on HTML5 can be achieved:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.richability.com/resources/sap/pic01.png"&gt;&lt;img alt="HTML5 based Flight BAPI application running within iPhone client " height="237" src="http://www.richability.com/resources/sap/pic01.png" width="129"/&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;But dont be afraid &amp;ndash; you do not need any HTML5 knowledge, all we will do is coding plain Java and trigger several Web Services. Btw., the same applies to Android applications we will show you ways of creating Android clients within minutes instead of becoming Android expert before you actually start your first application. And of course, in oft the last parts of our tutorial we will show you how to create native iPhone/Android apps.&lt;/p&gt;&lt;p&gt;You simply should keep in mind: this tutorial gives chance to anybody to create so called &amp;#8222;instant value&amp;ldquo; mobile apps &amp;ndash; which path you follow is completely up to you and your requirements!&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tutorial Structure&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;1.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#8222;&lt;strong&gt;&lt;em&gt;Boilerplate&lt;/em&gt;&lt;/strong&gt;&amp;ldquo;: covers creation of backend web services within your ERP (covered within this document)&lt;/p&gt;&lt;p&gt;&lt;span&gt;15/11/2010, Contact/Feedback: &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:Pascal.Moser@resource.ch"&gt;Pascal.Moser@resource.ch&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#8222;&lt;strong&gt;&lt;em&gt;Eclipse Connec&lt;/em&gt;&lt;/strong&gt;t&amp;ldquo;: Eclipse IDE will be used as major development IDE. Before we actually hook the web service into a &amp;#8222;real&amp;ldquo; mobile client we will create all necessary Java stubs in order to access the SAP Web Services&lt;/p&gt;&lt;p&gt;&lt;span&gt;25/11/2010, Contact/Feedback: &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:Florian.Mueller@richability.com"&gt;Florian.Mueller@richability.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#8222;&lt;strong&gt;&lt;em&gt;SAP iPhone handshake&lt;/em&gt;&lt;/strong&gt;&amp;ldquo;: we will use the vaadin framework within the Eclipse IDE and create the mobile client which consumes the previously created Web Services&lt;/p&gt;&lt;p&gt;&lt;span&gt;01/12/2010, Contact/Feedback: &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:Florian.Mueller@richability.com"&gt;Florian.Mueller@richability.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;4.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#8222;&lt;strong&gt;&lt;em&gt;SAP Android handshake&lt;/em&gt;&lt;/strong&gt;&amp;ldquo;: creation of mobile Android client (based on Adobe AIR) accessing SAP Web Services previously created&lt;/p&gt;&lt;p&gt;release date follows...&lt;/p&gt;&lt;p&gt;5.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#8222;&lt;strong&gt;&lt;em&gt;SAP native iPhone&lt;/em&gt;&lt;/strong&gt;&amp;ldquo;: we will create a native iPhone client (Mac + XCode IDE required) accessing our SAP Web Service&lt;/p&gt;&lt;p&gt;release date follows...&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Each tutorial requires certain skills, software and hardware so we will create a brief&amp;#160; list of requirements within the head of each tutorial. Please dont be afraid in terms of &amp;#8222;I will fail as I have no clue on iPhone development...&amp;ldquo;, you do not need to know anything about mobile application development as we will show you during these tutorials!&lt;/p&gt;&lt;p&gt;Anyway, there are major requirements which should be met, you need to be familar (basic knowledge) with:&lt;/p&gt;&lt;p&gt;&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ABAP basics (&amp;#8222;know how to fire up se80...&amp;ldquo;)&lt;/p&gt;&lt;p&gt;&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Basic understanding of Web Services (SOAP)&lt;/p&gt;&lt;p&gt;&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Basic Java knowledge&lt;/p&gt;&lt;p&gt;In order to follow this tutorial you will require:&lt;/p&gt;&lt;p&gt;&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;SAP ERP 6.0&lt;/p&gt;&lt;p&gt;&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Netweaver &amp;gt;= 7.10&lt;/p&gt;&lt;p&gt;Any additional software you will require is explained within the tutorial such as Eclipse, SOAP UI etc..&lt;/p&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;The BIG PICTURE&lt;/strong&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Before we start the creation of&amp;#160; SAP Web Service boiler plate we will give you some information on what we will be implementing and we will chalk out the very big picture of what we would call the architecture behind the application.&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;The Scenario&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;People told me (as I&amp;rsquo;m from the &amp;#8222;Java world&amp;ldquo; and did not go through all these SAP classes) that &amp;#8222;FLIGHT BAPI&amp;ldquo; is something similar to what Java guys call &amp;#8222;Hello World&amp;ldquo; in terms of everybody knows these BAPIS and everybody has these BAPIS around on his ERP system somewhere. So we will use these BAPIS and put a Web Service interface above these so you can access these BAPIS through the Web Service.&lt;/p&gt;&lt;p&gt;From the SAP point of view we are done as soon as these BAPIS can be access through a Web Service, of course you can turn/cover any BAPI into a Web Service and that is exactly the idea of showing you how to do so: you will be able to publish any BAPI you want as a Web Service and of course you will be able to put a nice mobile UI on top of your Web Service &amp;ndash; so you FLIGHT BAPI as starting point, as soon as you got the idea start applying your knowledge to customer projects...&lt;/p&gt;&lt;p&gt;We will do some simple calls based on these Web Services, we will trigger a flight search passing in departure as well as destination and our mobile device will display the query results:&lt;/p&gt;&lt;div&gt; &lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div&gt;&amp;#160;&lt;a href="http://www.richability.com/resources/sap/pic02.png"&gt;&lt;img alt="Enter departure and destination" height="285" src="http://www.richability.com/resources/sap/pic02.png" width="151"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.richability.com/resources/sap/pic03.png"&gt;&lt;img alt="Flight results provided by Flight BAPI via Web Service..." height="288" src="http://www.richability.com/resources/sap/pic03.png" width="155"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.richability.com/resources/sap/pic04.png"&gt;&lt;img alt="Flight details provided by BAPI via Web Service Gateway" height="294" src="http://www.richability.com/resources/sap/pic04.png" width="159"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;strong&gt;The architecture behind&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As already said we do not want to bother you with XCode development during the first parts of this tutorial &amp;ndash; all UIs will be created based on alternative technologies such as HTML5. Please have a look into the following scribble, this sccribble chalks out the very big picture of what we will be implementing.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.richability.com/resources/sap/pic05.png"&gt;&lt;img alt="Architecture" height="453" src="http://www.richability.com/resources/sap/pic05.png" width="453"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Within the current tutorial we will create everything which is grouped in the grey box at the bottom of this scribble. The blue box applies to what SAP calls Reverse Proxy, please do not focus on security aspects when working through the first parts of this tutorial series now &amp;ndash; we will cover security aspects in a dedicated tutorial! We simply refer to the blue box as &amp;#8222;Java client layer&amp;ldquo;, the blue box is used in first place for generation of HTML5 through frameworks such as vaadin &amp;amp; co...&lt;/p&gt;&lt;p&gt;No that you got the big picture it&amp;rsquo;s time to get the grey box working &amp;ndash; so let&amp;rsquo;s roll up one&amp;rsquo;s sleeves and create some Web Services within our ERP!&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;............................................&amp;#160;&lt;/p&gt;&lt;p&gt;Unfortunately using images within SAP blogs is pretty nasty and takes a lot of time - nothing you should care about, but reason enough for us to reference the article as a PDF doc, the PDF mirrors the whole part 1 of this tutorial, whole article is hosted at:&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.richability.com/resources/sap/SAP_mobile01.pdf"&gt;http://www.richability.com/resources/sap/SAP_mobile01.pdf&lt;/a&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:350ba246-5614-4864-ba4f-907058a16956] --&gt;</description>
      <pubDate>Tue, 23 Nov 2010 07:08:21 GMT</pubDate>
      <guid>http://scn.sap.com/people/florian.mueller2/blog/2010/11/23/creating-mobile-apps-on-top-of-sap--part1</guid>
      <dc:creator>Florian Mueller</dc:creator>
      <dc:date>2010-11-23T07:08:21Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>12</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/people/florian.mueller2/blog/comment/creating-mobile-apps-on-top-of-sap--part1</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/people/florian.mueller2/blog/feeds/comments?blogPost=55832</wfw:commentRss>
    </item>
  </channel>
</rss>

