Consume a Web Service in ABAP
2011-11-15 11:05
155 查看
转贴地址: http://www.netweavercentral.com/index.php/2011/consume-a-web-service-in-abap/
It is impossible to implement all of the necessary functions associated with a complex business problem in the same component or even technology. A modern enterprise infrastructure system must be in the position to integrate functions in one effective process.
Until now, the combination of different applications have been developed using point-to-point solutions which grow complex and impossible to maintain over time.
Web Services simplify the heterogeneous nature of most mature enterprise system landscapes. They enable you to combine functions in a single process, even if they are implemented in widely differing software components. Web services are standalone, executable
entities that can be published, searched for, and called, across a network.
To consume a web service via the ABAP engine, you need to do the following:
Create a Client Proxy
Create a Logical Port
The creation of a proxy for the Web service in the ABAP Workbench using a WSDL document can be done in a few clicks. Once the proxy has been created a logical portal will be needed. Once those two tasks are completed, the Web Service can be called via a standard
API.
Setup Information
URL: http://www.deeptraining.com/webservices/wsStrings.asmx?WSDL
Note that SAP only supports WSDL 1.1 ( at least from what I can tell )
You can generate client or server proxies in ABAP to send or receive messages. You generate client proxies in this example. The client proxy will provide an abstraction to the complexities of the web service.
TCODE: SE80
Click on EDIT OBJECT
Select Enterprise Services
Enter the name of the Client Proxy (ZCG_CO_WEATHER_WS) and click the CREATE button.
Select URL/HTTP Destination and press the Continue button.
Enter the WSDL in the URL field and press the Continue button
For simplicity select Local Object and enter a value in the Prefix field. Press the Continue button.
Press the Complete button.
Remember to SAVE and then ACTIVATE you code.
You configure runtime features for Web services client proxies using logical ports.
These runtime features can be configured when the Web-service client is activated. An example of such a feature is the URL-call of the Web service, which, if applicable, must be modified by users.
TCODE: LPCONFIG
Enter the Proxy class and Logical Port name. Make sure that Default Port is selected. Click the Createbutton
Enter a description for the logical port.
Enter the WSDL URL into the URL field
Now we need to add the reference from the actual WSDL code into each operation.
Open up the WSDL in a browser and look for the following:
<wsdl:operation name=”MakeUpper”>
Below that line there will be another line that has a SOAPACTION defined in it:
<soap:operation soapAction=”http://www.deeptraining.com/MakeUpper” style=”document”/>
Copy the URL defined in that line into the SOAP Action line.
Save and then Activate the Logical Port
TCODE: se80
To test the web service call load the client proxy in SE80
Click on the TEST icon
Click on the Execute button
Since the web service simply converts a string to all upper case, you can now click on the EXECUTEbutton.
Note: You can also now change the default value being sent to the web service
As you can see you can even upload an entire file
If the test is successful you will see your returned string in all Upper Case
Call the Web Service within an ABAP Function
FUNCTION Z_CG_TOUPPER_TEST.
It is impossible to implement all of the necessary functions associated with a complex business problem in the same component or even technology. A modern enterprise infrastructure system must be in the position to integrate functions in one effective process.
Until now, the combination of different applications have been developed using point-to-point solutions which grow complex and impossible to maintain over time.
Web Services simplify the heterogeneous nature of most mature enterprise system landscapes. They enable you to combine functions in a single process, even if they are implemented in widely differing software components. Web services are standalone, executable
entities that can be published, searched for, and called, across a network.
To consume a web service via the ABAP engine, you need to do the following:
Create a Client Proxy
Create a Logical Port
The creation of a proxy for the Web service in the ABAP Workbench using a WSDL document can be done in a few clicks. Once the proxy has been created a logical portal will be needed. Once those two tasks are completed, the Web Service can be called via a standard
API.
Setup Information
URL: http://www.deeptraining.com/webservices/wsStrings.asmx?WSDL
Note that SAP only supports WSDL 1.1 ( at least from what I can tell )
Create Client Proxy
You can generate client or server proxies in ABAP to send or receive messages. You generate client proxies in this example. The client proxy will provide an abstraction to the complexities of the web service.TCODE: SE80
Click on EDIT OBJECT
Select Enterprise Services
Enter the name of the Client Proxy (ZCG_CO_WEATHER_WS) and click the CREATE button.
Select URL/HTTP Destination and press the Continue button.
Enter the WSDL in the URL field and press the Continue button
For simplicity select Local Object and enter a value in the Prefix field. Press the Continue button.
Press the Complete button.
Remember to SAVE and then ACTIVATE you code.
Create Logical Port
You configure runtime features for Web services client proxies using logical ports.These runtime features can be configured when the Web-service client is activated. An example of such a feature is the URL-call of the Web service, which, if applicable, must be modified by users.
TCODE: LPCONFIG
Enter the Proxy class and Logical Port name. Make sure that Default Port is selected. Click the Createbutton
Enter a description for the logical port.
Enter the WSDL URL into the URL field
Now we need to add the reference from the actual WSDL code into each operation.
Open up the WSDL in a browser and look for the following:
<wsdl:operation name=”MakeUpper”>
Below that line there will be another line that has a SOAPACTION defined in it:
<soap:operation soapAction=”http://www.deeptraining.com/MakeUpper” style=”document”/>
Copy the URL defined in that line into the SOAP Action line.
Save and then Activate the Logical Port
Test the Web Service Call
TCODE: se80To test the web service call load the client proxy in SE80
Click on the TEST icon
Click on the Execute button
Since the web service simply converts a string to all upper case, you can now click on the EXECUTEbutton.
Note: You can also now change the default value being sent to the web service
As you can see you can even upload an entire file
If the test is successful you will see your returned string in all Upper Case
Call the Web Service within an ABAP Function
FUNCTION Z_CG_TOUPPER_TEST.
*”———————————————————
*”*”Local Interface:
*” IMPORTING
*” VALUE(INPUT_PARAMETER) TYPE STRING
*” EXPORTING
*” VALUE(OUTPUT_PARAMETER) TYPE STRING
*”———————————————————
DATA: WSProxy TYPE REF TO ZCG_CO_WS_STRINGS_SOAP .
TRY.
CREATE OBJECT WSProxy .
CATCH CX_AI_SYSTEM_FAULT .
ENDTRY.
data: ls_response type ZCG_MAKE_UPPER_SOAP_OUT .
data: ls_request type ZCG_MAKE_UPPER_SOAP_IN .
ls_request-DATA = INPUT_Parameter .
TRY.
CALL METHOD WSProxy->MAKE_UPPER
EXPORTING
INPUT = ls_request
IMPORTING
OUTPUT = ls_response .
CATCH CX_AI_SYSTEM_FAULT .
CATCH CX_AI_APPLICATION_FAULT .
ENDTRY.
COMMIT WORK.
OUTPUT_Parameter = ls_response-MAKE_UPPER_RESULT .
ENDFUNCTION.
相关文章推荐
- Consuming a Web Service in ABAP
- ABAP consume web service QA
- Using the Web Service Callbacks in the .NET Application
- Programming dynamic ALV in WebDynpro for ABAP
- jQuery Autocomplete using Web Service in ASP.Net
- Replace JSON.NET with ServiceStack.Text in ASP.NET Web API
- SharePoint Portal Server 2003 Search does't like .Net Framework 2.0!!! (for Error in PortalCrawl Web Service solution)
- [论文笔记] Service Provenance in QoS-Aware Web Service Runtimes (ICWS, 2009)
- javax.xml.ws.WebServiceException: WSDL Metadata not available to create the proxy, either Service in
- The Apache Axis2 Web service runtime in Tomcat v6.0 Server does not support the service project
- changing the header text in the alv displayed in web dynpro abap
- ?????Can't User UserProfileManager.GetUserProfile Get User Userprofile In Web Service(没解决的.只记录)
- Orchestration Consume Web Service导入的Multi-part Message Type
- Agent and Web Service Technologies in Virtual Enterprises
- Changing Configuration Values of a Configurable Material in a SO, PO or a Service Order through an ABAP Program
- [ASP.NET AJAX]Important notes when we create web service methods for some extenders in AjaxControlToolkit package
- Error: The Report Server Web Service is unable to access secure information in the report server.
- JAVA错误:AXIS Web Service Problem: No compiler found in your classpath! (you may need to add ‘tools.ja
- 【转贴】【ABAP】Call web dynpro in web dynpro
- How to consume web service base on WSDL