<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SAP Experts: VMware Virtualization &#124; Consulting &#124; Integration - DataXstream &#187; web service</title>
	<atom:link href="http://www.dataxstream.com/tag/web-service/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dataxstream.com</link>
	<description>SAP Certified Consultants</description>
	<lastBuildDate>Tue, 07 Feb 2012 23:57:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Troubleshooting the Services Registry</title>
		<link>http://www.dataxstream.com/2010/02/troubleshooting-the-services-registry/</link>
		<comments>http://www.dataxstream.com/2010/02/troubleshooting-the-services-registry/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 02:07:45 +0000</pubDate>
		<dc:creator>Dave Morin</dc:creator>
				<category><![CDATA[SAP Interface Blog]]></category>
		<category><![CDATA[SAP PI Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[David Morin]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[PI]]></category>
		<category><![CDATA[SAP PI]]></category>
		<category><![CDATA[UDDI]]></category>
		<category><![CDATA[web service]]></category>
		<category><![CDATA[XI]]></category>
		<category><![CDATA[XI/PI]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=4441</guid>
		<description><![CDATA[Recently I set up the services registry for PI 7.1 EHP1 for a client of ours. Although it seemed like it would be a simple process, I ran into a 401 authorization issue and another issue where  web services were not publishing to the services registry. Looking online there are a lot of people who ran [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I set up the services registry for PI 7.1 EHP1 for a client of ours. Although it seemed like it would be a simple process, I ran into a 401 authorization issue and another issue where  web services were not publishing to the services registry. Looking online there are a lot of people who ran into the same issues as I did, so I am providing, here, the steps to perform if your services registry isn’t working.</p>
<p><span id="more-4441"></span></p>
<p>Please note that I was unable to find the wizard for setting it the Services registry in PI 7.1 EPH1, which means I did it manually.</p>
<h3><strong>Make sure everything is correct in the Services Registry Management </strong></h3>
<p>Go to the NWA (http://host:port/nwa).</p>
<p>Go to <em>SOA Management&gt; Technical Configuration&gt;Services Registry Management</em>.<br />
In theory, there is nothing to do here, however I did specify the discovery URL api parameter as the hostname of the server (no port). If you have changed some settings, on the maintenance tab you can click reinitialize, which should reset any changes you have made back to the initial state.</p>
<h3><strong>Configure the ServicesRegistrySiPort</strong></h3>
<p>Go to <em>SOA Management&gt; Application and Scenario Communication&gt; Single Service Administration</em></p>
<p>Click the Consumer Proxies tab.</p>
<p>Search for &#8220;ServicesRegistrySi&#8221;.</p>
<p>Click on the result and click the Configuration Tab and click on ServicesRegistrySiPort.</p>
<p>The service endpoint name should be ServicesRegistrySiPort.  Don’t change it.</p>
<p>Click security.</p>
<p>You have to give it an http authentication. If you don&#8217;t give the authentication, you will eventually have problems like not being able to publish to the SR, even though you may be able to access the registry.</p>
<p>Click on the user ID/ password, click details, and input your http authentication parameters.</p>
<p style="text-align: center;"><a href="http://www.dataxstream.com/wp-content/uploads/2010/02/ServiceRegistrySI1.png" rel="shadowbox[sbpost-4441];player=img;"><img class="aligncenter size-full wp-image-4455" src="http://www.dataxstream.com/wp-content/uploads/2010/02/ServiceRegistrySI1.png" alt="" width="567" height="596" /></a></p>
<h3><strong>Configure the third party UDDI (Only if not using SAP’s UDDI)</strong></h3>
<p>If you are using a non-sap UDDI, you will need to go to <em>NWA&gt;Destination Template Management</em> and create a UDDI_DESTINATION and a CLASSIFICATION_DESTINATION to point to the respective urls of your uddi. Don’t forget to click security and select User ID/Password Authentication for both destinations. Otherwise, you will get a 401 not authorized error when you try to access the services registry&#8211;similar to if you mistyped your password at ServicesRegistrySiPort.</p>
<p style="text-align: center;"><a href="http://www.dataxstream.com/wp-content/uploads/2010/02/3rd-party-uddi.png" rel="shadowbox[sbpost-4441];player=img;"><br />
</a><a href="http://www.dataxstream.com/wp-content/uploads/2010/02/3rd-party-uddi.png" rel="shadowbox[sbpost-4441];player=img;"></a><a href="http://www.dataxstream.com/wp-content/uploads/2010/02/3rd-party-uddi1.png" rel="shadowbox[sbpost-4441];player=img;"><img class="aligncenter size-full wp-image-4453" src="http://www.dataxstream.com/wp-content/uploads/2010/02/3rd-party-uddi1.png" alt="" width="493" height="503" /></a></p>
<h3><strong>Security</strong></h3>
<p style="text-align: center;">Make sure that your user has  UDDI_TierN and SERVICES_REGISTRY_READ_WRITE authorizations or you will get a 401 not authorized error.  Of course. in your system you should use a technical user instead of your userid as which I did for the purposes of this blog.<a href="http://www.dataxstream.com/wp-content/uploads/2010/02/Security-Authorizations1.png" rel="shadowbox[sbpost-4441];player=img;"><img class="aligncenter size-full  wp-image-4454" src="http://www.dataxstream.com/wp-content/uploads/2010/02/Security-Authorizations1.png" alt="" width="557" height="441" /></a></p>
<p>Please note, I did run into an issue where it suddenly stopped working a day everything was configured. All I can say is Gremlins. I switched the user to a technical user with the authorization listed above on the ServicesRegistrySiPort as well as on the destination templates and I haven’t had a problem since.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/02/troubleshooting-the-services-registry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Debug ABAP Web Service on SAP Web Application Server (WAS)</title>
		<link>http://www.dataxstream.com/2009/11/how-to-debug-abap-web-service/</link>
		<comments>http://www.dataxstream.com/2009/11/how-to-debug-abap-web-service/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 11:39:53 +0000</pubDate>
		<dc:creator>Craig Stasila</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Interface Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[ABAP debugger]]></category>
		<category><![CDATA[Craig Stasila]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP ABAP]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=3173</guid>
		<description><![CDATA[Debugging a web service on the ABAP stack of SAP Web Application Server is a very useful procedure to know.  Here's how you do it.]]></description>
			<content:encoded><![CDATA[<p>One of the more confounding aspects of developing in the SAP space is the lack of good, low-level, helpful instructions.  While this post is merely regurgitating information that is readily available elsewhere, it will be done in a manner that (hopefully) will actually be useful to vast majority of ABAP developers out there that,  like me, find a lot of SAP&#8217;s implementation of web services on the ABAP stack confusing.</p>
<p>Debugging a web service on the ABAP stack of SAP Web Application Server is a very useful procedure to know.  Here&#8217;s how you do it.</p>
<p><em><span id="more-3173"></span>Note: This example is for ECC 5.0</em></p>
<ol>
<li>Locate the web service definition in the HTTP Service Hierarchy.  There are two ways to do this:
<ul>
<li><strong>Option 1:</strong> Use transaction <strong>WSCONFIG</strong> and display the configuration for your web service.  Click on the ICF Details button<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-01.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3174 aligncenter" title="Debug ABAP Web Service 01" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-01.jpg" alt="Debug ABAP Web Service 01" width="492" height="221" /></p>
<p></a></li>
<li><strong>Option 2:</strong> Start transaction <strong>SICF</strong>. Navigate directly to <em>/sap/bc/srt/rfc/sap</em> for your default host.</li>
</ul>
</li>
<li>Regardless of the method used to get to the service definition for your web service enabled function module, you should have it selected as in this example.<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-02.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3175 aligncenter" title="Debug ABAP Web Service 02" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-02.jpg" alt="Debug ABAP Web Service 02" width="599" height="410" /></p>
<p></a></li>
<li>Next, enable the debugger by selecting the <em>Edit\Debugging\Activate Debugging</em> menu.
<p style="text-align: center;"><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-03.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3176 aligncenter" title="Debug ABAP Web Service 03" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-03.jpg" alt="Debug ABAP Web Service 03" width="522" height="179" /><br />
</a></p>
</li>
<li><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-03.jpg" rel="shadowbox[sbpost-3173];player=img;"></a>In the ensuing dialog box, confirm the debugging options (the defaults are usually OK).<br />
<span style="background-color: #ffffff;"> <a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-04.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3177 aligncenter" title="Debug ABAP Web Service 04" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-04.jpg" alt="Debug ABAP Web Service 04" width="445" height="222" /></p>
<p></a></p>
<p></span></li>
<li>To exercise the debugger, test your web service.  For this example, I will use the SAP WAS web service test tool, but the application calling the web service can be anything as long as it connects with the debugger&#8217;s user ID.<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-05.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3178 aligncenter" title="Debug ABAP Web Service 05" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-05.jpg" alt="Debug ABAP Web Service 05" width="399" height="165" /></p>
<p></a></li>
<li><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-05.jpg" rel="shadowbox[sbpost-3173];player=img;"></a>When the web service is executed, the debugger will start in a new SAPGUI session (make sure you are already logged in via the SAPGUI prior to executing the web service).<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-06.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3185 aligncenter" title="Debug ABAP Web Service 06" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-06.jpg" alt="Debug ABAP Web Service 06" width="468" height="427" /></p>
<p></a></li>
<li>In the debugger, choose <em>Breakpoints\Breakpoint at\Function  Module</em> from the  menu to create a new breakpoint.<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-07.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3186 aligncenter" title="Debug ABAP Web Service 07" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-07.jpg" alt="Debug ABAP Web Service 07" width="500" height="178" /></p>
<p></a></li>
<li>Specify the function module that implements your web service.  In the debugger, press F8 to run to your newly created breakpoint.<br />
<span style="background-color: #ffffff;"><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-08.jpg" rel="shadowbox[sbpost-3173];player=img;"><img class="size-full wp-image-3187 aligncenter" title="Debug ABAP Web Service 08" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Debug-ABAP-Web-Service-08.jpg" alt="Debug ABAP Web Service 08" width="405" height="71" /></a><br />
</span> If the debugger doesn&#8217;t get to your breakpoint, the most likely culprit is malformed input XML.  Check the payload of the message to ensure that it conforms to the specifications of the web service.</li>
</ol>
<p>Once the debugger has started, it is just like debugging any other SAP application.  If you have any specific tips or tricks regarding debugging web services, please share them in the comments section of this blog.</p>
<p><script src="http://www.stumbleupon.com/hostedbadge.php?s=5"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/11/how-to-debug-abap-web-service/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Changing The Function Interface of Web Service Enabled Functions</title>
		<link>http://www.dataxstream.com/2009/11/changing-the-function-interface-of-web-service-enabled-functions/</link>
		<comments>http://www.dataxstream.com/2009/11/changing-the-function-interface-of-web-service-enabled-functions/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 18:11:44 +0000</pubDate>
		<dc:creator>Craig Stasila</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Interface Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Craig Stasila]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP ABAP]]></category>
		<category><![CDATA[SAP programming]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=3160</guid>
		<description><![CDATA[Today, I got an email from one of my co-workers at my client with a very good question.  This developer had created an ABAP function to return SAP data.  Then, he exposed this function as a web service. Due to changes in functional scope, he had to change the function interface.  After he made all [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I got an email from one of my co-workers at my client with a very good question.  This developer had created an ABAP function to return SAP data.  Then, he exposed this function as a web service. Due to changes in functional scope, he had to change the function interface.  After he made all his changes and unit tested the ABAP code, he was surprised to find that his web service was still adhering to the old function interface.  He tried deleting and recreating the web service, but ran in to problems.  He was stuck in a pickle and needed a little push in the right direction.</p>
<p><span id="more-3160"></span></p>
<p>My colleague, Steve Park, wrote a two part blog explaining how to turn any ABAP function into a web service.  (<a href="http://www.dataxstream.com/2009/09/turn-any-sap-remote-enabled-function-module-into-a-web-service-%E2%80%93-part-1/" target="_blank">Find Part 1 here</a>.  <a href="http://www.dataxstream.com/2009/10/turn-any-sap-remote-enabled-function-module-into-a-web-service-%E2%80%93-part-2/" target="_blank">Find Part 2 here</a>.)  But, what happens when you change the function module interface as my friend in the above example did?  SAP does not automatically update the web service interface (called the virtual interface).  You have to manually rectify this conflict.  There are two main options to do this.  Both are quite easy.  Which option you choose depends on how the external systems consuming the web service are handling changes.</p>
<p><em>Note: The examples listed below are for ECC 5.0.</em></p>
<h3>Option 1: Update Virtual Interface</h3>
<p>In cases where all systems consuming the web service will be using the new function/web service interface, when the underlying structure of complex data type changes, or when mandatory fields of a function interface are added or removed, it is best to change web service virtual interface.  The consuming application may have to re-import the WSDL to</p>
<p>In transaction SE80, navigate to the virtual interface for the function whose interface has changed.  Right click on the virtual interface and select &#8220;Change&#8221;.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-01.jpg" rel="shadowbox[sbpost-3160];player=img;"><img class="alignnone size-full wp-image-3161" title="Change Virtual Interface 01" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-01.jpg" alt="Change Virtual Interface 01" width="443" height="361" /></a></p>
<p>SAP will compare the virtual interface to the function interface.  If the interfaces are different, SAP will display the following prompt.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-02.jpg" rel="shadowbox[sbpost-3160];player=img;"><img class="alignnone size-full wp-image-3162" title="Change Virtual Interface 02" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-02.jpg" alt="Change Virtual Interface 02" width="338" height="142" /></a></p>
<p>Simply select &#8220;Yes&#8221; and SAP will update the virtual interface to match the function interface.  Once you have activated your changes, you can check the WSDL to ensure that the function interface changes have been successfully migrated to the web service virtual interface.</p>
<h3>Option 2: Create new virtual interface version</h3>
<p>In cases where optional fields are added to the existing function interface and/or when some of the web service consumers will NOT need to use the new function interface, it is possible to create a new virtual interface version.  This is possible only in cases where the <em>old</em> virtual interface can still execute the function module with the <em>new</em> interface without causing syntax errors.</p>
<p>In transaction SE80, navigate to the virtual interfaces for the function whose interface has changed.  Right click on the virtual interface node and select &#8220;Create&#8221;.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-03.jpg" rel="shadowbox[sbpost-3160];player=img;"><img class="alignnone size-full wp-image-3163" title="Change Virtual Interface 03" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-03.jpg" alt="Change Virtual Interface 03" width="486" height="181" /></a></p>
<p>In the ensuing dialog, create a new virtual interface version with the endpoint mapped to the  function module.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-04.jpg" rel="shadowbox[sbpost-3160];player=img;"><img class="alignnone size-full wp-image-3164" title="Change Virtual Interface 04" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-04.jpg" alt="Change Virtual Interface 04" width="590" height="257" /></a></p>
<p>Now that the virtual interface is created, create a new version of the web service.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-05.jpg" rel="shadowbox[sbpost-3160];player=img;"><img class="alignnone size-full wp-image-3166" title="Change Virtual Interface 05" src="http://www.dataxstream.com/wp-content/uploads/2009/11/Change-Virtual-Interface-05.jpg" alt="Change Virtual Interface 05" width="597" height="152" /></a></p>
<h3>Conclusion</h3>
<p>Changing the web service virtual interface to match changes in the underlying function module interface is easy. Whether you choose to create a new virtual interface version, or if you choose to update the virtual interface to match the new functional interface, the process is quick and easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/11/changing-the-function-interface-of-web-service-enabled-functions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Turn any SAP remote-enabled function module into a Web Service – Part 2</title>
		<link>http://www.dataxstream.com/2009/10/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-2/</link>
		<comments>http://www.dataxstream.com/2009/10/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-2/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 18:00:26 +0000</pubDate>
		<dc:creator>Steve Park</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Interface Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[enterprise service]]></category>
		<category><![CDATA[funciton module]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Steve Park]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=1846</guid>
		<description><![CDATA[In my previous blog I showed the steps into turning a simple function module into an Enterprise Service.  Now that we have the service defined in ECC, our next step is to configure it so an external application can call our newly created service. I will show how to configure and test the Web Service [...]]]></description>
			<content:encoded><![CDATA[<p>In my previous blog I showed the steps into turning a simple function module into an Enterprise Service.  Now that we have the service defined in ECC, our next step is to configure it so an external application can call our newly created service.</p>
<p>I will show how to configure and test the Web Service on ECC with Service pack 14 and higher.   Before Service Pack 14, the configuration is completed in ECC, however after SP14 the configuration is completed on the Java Stack.</p>
<p><span id="more-1846"></span></p>
<p>Now let’s get started.</p>
<p>Execute the following transaction:<br />
Transaction: SOAMANAGER</p>
<p>This will initiate a Web session and prompt you to log into the WebAS.<br />
Once you have logged in, the next step is to locate the Enterprise Service that you created earlier.<br />
To locate your Enterprise Service go to<br />
Business Administrator Tab  &#8211;&gt; Web Service Administration</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic1.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="size-full wp-image-1851 alignnone" title="pic1" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic1.jpg" alt="pic1" width="651" height="404" /></a></p>
<p>First we will want to find the Enterprise Service that we created.   In our scenario, we named our test service as “ZTESTWEBSERVICE”.  After you have found your service, you need to display it by pressing the “Apply Selection” button.</p>
<p>This will display the current settings for this service.  Since we have not yet defined the configuration we will want to create a new service.  In the Configuration tab, select “Create Service”.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic2.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="size-full wp-image-1852 alignnone" title="pic2" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic2.jpg" alt="pic2" width="652" height="442" /></a></p>
<p style="text-align: left;">Enter a Service Name and a Binding name that you would like.  I usually put a prefix of “SN” and “BN” when defining a Service Name and a Binding name.<a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic3.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="size-full wp-image-1853 alignnone" title="pic3" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic3.jpg" alt="pic3" width="467" height="209" /></a></p>
<p style="text-align: left;">Here you will see all of the different type of runtime configuration options that are available.  As you can see you can configure other security and authentication options.  Once you are complete, press “SAVE”.</p>
<p style="text-align: left;"><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic4.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="size-full wp-image-1854 alignnone" title="pic4" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic4.jpg" alt="pic4" width="576" height="288" /></a></p>
<p>Now you are complete.  The Web Service should be up and running ready for an external application to call it.  Our next step is to obtain the wsdl location and execute a test a call to the Web Service from an external application..</p>
<p style="text-align: left;"><strong>Testing the Web Service</strong></p>
<p>Before we can test the service we will first need to get the wsdl locations. With your service displayed,  go to the Overview tab.</p>
<p style="text-align: left;">Here you will want to click on “Open wsdl document for selected binding”</p>
<p style="text-align: left;"><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic5.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="size-full wp-image-1855 alignnone" title="pic5" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic5.jpg" alt="pic5" width="577" height="407" /></a></p>
<p>This will display the wsdl in another web session.  This is the URL that needs to be given to the external application that is initiating the call.  In our case, we will be using the WS Navigation tool to be doing this call.   Copy this URL.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic6.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1856" title="pic6" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic6.jpg" alt="pic6" width="574" height="358" /></a></p>
<p>Now we have the wsdl location, we will use the WS Navigator to perform the test.<br />
In Overview tab, select the following link:<br />
“Open Web Service navigator for selected binding”</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic7.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1857" title="pic7" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic7.jpg" alt="pic7" width="573" height="141" /></a></p>
<p>Here you will enter the wsdl URL that you copied in the previous step.<br />
Then press ‘Next’</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic8.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1858" title="pic8" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic8.jpg" alt="pic8" width="574" height="202" /></a></p>
<p>Enter a valid user that will log into ECC when calling the Web Service</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic9.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1859" title="pic9" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic9.jpg" alt="pic9" width="577" height="268" /></a></p>
<p>Now press ‘Test’.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic10.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1860" title="pic10" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic10.jpg" alt="pic10" width="574" height="242" /></a></p>
<p>Here is a list of available operations to call  this  Service.   Remember since we built it from just a function module it will only contain one operation.  If we want to build an service with multiple operation we would generate this service from a function group.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic11.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1861" title="pic11" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic11.jpg" alt="pic11" width="576" height="271" /></a></p>
<p>For this simple  example, the service will take any input and bring back a successful response.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2009/08/pic12.jpg" rel="shadowbox[sbpost-1846];player=img;"><img class="alignnone size-full wp-image-1850" title="pic12" src="http://www.dataxstream.com/wp-content/uploads/2009/08/pic12.jpg" alt="pic12" width="578" height="630" /></a></p>
<p>And there you have it.  You know how to turn a function module into a Web Service and test the service with WS Navigator.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/10/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Turn any SAP remote-enabled function module into a Web Service – Part 1</title>
		<link>http://www.dataxstream.com/2009/09/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-1/</link>
		<comments>http://www.dataxstream.com/2009/09/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-1/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 04:00:15 +0000</pubDate>
		<dc:creator>Steve Park</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP PI Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[enterprise service]]></category>
		<category><![CDATA[function module]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Steve Park]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=1549</guid>
		<description><![CDATA[It still amazes me that not a lot of developers know that you can turn any existing SAP remote enable function module into a Web Service.  It may sound like a challenging task, but it is just one of those things that you either know how to do it or you don’t.  And to know [...]]]></description>
			<content:encoded><![CDATA[<p>It still amazes me that not a lot of developers know that you can turn any existing SAP remote enable function module into a Web Service.  It may sound like a challenging task, but it is just one of those things that you either know how to do it or you don’t.  And to know how to do it only takes 15min to understand.</p>
<p>I have broken this down into 2 blogs<br />
Part 1 will show how to create the simple structured web service<br />
Part 2 will show how to configure and test the web service using SOAMANAGER and WSNAV</p>
<p><span id="more-1549"></span></p>
<p>For this scenario, I created a really simple function module with one input and one output that will send back a response of “Response successful from test”   This will only create one operation for this service.  However, if you want to create multiple operations for a Service you can also generate the service from a function group.</p>
<p><img class="size-full wp-image-1560 alignnone" title="pic_1" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_1.jpg" alt="pic_1" width="651" height="341" /></p>
<p>You will need to ensure that the attribute is set as Remote-enabled in the function module.</p>
<p><img class="alignnone size-full wp-image-1561" title="pic_2" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_2.jpg" alt="pic_2" width="656" height="430" /></p>
<p>Now go to transaction SE80 and right-click&#8211;&gt;Create&#8211;&gt;Web Service</p>
<p><img class="alignnone size-full wp-image-1562" title="pic_3" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_3.jpg" alt="pic_3" width="652" height="321" /></p>
<p>Since SAP will be hosting this web service we will want to select  “Service Provider”</p>
<p><img class="alignnone size-full wp-image-1563" title="pic_4" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_4.jpg" alt="pic_4" width="654" height="312" /></p>
<p>Select the radio button “<em>Existing ABAP Object(Inside Out)&#8221;</em></p>
<p>Since we are building this web service from a Function Module.  The difference between and inside out vs. an outside is approach is where the structure is built.  From a design perspective, it is recommended that you use an Outside-in approach whenever possible.  This means that you would build out  the structure in the ESR and then implement the code behind it in SAP..  However, there will be cases when you will want to turn a Standard SAP remote enable function module into a Web Service, thus using this approach, the Inside out approach..)</p>
<p><img class="alignnone size-full wp-image-1564" title="pic_5" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_5.jpg" alt="pic_5" width="655" height="324" /></p>
<p>Give a name to what you want to call your Enterprise service and specify that the endpoint will be a function module.</p>
<p><img class="alignnone size-full wp-image-1565" title="pic_6" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_6.jpg" alt="pic_6" width="656" height="349" /></p>
<p>Enter the name of the Function module that the web service will call in the backend.</p>
<p><img class="alignnone size-full wp-image-1566" title="pic_7" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_7.jpg" alt="pic_7" width="658" height="423" /></p>
<p>Here you will have to specify which authentication you want this service to have.  For this example I have set it to no authentication.</p>
<p><img class="alignnone size-full wp-image-1567" title="pic_8" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_8.jpg" alt="pic_8" width="656" height="360" /></p>
<p><img class="alignnone size-full wp-image-1568" title="pic_9" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_9.jpg" alt="pic_9" width="655" height="433" /></p>
<p>Now you are complete with building this web service.  However at this point you have just built the Web Service but you will now need to configure it so that an external application can call this web service.</p>
<p><img class="alignnone size-full wp-image-1559" title="pic_10" src="http://www.dataxstream.com/wp-content/uploads/2009/07/pic_10.jpg" alt="pic_10" width="655" height="318" /></p>
<p>This will come in my next Blog for configuring the newly created Web Service and as well as testing this  service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/09/turn-any-sap-remote-enabled-function-module-into-a-web-service-%e2%80%93-part-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

