cancel
Showing results for 
Search instead for 
Did you mean: 

How to remove an XML with a SOAP Enveloppe

Former Member
0 Kudos

Hi all,

I have the following message that PI received from an external application called Flexnet:

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Body>

      <ProcessMessage xmlns="http://tempuri.org/">

         <xmlMessage>

            <?xml version="1.0" encoding="utf-8"?>

            <FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser xmlns="http://www.Apriso.com/FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

               <SessionContext>

                  <EmployeeID>100000017</EmployeeID>

                  <EmployeeNo>schrodere</EmployeeNo>

                  <TransactionTime>2012-10-15T12:52:21.8050190</TransactionTime>

                  <Facility>FIGUE</Facility>

                  <OperationID>100001056</OperationID>

                  <OperationRevision>1.0</OperationRevision>

                  <StepSequenceNo>2</StepSequenceNo>

                  <FunctionName>GenMessageClotureLE</FunctionName>

                  <TransactionGUID>T14015</TransactionGUID>

                  <EquipmentID>0</EquipmentID>

                  <FunctionID>100027205</FunctionID>

                  <OperationCode>ODY_FLUX_Reception_ConfirmationSAP</OperationCode>

                  <OprSequenceNo/>

                  <LocalTransactionTime>2012-10-15T14:52:21.8167382</LocalTransactionTime>

                  <PartnerInfo>

                     <RCVPOR>SAPC64</RCVPOR>

                     <SNDPRN>FLEXNET</SNDPRN>

                     <RCVPRN>CIMSAPLOG</RCVPRN>

                     <RCVPRT>LS</RCVPRT>

                     <SNDPOR>A000000022</SNDPOR>

                     <SNDPRT>LS</SNDPRT>

                     <CLNT>100</CLNT>

                  </PartnerInfo>

                  <PropertyBagV2>

                     <Item Name="OutDate">

                        <ValueList>

                           <Value>2012-10-15</Value>

                        </ValueList>

                     </Item>

                     <Item Name="Articles">

                        <ValueList>

                           <Value>900000000974</Value>

                        </ValueList>

                     </Item>

                     <Item Name="Quantites">

                        <ValueList>

                           <Value>100.0</Value>

                        </ValueList>

                     </Item>

                     <Item Name="UomCode">

                        <ValueList>

                           <Value>PCE</Value>

                        </ValueList>

                     </Item>

                     <Item Name="Poste">

                        <ValueList>

                           <Value>10</Value>

                        </ValueList>

                     </Item>

                     <Item Name="Douane">

                        <ValueList>

                           <Value>HD</Value>

                        </ValueList>

                     </Item>

                  </PropertyBagV2>

               </SessionContext>

               <FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

                  <OrderNo>180000704</OrderNo>

                  <OrderType>17</OrderType>

                  <OrderStatus>3</OrderStatus>

               </FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrder>

               <FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrderLine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

                  <OrderNo>180000704</OrderNo>

                  <OrderType>17</OrderType>

                  <OrderLineNo>10</OrderLineNo>

                  <OrderStatus>3</OrderStatus>

               </FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrderLine>

            </FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser>

         </xmlMessage>

         <applicationName>FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser</applicationName>

      </ProcessMessage>

   </soap:Body>

</soap:Envelope>

I have to remove the SOAP Enveloppe for a mapping to an IDoc.

I have tried the SOAP adapter with the following URL provided to Flexnet to send date to PI:

http://host:port/XISOAPAdapter/MessageServlet?QOS=EO&interface=MI_FLE_PI_GLOBAL&...

PI did not receive any message.

I have tried the following URL from Flexnet

http://host:port/sap/xi/adapter_plain?QOS=EO&interface=MI_FLE_PI_GLOBAL&namespac...

PI receives the message in error in sxmb_moni with the above xml with a SOAP enveloppe.

I also tried an XSLT Mapping, but it's not working.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

<xsl:template match="xmlMessage">

<xsl:copy-of select="child::node()"/>

</xsl:template>

</xsl:stylesheet>

Could you please advise on the URL to use? Also, would a XSLT/Java Mapping remove the SOAP Enveloppe because we have

<?xml version="1.0" encoding="utf-8"?> occuring two times.

Thanks in advance!

Vincent

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Thanks Anupam, Michal and Iñaki.

Your answers were very helpful.

However, I investigated on Flexnet's side and they have a BizTalk adapter that, when configured with username and password and the URL to PI's interface, sends XML over HTTP to the integration engine.

However, only one BizTalk adapter in Flexnet can be configured to send data to PI and thus the need for a single entry point in PI (Especially when you have several inbound interfaces from Flexnet).

Best regards,

Vincent

Answers (3)

Answers (3)

iaki_vila
Active Contributor
0 Kudos

Hi Vicent,

