Comsume Web Service via ABAP SAP 4.7
Hello Experts
We wanted use an ABAP program to call a web service. We were only given the target WSDL file. Not sure what to do with this and what information can we get from this.
As I checked, the format is different from the conventional web service I found in the blogs. Usually the WSDL URL is format below.
http://www.webservicex.net/airport.asmx?wsdl
and you can see and test the services from this URL http://www.webservicex.net/airport.asmx
But in our case, this the WSDL URL is below.
http://<host>/dd10/services/shipRSS?wsdl
and we cannot see and test service from http://<host>/dd10/services/shipRSS this is what we are getting.
"shipRSS
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here..."
Having this kind of WSDL, can we still create an ABAP program that can consume this? Is there difference in the programming and parameters. Currently we are using the program template from this blog /people/durairaj.athavanraja/blog/2004/09/20/consuming-web-service-from-abap as we are only running on SAP 4.7 but it seems not to be working. Any thoughts?
Thank you very much!
Tony
Hi Andrei,
We did the changes in the program and we seem to have made some progress here. Here are the test results now.
Test Soap
>> Starting...
>>
>> TEST: SOAP call to method STFC_CONNECTION
>>
>> Result of SOAP call
echotext =
resptext =
<< ...Done
Here is an excerpt of the program of which parameters are inputted. We are suppose to send an XML string. We have not made much changes in the sample program except the one you highlighted to us before. But if there are any concerns it will on the part where to construct soap request document which is shown below. If it is not too much to ask, would you help us check the parameters if they are correct. Thank you very much. You've been very helpful.
1 construct soap request document
CREATE OBJECT osoap.
IF osoap IS INITIAL.
WRITE: / '> cannot create soap document, exiting...'. EXIT.
ENDIF.
TRY.
** OLD VALUE:
** CALL METHOD osoap->set_method
** EXPORTING
** nsprefix = 'saprfc'
** nsvalue = CSoapConstants=>sc_rfc_function_ns
** attributes =
** name = 'STFC_CONNECTION'.
NEW VALUE
CALL METHOD osoap->set_method
EXPORTING
nsvalue ='http://webservice.<namespace>'
name = 'exec' .
"-- parameter: REQUTEXT
GET REFERENCE OF p_requtext INTO dref.
CALL METHOD osoap->add_parameter
EXPORTING
nsprefix =
nsvalue =
attributes =
direction = CSoapConstants=>ic_param_in
name = 'REQUTEXT'
value = dref.
"-- parameter: ECHOTEXT
GET REFERENCE OF p_echotext INTO dref.
CALL METHOD osoap->add_parameter
EXPORTING
nsprefix =
nsvalue =
attributes =
direction = CSoapConstants=>ic_param_out
name = 'ECHOTEXT'
value = dref.
"-- parameter: RESPTEXT
GET REFERENCE OF p_resptext INTO dref.
CALL METHOD osoap->add_parameter
EXPORTING
nsprefix =
nsvalue =
attributes =
direction = CSoapConstants=>ic_param_out
name = 'RESPTEXT'
value = dref.
"-- use ABAP tag names
CALL METHOD osoap->set_tag_name_format
EXPORTING format = CSoapConstants=>ic_tagfmt_default.
CATCH CSoapExceptionUsage INTO usgEx.
WRITE: / ' > exception occurred'.
exTxt = usgEx->get_text( ).
WRITE: / ' > text: ', exTxt.
EXIT.
ENDTRY.
isoap = osoap.
Similar Messages
-
Is it possible to call web service from ABAP SAP 4.6 c..If yes how
Hi Friends,
Is it possible to call web service from ABAP-SAP 4.6 c..If yes Could you please let me know how.
Thanks in Advance.
Murali Krishna K
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:09 PM
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:11 PMOlivier CHRETIEN wrote:>
> Hi Terry,
>
> So these function modules must use the SAPHTTPA RFC destination which uses the exe saphttp.exe ?
>
> How much abap code lines do you have for a web service call ?
> Do you have to code the call specifically for each different web service ?
> Are you able to use the WSDL ?
>
> Nice job if you have coded your own private SOAP runtime !
>
> But I don't think this is an easy solution for everybody...
>
> Regards,
>
> Olivier
Yes, SAPHTTPA (runs on application server) and/or SAPHTTP (runs on front-end pc), one of which, is required for HTTP communication. So far, nothing too elaborate as far as SOAP goes, but the logic is simplistic. Here's some sample code:
DEST = 'SAPHTTPA'.
TRANSLATE HOST TO LOWER CASE.
MYURL = 'wssrvTest/Service.asmx/GetByOrderItem'.
CONCATENATE HOST MYURL INTO MYURL.
REQUEST_HEADERS-DATA =
'Content-type: application/x-www-form-urlencoded'.
APPEND REQUEST_HEADERS.
CLEAR REQUEST_HEADERS.
*........Convert Order Number to External Format........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ORDER
IMPORTING
OUTPUT = ORDER.
*........Convert Item Number to External Format.........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITEM
IMPORTING
OUTPUT = ITEM.
*........Convert Material Number to External Format.....................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = MATERIAL
IMPORTING
OUTPUT = MATERIAL.
CONCATENATE 'sOrder=' ORDER
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sItem=' ITEM
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sMaterial=' MATERIAL
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CALL FUNCTION 'HTTP_POST'
EXPORTING
ABSOLUTE_URI = MYURL
RFC_DESTINATION = DEST
BLANKSTOCRLF = 'X'
TABLES
RESPONSE_ENTITY_BODY = RESPONSE_BODY
REQUEST_ENTITY_BODY = REQUEST_BODY
RESPONSE_HEADERS = RESPONSE_HEADERS
REQUEST_HEADERS = REQUEST_HEADERS
EXCEPTIONS
CONNECT_FAILED = 1
TIMEOUT = 2
INTERNAL_ERROR = 3
TCPIP_ERROR = 4
DATA_ERROR = 5
SYSTEM_FAILURE = 6
COMMUNICATION_FAILURE = 7
OTHERS = 8.
CHECK SY-SUBRC = 0. "more appropriate msg goes here
LOOP AT RESPONSE_BODY.
IF RESPONSE_BODY+0(7) <> '<string' AND
RESPONSE_BODY+0(8) <> '</string' AND
RESPONSE_BODY+0(5) <> '<?xml'.
SPLIT RESPONSE_BODY-DATA AT '=' INTO FIELD_NAME FIELD_VALUE.
TRANSLATE FIELD_NAME TO UPPER CASE.
CASE FIELD_NAME.
WHEN 'HEIGHT'.
HEIGHT = FIELD_VALUE.
WHEN 'WIDTH'.
WIDTH = FIELD_VALUE.
WHEN 'LENGTH'.
LENGTH = FIELD_VALUE.
WHEN 'WEIGHT'.
WEIGHT = FIELD_VALUE.
WHEN 'QTY'.
QTY = FIELD_VALUE.
ENDCASE.
ENDIF.
ENDLOOP.
Hope this helps...
Terry
Edited by: Terry West on Feb 4, 2008 3:08 PM -
Wrong data when consuming web service via ABAP
Dear all,
we tried to consume a web service via ABAP and used one of the various existing how-to papers from the internet in order to develop everything.
The development was not that difficult, but when we now execute our ABAP, we noticed that
- the first 100 returned rows from the webservice are completely correct
- then we receive 10-15 completely incorrect rows (empty fields, redundant lines, etc.)
- the rest of the data (60 records) is correct again
As we nearly all objects have been generated automatically via SE80, I do not really know where this problem might come from. We double checked the original data and there everything is correct.
Any ideas?
Thanks for your feedback,
AndreasMarcelo Almeida wrote:
> You can use Logial port for it in LPCONFIG ( Transaction). See this examplo Below:
>
> TRY.
>
> CREATE OBJECT my_proxy
> EXPORTING
> logical_port_name = 'LP01'.
> CATCH cx_ai_system_fault.
> ENDTRY.
>
> TRY.
> input-airline_id = p_carrid.
> input-connection_id = p_connid.
> input-flight_date = p_fldate.
>
> CALL METHOD my_proxy->flight_get_detail
> EXPORTING
> input = input
> IMPORTING
> output = output.
> CATCH cx_ai_system_fault.
> CATCH cx_ai_application_fault.
> ENTRY.
>
> Its necessary create a connection in SM59 (type H) and setting in the call parameters logical port (LPCONFIG).
Hi,
thanks for your answer. It´s working!
Cheers,
Andy -
Consuming stateful web service via ABAP proxy
Hi all,
I´ve got the following scenario. I´ve a ABAP proxy generated based on a WSDL file. The provider is a WebService provided by a tomcat server. (no PI etc. as middleware). The problem i´ve now is that the webservice is stateful so I need a stateful communication between my ABAP report (client) and the Web Service.
I´ve already found the possibiliy to switch on the feature "Session-Oriented Communication" on "Preconfiguration Tab" of the ABAP Proxy Screen. But unfortunately it´s not working.
Anybody knows whether general system settings has to be changed for this. Or anybody has other tips.
I´m currentliy working on the SAP Discovery System v3 which is a Netweaver 7.0.
Many thanks in advance for your answers,
AndyMarcelo Almeida wrote:
> You can use Logial port for it in LPCONFIG ( Transaction). See this examplo Below:
>
> TRY.
>
> CREATE OBJECT my_proxy
> EXPORTING
> logical_port_name = 'LP01'.
> CATCH cx_ai_system_fault.
> ENDTRY.
>
> TRY.
> input-airline_id = p_carrid.
> input-connection_id = p_connid.
> input-flight_date = p_fldate.
>
> CALL METHOD my_proxy->flight_get_detail
> EXPORTING
> input = input
> IMPORTING
> output = output.
> CATCH cx_ai_system_fault.
> CATCH cx_ai_application_fault.
> ENTRY.
>
> Its necessary create a connection in SM59 (type H) and setting in the call parameters logical port (LPCONFIG).
Hi,
thanks for your answer. It´s working!
Cheers,
Andy -
Create an SAP Web Service Consumer (calling External Sharepoint Web Service from ABAP)
hi all,
i am trying to
Create an SAP Web Service Consumer (calling sharepoint Web Service from ABAP) using blog given on following link
Create an SAP Web Service Consumer (calling External Web Service from ABAP)
but when i am using my url at the end of step 3, i am getting error as follows:
i dont want to use local file option. Can anyone help me in this??
thanks in advance
regards,
SDSHi SDS,
you recieved a http 404 error when trying to access the Sharepoint Web service. Http 404 indicates that the resource is not reachable (cf. HTTP 404 - Wikipedia, the free encyclopedia). There could be different reasons for that. I'd suggest rubble checking the URL of the Web service first. Try to access it from a browser on you desktop. If the URL is correc. Most likely the SAP system is not able to connect to the URL. This could, for example, be due to some firewall restrictions. You should ask a SAP Basis colleague if they are able to access the URL of the Web service from the server on which the SAP system is running.
Christian -
Publish ABAP utility implemented on PI system as Web service via PI itself.
Hello Experts,
We have a requirement where we might need to publish a feature related to user management from ABAP stack of PI as a web service via PI itself.
So scenario might look like
SOAP Client -> PI -> PI (ABAP functionality)
I have seen some blogs on SDN which suggest publishing FM directly using menu options in SE37 (Utilities (M) u2192 More Utilities u2192 Create Web Service u2192 From the Function Module). But then this interface will not be under PI and will be exception to general architecture of having all web services published via PI.
May be its a very simple scenario and I am thinking of solution in complex ways. Any quick inputs from experts on what would be the best way to implement this , will be a great help for me to start quickly.
Can we implement a normal SOAP to Proxy(ABAP) scenario for PI as we do while exposing services on ECC or any other ABAP system as a SOAP service?
Or is there any smart way of handling this scenario?
Kind Regards,
Abhijeet.Thanks Raja & Greg for quick suggestions & your valuable time.
Appropriate points rewarded.
Greg, thanks for suggesting names of standard BAPI, it will save us from reinventing the wheel by using custom codes.
I will work out on SOAP to RFC scenario & close the thread when scenario works.
Just to Share: Yesterday, just out of curiosity I tried to use proxy scenario where PI system itself was Receiver in our sandbox, the message goes in a kind of infinite loop and keeps processing the message again and again till it turns out to error.
I tried it using the existing Business system for PI where it is configured as Integration Server & I have also tried to create a new business system for a different client on PI system with role as "Application System", but still the result was same.
Kind Regards,
Abhijeet. -
Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy
Hi there
I am trying to consume a Web Service using ABAP Proxies. I have done the following in the system:
I configured the HTTP and HTTPS Proxy settings.
I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
I created the proxy classes by using the WSDL provided by the system I'm trying to interface with.
I created my HTTP destination RFC via SM59.
I configured a logical port for the proxy.
I developed the ABAP code for calling the proxy.
In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
I had a look at SM21 and the following message was written in the log:
<b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>. I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect. I cannot find any ST22 entries. The trace file looks as follows:
SAP System ID: DGH
Client: 009
User: COLESKG
System time: 072910
System date: 20070531
SAP Release: 700
Host: hd307c
Operating system: AIX
DB System: ORACLE
Program: ZUK_IPA00003
Processing State: 0
Location: Client
Transport Binding: http://schemas.xmlsoap.org/soap/http
SOAP Application: urn:sap-com:soap:runtime:application:client
SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
/runtime/protocol
SOAP Protocols: <initial>
Request Message: <initial>
Response Message: <initial>
Fault: <initial>
Registry: <initial>
SOAP Roles: <initial>
Trace Level: 3
Logging Level: 2
Monitoring Level: 0
Security Profile: <initial>
WS Security Protocol: <initial>
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
urn:sap-com:soap:runtime:application:client
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
configuration
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
http://schemas.xmlsoap.org/soap/http
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
.org/soap/http initialized
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
created
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
Protocol as SENDER with Priority 5
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
Initialized
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Try to create instance for http://www.sap.com/webas/630/soap
/runtime/session/protocol::http://www.sap.com/webas/630/soap
/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
as SENDER with Priority 5
INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
create ICF Client for DESTINATION = ALSB
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
Client created by DESTINATION
INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
:runtime:application:client initialized
INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
Error in module XMLParserGetNextElement:773
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
Unallowed RFC-XML Tag
Error in module XMLConverterReadTag:3061
Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
Unallowed RFC-XML Tag(24)
Error in module ab_soap:4392
Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
failed with return code 1
It then must be something in the config. Has anyone got any idea why this message is encountered?
Kind Regards
Gustav Coleske
Message was edited by:
Gustav ColeskeHi,
I have the same problem as described.
Can you give me a little more information about the error you have solved in the proxy.
Thanks for help
John -
How to create a Web Service in ABAP 4.7E
Dear Experts,
We are on SAP R/3 4.7E. Can anybody tell me what are the Pre-requisites or steps to exposed an existing BAPI / RFC's as Web Services. Kindly explain me in detailed. or if any link is available.
Regards,
UmeshHi Umesh,,
Follow these Steps:--- They may help you...
+Configuring Web Service Security in AS-ABAP
Use
To configure Web service security in SAP NetWeaver usage type AS-ABAP, you have to do the following:
· Configure the RFC destination for the Web service security services
· Configure the logical port for the Web service security services
Configuring the RFC Destination
Perform the following steps to configure the RFC destination for the Web service security services:
1. Use transaction SM59 to create a new RFC destination of type HTTP Connections to Ext. Server.
2. Specify connection type G and enter an arbitrary description.
3. Specify the following technical settings:
¡ Target Host: Host name of the Integration Server (AS-Java)
¡ Service No.: Port number of the Integration Server (AS-Java)
¡ Path Prefix: Path prefix of the Integration Server (AS-Java)
Depending on the logon procedure or security settings you are going to specify in Step 4, you must set the path prefix as follows:
§ If the logon procedure is Basic Authentication and the SSL option is inactive, enter the path prefix /wssproc/plain?style=document.
§ If the logon procedure is Basic Authentication or Send SAP logon ticket, and the SSL option is active, enter the path prefix /wssproc/ssl?style=document.
§ If the logon procedure is SSL Client Certificate or Send SAP logon ticket, and the SSL option is active, enter the path prefix /wssproc/cert?style=document.
4. Select the logon/security settings that correspond to the path prefix specified in Step3..
Configuring the Logical Port
Perform the following steps to configure the logical port for the Web service security services:
1. Use transaction LPCONFIG to configure the logical port by specifying the following attributes.
Settings for the Logical Port:
Attribute
Value
Proxy class
CO_WSSEWSSPROCESSOR_VI_DOCUMEN
Logical port
BASIC
Description
Any description
Default port
Select the check box
Runtime
Select Web Service Infrastructure
Call parameter: HTTP Destination
Enter the RFC destination you configured above
2. Save and activate the logical port.+
+Wizard-Based Basic Configuration
After full installation and before manual configuration, you can run the wizard-based basic configuration for SAP NetWeaver usage type PI. The configuration wizard saves you time and manual steps.
Only carry out the wizard-based configuration if your system has never been configured before. If you have modified the system already or if you have upgraded from an older release, do not use the configuration wizard. Instead, use the manual steps as required.
To carry out the wizard-based configuration steps required for your PI system, perform the following steps:
1. Call the wizard-based configuration tool as described in Configuration Wizard.
2. Select the scenario PI and the task PIPostInstallProcess.
3. Choose Execute.
A list of the steps to be executed by the wizard is displayed.
4. Choose Install.
The steps are executed one after the other (some steps may take some time).
The wizard-based configuration for usage type PI performs the following post-installation steps:
● Checking sap.com services
● Performing automatic customizing
● Assigning application roles to user groups
● Maintaining a product for the technical system
● Maintaining a business system for the Integration Server
● Creating RFC destinations in the ABAP environment
● Creating RFC destinations in the ABAP and Java environments
● Creating the HTTP destination pmistore
● Configuring the role of the Integration Server
● Registering queues used by the Integration Server
● Triggering the Self-Registration of the Adapter Engine
If you do not want to use the configuration wizard to perform the basic configuration steps required for usage type PI, you have to carry out these steps manually as outlined in the step descriptions you access by following the hyperlinks above.
Afterwards, perform the following checks:
Ensure that
See
You have installed the XI add-on in each involved business system that is based on SAP Web Application Server (AS) 6.20.
Use SAP Web AS 6.20 kernel patch level 1253 if you want to generate new ABAP proxies in your business systems based on SAP Web AS 6.20.
SAP Note 439915; if you generate ABAP proxies, see SAP Notes 675441 and 721160.
You have imported the content of software component SAP_BASIS into the Integration Repository (interfaces, mappings, and so on).
For more information, see Importing Process Integration Content.
The connection between the Integration Server and the SLD has been established by calling transaction SLDCHECK.
The system displays a log that lists the current configuration data, the function test results, errors, and notes for checking.
Installation Guide SAP NetWeaver 2004s on SAP Service Marketplace at service.sap.com/installNW2004s.
SAP System Landscape Directory
System Landscape Directory in SAP Exchange Infrastructure.
If you want to use a central SLD, further manual steps are required. For more information, see SAP Note 939592.
If you want to use an Integration Server client other than 001, further manual steps are required. For more information, see SAP Note 940309.
+
+Optional Additional Configuration Steps
The following additional configuration steps are optional:
· Configuring the Change Management Service (CMS)
· Configuring message archiving for the Adapter Engine
· Configuring the Integration Builder documentation editor
+
And then you may goto Link->:http://help.sap.com/saphelp_nw04s/helpdata/en/b8/cb1141e109ef6fe10000000a1550b0/frameset.htm
This will give you complete description ...
"Plz Dnt forget to reward points"</b></u>
Regards,
Mandeep. -
Hello Experts!
After I am assuming the SOAP Experts at the SOAP Forum
are being already on christmas vacation
I saw no other possiblitiy to post my question right here.
I have created a web service through:
Open the affected function Module .
Choose Utilities -> More Utilities -> Creating a Web Service -> From Function Module.
Later you can test it with SOAMANAGER etc.
The goal is now (requirement)
Calling a web service in ABAP.
How can I generally call a (eg .above created by me ) webservice with abap which is existing on the sap system (Web Services which are generated from Function Modules)
Has really nobody such a problem ever before ?
Regards
ertas ilhanMichael thank you very much.
You are saying:
The easiest way to do it is with the WSDL file that you'll get from the existing Web Service. In your proxy class it will generate a method which you can then call within your program to consume that web service.
I understand the first part with the WSDL file but the second part it is unclear to me with
In your proxy class it will generate a method which you can then call within your program to consume that web service
Can you please explain me this more detailed.
Thanks
ertas -
Calling web service from ABAP - version 4.6C
Hi,
I would like to know how to call a web service from ABAP. Version is 4.6C. Any help would be greatly appreciated.
Thank you,
RekhaHi Rekha,
Please go through these..
call web service using ABAP
http://help.sap.com/saphelp_nw04/helpdata/en/a0/da0710b6560a4e80fb94f3f712dfc0/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e9/ae1b9a5d2cef4ea4b579f19d902871/frameset.htm
Hope these help you!
cheers,
Prashanth -
Call a web service in ABAP - how to do LPCONFIG?
I have searched through OSS, SAP help and SDN - and I see the answer if I call a web service from Java - but I cannot find the answer if I call a web service through normal ABAP in R/3.
I apologize if I am asking the same question again or if it is already there and I am just overlooking it.
I am creating a client proxy in R/3 to call an outside web service through ABAP.
I create the client proxy in our test system using SE80.
I create a logical port using LPCONFIG to point at the test web service on the other system.
I code the ABAP program - and everything works great.
I transport the client proxy - and I transport the LPCONFIG information.
Now I get into production - when I do transaction LPCONFIG to change the URL of the web service to be their production web service URL instead of their test web service URL - it asks for the system to be opened.
Like it wants to create a transport. The basis people would have to open the system to be modified. Which at least in our shop is not something we do.
Here is the error:
Message no. TK430
The system administrator has set your logon client to the 'not modifiable' status.
Client-specific objects can not be changed in this client.
Contact the system administrator.
For more information, see the SAP Library under Change and Transport System.
For an ABAP program in R/3 using a client proxy - how do I call a test service in our test r/3 system and a production web service in production R/3 system without changing my ABAP code?
Should this be done through LPCONFIG?
Or what am I missing?
Thanks for your help.
Scott OvermeyerHi Scott,
Please refer to following URL
http://help.sap.com/saphelp_nw04/helpdata/en/16/285d32996b25428dc2eedf2b0eadd8/content.htm
I think you are using the second of the following 3 approaches mentioned in above documentation and so credential configuration is not available at run-time.
Please check if this is helpful to you. If you have already looked at this then please ignore this message.
There are three ways of configuring the call address of the Web service:
● As HTTP destination: Select an RFC destination of type G (HTTP connection to an external server) or type H (HTTP connection to the SAP System) from transaction SM59. The HTTP destination approves the configuration of the logon procedure, encryption, and state management. This is the preferred access procedure.
● As URL: The URL of the Web service is written to the corresponding input field when you create the logical port. The disadvantage of this procedure is that, with the exception of the URL, no other parameters for logging on, encryption, or state management can be configured. This is possible only for Web services that do not require a logon procedure, encryption, or state management.
● As local path prefix: This access procedure is only intended for accessing your own system. Here you call the default RFC destination NONE to address your own server. The specified local path prefix is used to identify the called Web service.
Regards,
Vandana. -
Problems consuming a web service in ABAP
We wish to consume an external web service from ABAP but the provided WSDL file contains syntax not supported by SAP - namely "mixed content". A response from Roman Glushkov in forum thread [Call Sharepoint Web Service; seemed to offer a solution.
The WSDL file was edited as suggested by Roman and the Service Consumer proxy was successfully created from this edited version. However, in our SAP release (Basis release 700 support pack SAPKB70018) the "untyped mapping" indicator is not shown anywhere so we are unable to set that for those elements that were set edited in the WSDL.
The problem now is that when calling a method where the return parameters include one of these edited elements we get the error "SOAP:1,001 CX_ST_MATCH_TYPE:XSLT exception.System expected a value for the type g" presumably because SAP is trying to de-serialise the response rather than just return the data as an XML string.
Does anyone know how to get this "untyped mapping" indicator or can anyone suggest another way to solve this mixed content issue?
TIA
GarethHi Tim
I've sort of got further in that I I can now call the web service method without error but structure returned is empty even though I know the SOAP response has data.
What I did was to go back to the WSDL and re-write the type declaration bit to fully describe the response message.
The appropriate portion of the original WSDL was;
<s:element name="getActionListResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getActionListResult">
<s:complexType mixed="true">
<s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
The response SOAP message was;
<getActionListResponse xmlns="http://webcominc.com/">
<getActionListResult>
<RESULT xmlns="">
<RESULT>
OK
</RESULT>
<REASON />
<ACTION>
View
</ACTION>
<ACTION>
Change Status
</ACTION>
</RESULT>
</getActionListResult>
</getActionListResponse>
So I re-wrote the WSDL as follows;
<s:element name="getActionListResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getActionListResult">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RESULT">
<s:complexType>
<s:sequence>
<s:element name="RESULT" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element name="REASON" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element maxOccurs="unbounded" name="ACTION" type="s:string" minOccurs="0" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
Using this new version of the WSDL I recreated the ABAP Proxy but as I said this now returns an ABAP structure that is empty. I'm new to WSDL so its very probable that my attempt at defining the response message is incorrect or maybe it is something to do with the fact that the response message has two elements called RESULT - one being the child of the other?
Regards
Gareth -
Hi,
I do not succeed in calling a web service via SSL from within a Web Dynpro application.
Current settings of my logical port:
Target Address: https://...
Authentication: HTTP authentication, basic (username/password)
I do call methods _setUser and _setPassword to set userid and password before calling method execute() of my modelclass.
On calling method execute(), I get message "Connection closed by remote host".
Any suggestions ?
Many thanks.
JorgenCan you check the following?
1) Did you install the SAP Cryptographic toolkit for Java available from service.sap.com?
2) Did you install the "Java Cryptography Extension (JCE)
Unlimited Strength Jurisdiction Policy Files 1.4.2". For Sun they are available here: http://java.sun.com/j2se/1.4.2/download.html (last item on page)
3) How is the SSL server configured? Does it require client authentication? In this case you must send a client certificate. -
How to consume Web Services form ABAP ?
Hi,
Please advise how to consume web services from ABAP Code ? is there any automatic generating proxy class in order to consume web services ?
I am using NW 7.0 SP15
Thank You and Best Regards
Fernand LesmanaHi Fernand,
chk out for this link
Consume an ABAP Webservice (WAS 620) from .Net
Send SMS to India from ABAP
working web service from ABAP
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a4433436-0301-0010-f2a9-9281ad574054
Regards
Sampath -
How to consume WEB SERVICES from ABAP ??
Q: How to consume WEB SERVICES from ABAP program??
the point here is i am using SAP release 620 and the creation of proxy is out of scenario
and also no XI. Its only through ABAP program i need to consume one web service (its a HTTPS one ),
Using cl_http_client... i tried it but i am totally confused of whats happening ???
Req some senior ppl advice on the same/approach.
any hints will suffice my way of approach...!!!
Please do put in your valuable advices..!!
Thanks in advance..!!!!Hello Srinivas,
Following is the code for calling web service:
data: client type ref to if_http_client,
host type string value 'server url',
service type string value '8080',
path type string value '/sap/public/ping',
errortext type string,
proxy_service type string,
scheme type i value 1.
call method cl_http_client=>create
exporting host = host
service = service
proxy_host = host
proxy_service = service
scheme = scheme
importing client = client
exceptions
argument_not_found = 1
internal_error = 2
plugin_not_active = 3
others = 4.
case sy-subrc.
when 0.
write 'Server reached successfully'.
when others.
write: 'sy-subrc =', sy-subrc.
endcase.
Once you got the client object you can call following methods:
"Set the requrie URL for the web service you want to call. This is not WSDL anyway!!
cl_http_utility=>set_request_uri( request = client->request
uri =' url 2 be called ').
*Then you can call send method with proper inputs for sending request to WS
CALL METHOD client->send
Then you can use receive method for getting the response
CALL METHOD client->receive
*You can get last error in case of exceptions
CALL METHOD cl_http_client=>get_last_error
*Close the client object
CALL METHOD client->close
For more information on full code refer my link in previous replay.
Thanks,
Augustin.
Edited by: Augustarian on Aug 18, 2009 1:49 PM
Maybe you are looking for
-
Is there any way you could track your Ipod touch after it gets stolen??
nope not really:/
-
Procedure for configuring SAP XI
Hi Experts can anybody help me in configuring SAPXI. And give me the requirements and produre of configuring the XI. thanks and regards,
-
How to increase MRP Standard Manager
hi hussein, ACTION PLAN ============ 1. Check the profile MRP: Snapshot Workers and make sure you have enough standard managers defined to run the process. If profile value = 5, then 5 x 2 + 6 = 16 is absolute minimum recommended for the Standard Man
-
South Jersey Outage & Lines Down
I live in an area that was hit by the storm on 6/23 which left us without power. We are still without power. The issue is one of the trees that came down in my yard yanked the cable wire from the telephone pole going into my house so when power is re
-
Standard datasource for Invoice master data
Hi , Can anybody please tell me , Is there any standard datasource for Invoice masterdata. Right now in my company there are using 0FI_AP_4 datasource as an Invoice masterdata. This Invoice masterdata is getting data from 0FI_AP_4 datasource. But I h