Synchronous RFC -- SOAP Scenario: problem with SOAP Response/Fault Mapping

Hi,
I've a synchronous RFC --> PI --> SOAP Scenario. The problem is that the message structure of the sending RFC doesn't match the Webservice Structure.
The (SAP standard) RFC has just a Request / Response message structure. Part of the Response Message structure is a exception structure.
The Webservice has a Request / Response message structure and in case of an error I get a SOAP:Fault.
Problem now is that I cannot configure that scenario without usage of BPM as I will have to map SOAP:Response or SOAP:Fault to the RFC Response structure.
Has anybody another idea to do that synchronous scenario (with usage of message mapping) without BPM?
BR
Holger

1)
you maus define 3 mapping.
1)request
2)response
3)Fault
in Interface mapping define at response boths (2-3) mapping. its clear??
2)
otherwise sometjhing is not clear, why do you want fault?? why dont you  get only response message. we implement this kind of response:
<response_MT>
<ID> (error ID)
<system> (target system) 
<error> (Error Description)
</response>
by this way fault message is not needed. but if you must have it just follow the top of message else, propose second.
Thanks
Rodrigo
Thanks
Rodrigo
Edited by: Rodrigo Pertierra on Feb 25, 2008 11:52 AM

Similar Messages

  • SOAP Receiver: Problem with SOAP Multipart Request (wsdl:part)

    Dear PI experts,
    our partner provided a WSDL with the following definition (I modified it to keep it simple and showing the principles)
       <wsdl:message name="nameOfMessage">
          <wsdl:part element="part1" name="header" />
          <wsdl:part element="part2" name="parameters" />
          <wsdl:part element="part3" name="attachment" />
       </wsdl:message>
    After importing this WSDL in ESR, I found the following definition on tab 'WSDL':
             <xsd:complexType name="nameOfMessage">
                <xsd:sequence>
                   <xsd:element name="header" type="authentication" />
                   <xsd:element name="parameters" type="businessDatal" />
                   <xsd:element name="attachment" type="Binary" />
                </xsd:sequence>
             </xsd:complexType>
    When creating the request message in PI it looks as follows:
    <nameOfMessage>
    <header/>
    <parameters/>
    <attachment/>
    </nameOfMessage>
    However our WebService provider expects the following:
    <soap:env>
    <authentication/>
    <parameters/>
    <attachment/>
    </soap:env>
    When using SoapUI and importing the WSDL the request message looks as expected by the web service provider and the part names are resolved.
    I could try to convert the request using XSLT but this does not seem to be a best practice approach.
    Do you have any advice on how to handle this issue?
    Thank you very much.

    Hi Florian,
    I modified some WS to be handled by another systems, and sometimes, when the SOAP adapter is involved, you send a Request to PI (that has NOT the same structure, than the declared in the MM) but it takes the req. anyway.
    Did you try sending a request?
      Juan.

  • Another problem with SOAP sender

    I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
    Scenario:
    Soap Sender -> PI -> Soap Receiver
    Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
    I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide.  It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call). 
    Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\].  The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
    Problem One:
    The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types.  XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
    Problem Two:
    I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send.  In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
    The other doGoogleSearch fields seem to be missing, i.e.
      <part name="q" type="xsd:string" />
      <part name="start" type="xsd:int" />
      <part name="maxResults" type="xsd:int" />
      <part name="filter" type="xsd:boolean" />
      <part name="restrict" type="xsd:string" />
      <part name="safeSearch" type="xsd:boolean" />
      <part name="lr" type="xsd:string" />
      <part name="ie" type="xsd:string" />
      <part name="oe" type="xsd:string" />
    Does anyone know why:
    (1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
    (2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
    Thanks for any help with this.

    I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
    Scenario:
    Soap Sender -> PI -> Soap Receiver
    Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
    I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide.  It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call). 
    Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\].  The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
    Problem One:
    The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types.  XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
    Problem Two:
    I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send.  In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
    The other doGoogleSearch fields seem to be missing, i.e.
      <part name="q" type="xsd:string" />
      <part name="start" type="xsd:int" />
      <part name="maxResults" type="xsd:int" />
      <part name="filter" type="xsd:boolean" />
      <part name="restrict" type="xsd:string" />
      <part name="safeSearch" type="xsd:boolean" />
      <part name="lr" type="xsd:string" />
      <part name="ie" type="xsd:string" />
      <part name="oe" type="xsd:string" />
    Does anyone know why:
    (1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
    (2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
    Thanks for any help with this.

  • Problems with Initial steps for Mapping with Java in XI 3.0

    Hi,
    I am having problems with a simple java mapping in XI 3.0. I have created another test class in my PC to test it ,and it works.
    But when I use it in a example mapping it does not work.
    I think the reason is because It cannot find the classes used in the XI server.
    What do I have to do to make it work ?
    Do I need to add / change / view something in the XI server?
    Thanks a lot...
    David

    Down by java mapping

  • Synchronous Proxy - SOAP Scenario (Error 500 in Response).

    Hi
    I've built a few Synchronous Proxy -> SOAP Scenarios,
    with 'Do Not Use SOAP Envelope' option.
    For two of them, I'm facing a common error.
    The error is: ADAPTER.HTTP_EXCEPTION (HTTP 500 Internal Server Error).
    When I paste the EXACTLY SAME payload picked up from XI, into the SOAP client, it works giving valid response.
    Trying to figure out the issue.
    R/3 System:
    WAS 620 (Level 0041)
    XI System:
    PI 7.0 (Level 0007)
    SOAP System:
    BizRights (Approva) 3.0
    Any help is appreciated.
    Rajendra.

    Hi,
    Following SAP notes may help you-  804124, 807000
    Regards,
    Moorthy

  • Problem with SOAP Scenario

    Hi,
    I am trying a http to soap scenario.
    In the receiver soap adapter, I have specified the following:
    Target url: http://test.abc.com/
    Action: handleLogin()
    When I send the request, I get a "time out error" as the response in the http client tool.
    However, in sxi_monitor, I get a webpage as the response(A web page is being displayed in the monitor).
    What I was expecting is a response message that matches the wsdl.
    I have tried using "" and a blank value for the Action field in the soap adapter, but no luck.
    Any help would be appreciated.
    Thanks,
    Smitha.

    Hi Shabarish,
    Thanks for your response.
    I provided the operation name in the soap adapter as specified in the blog, but I am getting a http_adapter exception. (500 internal server error)
    Any clues?
    Thanks,
    Smitha.

  • Proxy to SOAP Scenario, payload with the SOAP envelops

    Hi ,
    We have Scenario like Proxy to SOAP,As per Business requirement they are asking payload with ENVELOP . Like below message
    ================================================================
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
         <SOAP-ENV:Header>
              <nseps:endpoints xmlns:nseps="urn:schemas-IBX:/docs/endpoint.nsendpoint" SOAP-ENV:mustUnderstand="true">
                   <nseps:to>
                        <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
                   </nseps:to>
                   <nseps:from>
                        <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
                   </nseps:from>
              </nseps:endpoints>
              <nsprop:properties xmlns:nsprop="urn:schemas-IBX:/docs/property.nsproperty" SOAP-ENV:mustUnderstand="true">
                   <nsprop:identity>3198841w-fa4d-dafa-2797-89029c15255b</nsprop:identity>
                   <nsprop:sentAt>2010-01-18T02:42:08Z</nsprop:sentAt>
                   <nsprop:topic>CostObjectInformation</nsprop:topic>
              </nsprop:properties>
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
    //Payload of the message to be added here.
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I am trying out this in XSLT, but I am not sure how to add the SOAP Envelops and these Envelops are Static.
    Can someone help me out in this.
    Joe

    But if you look at the SOAP Envelop Structure below it is not XI generated SOAP Envelop. IBX (3rd party) has its own standards, so XI has to Produce the SOAP Envelop according to their standards.
    I have created the XSD with SOAP Envelop stucture with what ever structure 3rd party wants, but the problem is when Creating the SOPA Envelp tag, where it has a ":" where its not allowing me to create the valid XSD. And at the same time 3rd party is not in position to give us even WSDL file and we are not using  Webservice call and they are not able to provide the XSD with SOAP envelop structure.
    I thought of going for XSLT and started doing as well with what ever XSD 3rd party has provided, which does not have the SOAP Envelop structure and has only payload XSD structure.
    80% of the SOAP Envelop structure is Static, it does not change. Only 2 fields keeps changing. IS there any solution that we can create XSD with the SOAP structure with Special Character ": "or is there any way in doing in XSLT.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
    <SOAP-ENV:Header>
    <nseps:endpoints xmlns:nseps="urn:schemas-IBX:/docs/endpoint.nsendpoint" SOAP-ENV:mustUnderstand="true">
    <nseps:to>
    <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
    </nseps:to>
    <nseps:from>
    <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
    </nseps:from>
    </nseps:endpoints>
    <nsprop:properties xmlns:nsprop="urn:schemas-IBX:/docs/property.nsproperty" SOAP-ENV:mustUnderstand="true">
    <nsprop:identity>3198841w-fa4d-dafa-2797-89029c15255b</nsprop:identity>
    <nsprop:sentAt>2010-01-18T02:42:08Z</nsprop:sentAt>
    <nsprop:topic>CostObjectInformation</nsprop:topic>
    </nsprop:properties>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
    its a high priority issue.
    Thanks in Advance.
    Joe.

  • Newline problem with soap

    I'm having these weird problems with newlines. I'm sending \n in a message because I have a multi lined message i want parsed. Axis is receiving the message and throwing exceptions. I printed out the line it's parsing and it's giving this error that it can't parse:
    '2.5
    PID'
    The parser is not supposed to parse past the \n but it seems to be trying to. I've tested this without webservices and it works fine, adding webservices into the equation gives me these errors.

    Additional info: The problem is the same in the entire environment here (PI DEV, QAS and PRD) and on another PI machine.
    So I doubt very much if it's cache related.
    Edit: This is the 'application error':
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  XML Validation Inbound Channel Response
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>application fault</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Edited by: Frederik-Jan Roose on Dec 7, 2009 11:11 AM

  • Problem with SOAP receiver

    Hello,
    Our PI system is 7.4 . We have a lot of interface with related to  proxy to soap.When they are used  very intensively, errors occur in soap receiver .
    Types are error: 
    503 server  not avalibale,
    401 unauthorized ,
    invalid content type for SOAP:TEXT/HTML  such as...
    When system is restarted, mostly it is worked but after while again errors occur and a lot of message is waiting in queue.
    what can we do for it?
    Thanks in advance,
    Nurhan

    Hi Claudia,
    It is dual stack installation. While calling  soap receiver adapter, error occur. In sxmb_moni  display error  as follows:
    After restart, we have new error:
    It is abap proxy to soap scenario. It's synchronous communication.
    Thanks,
    Nurhan

  • WLS 7.0 sp2 - Servlet Problems with SOAP messages

              I'm using Weblogic 7.0 SP2 and trying to create a Servlet to receive SOAP wrapped
              XML messages. I'm getting the following error. Is this a problem with WLS7.0sp2's
              support of JAXM? The System.out.println's indicate I have successfully received
              the incoming SOAP request and then successfully formatted the SOAP response, but
              upon returning saving the response it appears to blow up. Does anyone have any
              suggestions?
              I need to do the following in a servlet:
              - receive an incoming SOAP request with an embedded XML message
              - perform some processing
              - return a SOAP response with an embedded XML message
              Should I be using JAXM? Or can I do this same task easily with JAX-RPC?
              <Feb 24, 2004 4:10:42 PM AST> <Error> <HTTP> <101017> <[ServletContext(id=260434
              7,name=isd.war,context-path=)] Root cause of ServletException
              java.lang.Error: NYI
              at weblogic.webservice.core.soap.SOAPMessageImpl.saveRequired(SOAPMessag
              eImpl.java:360)
              at javax.xml.messaging.JAXMServlet.doPost(Unknown Source)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
              (ServletStubImpl.java:1058)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:401)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:306)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
              n.run(WebAppServletContext.java:5445)
              at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
              eManager.java:780)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              rvletContext.java:3105)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              pl.java:2588)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              I've stripped the code down so that all it does is verifies the incoming SOAP/XML
              request and creates a hard-coded response... be gentle... I'm a novice at this
              import javax.xml.soap.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              // import javax.xml.transform.*;
              import java.util.*;
              import java.io.*;
              public class RegisterServlet extends HttpServlet
              static MessageFactory fac = null;
              static
              try
              fac = MessageFactory.newInstance();
              catch (Exception ex)
              ex.printStackTrace();
              public void init(ServletConfig servletConfig) throws ServletException
              super.init(servletConfig);
              public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
              IOException
              try
              System.out.println("** Note: doPost() Entering req = " + req);
              // Get all the headers from the HTTP request
              MimeHeaders headers = getHeaders(req);
              // Get the body of the HTTP request
              InputStream is = req.getInputStream();
              // Now internalize the contents of a HTTP request
              // and create a SOAPMessage
              SOAPMessage msg = fac.createMessage(headers, is);
              System.out.println("** Note: doPost() Step A");
              SOAPMessage reply = null;
              reply = onMessage(msg);
              System.out.println("** Note: doPost() Step B reply = " + reply);
              if (reply != null)
              * Need to call saveChanges because we're
              * going to use the MimeHeaders to set HTTP
              * response information. These MimeHeaders
              * are generated as part of the save.
              if (reply.saveRequired())
              System.out.println("** Note: doPost() Step C reply.saveRequired()");
              reply.saveChanges();
              resp.setStatus(HttpServletResponse.SC_OK);
              putHeaders(reply.getMimeHeaders(), resp);
              // Write out the message on the response stream
              OutputStream os = resp.getOutputStream();
              System.out.println("** Note: doPost() Step D os = " + os);
              reply.writeTo(os);
              os.flush();
              else
              resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
              catch (Exception ex)
              throw new ServletException("** Error: SAAJ POST failed: " + ex.getMessage());
              static MimeHeaders getHeaders(HttpServletRequest req)
              Enumeration enum = req.getHeaderNames();
              MimeHeaders headers = new MimeHeaders();
              while (enum.hasMoreElements())
              String headerName = (String)enum.nextElement();
              String headerValue = req.getHeader(headerName);
              StringTokenizer values =
              new StringTokenizer(headerValue, ",");
              while (values.hasMoreTokens())
              headers.addHeader(headerName,
              values.nextToken().trim());
              return headers;
              static void putHeaders(MimeHeaders headers, HttpServletResponse res)
              Iterator it = headers.getAllHeaders();
              while (it.hasNext())
              MimeHeader header = (MimeHeader)it.next();
              String[] values = headers.getHeader(header.getName());
              if (values.length == 1)
              res.setHeader(header.getName(),
              header.getValue());
              else
              StringBuffer concat = new StringBuffer();
              int i = 0;
              while (i < values.length)
              if (i != 0)
              concat.append(',');
              concat.append(values[i++]);
              res.setHeader(header.getName(), concat.toString());
              // This is the application code for handling the message.
              public SOAPMessage onMessage(SOAPMessage message)
              SOAPMessage replymsg = null;
              try
              System.out.println("** Note: OnMessage() Entering msg = " + message);
              //Extract the ComputerPart element from request message and add to reply SOAP
              message.
              SOAPEnvelope reqse = message.getSOAPPart().getEnvelope();
              SOAPBody reqsb = reqse.getBody();
              //System.out.println("** Note: OnMessage() Step B");
              System.out.println("** Note: OnMessage () Step A Soap Request Message Body = "
              + reqsb);
              //Create a reply mesage from the msgFactory of JAXMServlet
              System.out.println("** Note: OnMessage () Step B");
              replymsg = fac.createMessage();
              SOAPPart sp = replymsg.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              SOAPBody sb = se.getBody();
              System.out.println("** Note: OnMessage () Step C Soap Reply Before Message Body
              = " + sb);
              se.getBody().addBodyElement(se.createName("RegisterResponse")).addChildElement(se.createName("ErrorCode")).addTextNode("000");
              System.out.println("** Note: OnMessage () Step D Soap Reply After Message Body
              = " + sb);
              replymsg.saveChanges();
              System.out.println("** Note: OnMessage() Exiting replymsg = " + (replymsg));
              catch (Exception ex)
              ex.printStackTrace();
              return replymsg;
              

    Michael,
    I got the same error on WLS8.1/Win2K professional and apache FOP (old version).
    After digging into the WLS code and FOP(old version). i found the conflict happens
    on
    the "org.xml.sax.parser" system property. In WLS code, they hard coded like the
    following when startup weblogic server:
    System.setProperty("org.xml.sax.parser", "weblogic.xml.jaxp.RegistryParser");
    But the FOP code try to use the "org.xml.sax.parser" system property to find the
    sax parser then conlict happens.
    Here is the response from BEA support :
    "I consulted with our developers regarding the question of whether we can change
    the hard-coded value for the java system property: org.xml.sax.parser by using
    a configuration parameter and I found that unfortunately there is no specific
    setting to change the value. As you had mentioned in your note the org.xml.sax.parser
    system property can be changed programmatically in your application code."
    I solve my problem by using newer apache FOP (it never use the system property:org.xml.sax.parser
    any more) and XML Registy for WLS8.1.
    Good luck.
    David Liu
    Point2 Technologies Inc.
    "p_michael" <[email protected]> wrote:
    >
    Help.
    When we migrated from WLS 6.1 to WLS 7.0 SP2 when encountered a problem
    with XML
    parsing that did not previously exist.
    We get the error "weblogic.xml.jaxp.RegistryParser is not a SAX driver".
    What does this mean? And, what should we do about it.
    p_michael

  • XSLT Problem with soap namespace

    Hi there,
    I have a problem transforming an XML doc with soap elements, using XSLT (Xalan).
    Here's the input:
    <?xml version = "1.0" encoding = "ISO-8859-1"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.ean.nl">
      <testthis>123456</testthis>
    </soap:Envelope>and here's the XSL:
    <?xml version="1.0"?>
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="soap:Envelope">
    <Orders>
         <H01>
              <xsl:value-of select="testthis"/>
         </H01>
    </Orders>
    </xsl:template>
    </xsl:transform>I expect to get something like:
    <?xml version="1.0" encoding="UTF-8"?>
    <Orders>
    <H01>123456<H01>
    <Orders>But instead I get:
    <?xml version="1.0" encoding="UTF-8"?>
    <Orders>
    <H01/>
    </Orders>I've tried a lot of things and I'm probably overseeing something stupid, but I'm stuck.
    It seems as if anything without soap: namespace cannot be processed by my XSL (when I add it in the input XML and XSL it works).
    Any help would be greatly appreciated.
    Greetings,
    Erik

    Yes, I found it!
    The following XSL for the same XML doc works!
    <?xml version="1.0"?>
    <xsl:transform xmlns:ean="http://www.ean.nl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="soap:Envelope">
    <Orders>
         <H01>
              <xsl:value-of select="ean:testthis"/>
         </H01>
    </Orders>
    </xsl:template>
    </xsl:transform>Thanks, you pointed me in the right direction :-)
    Erik

  • Problem with SOAP 1.1 Format

    Hello everyone.
    I am use SAP XI SOAP 1.1 with WS-Security. At the end of the header of the message the tag <wsse:BinarySecurityToken> is repeating twice which causes a problem from the other receiving SOAP adapter (webMethods). Anyone knows how to fix this?
    Sample:
      </ds:KeyInfo>
      </ds:Signature>
      <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
    wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
    </wsse:BinarySecurityToken>
      <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
    wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
    </wsse:BinarySecurityToken>
      </wsse:Security>
      </SOAP:Header>
    Edited by: Baheej Awamy on Apr 13, 2009 9:09 AM

    Hi Prateek,
    I just receive the same note from SAP Active Global Support,
    I am going to apply this note and hopefully resolve the issue.

  • Problem with SOAP Servlet

    Hi,
    I have a SOAP servlet, but It is the fist SOAPServlet as I use.
    I think that the vsd that developper of SOAP servlet provide is ok.
    But, I do not understand which is the XML that I could provide to it.
    It is posible that I have a problem with XML, SCHEMA and SOAP.
    Could you help me , I attach the VSD, but I need a tool or a sample file in order to call my SOAP servlet.
    <xsd:schema xmlns:xsd="http://schemas.xmlsoap.org/soap/encoding">
        <xsd:complexType name="STD_TRN1_I_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_TX_DI">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ID_INTERNO_TERM_TN">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ID_EMPL_AUT">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NUM_SEC">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00007"/>
                    <fractionDigits value="00"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_TX">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_CENT_UO">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NUM_SEC_AC">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00010"/>
                    <fractionDigits value="00"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_NRBE_EN">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="STD_TRN1_O_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="HORA_OPRCN" type="xsd:time"/>
            <xsd:element name="FECHA_OPRCN" type="xsd:date"/>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_DISPO_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_DEC_15Y2">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_CONTABLE_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_RETEN_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_AUT_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_INCID_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_BLOQUEOS_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_CHAR_01">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00001"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_CONECT_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="COD_IDIOMA_V_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_IDIOMA">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00002"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_ANOTACIONES_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_CHAR_01">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00001"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_NUMRCO_MONEDA">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00003"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="PSV_DISPO_V" type="PSV_DISPO_V_TYPE"/>
            <xsd:element name="PSV_SDO_CONTABLE_V" type="PSV_SDO_CONTABLE_V_TYPE"/>
            <xsd:element name="PSV_SDO_RETEN_V" type="PSV_SDO_RETEN_V_TYPE"/>
            <xsd:element name="PSV_SDO_AUT_V" type="PSV_SDO_AUT_V_TYPE"/>
            <xsd:element name="PSV_SDO_INCID_V" type="PSV_SDO_INCID_V_TYPE"/>
            <xsd:element name="PSV_BLOQUEOS_V" type="PSV_BLOQUEOS_V_TYPE"/>
            <xsd:element name="PSV_SDO_CONECT_V" type="PSV_SDO_CONECT_V_TYPE"/>
            <xsd:element name="COD_CSB_OF">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NOMB_50">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00050"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_INTERNO_UO">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_IDIOMA_V" type="COD_IDIOMA_V_TYPE"/>
            <xsd:element name="PSV_ANOTACIONES_V" type="PSV_ANOTACIONES_V_TYPE"/>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="STD_TRN1_MSJ_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="TEXT_ARG1">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00018"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="TEXT_CODE" type="xsd:int"/>
          </xsd:sequence>
        </xsd:complexType>
    <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1">
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_O_TYPE">
          <xsd:sequence>
            <xsd:element name="RTRN_CD" type="xsd:int"/>
            <xsd:element name="STD_TRN1_O_PARM_V" type="STD_TRN1_O_PARM_V_TYPE"/>
            <xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Z" type="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE"/>
            <xsd:complexType name="STD_TRN1_MSJ_PARM_V_OCCURS">
                <xsd:element name="STD_TRN1_MSJ_PARM_V" type="STD_TRN1_MSJ_PARM_V_TYPE" maxOccurs="000005"/>
            </xsd:complexType>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_I_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_TRN1_I_PARM_V" type="STD_TRN1_I_PARM_V_TYPE"/>
            <xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Y" type="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE"/>
          </xsd:sequence>
        </xsd:complexType>
    </xsd:complexType>
    </xsd:schema>Thanks you

    Hi,
    I have a SOAP servlet, but It is the fist SOAPServlet as I use.
    I think that the vsd that developper of SOAP servlet provide is ok.
    But, I do not understand which is the XML that I could provide to it.
    It is posible that I have a problem with XML, SCHEMA and SOAP.
    Could you help me , I attach the VSD, but I need a tool or a sample file in order to call my SOAP servlet.
    <xsd:schema xmlns:xsd="http://schemas.xmlsoap.org/soap/encoding">
        <xsd:complexType name="STD_TRN1_I_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_TX_DI">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ID_INTERNO_TERM_TN">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ID_EMPL_AUT">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NUM_SEC">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00007"/>
                    <fractionDigits value="00"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_TX">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00008"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_CENT_UO">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NUM_SEC_AC">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00010"/>
                    <fractionDigits value="00"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_NRBE_EN">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="STD_TRN1_O_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="HORA_OPRCN" type="xsd:time"/>
            <xsd:element name="FECHA_OPRCN" type="xsd:date"/>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_DISPO_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_DEC_15Y2">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_CONTABLE_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_RETEN_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_AUT_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_INCID_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_BLOQUEOS_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_CHAR_01">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00001"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_SDO_CONECT_V_TYPE">
          <xsd:sequence>
            <xsd:element name="IMP_SDO">
                <xsd:simpleType base="xsd:decimal">
                    <totalDigits value="00015"/>
                    <fractionDigits value="02"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="COD_IDIOMA_V_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_IDIOMA">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00002"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="PSV_ANOTACIONES_V_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_CHAR_01">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00001"/>
                </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE">
          <xsd:sequence>
            <xsd:element name="COD_NUMRCO_MONEDA">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00003"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="PSV_DISPO_V" type="PSV_DISPO_V_TYPE"/>
            <xsd:element name="PSV_SDO_CONTABLE_V" type="PSV_SDO_CONTABLE_V_TYPE"/>
            <xsd:element name="PSV_SDO_RETEN_V" type="PSV_SDO_RETEN_V_TYPE"/>
            <xsd:element name="PSV_SDO_AUT_V" type="PSV_SDO_AUT_V_TYPE"/>
            <xsd:element name="PSV_SDO_INCID_V" type="PSV_SDO_INCID_V_TYPE"/>
            <xsd:element name="PSV_BLOQUEOS_V" type="PSV_BLOQUEOS_V_TYPE"/>
            <xsd:element name="PSV_SDO_CONECT_V" type="PSV_SDO_CONECT_V_TYPE"/>
            <xsd:element name="COD_CSB_OF">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="NOMB_50">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00050"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_INTERNO_UO">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00004"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="COD_IDIOMA_V" type="COD_IDIOMA_V_TYPE"/>
            <xsd:element name="PSV_ANOTACIONES_V" type="PSV_ANOTACIONES_V_TYPE"/>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="STD_TRN1_MSJ_PARM_V_TYPE">
          <xsd:sequence>
            <xsd:element name="TEXT_ARG1">
                <xsd:simpleType base="xsd:string">
                    <maxLength value="00018"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="TEXT_CODE" type="xsd:int"/>
          </xsd:sequence>
        </xsd:complexType>
    <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1">
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_O_TYPE">
          <xsd:sequence>
            <xsd:element name="RTRN_CD" type="xsd:int"/>
            <xsd:element name="STD_TRN1_O_PARM_V" type="STD_TRN1_O_PARM_V_TYPE"/>
            <xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Z" type="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE"/>
            <xsd:complexType name="STD_TRN1_MSJ_PARM_V_OCCURS">
                <xsd:element name="STD_TRN1_MSJ_PARM_V" type="STD_TRN1_MSJ_PARM_V_TYPE" maxOccurs="000005"/>
            </xsd:complexType>
          </xsd:sequence>
        </xsd:complexType>
        <xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_I_TYPE">
          <xsd:sequence>
            <xsd:element name="STD_TRN1_I_PARM_V" type="STD_TRN1_I_PARM_V_TYPE"/>
            <xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Y" type="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE"/>
          </xsd:sequence>
        </xsd:complexType>
    </xsd:complexType>
    </xsd:schema>Thanks you

  • B1WS Problem with error response

    We use B1WS to communicate with the SAP system. Communication works fine until a exception occurs. In my special case I try to create a delivery note but there are not enough items on stock. When I add the delivery note the following exeception is raised:
    com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: A Subcode must be  namespace-qualified
    There is no other information available. When I add the delivery note with SoapUI I get the message from sap the there are not enough items on stock. Is there any way to fix this problem with the webservice?

    Thanks for your answer. The exception in this case is no problem for me. The problem is that I cannot get the exception because the SAP response cannot be parsed.
    Here is another post of the same problem.
    https://java.net/projects/metro/lists/users/archive/2010-08/message/185
    I cannot figure out why the response from sap causes this problems.

  • SOAP scenario without sender SOAP channel

    Hi Experts,
    I am developing a scenario of SOAP to JDBC.
    Here my test data is coming from Altova Spy for sender SOAP side.
    I have configured the scenario without sender SOAP channel, and sender agreement.
    But while sending the SOAP message I am getting the error as data cannot be posted.
    Can anybody please tell me, whether is it possible to have such configuration without SOAP sender channel.
    And if yes, then what would be the URL that I have to give for posting the data.
    Awaiting your reply.
    Regards,
    Supriya Sawant.

    I have gone throgh this Note.
    But now I m getting this error:
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
         <SOAP:Header>
    </SOAP:Header>
         <SOAP:Body>
              <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
                   <faultcode>SOAP:Client</faultcode>
                   <faultstring>Error during parsing of SOAP header</faultstring>
                   <faultactor>http://sap.com/xi/XI/Message/30</faultactor>
                   <detail>
                        <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
                             <SAP:Category>XIProtocol</SAP:Category>
                             <SAP:Code area="PARSER">ITEM_MISSING</SAP:Code>
                             <SAP:P1>Header</SAP:P1>
                             <SAP:P2/>
                             <SAP:P3/>
                             <SAP:P4/>
                             <SAP:AdditionalText/>
                             <SAP:ApplicationFaultMessage namespace=""/>
                             <SAP:Stack>XML element Header missing in SOAP message header (SAP XI Extension)
    </SAP:Stack>
                        </SAP:Error>
                   </detail>
              </SOAP:Fault>
         </SOAP:Body>
    </SOAP:Envelope>

Maybe you are looking for