on 11-02-2007 9:13 AM
Hello all,
I have the following requirement:
A stored procedure should return status information on a database operation to the SOAP Sender Channel and writing status data into a Message Interface (status code, IDoc Number) This data should then be mapped to a SYSTAT IDoc and sent to an SAP System.
I have already created the Sender Interface (MI_SOAP_SENDER) and a SOAP Sender Adapter:
1. Taken the GetStockQuote as example for a SOAP Call from a stored procedure how should I replace the values to deliver the fields to the message interface SOAP_SENDER (I have already added MI_SOAP_SENDER)?
T_CMD_SOAP := soap_api.new_request(p_method => 'ns1:getQuote',
p_namespace => 'xmlns:ns1="urn:xmethods-delayed-quotes"');
soap_api.add_parameter(p_request => MI_CMD_SOAP,
p_name => 'returnCode',
p_type => 'xsd:string',
p_value => statuscode);
l_response := soap_api.invoke(p_request => MT_CMD_SOAP,
p_url => server name:52400/XISOAPAdapter/MessageServlet?channel=:CMD_D:CMD_SOAP_SENDER',
p_action => 'urn:xmethods-delayed-quotes#getQuote');
l_price := soap_api.get_return_value(p_response => l_response,
p_name => 'Result',
p_namespace => 'xmlns:ns1="urn:xmethods-delayed-quotes"');
2. When I want to create a WebService from Integration Directory and press "Finish" I see that the "red wheel" is runnin but nothing happens even after 5 minutes. What could be the reason for this?
Thank you for your comments and help for this scenario
Florian,
I don't understand: A stored procedure should return the information to SOAP sender channel??
How is this possible?
There must be SOAP client on the sender side..
Peter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
maybe my request was a little bit misleading.
I wanted to use the soap_api ( with methods new_request, add_parameter, soap_api.invoke ...) from Oracle side.
The question is what service should be invoked in case of an asynchronous soap --> IDoc scenario.
Requirement is just to deliver some parameters to the sender messsage interface, map them into a SYSTAT IDoc and send it.
Floarian,
when you want to call XI as Web Service server, you must call:
a, MessageServlet of AE - for SOAP sender adapter
b, if no attachments are used, you can call Integration Engine directly..
SO:
create async outbound interface first which uses the data structure, which will be used as SOAP request
then you can make:
a, call to AE like:
http://<ae-host>:<port>/XISOAPAdapter/MessageServlet?channel=<party>:<bs>:<communication_channel>;
ex:
http://crmides:50000/XISOAPAdapter/MessageServlet?channel=:XIMAC_XID:CC_Cutomer_Detail_For_SAOP
or do direct call to IE:
see <a href="/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine target="d">this</a>
Peter
Florian,
of course there is a service to be invoked.. Difference between async and sync outbound interface using SOAP is, that in async you get empty soap response..
I don't know how oracle's soap invoke works, so I can't help you.. Normally you create WSDL on XI which is imported to SOAP client and this WSDL is in client used to send appriopriate SOAP request to sender..
Can you import WSDL into Oracle?
Peter
Hello,
as far as I know I cannot import a WSDL into oracle but have to add the parameters manually (WSDL creation does not work either on SAP XI side for me as after clicking the "finish" button the WSDL creation procedure is running but without any result).
In Oracle there is one method api.invoke that takes the
- request message
- URL
- action (service to invoke)
as input parameter
as request message I would include the message interface and as URL you proposed but I do not know what kind of action to specifiy in the asynchronous scenario.
What kind of action is normally specified if I use the "define web service.." wizard in the Integration Directory?
As said, this wizard does not work in my case
l_response := soap_api.invoke(p_request => l_request,
p_url => 'http://64.124.140.30:9090/soap',
p_action => 'urn:xmethods-delayed-quotes#getQuote');
Hello,
yes, I think the critical point is that I cannot create the WSDL which would be important as I would see all necessary parameters in there.
I have created a simple outbound MI which is also correctly activated as well as the Sender SOAP channel.
However the "define webservice" wizard does not work. It just runs without giving back any error message. I really do not know what is happening there or what else I could try to do......
Florian, try this:
Action: http://sap.com/xi/WebService/soap1.1
it is soapAction generated from my WSDL when I tried it in Define Web Service tool.
Peter
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.