Using the SOAP inbound channel of the Integration Engine

Hi,
I am following the blog of Stefan Grube.
/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
However I have difficulties.
Is this blog still relevant for SAP PI7.10?
I have set this up as a test for a scenario I have.
Current Scenario NOT using your Blog and working perfectly.
SandBox PI       Development PI
File > SOAP  >   SOAP > ABAP Proxy
What I am attempting now is.
SandBox PI      Development PI
File > SOAP  >  Integration Engine > ABAP Proxy
I am using our SAP PI Sandbox to push a SOAP message using a Receiver SOAP adapter channel.
Transport Protocol: u201CHTTPu201D
Message Protocol: u201CSOAPu201D
Conversion Parameters:      u201CDo not Use SOAP Envelopeu201D
Target URL: u201Chttp://<Integratio Server Host Development PI>:<Port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=FigmentD&Interface=urn:figment-co-za:fleetcard:efuel_50ppm^oa_Msg50ppm&QualityOfService=ExactlyOnce&sap-user=<PIAPPLUSER>&sap-password=<PASSWORD>u201D
SOAP Action: u201Chttp://sap.com/xi/WebService/soap1.1u201D
I am however getting the following error on the SandBox Pi AE.
u201CSOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 302 MOVED TEMPORARILYu201D
Please can you assist in this matter.
Regards
Willie Hugo

Hi williem,
Stefans weblog works great. The error you are getting is some wrong data you are sending. Please verify the data you are sending is correct. Also check this threads for the same errror:
ADAPTER.HTTP_EXCEPTION / HTTP 302 Moved Temporarily
Re: SOAP client receives HTTP 302 Found
Re: Synchronous RFC-XI-Web Service with no request method
HTTP Error (302) Found when calling Web Service on XI
Regards,
---Satish

