Manual Setup of Logical Port
Process for consuming a web service is to generate a
consumer proxy, create a logical port and call the generated consumer proxy in
a program. Logical port is created using transaction SOAMANAGER. Logical port
can be created using the web service WSDL URL, or using a WSDL file, or by
Manual Configuration. Using the WSDL is the preferred approach, but if for some
reason you are having trouble, this blog documents the process of using manual
configuration options for creating a logical port.
You are a SAP Developer and have been asked to consume a web
service that the .NET team in your organization has created. The .NET team
informs you that the URL for the web service is “https://intranet.abc.com/ws/ws.asmx”.
The web service doesn’t require a userid / password for access. You have
successfully generated a consumer proxy. You are familiar with transaction
SOAMANAGER and go through the steps to create a logical port. You get the error
HTTP: Error in interface for management of HTTP destinations”. You try to use
the URL using file access option and still no success. You decide to try the
Manual Configuration option.
This blog assumes familiarity with the SOAMANAGER
transaction. If not, please review SAP help and lots of other blogs on SDN. I
have added some of the them in the reference section below.
Solution – Creating a Logical Port using Manual Configuration
Please follow the basic steps listed here to start the
process of creating a logical port using manual configuration:
- Execute transaction SOAMANAGER,
- select tab “Application and Scenario Communication”.
- Select link “Single Service Administration”.
- Select your consumer proxy and click on apply selection.
- Click on the button Create Logical port, input a technical name and description.
- Select the Manual Configuration radio button and select Next
The logical port maintenance transaction has five tabs. For
manual configuration, you are required to configure fields in the three tabs
shown in Figure 1 below.
The only field that needs to be changed is Message ID
Protocol. Since the web service doesn’t require Userid / password, the field
should be set to “Suppress ID Transfer”.
Figure 1: Over view screen and Messaging tab settings
Transport Settings Tab
This tab is used to specify the location of the web service
and the transfer protocol (HTTP or HTTPS). The fields highlighted in Figure 2
below need to be configured.
Figure 2: Transport Settings
Operation Specific Tab
This tab links the operations of the web service to its
action. To complete this task, you will need to look at the WSDL of the web
service. Search for <soap action..> tag.
Figure 3: Operation Specific tab settings
Open the WSDL and look for soapAction for each operation of
the operation. You will see operation names automatically populated on the
left. Select each operation and populate the SOAP Action field on the right
with the value from the WSDL.
<soap:operation soapAction=”http://ws.cdyne.com/WeatherWS/GetCityForecastByZIP“ style=”document” />
So for the example WSDL above, operation “GetCityForecastByZIP“
should get the SOAP action value of “http://ws.cdyne.com/WeatherWS/GetCityForecastByZIP“
Once you have assigned SOAP action for all the operations
click Save to activate the Logical Port binding. You should be able to test
your consumer proxy now using the newly created port.
Being able to configure a Logical port using manual configuration can help you keep making progress in your development effort, while the basis team resolves HTTP error in the URL based configuration process.
Consuming web service in ABAP – See my earlier blog Consuming Webservices with tag in WSDL using ABAP on consuming web services with tag if you are having trouble with consumer proxy. Other links – Consuming Services with ABAP, http://help.sap.com/saphelp_nw70/helpdata/en/47/3a989cbcef2f35e10000000a1553f6/frameset.htm
XML to ABAP and ABAP to XML Transformation – http://help.sap.com/saphelp_nw70/helpdata/en/e3/7d4719ca581441b6841f1054ff1326/frameset.htm
- Other folks with HTTP error – [Error in Logical Port Creation | Error in Logical Port Creation]
- Thanks to Todd Miller and Ali Mohammed in helping me find the right combination of settings to make this work.