At first i'd like to comment that the second <?xml version="1.0" encoding="utf-8"?> is incorrect in XML definition, at least you are using a CDATA.

Incorrect XML validation:

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Body>

      <ProcessMessage xmlns="http://tempuri.org/">

         <xmlMessage>

            <?xml version="1.0" encoding="utf-8"?>

            <FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser xmlns="http://www.Apriso.com/FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

....

Correct XML Validation:

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Body>

      <ProcessMessage xmlns="http://tempuri.org/">

         <xmlMessage><![CDATA[

            <?xml version="1.0" encoding="utf-8"?>

            <FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser xmlns="http://www.Apriso.com/FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

...

]]>

If you can remove this second XML header tag, this XSL can do the transformation required:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">

        <xsl:copy-of select="/soap:Envelope/soap:Body/child::*/child::*"/>

    </xsl:template>

</xsl:stylesheet>

If you can't remove that tag, the unique solution is the solution that Anupam suggested or to study if the flexnet can send the XML inside a CDATA.

Regards

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vincent,

                  you are receiving a response using the 2nd URL then you can use a java mapping code to obtain only the part of the message important for you. That is the xml within tags <FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser> and </FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser>. I assume you are working in PI 7.1 or above versions. You can use following java mapping code to obtain desired XML.

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

import org.w3c.dom.Node;

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

public class DOMParser extends AbstractTransformation{

          /**

           * @param args

           */

          static String payload="";

          public  void extractXMLPayload(InputStream in)

           {

            String s="";

            try

            {

             BufferedReader br= new BufferedReader(new InputStreamReader(in));

             int startIndex=0,endIndex=0;

             String line="",str="";

             while((line=br.readLine())!=null)

             {

              str+=line;

             }

             startIndex=str.indexOf("<FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser");

             endIndex=str.indexOf("</FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser>");

             if(endIndex>startIndex)

             {

               s="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";  

               s=s+str.substring(startIndex,endIndex+ ("</FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser>".length()));

             } 

            }

            catch(Exception e)

            {

             e.printStackTrace();

            }

            payload=s;

           }

          public void execute(InputStream in, OutputStream out)throws Exception

          {

                    Document document;

                    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

                    DocumentBuilder builder = factory.newDocumentBuilder();

                    extractXMLPayload(in);

                    InputStream is=null;

                    is= new ByteArrayInputStream(payload.getBytes("UTF-8"));

                    document = builder.parse(is);

                    Document docOut=builder.newDocument();

                    Node root=docOut.importNode(document.getDocumentElement(),true);

                    docOut.appendChild(root);

                    TransformerFactory tf = TransformerFactory.newInstance();

                    Transformer transform = tf.newTransformer();

                    transform.transform(new DOMSource(docOut), new StreamResult(out));

          }

          public static void main(String[] args) {

                    // TODO Auto-generated method stub

                     try

                        {

                                              FileInputStream inFile = new FileInputStream(new File("c:\\apps\\scn\\input.xml"));

                         FileOutputStream outFile = new FileOutputStream(new File("c:\\apps\\scn\\output.xml"));

                         new DOMParser().execute(inFile,outFile);

                        }catch(Exception e){e.printStackTrace();}

          }

          @Override

          public void transform(TransformationInput arg0, TransformationOutput arg1)

                              throws StreamTransformationException {

                    // TODO Auto-generated method stub

                    try {

                              this.execute(arg0.getInputPayload().getInputStream(), arg1.getOutputPayload().getOutputStream());

                    } catch (Exception e) {

                              // TODO Auto-generated catch block

                              e.printStackTrace();

                    } 

          }

}

Hope this resolves the problem.

Regards

Anupam

Former Member
0 Kudos

Hi Anupam,

I am working with PI 7.3. Thanks you very much for the code.

However, I have a point of concern. This java code has to be applied in the interface mapping as the first mapping, but a source message/service interface for a source structure has to be created. Do I have to create a Data Type to look exactly like the incoming message?

This is what it looks like when I paste the playload from the incmoing message (sent from the Flexnet via XML over HTTP that was in error in sxmb_moni).

Envelope

     Body

          ProcessMessage

               xmlMessage

               applicationName

Moreover, Flexnet seems to only be able to send all its messages over a unique URL. Thus, all the messages would have to transit through a global message interface, regrouping sub message interfaces, and conditions based on values of fields are used to determine the right interface mapping in the Interface Determination. How would I be able to check those condition if there is a SOAP envelope and that a DT/MT/MI cannot be created for this incoming message?

Thanks in advance for your help.

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vincent,

                  First this is the target xml produced when above java code is applied to the incoming payload

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

- <FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser xmlns="http://www.Apriso.com/FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<SessionContext>

<EmployeeID>100000017</EmployeeID>

<EmployeeNo>schrodere</EmployeeNo>

<TransactionTime>2012-10-15T12:52:21.8050190</TransactionTime>

