SOAP Sender Adaptor issue
Hi All,
In a soap adaptor we understand that SOAPAction is manatory header and it should be set as header to code i.e(postMethod.addRequestHeader("SOAPAction", "http://sap.com/xi/WebService/soap1.1");
or XMLHTTP.setRequestHeader "SOAPAction", "http://sap.com/xi/WebService/soap1.1") . Is there any way to send the SOAPAction directly input SOAP xml with out setting it by any request header.
Thanks in advance,
Venkat
Hi,
here is a thread about this topic:
What is the SOAP action.
and here a blog:
/people/thomas.jung3/blog/2005/06/05/web-services-the-case-of-the-missing-soap-action-header
Regards
Patrick
Similar Messages
-
Hi,
We are facing a peculiar issue when using SOAP sender adapter.It is a SOAP-XI-ECC scenario.
We have created WSDL using propose URL. Edited the address location in WSDL and included QoS=ExactlyOnce.
When we are testing from SOAPUI, it is making a asynchronous call, which is the requirement. But when the actual sender is sending the data using the same WSDL, it is making synchronous call. Any idea if Synchronous/Asyncronous decision/setiing is made at XI end or the portal end? And what is the solution?
Thanks,
VishalHi Shabarish,
As mentioned in my query I have already tested it from SOAPUI and it is making asynchronous call.
URL is:
[http://server/sap/xi/engine?type=entry&version=3.0&Sender.Service=BusinessService&Interface=http://namespace^MI_product_oa&QualityOfService=ExactlyOnce]
Regards,
Vishal -
Soap sender adpater issue missing sender interface and namespace in the msg
Hi Expert,
I got a problem when try to using soap sender adapter.
Here is the sceanrio:
Http web service client call ---PI soap sender adapter -some routing data-business system inbound.
Sytem information:
SAP_ABA 700 0019 SAPKA70019 Cross-Application Component
SAP_BASIS 700 0019 SAPKB70019 SAP Basis Component
PI_BASIS 2005_1_700 0019 SAPKIPYJ7J PI_BASIS 2005_1_700
ST-PI 2008_1_700 0001 SAPKITLRD1 SAP Solution Tools Plug-In
SAP_BW 700 0021 SAPKW70021 SAP NetWeaver BI 7.0
ST-A/PI 01L_BCO700 0000 - Servicetools for other App./Netweaver 04
Here is my problem. I use soapui trigger a test msg to PI system. But in the sxmb_moni, only sender service is there.
The sender interface and sender namespace is missing. And the msg has error called: :INTERFACE_REGISTRATION_ERROR.
Which means I do not have a inbound interface to process the msg.
But I suppose to redirect the msg to business system.
Here is the configuration:
reciever determination: soap sender service, soap outbound interface, soap interface namespace --> reciever business sytem.
Interface ditermination: soap sender service, soap interface --> receiver interface, receiver namespace.
Sender agreement: soap service, soap itnerface --- soap communication channel
receiver agreement, soap service---> receiver sevice, receiver interface, reciever namespace and reciever cummunication channel
define of soap sender adapter:
soap sernder, with use encoded header and use query string checked and qos as exactly once.
Anyone has any idea here? Many thanks! And most strange thing is yesterday it works and today it failed.
Please kindly help here.
Thanks a lot,
LeonHi guys,
thanks for the input.
Hi Sven,
I have input default interface and namespace.
Hi sivasakthi,
Regarding mistype, it may happen, I will do it again right away.
And the URL is generated by the wsdl toolkit in the directory.
I marked use encoded header and query string in the communication channel.
I will generate the wsdl again and test it again.
Regarding URL(endpoint of web service):
http://hostname:50000/XISOAPAdapter/MessageServlet?channel=:AGSSAL_SOAP:AGSSAL_SOAP_CC&version=3.0&Sender.Service=AGSSAL_SOAP&Interface=urn:a1s_saplivelinkcontent.service.sap.com^MI_O_AS_DELIVERNOTIFY_SOAP
Again thanks for you guys help.
Best regards,
Leon -
Hi Experts
I am working on SOAP to Proxy scenario where I have created the SOAP CC and generated the WSDL from Sender agreement.
When I try to execute from SOAP UI i get the connection refused erros though I enter the credentials of PI Server
Error getting response;java.net.Connection refused:connect
Please throw some ideas on this what are all config on the network or Basis side needs to be done
Thanks
PRHi,
Most probably a firewall actively prevents your connection attempts. You can verify this by using the TELNET operating system command from your local station. For instance in Windows, you run the Command Prompt and type: "telnet 80", where is your PI's host name.
In case you connect successfully, you need to investigate further in PI.
But if not (which most probably will be the case if you asked me), then you need to contact the network administrators and ask them to grant access to PI for your local station, or to provide you a testing environment that is inside company's internal network (depends on company's security policies).
Hope this helps,
Greg -
Web Service SOAP Sender Authentication issue
Hi Experts,
Synch Scenario: Webservice call from SOAP client-> XI -> RFC Bapi call to R/3 and back to SOAP client with data.
Soap Adapter on J2ee receives and process call ok, the error we are getting is on connection from AFW to IS; the error in the security log is:
Attempting to create outgoing ssl connection without trusted certificates ,
Warning , /System/Security/SecureConnectionFactory ,
com.sap.security.core.server.https.SecureConnectionFactory ,
Any tips where to look? We have enabled Principal Propagation via assertion tickets following SAP document to carry user id to R3 for authority check when Bapi runs.
IS self signed cert has been imported to J2ee Ticketkeystore and J2ee cert has been imported to IS Strust/StrustSOO2 store adn added to ACK list. WE are using Http between J2ee and IS...hwoever from the erroe message it looks like it is evaluatiing https library com.sap.security.core.server.https.SecureConnectionFactory ?
Thanks in advance for any help.
Margaretdid u instsall CA in ur visual admin for https/ssl t owork
-
SOAP Sender Adpater Authentication issue with Siebel
Hello PI experts,
I have developed scenario in which,
SAP PI version: 7.31
Sender : Siebel
Sender Adapter: SOAP
Receiver: SAP ECC
Receiver Adapter: Proxy
Scenario has been configured and wsdl is generated properly. I tested scenario using SOAP UI which gave me proper response.
But when scenario has been tested through Siebel UI, its giving Authorization 401 error.
HTTP/1.1 401 Unauthorized
server: SAP NetWeaver Application Server 7.20 / AS Java 7.31
date: Wed, 20 Aug 2014 05:54:58 GMT
We have tried following approaches:
1. Appending Credentials in URL
2. Siebel team tried sending credentials in their workflow
Referred blog:
http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/03/07/a-closer-look-at-soap-sender-authentication
But in all cases we got same error.
Also, is there any possibility to turn of sender authentication for SOAP adapter ?. I tried approach of removing tags in web.xml but that also dint work.
Please suggest some way
Thanks,
Gaurav KhandelwalHi Gaurav,
Can you please check with your basis is that firewall will be open to send data through soap to PI.
Thanks,
Sreenivas -
Use of variable header XHeaderName1 in SOAP sender adapter
Hi all,
I have a doubt regarding the use of adapter-specific attributes in SOAP sender adapter. In specific:
the SOAP client should be able to pass a variable with the SOAP request (XHeaderName1 header variable) and this should be available in mapping (Dynamic configuration)
I've already checked the [help page|http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm] but it seems I'm doing something wrong.
I tried with those settings in SOAP adapter configuration:
Keep headers checked
XHeaderName1 = Test
I try to call the SOAP adapters in the following 2 ways, but none works (the value is not available in message mapping with Dynamic configuration)
1. Pass "Test" value xxxx in SOAP Header as a tag
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
*<Test>xxxx</Test>*
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2. Pass "Test" value xxxx in SOAP URL
http://host:50000/XISOAPAdapter/MessageServlet?channel=p:s:c&version=3.0&Sender.Service=...&Interface=...&Test=xxxx
Could anyone give me a hint about how to pass those values in the SOAP call and eventually the correct config. of SOAP sender ?
Thanks a lot,
ManuelHi Manuel,
Could you give a bit more detail on how you handled the SOAP message yourself.
I have a similar issue. I am consuming a non SAP Web Service which requires a non-standard token element to be passed back. I have created a an RFC sender to SOAP reciever scenario which works fine for the inital logon and returns the token it expects in the follow up messages.
At present I'm at a loss so your help would be much appreciated. We have got round the immediate issue by creating and sending the SOAP message directly from SAP WAS.
Could we use the XI Adapter and ABAP proxy in a similar way?
Thanks,
Tim J. -
Error while posting messages to SOAP sender adapter SP 13
Hi Friends,
I have configured a SOAP sender adapter in XI 3.0 and is using the URL
http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to post the messages. When I open the URL in the browser I am getting the error.
Message Servlet is in Status ERROR
Status information:
Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#5 $) bound to /MessageServlet
Classname ModuleProcessor: null
Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
Lookupname for remoteModuleProcessorLookupName: null
ModuleProcessorClass not instantiated
ModuleProcessorLocal not instantiated
ModuleProcessorRemote not instantiated
But when I test the URL http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to check the communication channel I am getting the right response as below.
<?xml version="1.0" ?>
<http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_EBTR_WEBSERVICE:CC_EBTR_WEBSERVICE_SOAP> <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
<channelID>e7ac884596ea3d088cbfd8b434f942f2</channelID>
<name>CC_WEBSERVICE_SOAP</name>
<type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
<direction>INBOUND</direction>
<party />
<service>BS_WEBSERVICE</service>
</s:ChannelInfo
I used the http capture to debug, In the 1st case though I am getting "Message Servlet in status error" I am seeing a 200 OK code in the http capture tool. When the message is posted from .net client proxy we are getting a 500 internal server error.
Am not sure what causes the error ? I saw two notes in SDN related to SOAP - J2EE SP13. We are in SP13. Is this the issue ? Wanted to know your opinion before applying the notes.
Thanks & Regards,
MathewABAP & Java stack was on different SP levels.
-
R/3 to PI using RFC Sender Adaptor as Asynchronous scenario
Hello Folks,
RFC Adp. SOAP Adp.
ECC-->XI--
>ARIBA
I am new to PI and doing a scenario mention above. we are using RFC sender adaptor to send the data to XI in asynchronous process.
I have config the Sender comm. channel as below.
Appl. Server(Gateway): My Ecc Server host name
Appl. Server Service (Gateway) : My Ecc server
Program Id : XYZ.
Note : while creating the the Service interface and Message mapping and Operation mapping I am using the RFCname.respone message type is that ok in asynchronous process?
And then I went to ECC in Tcode SM59 and created a RFC destination of type TCP/IP
and put the same information as given above and test the connection which is working fine.
I have created a FM at ECC end make it remote enabled. and calling the FM in back ground task using destination in a Work flow code.
When I run the Work flow code It ran successfully but i went to XI side there is no msg in the SXMB_MONI.
Then i went to the component monitoring->Adatptor engine>Comm. channnel Monitoring and found that under my RFC sender comm. channel there is an error msg saying
Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: senderAgreement not found: lookup of binding via CPA-cache failed for AdapterType RFC, AdapterNS http://sap.com/xi/XI/System, direction INBOUND, fromParty '', fromService 'BS_ECC', toParty '', toService '', interface 'YFPS_MM_I_0242_PO_APPROVAL_OUT', NS 'urn:sap-com:document:sap:rfc:functions' for channel 'CC_0242_PO_Approval_RFC_Sender' (channelId 19585252a58335ee871e4c3a771b027f)
Where as i have checked that in the sxi_cache t-code there is a sender agreement for my scenario under the sender agreement tab.
Please Help me in this to resolve the above error. I am totally stuck at this point.I would really appreciate a quick answer.Appl. Server Service (Gateway) : My Ecc server
Confused with this statement.....
it should have the format sapgwXX ....
XX is the system number which comes from the j2ee port mentioned in the XI homepage URL
http://<hostName>:5XX00:rep/start/index.jsp
How to configure sender RFC adapter...check this blog:
https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1438
Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException:
senderAgreement not found:
Sender Agreement is Expected in this communication which does not seem to be present in ID....create sender agreement using the RFC communication channel....
Regards,
Abhishek.
Edited by: abhishek salvi on May 2, 2009 1:24 AM -
SAP PI 7.1 SOAP sender 500 internal server error
Hello!
We would like to receive messages from our business partner. As the partner sends EDIFACT we have to use the conversion from EDIFACT-text to EDIFACT-xml. That's why we have to use SOAP instead of plain HTTP.
As the partner already sent messages over X.400 we just added a SOAP communication channel and used this channel in the sender agreement instead of the X.400 communication channel.
We sent the following link to the customer:
http://<server>:<j2ee port>/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<SOAP sender communication channel>
One question: is the <service> the communication component used for the partner?
At the moment the partner receives a 500 error message. Due to our network partner the message reaches the PI system.
Due to the information I found that also a message parsing error can cause a 500 error message I would like to add the processing sequence:
Does anyone have an idea how to solve this problem?
Thanks a lot!
Regards
ChristianHi Christian
You can refer to the following SAP Library link on how to configure the SOAP sender.
Configuring the Sender SOAP Adapter - Configuring the SOAP Adapter in the Integration Directory/PCK - SAP Library
For the URL, the <service> is the Communication Component that the SOAP channel belongs to.
Using the example below, the value would be P_B2B_:BC_:CC_S_SOAP_
Actually SAP recommends a new alternative for the URL. If you scroll right to the end of the library link above.
You have configured the sender SOAP adapter. You can trigger a call to the sender SOAP adapter using either of the following URLs. However, SAP recommends you to use the second option.
http://hostname:portname/XISOAPAdapter/MessageServlet?channel=partyname:service name:channelnameIf you have not created a party, enter channel=servicename:channelname.
http://hostname:port name/XISOAPAdapter/MessageServlet?senderParty=name of the sender party<&senderService>=name of the sender service<&interface>=name of the interface<&receiverParty>=name of the receiver party<&receiverService>=name of the receiver service<&interfaceNamespace>=name of the interface namespace
You can get this by generating the WSDL from the Sender Agreement object (Sender Agreement -> Display WSDL). The generated URL will be at the last section of the WSDL.
Also, please note that modules cannot be added to the SOAP sender adapter, also mentioned in the link.
You cannot add your own modules to this adapter.
An alternative would be to receive the EDIFACT Flat file as it is, and write it to at temporary File/FTP location. Then have a second channel pick it up, you can configure the second channel with module to convert it to EDIFACT XML.
Lastly, regarding the issue about the partner getting HTTP 500 error. Please check if you are able to see any error logs in the communication channel. It might give you some pointers as to what might be wrong - invalid sender agreement, etc, etc.
Rgds
Eng Swee -
SOAP sender adapter and XI adapter reusablity
Hi,
We are having good amount of interfaces using SOAP sender and XI Adapters (WS to Proxy scenarios).
My question is :
we can make reuse of Sender SOAP and Rcvr XI adapters in all scenarios.
If we reuse these adapters in all our interfaces what are the limitations and any problems we may face in future?
Replies will be highly helpful.
Thanks
Kishore
Edited by: kishore kumar on Jan 21, 2010 7:23 PMSOAP sender depends on the Sender Message Interface and Namespace (in versions lower than SAP PI7.1) so if your scenarios satisfy these parameters then you can (rather should) re-use the channels.
Similarly for the PROXY receiver channel....if the proxy is being hosted on one particular receiver SAP ECC system then the details in all the channels that you create will be the same and wont be recommended....hence even this can be re-used.
There is no issue in re-using the channels....just that you should closely monitor these channels to ensure that they do not stop/ fail causing all the involved interfaces to stuck.
Regards,
Abhishek. -
Using custom http headers in SOAP sender adapter
Hi,
my problem is exactly the same as reported [here|Re: SOAP Sender - Extract Header Values;] and [here|Variable Transport Binding - Soap Sender;
Basically I'd like to send through the soap sender adapter some custom http headers. I check the necessary options in the advanced tab (set adapter-specific message attributes and variable transport binding), and in the variable header one I put x-StoreCode, which is the same http header I send to PI.
But I won't see anything in the dynamic configuration section when the message is persisted in PI.
Very surprised that I've seen this issue is a common problem others have faced before without success.
Thanks!Hi Michal,
the extra info I'm trying to send separated from the message is an http header, not part of the query string.
If I incorporate the extra info as a parameter to the query string like this, for example:
http://host:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true
Then I can see the value in the dynamic configuration section:
<SAP:Record namespace="http://sap.com/xi/XI/System/SOAP" name="SQueryString">senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true</SAP:Record>
But what I'm trying to do shoould be possible, according to sap help:
http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm (section Define Adapter-Specific Message Attributes) -
SOAP Sender replacing file sender
Hi All,
I had a working file -> RFC scenario.
The sending system was upgraded and it can send WS now.
I created a SOAP sender and changed the sender agreement accordingly.
I can see the message in the SXNB_MONI but it is stuck in the "Message Split According to Receiver List" section with no error.
The payload looks ok.
The status of the message stays an empty circle, it doesn't turn into any of the signs.
in the adapter log I get the following error:
com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Internal Server Error
any ideas?Couple of suggestions... Dont know how do you test??
a) Create WSDL and import in soap UI or xmlspy and test it and see what do you get? Still looks like some issue.
b) Go to ID and do configuration test. I want you to make sure visit all the ID objects and see the changes made are sync with all ID objects.
Check this thread
Queue stopped in sxmb_moni
Hope that helps -
How to use SOAP sender adapter
Hi all
i have configured the SOAP sender adapter. Now my 3rd party needs to send me a soap message.
I have checked that the status at the following URL is OK:
http://host:port/XISOAPAdapter/MessageServlet?channel=:MXII_Web_Service:SOAP_MXII_Sender.
This is fine, however
I am unsure of the following:
1. Does XI make a wsdl available to the 3rd party?
2. Where does my 3rd party send the soap message to?
3. Is the SOAP message sent via a query string?
4. Do I need to create a web service?
Thanks for all your help in advance
ClintonHi Moorthy
Thanks for your answer.
The problem was solved, we used .Net to write a webservice to our wsdl.
I have now another problem.... When the message comes into XI it shows that no receiver found(RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC). If I just test the scenario with a file adpter as Sender, and Receiver it is fine, but when using the SOAP adapter as Sender, it gives me the no receiver found message.
Any help with this issue will be appreciated.
Thanks again
Clinton -
SSL / X.509 In SOAP Sender/Receiver Adapter
Hi Friends,
We have few third party Java based systems which need to integrate with SAP PI7.1
For this we are using
SOAP Sender from Third PartyTo PI
SOAP Receiver From Pi To Third Party Systems
The Customer Wants to implement SSL.X>509 certificates for encryption and decryption. as one of the option.
we are Facing few issues like.
I am assuming each of the source system webservice calls will have
to use a username/password to authenticate with the PI system
a. Will this use 'basic authentication', ie., credentials sent over as
part of the HTTP header field ?
i.
Assuming we use SSL for transport level security - this is still not secure as the credentials are not encrypted
ii. Is there a way to send in encrypted credentials and for the PI layer to decrypt the same, validate and process the request ?
b. Should we consider using a single sign-on mechanism ?
c Should we consider using X.509 digital certificates ?
i. This would require that the X.509 certs are maintained in the Source & PI webserver Java key stores
d. Should we also consider digitally signing the payload ?
i. This requires using an appropriate hashing algorithm such as SHA-1 or MD5
SOAP Sender /receievr Adapter has few properties not specific to them.How to Acheive this.
Regards
Chandra DasariHi Chandra,
You may try to implement this using the AXIS framework of the SOAP adapter. This provides functionality for handling of X.509 encryption and decryption.
You can generate/get the digital certificate and use it for both transport level as well as message level security. You would not require any additional encoding apart from this.
Coming to your queries:
Q - I am assuming each of the source system web service calls will have to use a username/password to authenticate with the PI system
A - If you are using a certificate, then they can call XI using this certificate. You can share your public certificate with each of the parties.
Q. Will this use 'basic authentication', ie., credentials sent over as part of the HTTP header field?
A - Depends...if you are using basic authentication, then it will not be via X.509. It will be the normal process. These two are two different things.
Q. Assuming we use SSL for transport level security - this is still not secure as the credentials are not encrypted
A - This problem is resolved if you are using digital certificates.
Q. Is there a way to send in encrypted credentials and for the PI layer to decrypt the same, validate and process the request?
A - Yes. It is possible. But then you will have to implement encryption decryption logic at both the ends separately if you are not using certificates.
Q. Should we consider using a single sign-on mechanism?
A - Is your third party part of your landscape? if not then you might want to check and confirm this approach with your security adviser.
Q Should we consider using X.509 digital certificates?
A - Yes...This would resolve most of your problems.
Q. This would require that the X.509 certs are maintained in the Source & PI web server Java key stores
A - Yes.
Q. Should we also consider digitally signing the payload?
A - If you require message level encryption along with transport layer.
Q. This requires using an appropriate hashing algorithm such as SHA-1 or MD5. SOAP Sender /receiver Adapter has few properties not specific to them.How to achieve this.
A - You can provide this option while generating the certificate itself.
Please let me know if this helps.
Cheers,
Sarath.
Maybe you are looking for
-
Wrapped: Unable to load class "com.cache.DBCacheStore"
Hi, I was trying out a sample application for using DBCacheStore and getting the following error... (Wrapped: Unable to load class "com.cache.DBCacheStore" using sun.misc.Launc her$AppClassLoader@13f5d07 <class-scheme> <class-name>com.cache.DBCacheSt
-
How can I write a script to regularly transfer a file between two iMacs on a network?
I keep all our family photo files (iPhoto Library) on my wife's iMac. Because we can't share the library simultaneously, I want to automate the copying of the library from her iMac to mine say, once a week in the wee hours (it's a big file). Both of
-
Hi,All How display header fields in QPLD By Firos.C
-
On Coldfusion Builder 2, I see these tabs are available when I create a new page, but not on Coldfusion Builder 3. What should I do to show them on CFB 3?
-
IWeb FTP sites from Power Mac to MackBook Pro
How do I move Powe Mac/iWeb 9 FTP sites to a MacBook Pro/iWeb 11?