Similar Messages

  • How to re-use one SOAP Sender Channel for two different messages?

    Hi!
    I have an XI Proxy to SOAP Sync Scenario. 5 messages uses only 2 channels - cc_XI_Sender and cc_SOAP_Receiver. All messages comes from one Sender Channel and goes to one Receiver channel, and it works fine.
    When I make the same for SOAP to XI Proxy Sync Scenario, I've got a problem. For example I have 2 different messages (mi_so_MSG_ONE and mi_so_MSG_TWO), so it works, if I had a two different sender channels (cc_SOAP_R1 and cc_SOAP_R2).
    If I set the same Sender Channel in both Sender Agreements (cc_SOAP_R1), only one message (mi_so_MSG_ONE) goes without errors. When I send a second message (mi_so_MSG_TWO), in SXMB_MONI this message comes from Business System (BS_TEST) as message type one (mi_so_MSG_ONE), and then in stage of transformation in Interface Determination goes to message mapping program for other kind of messages (MM_MSG_ONE_to_XI_PROXY). And then - error in message mapping.
    I try many URLs for both messages:
    1) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=&Interface=
    2) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=*
    3) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=...MyNameSpace...mi_so_MSG_TWO
    Message in payload:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Inbound Message   -->
    <MSG_TWO xmlns="urn:xxx:yyy:MyNameSpace" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">... some fields... </MSG_TWO>
    But in SOAP Header I see that is NOT second message!
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    < !--  Inbound Message   -->
    <SAP:Main>
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>93233F70-3E2F-11DF-8CD3-00237D301CD6</SAP:MessageId>
      <SAP:TimeSent>2010-04-02T08:13:09Z</SAP:TimeSent>
      <SAP:Sender>
        <SAP:Service>BS_TEST</SAP:Service>
        <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Sender>
      <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Main>
    Is it correct that many kinds of messages cannot goes through one Sender Channel ? If not... How can I reuse one SOAP Sender Channel for both this messages?
    Thanks for helping.

    Thanks for answers!
    It means a webservice application will be deployed and exposed in PI using the associated Message Interface and its namespace information in the SOAP Sender channel.
    It means only one Sender Channel per one pair of names (name of Message Interface and name of namespace). And it will fail if I change something. And question is: why URL for sending SOAP message contains parameter "Interface"?
    "backward compatibility" or "for future use only"?
    Nothing happens when I change this parameter, seems that name of Interface comes from first of founded Sender Agreements.
    If the structures are the same
    No. Structures are different.
    Making one structure per all SOAP incoming messages looks workable, but... looks strange (in fact I have a lot of SOAP messages, more than 100 Sender channels).
    I found an information, that I can use one Sender channel per many messages with different structures only if I make this messages like different Operations in one Service Interface (in PI 7.1).
    But in this case in list of messages in SXMB_MONI I will see only a one name of Service Interface for all my messages and it's not so comfortably for supporting: to take a name of operation that fails I need to goes inside.
    In older version of XI (prior 7.1) using one sender channel per many messages allowed without any hints.

  • How to control the location of the SOAP:address element in the WSDL

    I have an EJB exposed as webservice in WebLogic 10.3. Further, the EJB has been annotated with the WebService annotation as in:
    @WebService(name = "S_CALCULATORname", serviceName = "S_CALCULATORserviceName",
    targetNamespace = "http://tempuri.org/SCalculator/")
    @Stateless(name = "S_CALCULATOR")
    public class S_CALCULATOR_Beanxxxxxx
    The location attribute of the SOAP:address element in the WSDL document generated by the Test Client facility is of the form
    http://host:port/ejb-java-class-name/service-name-attribute-value as in:
    <soap:address location="http://123.4.5.678:1234/S_CALCULATOR_Beanxxxxxx/S_CALCULATORserviceName" />
    Is there a way to control the value of the context root portion of the URL, ejb-java-class-name in this case, either using annotations or deployment descriptor files?
    thanks in advance for any replies,
    octavio

    Hi,
    While building the WebService Application you can use the following ANT task...
    <target name="build-service4">
    <jwsc
    srcdir="src"
    destdir="output/TestEar">
    <jws file="examples/webservices/jwsc/TestServiceImpl.java">
    <WLHttpTransport contextPath ="TestContext" serviceUri="TestServiceUri" portName="TestServicePortHTTP"/>
    </jws>
    </jwsc>
    </target>
    Or if you are developing JAXRPC EJB based WebService in that case you can even define the Context root using *@weblogic.jws.WLHttpTransport* annotation....
    @WLHttpTransport(contextPath="simple", serviceUri="SimpleService", portName="SimpleServicePort")
    Thanks
    Jay SenSharma
    http://jaysensharma.wordpress.com (WebLogic Wonders Are Here)
    Edited by: Jay SenSharma on Feb 4, 2010 10:22 PM

  • The SOAP action specified on the message, '', does not match the HTTP SOAP

    Error Message: " The SOAP action specified on the message, '', does not match the HTTP SOAP Action"
    we need establish webservice link with our vendors, they are on windows platform and we are on java.
    they gave us this URL:
    http://mesadstage.webhop.net/MesadSCService/EBOrderService.svc?wsdl
    I create a project in Netbeans, then add Web Service Client, put the URL in, after the some configuration and source code generation, i put these codes in the public void main(String[]), it always returned the error msg:
    Error Message: "The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/IEBOrderService/GetData'. "
    what was wrong? any thing that I din configured? or it caused by different platforms???
    h2. error message (stack trace)
    javax.xml.ws.soap.SOAPFaultException: The SOAP action specified on the message, '', does not match the HTTP SOAP Action, http://tempuri.org/IEBOrderService/GetData'.
    at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createSystemException(MethodMarshallerUtils.java:1326)
    at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:1052)
    at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller.demarshalFaultResponse(DocLitWrappedMethodMarshaller.java:659)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:577)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:520)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:386)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:171)
    at $Proxy11.getData(Unknown Source)
    at javaapplication7.Main.a(Main.java:28)
    at javaapplication7.Main.main(Main.java:43)
    h2. source code:
    try {
    org.tempuri.EBOrderService service = new org.tempuri.EBOrderService();
    org.tempuri.IEBOrderService port = service.getWSHttpBindingIEBOrderService();
    java.lang.Integer value = Integer.valueOf(0);
    java.lang.String result = port.getData(value);
    System.out.println("Result = " + result);
    } catch (Exception ex) {
    System.out.println("Error = " + ex.getMessage());
    ex.printStackTrace();
    }

    Try to rebuild the index file of the troubled folder.
    Right-click the folder - Properties - Repair Folder

  • How to send the SOAP Fault Message to the Web Service Consumer

    Hi,
    I have configured SAOP  to Proxy Syncronous Scenario in PI 7.1 and using XML Validation  in Adapter Engine to Validate the Structure of the Message Payload.The scenario is working fine.When some of the Filed's Length  increses the maxLength specified in the Data Type . We are getting the Following error.
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
         at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1164)
    My question is How does the Web Service Consumer can handle this Soap Server Error in the SOAP Fault.Or How can we provide a specific information like  'The value '123456789' of element 'CompanyCode' is not valid.It exceeds the Maximum Length'.
    I read this /people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client blog .Where it is mentioned that the Web Service Consumer can handle while calling the Web Service.Is there any other solution?
    Kindly appreciate your help.

    Thank You Stefan for your kind reply.
    So  you mean to say if we use the XML Validation .we cannot provide proper error information to the calling Web Service Consumer .And While calling a Web Service they cannot Extract the Exact Message in the Text Filed(<text>) present under the Detail Element (<detail>) in the <SOAP:Fault> node. as
    <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.**
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
    That is why we have to use the Fault messages and  Field Lengths has to be Validated  in the Server proxy.
    Please Correct me If I am wrong.

  • Sending the SOAP request back in the SOAP response

    Hi,
    I have a requirement in which I need to update a database from the information I receive in a SOAP request. Now my database will respond back with the number of records that are updated. Now I need to send back a SOAP response which should have the details that I received in the SOAP request.
    Can anyone help me on how to send the SOAP request details back in the SOAP response again? I don't want to use a BPM to do this. Also I know that I can use a select statement to get the records that are updated in my response mapping program. Any options other than these?
    - Ram

    Hi Stish,
      I do have exactly the same need, just with the difference that I'm sendind data from JDBC as sender and RFC as receiver, the RFC receive an ID fot example and return some data as a response and I want to update the DB with that response but I dont know how to merge the ID from the request and the data from the response in order to send it back and update the DB. I'm willing to do it with BPM but I don't know how to keep the request and the response and then merge them into the new message that will be sent to the JDBC, can you give me some specific steps?
    Thanks in advance.
    Gustavo Balboa.

  • Traping the SOAP message before making the call.

    We are using the axis for Web services, it works fine,
    Here is my question, before the call go out to third party services, I need to log the SOAP message into our logging system. How would I trap the message?
    Thanks in advance.
    -APK.

    I tried to achieve that using the following:
    http://e-docs.bea.com/wls/docs81/webserv/interceptors.html#1072668
    But it doesn't seem to work. try it!!
    -k

  • Interoperability between Microsoft WSE 2.0 using a SOAP TCP Channel

    Hi,
    Does Oracle SOA Suite support soap/tcp web services? We have a need to be able to call a web services end point from a Microsoft client using soap/tcp. Is that supported?
    Thanks.

    TCP Web Services are not included out of the box in the App Server implementation. However you can write a WSIF provider that sends and receive message using TCP as a transport. Oracle App Server completely supports WSIF

  • SOAP adapter on Integration Engine

    Hi,
    I recall something with a webservice/soap adapter which exists on the Integration Engine insted of the adapter engine.
    I cannot find any information about this service. Can you point me to a site with this information.
    /daniel

    Here is the information
    /people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
    Regards,
    Prateek

  • Error in SOAP Receiver channel

    Hi,
    We are working on IDOC to SOAP Scenario (Connecting to third party).
    We have configured the SOAP Receiver channel with the Target URL and teh corresponding SOAP Action.
    But the SOAP Receiver channel gives the error while processing and sends back the following error message in log :
    "Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to process request. ---> Value cannot be null. Parameter name: s."
    Payload seems to look fine in XI and SAP.
    Any help on this ?
    Thanks and regards,
    Vikas

    Hi Vikas,
                Copy the payload from SXMB_MONI  after mapping and check with SOAPGUI or Altova, if it working fine then your payload is good. You can use the WSDL to ganarate and send independent soap request from these tools.
    Besides this IDOC is Asyc, you need to use RequestResponseBean and ResponseOneWayBean to get the response from SOAP.  Check the following  and try to simulate it.
    https://wiki.sdn.sap.com/wiki/display/XI/File-RFC-File%28Without+BPM%29
    Server was unable to process request. ---> Value cannot be null. Parameter name: s."
    The error specifies that the request has null value, check the parameter specified in the error message and make sure that is not null while you are sending the request.
    Regards,
    Prasanna

  • How do I get the number of channels available in DIAdem using VBScript?

    I want to know the last number of the available channels in DIAdem-DATA using VBScript. If there are not enough channels, I'll allocate new ones using ChnAlloc.
    For the first run of the script, I do know there're 60 channels, but in a second run I might have created the additional channels already (if the script didn't fail) and I don't want to do the allocation a second time. So I need to know the number of the last channel. Unfortunatly I didn't find any function in the help providing this number.
    Thanks,
    Carsten

    Hi Carsten,
    I have a few thoughts for you plus some useful code. Bear in mind that you can change the number of static DIAdem channels (by default 60 of length 8192) as well as the number of available dynamic channels (by default 1000) to whatever you want. These memory matrix settings get stored in your Desktop.DDD file (DIAdem's ini file), so that each time you launch DIAdem it will create the channels according to your specifications. The maximum number of channels of all types that DIAdem can have is 65536 (2^16).
    Secondly, don't forget that you can address channels by name or by number. If the channels are named distinctly, addressing channels by name is the most reliable method. If you use ChnAlloc() to allocate new channels, and you want to address those new channels by channel number, you MUST use CNo() immediately after creating the new channel in order to find out that channel's number. It will not always be the next available channel number, because the next available channel may not be long enough. ChnAlloc() will latch on to an existing channel if it can find one long enough, and it will create new channels only if it finds none of the existing channels suitable.
    In the VBScript I attached to this email you will find all the DIAdem variables which contain information about the maximum available channels and the maximum length of each channel (not its currently set length). Note that DIAdem's data matrix is divided into 8 submatrices, each with 2 GBytes of addressable memory (2^31 Bytes). Each submatrix can have multiple static channels assigned to it. DIAdem's dynamic channels come first from DIAdem's application RAM (Windows allocates no more than 2 GBytes per application) then from the Windows swap file for its virtual memory
    Now, in addition to the variables which tell you the maximum possible channel count and lengths, another very useful variable is "GlobUsedChn", which returns the highest channel number currently filled with some amount of data.
    Ask if you have additional questions,
    Brad Turpin
    NI
    Attachments:
    View_DataMatrix.VBS ‏2 KB

  • Using the Soap Encoding schema within an XSD

    Hi,
    I am trying to create some XSDs based on the types from the auto-generated WSDLs in JDeveloper. However, I find that while the Array type works fine in the WSDL, I cannot seem to get it validate correctly in my XML schemas, possibly due to some namespace error.
    The current code in the XSD is given as:
    <xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
    <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
    <xsd:complexType name="VesselQueryResult">
    <xsd:all>
    <xsd:element name="vesselNames" type="ArrayOfjava_lang_String"/>
    </xsd:all>
    </xsd:complexType>
    <xsd:complexType name="ArrayOfjava_lang_String">
    <xsd:complexContent>
    <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    When I tried to add this XSD using as a user schema, however, below validation error is being displayed:
    Error: Line 0, Column 0: Invalid reference: 'http://schemas.xmlsoap.org/soap/encoding/:Array'
    I tried to qualify the SOAP-ENC namespace with the schemaLocation, but another error was displayed:
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"
    schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
    oracle.xml.parser.schema.XSDException: Server returned HTTP response code: 407 for URL: http://schemas.xmlsoap.org/soap/encoding/
    I am wondering how JDeveloper supports the SOAP-ENC schema for use in XSDs. Do I need to add the Soap Encoding schema as a user schema, or is there a way I might reference it similar to the way that auto-generated WSDLs seem to deal with it? Any information regarding this would be greatly appreciated.
    Thank you and regards.

    I deleted the two lines of coding below:
    utl_http.set_proxy('www-proxy', NULL);
    utl_http.set_persistent_conn_support(TRUE);
    and then I set the utl_http.set_persistent_conn_support() to False to get that error message. Seems like the website in question doesnt have the webservice anymore because the error has to do with the parsing of the WSDL file.... which probrably doesnt exist.
    Im just trying to get a working example of using a third party webservice to return a value to be displayed in the database.... know of any good examples? The ones im using seem to be pretty out dated... the barnes and nobles example just times out....

  • Missing soap action in the soap axis receiver adapter ?

    Hi Guys,
    I could not find the soap action field in the soap receiver adapter and i followed the OSS note
    Note 1054986 - SOAP (Axis) receiver adapter's SOAPAction field missing
    Please apply the following patch and use the handler parameter defaultSOAPAction for the XI30OutboundHandler handler in the request chain. This handler parameter can be configured as a module parameter for the HandlerBean module associated with this handler. It is noted that this module parameter takes precedence over the channel parameter for SOAPAction if this field is available.
    For SP12
    XI ADAPTER FRAMEWORK CORE 7.0
    Support Package 12, Patch Level 1 (SAPXIAFC12P_1.SCA)
    we are on SP15 so i think the option should be available ?
    Do i need to add this parameter in the Module Configuration ?
    Moduel Key : ?
    Parameter Name: handler.type ---> is this right
    Parameter Value ---> ?
    we need to validate the user id and pw on IIS for NTLM authentication. Any help regarding developong the handlers would be great
    any help would be appreciated.
    Thanks,
    Srini

    Srinivas,
    You are on the right path...........yes that is the right note for this issue.
    The problem is this is not a general fix that comes with all service packs as the axis adapter is not used a lot, that being said.if you dont see it with sp15..i would safely go apply this fix and see if it works..else you might have to open an oss note for the same...
    Hope that helps..
    Regards
    Ravi Raman
    P.S: On my home system..i did apply the fix and i was on a much higher sp level ..i saw some errors..in the logs but nothing a restart couldent fix..

  • Default namespace in the SOAP sender adapter

    Hi All!
    Sorry for the following really easy question but what is the default interface name and default namespace in the SOAP sender Adapater? The name of the interface to where the adapter should forward the received SAOP message?
    it means that for every soap message a new communication channel should be created. Or only one channel is enough?
    And in the receiving case only one is enough or for every web services a new receiving communication channel need to be created?
    Thank you for your answer.

    Hi,
    q) what is the default interface name and default namespace in the SOAP sender Adapater?
    Ans) Soap Sender does not have any default namespace and interface.  That can be set at Sender Agreement. 
    q) The name of the interface to where the adapter should forward the received SAOP message?
    Ans : That message is forwarded to Adapter Engine and then to integration Engine. That takes interface in sender agrement and Namespace.
    it means that for every soap message a new communication channel should be created. Or only one channel is enough?
    Ans:  For sender, 1 communication channel is enough. For Receiver, if you have 10 different systeems, then  you need to create those many receiver communication channels .
    And in the receiving case only one is enough or for every web services a new receiving communication channel need to be created?
    Ans : Same as above
    Note  Soap message is not criteria for creating channels....  Please note that .. soap communication channels creates soap messagae.
    -Subbu

  • Error Re-using Sender SOAP Channel

    Hi,
    I have a requirement to send multiple messages to PI using same SOAP Sender Channel; I referred to help.sap.com and found that there is no restriction in re-using a SOAP Sender Channel.
    However when I sent a message using SAP SOAP client, namespace for soap envelope got added which is failing the messages in PI.
    Correct message:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <ConsumerData>
      <UserId>12345</UserId>
      <AccountData>9561234</AccountData>
    </ConsumerData>
    Incorrect message (in SXMB_MONI):
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <ConsumerData xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <UserId>12345</UserId>
      <AccountData>9561234</AccountData>
    </ConsumerData>
    1) How to avoid getting the URL (xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/") in the message?
    2) Is it really possible to re-use the SOAP Sender Channel to get different types of messages (from same sender party & service)?
    I did make use of Do Not Use SOAP Envelope in the channel and &nosoap=true in URL; but no luck.
    Please help. I need to get this approach working
    Thanks
    Pankaj

    >>1) Use one Sender channel per source system; so less number of objects.
    Yes, you can reuse one sender channel for many WSDL scenarios.
    >>2) to keep the PI URL common for one source system; PI URL dependent only on Sender Party, Sender Service and Sender Channel, no mention of Sender Interface Name in the URL I am using the format http://host:port /XISOAPAdapter/MessageServlet?channel=p:s:c (Note - 856597).
    I hope I can achieve the requirement in point 2 without any issue.
    This is not possible.  WSDL URL will be different for every interface.  Because it is also specific to sender interface and sender interface namespace.  When you create you have to specify these variables too.
    Example:
    http://host:port/XISOAPAdapter/MessageServlet?channel=:BC_TEST:CC_SOAPCHANNEL&interface=SI_TEST&interfaceNamespace=http://test/TRI_DatabaseLookup
    When you create initially you input only first
    http://host:port /XISOAPAdapter/MessageServlet?channel=p:s:c
    and subsequent screen you will need to input sender service interface and interface namespace.
    Hope that helps.

Maybe you are looking for