<Facility>FIGUE</Facility>

<OperationID>100001056</OperationID>

<OperationRevision>1.0</OperationRevision>

<StepSequenceNo>2</StepSequenceNo>

<FunctionName>GenMessageClotureLE</FunctionName>

<TransactionGUID>T14015</TransactionGUID>

<EquipmentID>0</EquipmentID>

<FunctionID>100027205</FunctionID>

<OperationCode>ODY_FLUX_Reception_ConfirmationSAP</OperationCode>

<OprSequenceNo />

<LocalTransactionTime>2012-10-15T14:52:21.8167382</LocalTransactionTime>

- <PartnerInfo>

<RCVPOR>SAPC64</RCVPOR>

<SNDPRN>FLEXNET</SNDPRN>

<RCVPRN>CIMSAPLOG</RCVPRN>

<RCVPRT>LS</RCVPRT>

<SNDPOR>A000000022</SNDPOR>

<SNDPRT>LS</SNDPRT>

<CLNT>100</CLNT>

</PartnerInfo>

<PropertyBagV2>

- <Item Name="OutDate">

- <ValueList>

<Value>2012-10-15</Value>

</ValueList>

</Item>

<Item Name="Articles">

<ValueList>

<Value>900000000974</Value>

</ValueList>

</Item>

<Item Name="Quantites">

<ValueList>

<Value>100.0</Value>

</ValueList>

</Item>

<Item Name="UomCode">

<ValueList>

<Value>PCE</Value>

</ValueList>

</Item>

<Item Name="Poste">

<ValueList>

<Value>10</Value>

</ValueList>

</Item>

<Item Name="Douane">

<ValueList>

<Value>HD</Value>

</ValueList>

</Item>

</PropertyBagV2>

</SessionContext>

<FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<OrderNo>180000704</OrderNo>

<OrderType>17</OrderType>

<OrderStatus>3</OrderStatus>

</FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrder>

- <FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrderLine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<OrderNo>180000704</OrderNo>

<OrderType>17</OrderType>

<OrderLineNo>10</OrderLineNo>

<OrderStatus>3</OrderStatus>

</FlexNet.BusinessRules.Common.Orders.OrderRestatuser.RestatusOrderLine>

</FlexNet.BusinessFacade.Common.OrderRestatuser.OrderRestatuser>

  Thus the target XSD is assumed to be able to accept this message. If the target xml expected is different from this output then java code is to be modified to produce exact output necessary in your scenario.Depending on your target XSD the java code need changes.

The complexity of the code will increase depending on your expectations.  Additional conditions can be applied in java mapping itself so that you do not need further interface mapping. The target XSD should be defined properly so that it is able to accept different segments from java mapping. As far as I have understood the input payload the contents of the field xmlMessage is coming as string thus it has to be first converted into proper xml.

Regards

Anupam


Former Member
0 Kudos

Hi Anupam,

Thank you for your answer. My main problem is with the DT to specify for the Outbound MI in order to accept the source message.

In the second screenshot I have put, you can see the structure because I loaded the message in an Interface Mapping to see how it can be structured. All nodes are in red and I have not been able to get a valid XML structure.

Could you please let me know the Data Type I should create for the XML in the SOAP enveloppe, as per the example I provided in my first post?

Thank you very much in advance.

Vincent

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vincent,

   you can try this as source XSD

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
<xs:element name="ProcessMessage">
   
<xs:complexType>
     
<xs:sequence>
       
<xs:element type="xs:string" name="xmlMessage"/>
       
<xs:element type="xs:string" name="applicationName"/>
     
</xs:sequence>
   
</xs:complexType>
 
</xs:element>
</xs:schema>

Load this as external definition. Ensure your target structure can accept the xml output of the java mapping code. The SOAP envelop should not cause any problems. For a while do not worry about the red symbols in test tab. Just test the code and ensure that target XSD is correct. 

Regards

Anupam

Former Member
0 Kudos

Hi Anupam,

Thank you very much for the update. I tested my target structure and it accepts the xml output from the java mapping code.

However, the xsd is invalid. Even if I can save and activate it, I have no message as external message when trying to specify the external message in the outbound message interface.

Thus, I cannot create the MI to put in into the IM. Could you please help me out on this?

Thank you very much in advance.

Best reagrds,

Vincent

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vincent,

                    Could you please revert back to your original XSD and try running the scenario end to end? I provided a sample XSD only. I think your old XSD might work when you run the scenario.

Regards

Anupam

Former Member
0 Kudos

Hi Anupam,

I have no original XSD with the SOAP enveloppe definition, this is my main problem.

I will will try to generate an XSD from the original XML enveloped by SOAP from my first post...

I am not sure it will be the good one though. What is your view on that?

Thank you for your help.

Best regards,

Vincent

anupam_ghosh2
Active Contributor
0 Kudos

Hi Vincent,

                  Try with the old XSD and run end to end, kindly just ensure your target XSD is proper one to accept input from java mapping.

Regards

Anupam

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

for this option:

>>>>>I have tried the SOAP adapter with the following URL provided to Flexnet to send date to PI:

http://host:port/XISOAPAdapter/MessageServlet?QOS=EO&interface=MI_FLE_PI_GLOBAL&...

PI did not receive any message.

did you get the WSDL from this app and is it imported to ESR ?

if so try investigating why the message did not reach PI as PI would remove the envelope itself

if properly sent

Regards,

Michal Krawczyk

Former Member
0 Kudos

Hi Michal,

Thanks for the advice.

I have tried the following URLs with a SOAP Adapter with Message Protocol SOAP 1.1. and options 'Do Not Use SOAP Envelope' and 'Set Adapter Specifid Attributes'.

http://HOST:PORT/XISOAPAdapter/MessageServlet?senderParty=&senderService=FLE_D&interface=MI_FLE_PI_G...

I got the following error:

2012-10-23 12:42:24,018 ERROR 8 System  (null)  JobId: 100569055  FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapterSend

Soap Exception thrown in SAPXIAdapter.Send

[Error]: Server Error

[Stack Trace]:   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

   at FlexNetPIWebServiceService.FlexNetPIWebService(String xmlMessage, String applicationName)

   at FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapterSend.Send(String transactionName, String message)

[Source]: System.Web.Services

[Code.Name]: Server

[Detail]:

       

          XIAdapter

          ADAPTER.JAVA_EXCEPTION

         

com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=FLE_D;TS=ED1;AN=MI_FLE_PI_GLOBAL;ANS=urn:OP_182_016_FLE_PI_MVT_RECEP;

at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:250)

at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:171)

at com.sap.aii.af.service.cpa.InboundRuntimeLookup.<init>(InboundRuntimeLookup.java:88)

at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:570)

at com.sap.aii.adapter.soap.web.MessageServlet.getBinding(MessageServlet.java:649)

at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:382)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)

at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)

at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)

at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)

at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)

at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)

at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)

at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)

at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)

at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)

         

       

http://HOST:PORT/XISOAPAdapter/MessageServlet?channel=p:FLE_D:Test_SOAP

I got the following error:

2012-10-22 18:11:39,827 ERROR 3 System            (null)    JobId: 100569055            FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapter

XML Manager Communication Exception thrown.

[Outcome]:LiteralID: FlexNet.SystemServices.Xml.XmlManagerResults.SAPXIAdapterSendSoapException, LongDescription: Soap Exception Thrown In SAPXIAdapter.Send. [Error]:

Soap Exception thrown in SAPXIAdapter.Send

[Error]: Server Error

[Stack Trace]:   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

   at FlexNetPIWebServiceService.FlexNetPIWebService(String xmlMessage, String applicationName)

   at FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapterSend.Send(String transactionName, String message)

[Source]: System.Web.Services

[Code.Name]: Server

[Detail]:

       

          XIAdapter

          ADAPTER.JAVA_EXCEPTION

         

  1. com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn't retrieve binding for the given channelId: Binding:CID=null;

                at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBindingByChannelId(AbstractLookupManager.java:173)

                at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:379)

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

                at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

                at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)

                at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)

                at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)

                at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)

                at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)

                at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)

                at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)

                at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)

                at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)

                at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)

                at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)

                at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)

                at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)

                at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)

                at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)

                at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

                at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

                at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)

                at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)

                at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)

                at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)

                at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)

                at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)

         

       

       [Stack Trace]:    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

   at FlexNetPIWebServiceService.FlexNetPIWebService(String xmlMessage, String applicationName)

   at FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapterSend.Send(String transactionName, String message)

[JobID]:100569055

[JobAction]:30

[TransactionDataQueueID]:100019099

[TransactionName]:FlexNet.BusinessFacade.Inventory.InventoryAdjustController.Adjust

[AlertName]:

[Error]:Exception of type 'FlexNet.SystemServices.Xml.XMLManagerException.CommunicationException' was thrown.

[StackTrace]:

Server stack trace:

   at FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapterSend.Send(String transactionName, String message)

   at System.Runtime.Remoting.Messaging.Message.Dispatch(Object target, Boolean fExecuteInContext)

   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:

   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

   at FlexNet.SystemServices.Xml.JobActionProcessor.ISAPXIAdapterSend.Send(String transactionName, String message)

   at FlexNet.SystemServices.Xml.JobActionProcessor.SAPXIAdapter.Send(String transactionName, String message)

   at FlexNet.SystemServices.Xml.JobActionProcessor.BaseExternalAdapter.ProcessOutboundMessage(ExecutionArgs& args, Int32 action)

Could you please advise on the next step?

Thanks in advance.