Calling several WebServices in Integration Process

Hallo,
i have the problem that by calling two webservices in order there will be a com.sap.aii.af.ra.ms.api.DeliveryException.
Is this a bug in xi?
Thanks in advance,
Frank

Hi frank,
     This might the problem with XI.I think you must eloborate more.
After the mention of the exception <i>com.sap.aii.af.ra.ms.api.DeliveryException</i> the exact problem will be specified.
I guess,If you could post the error fully,we can get a better idea.
Cheers,
Rashmi

Similar Messages

  • Error While calling getListItem Webservice : Server was unable to process request. --- Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

    Hi All,
    we are calling sharepoint webservice from our web application but we are getting below error while calling webservice.
    Server was unable to process request. ---> Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
    Our code is as below.
    We used below 2 options but we got same error for both scenario,
    1)
                ListService.Lists objLists = new ListService.Lists();
                NetworkCredential objNetworkCredential = new NetworkCredential("username", "password");
                objLists.Credentials = objNetworkCredential;
                System.Xml.XmlNode objXmlNode = objLists.GetListItems("Tasks", null, null, null, null, null, null);
    2)         ListService.Lists objLists = new ListService.Lists();
                objLists.Proxy = new WebProxy("proxyaddress",true);
                NetworkCredential objNetworkCredential = new NetworkCredential("username", "password");
                objLists.Credentials = objNetworkCredential;
                System.Xml.XmlNode objXmlNode = objLists.GetListItems("Tasks", null, null, null, null, null, null);
    Please help me what is the problem while calling this service.
    Thanks in advance.
    Regards,
    Kaivan Shah

    Hi ,
    Here is a similar case ,you can have a look at this .
    Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) -Accessing the sharepoint site:
    http://social.msdn.microsoft.com/Forums/en-NZ/sharepointworkflow/thread/5eab2116-7d7c-4bf3-bfa1-48bd8992dded
    Thanks,
    Entan Ming

  • Error calling a webservice from one server process of the cluster

    Hi ,
    I have a servlet which on startup makes a call to a webservice. I deploy this webapp on the cluster.
    The cluster has two instances each instance having one server process.
    So when the server restarts one server process on one instance calls the web service the other process on other instance fails with a 503 response code.
    When I tried to reproduce the same problem using two server processes on the same instance both processes are able to call the webservice properly.
    I am slightly confused as to how different the second scenario is from first one as both are individual server process and may or may not run on same instance.
    Can anyone tell me the real cause.
    Rgds
    Shashank

    Hi Rajat,
    This is how the default trace looks
    FATAL: Application Servlet failed to notify devices.
    Caught java.rmi.RemoteException: Service call exception; nested exception is:
         com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (503) Service Unavailable. The requested URL was:"http://<<server>>:50000/ManagementService/ManagementService?style=document"
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1289)
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1298)
         at com.om.ApplicationServlet$NotifyDevices.run(ApplicationServlet.java:86)
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (503) Service Unavailable. The requested URL was:"http://<<server>>:50000/ManagementService/ManagementService?style=document"
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.handleResponseMessage(MimeHttpBinding.java:980)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1430)
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1282)
         ... 2 more
    java.lang.NoSuchMethodError
    at java.lang.Thread.destroy(Thread.java:779)
         at com.omApplicationServlet$NotifyDevices.run(ApplicationServlet.java:92)
    Rgds
    Shashank

  • Integration Process not continuing after Synchronous BAPI call

    I have an integration process that splits up a batch file of purchase orders into single purchase order messages. This allows me to use the "ForEach" block to call the synchronous BAPI_PO_CREATE1.
    I have managed to get the process to call the BAPI and create the purchase order. The response message arrives back though the abstract synchronous interface and is mapped to the asyncronous response message. After that the process seems to hold where I am expecting it to continue on the process and be appended to a container storage list for mapping to a single return message.
    I have not set up any correlation sets as I thought they wouldn't be needed for a sychronous call.
    Has anyone got any advice on my approach to this process and how I might fix it.
    Thanks in advance

    Hi Bhavesh,
    There are no errors as such in the SXMB_MONI but it gets as far as the Inbound Message (PE_ADAPTER) stage after the Sych BAPI call.
    Also the SOAP Header at this stage seems to be missing "sysnchronous" or "asynchronous" in the  SAP:ProcessingMode tags.
    The technical workflow is as follows
    FTP Batch file outbound to Integratin Process Receive (Async)
    Transform message into a Multiline list of BAPI_PO_CREATE1.request (async abstract)
    Enter "For Each" Block using the multiline list.
    BAPI_PO_CREATE1 mapped to synchronous abstract interface
    synchronous abstract interface mapped to BAPI_PO_CREATE.request and response
    BAPI_PO_CREATE.response mapped to async BAPI_PO_CREATE.response
    async BAPI_PO_CREATE.response appended to multiline list
    Exit block
    Transform multiline response list into single line response
    FTP inbound
    As far as I can make out I have not correctly configured the receiver of PO_CREATE1.response after it has been mapped from the sync to async so it just persists it and sits there waiting or it is waiting for somethign else to happen.
    Let me know if I can clarify anything further.
    Thanks
    Ben

  • Handling fault messages in an Integration Process (bpm)

    I have a bpm in PI 7.11 which performs a synch call to an external webservice. In addition to the request/response, that webservice can also generate two faults: ObjectNotFoundFault and generalfault.  I am having trouble handling these faults - when a fault occurs my handler is not being invoked and thus the bpm process stops/errors. When I look at the underlying process (via txn swi1), I see the exact error text:
    "No exception defined for fault message ObjectNotFoundFault http://www.companyb.com/services/olsa_v1_0/"
    From what I understand within the bpm synch call step to the webservice I need to do the following to handle the exception/fault:
    - put the synch call (to the webservice) into a block
    - add an exception branch to that block named let's say A & set the exception handler of that block to be A
    - in the exception setting of that synch step, select A
    In my case, I don't care about the fault details other than to ensure it does not stop the whole Integration Process, so in my exception branch I don't do anything. I did try adding a control step within it too (as per SAP Press text book).
    Is there anything else I need to do here?  I am not mapping the returned fault - does the fault need to be mapped (not sure how I would do this given that the synch step uses an abstract interface and therefore to my knowledge no fault mapping can be done)? 
    There are 2 Notes that describe my issue exactly:
    https://service.sap.com/sap/support/notes/1484903
    https://service.sap.com/sap/support/notes/1158699 <-- this one refers more to me, but we already have in 7.11
    Can anyone let me know exactly the steps I would perform to handle these faults - does the exception name / handler A above need to be named the actual exception / fault ObjectNotFoundFault?
    Any help appreciated.
    Thanks,
    Keith)?
    Any help appreciated.
    Thanks,
    Keith

    Thanks - my scenario I guess is #2 of that blog. But is your take that even if I don't care what is in the fault message, i.e. I don't care about the contents of it but rather I just want to continue on from it, that I still need to perform this java coding?  It's not clear to me from what he says - it seems to me he does the java coding to actually capture the contents of the message.  I am in fact using the soap axis adapter too, as he is. The screen shot showing the exception branch is basically what I have.
    Regards,
    Keith

  • Integration Process/ccBPM - When to be used

    Hi All,
    I have a scenario where i need to trigger the webservices in a third party java based system based on a value provided by SAP Workflow. Here two different web services are involved which needs to be triggred based on the response from the user.
    Below are the steps that are involved in the entire process:
    1. User request for an order and if material quantity is found, service 1 is triggered.
    2. If the material quantity is not found, Service 2 is trigerred providing user with alternate options.
    3. Now based on user response, if he agrees for alternate option, service 1 is trigerred.
    Can any body explain how to do this in XI or perticularly in ccBPM.
    Please let me know if you need further information
    Help will be appriciated.
    Thanks and best regards,
    Kulwant

    Hi Kulwant,
    Though I had mentioned some steps earlier also, i am putting them again here for you:
    Following are the steps for Integration Repository:
    1) You would need an outbound proxy program to send data from SAP workflow. I am not proficient in SAP workflow but i know you can write some code in the workflow steps to send data to SAP XI, you get examples of writing an outbound proxy program in SDN.
    2) Now your outbound proxy would trigger this particular scenario. It will bring input parameters for first java based webservice in XI.
    3) You need to create data type, message type and outbound message interface for your SAP workflow structure. you need not create data type and message type for Java based web service as you would be directly importing it's wsdl and using it as your inbound message interface in message and interface mappings directly.
    4) If the third party webservice is a synchronous one, then while creating the message mappings you need to create two message mappings for the 1st java based webservice, i.e. one for request and 1 for response, you would also need to create a response structure to create the mapping for 1st java based webservice's response or if you want to directly pass the output of 1st webservice as an input to the 2nd java based webservice, you can also do that.
    5) Create a response mapping for the response of 2nd webservice in a similar fashion.
    Confuguration / Integration Directory:
    1) For sender side you do not need any communication channel. For receiver side you would need one as I mentioned earlier. To create a communication channel, you need to first create or import (if already created) a business system or a business service (you can read about these in help.sap.com, ask me if you need the link). I would suggest a business system as web service provider is a third party. How to do it:
    ID--><your configuration scenario> --> Service without Party --> Business Service / Business system --> right click to create or assign.
    Note: looking @ yesterdays posts, i believe it's fine for you to create just a business service only.
    2) When you are done with this, you get a communication channel option created inside you business system or business service. Right click to create a communication channel. Give a name to it and press F4 to select the adapter type as SOAP. it would be a receiver. Read help.sap.com for more info on it.
    Note: you would need two receiver SOAP communication channels for executing the 2 java based web services.
    3) Rest of the mostly needed parameters i have already mentioned in my earlier posts for configuring the communication channel.
    Hint: the target URL needed to configure the communication channel is usually there in <SOAP:action> tag in the wsdls of the respective web services.
    4) Next create a Receiver determination --> Interface determination --> Sender Agreement --> Receiver Agreement
    7) For receiver determination, you need to enter a business service / business system and the sender message interface. If you have chosen your own service then you need to register your message interface in the service. double click on the service name to do it. there are options to register inbound / outbound messages.
    If you can use a conditional receiver determination to determine the user response and call the relevant web service based on that. At the 'edit receiver determination' screen there is a 'configured receivers' tab, where in condition field you can press F4. When you pess F4, a new screen opens, in left operand field, again press F4, a new screen would again open up, select 'Xpath' and there select the field in your sender (structure coming from workflow) structure, the field which contain the user choices (say 1 or 2 as mentioned by you).
    Similarly, in the same receiver determination based on the condition, you can call either webservice 1 or 2.
    8) For interface determination, you need to perform same steps as step no 7 also you need to enter your receiver service or business system.
    9) In sender and receiver agreements you mention sender and receiver communication channels. Well in your case you need not make any sender agreement as you sending data from R/3 to XI directly.
    if you configure these object completly, i believe you scenario should run.
    In case of more queries, feel free to ask,
    Thanks,
    Varun

  • Calling Functions From Import Integration Script

    I've got an import integration script that runs fine, however I also have several DataPump scripts that are used in FDM to change specific columns as they come in. I can take the code from the scripts and add to the Import Integration script, but I would rather just call those other functions from the VBScript. I don't see any docs on this, and I'm just wondering if anyone has done this or can describe how I can do it.
    Is it possible? Since the standard import scripts reference the strField and the strRecord, can these functions be called from the import integration script?

    strField and strRecord are arguments passed by the application to the import function. The represent the field as defined by the import format and the record that is being processed during the import.
    Given that, I'm not sure how to answer your question.

  • Error while calling PI webservice from EJB

    Hi Experts,
    We are getting exception while calling PI webservice from EJB which is deployed in CE 7.2. Earlier we used to call the same webservice but from different PI system at that it worked fine. Now we have changed the consumer proxies required in CE and tried to call from CE and it is throwing error. We have checked usernames and passwords that we are using to call the service and that is working fine. PI team tested from their side and li is also fine. We have also restarted the CE system but invain. Can somebody help on this.  The below is the trace that we got.
    Location: com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding
    Text: Connection IO Exception. Check nested exception for details. (Connection reset).
    [EXCEPTION]
    com.sap.engine.services.webservices.espbase.client.bindings.exceptions.TransportBindingException: Connection IO Exception. Check nested exception for details. (Connection reset).
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:419)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call_SOAP(SOAPTransportBinding.java:1364)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.callWOLogging(SOAPTransportBinding.java:990)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call(SOAPTransportBinding.java:944)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.processTransportBindingCall(WSInvocationHandler.java:168)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEISyncMethod(WSInvocationHandler.java:121)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEIMethod(WSInvocationHandler.java:84)
    at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invoke(WSInvocationHandler.java:65)
    at $Proxy780.mioaRDMDataDistribution(Unknown Source)
    at com.MDMEventListener.callToPIWS(MDMEventListener.java:100)
    at com.MDMEventListener.ListenerMethod(MDMEventListener.java:173)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_WS.invoke(Interceptors_WS.java:31)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:39)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:23)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
    at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
    at com.sap.engine.services.ejb3.webservice.impl.DefaultImplementationContainer.invokeMethod(DefaultImplementationContainer.java:203)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process0(RuntimeProcessingEnvironment.java:730)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.preProcess(RuntimeProcessingEnvironment.java:682)
    at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process(RuntimeProcessingEnvironment.java:324)
    at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPostWOLogging(ServletDispatcherImpl.java:199)
    at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:65)
    at com.sap.engine.services.webservices.servlet.SoapServlet.doPost(SoapServlet.java:61)
    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.Invokable.invoke(Invokable.java:152)
    at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:404)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:204)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:440)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:429)
    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:82)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
    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.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
    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:42)
    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:447)
    at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
    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)
    Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.readLine(HTTPSocket.java:950)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getInputStream(HTTPSocket.java:414)
    at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getResponseCode(HTTPSocket.java:319)
    at com.sap.engine.services.webservices.espbase.client.bindings.ClientHTTPTransport.getResponseCode(ClientHTTPTransport.java:209)
    at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:385)
    ... 78 more
    Regards,
    Pradeep

    Hi Pradeep,
    this looks like if the server is not reachable. Have you checked if both server are able to communicate? Maybe firewall rules block the request.
    Regards,
    Tobias

  • Error getting while calling a webService from XI

    Hi
    We are getting the follwoing error while calling a webservice from XI. We Could call the same webservice from XML spy. Have checked the SOAP adapter it was running fine and the communication channel parameters too.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Inbound Message --> <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"><SAP:Category>XIAdapterFramework</SAP:Category><SAP:Code area="MESSAGE">GENERAL</SAP:Code><SAP:P1/><SAP:P2/><SAP:P3/><SAP:P4/><SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault</SAP:AdditionalText><SAP:ApplicationFaultMessage namespace=""/><SAP:Stack/><SAP:Retry>M</SAP:Retry></SAP:Error>
    Please try to help.
    Thanks
    Ramesh

    Hi
    Thanks a lot for your kind support.
    Hi Moorthy
    We have created one Asyn MI and wrapped the external definition into that, Haven't done any mapping for responce. Please find the trace below.
    Hi Bhavesh
    It was great helpful link but the payload days is not visible for this message it was containing details about sending. For some other message i could see payload.
    I Could see one differnce in the XML Spy and "XI payload before entering SOAP Adapter"
    The following line doesn’t appear in the XI payload.
    <m:StatusUpdate xmlns:m="http://localhost/StatusUpdate" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    </m:StatusUpdate>
    Is this line would be embeded in the SOAP Adapter??? Please find the trace below. Please help me if you have any additional info.
    The message was successfully received by the messaging system. Profile: XI URL: Using connection AFW. Trying to put the message into the receive queue.
    Message successfully put into the queue.
    The message was successfully retrieved from the receive queue.
    The message status set to DLNG.
    Delivering to channel: CC_SOAP_Rcvr_D_Pick_ZALEAUD
    SOAP: request message entering the adapter
    SOAP: completed the processing
    SOAP: response message received 4cb3fab0-7fc5-11db-8c5a-000f203c93e0
    SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
    SOAP: sending a delivery error ack ...
    SOAP: sent a delivery error ack
    Exception caught by adapter framework: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
    Delivery of the message to the application using connection AFW failed, due to: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault.
    The asynchronous message was successfully scheduled to be delivered at Wed Nov 29 16:23:51 GMT 2006.
    The message status set to WAIT.
    Retrying to deliver message to the application. Retry: 1
    Kind Regards
    Ramesh
    Message was edited by:
            Ramesh Reddy Pothireddy

  • Calling a webservices from Oracle 10G ( 10.2.0.2)

    Hi:
    I am in the process of putting a database Java stored procedure that can call an external webservices.
    PL/SQL Wrapper -> Java Stored Procedure-> External Web services
    I loaded the following jars in the dataase.
    dbwsa.jar
    dbwsclient.jar
    1. I am having issues consuming this external webservice from SQL*PLUS. Do you know whether I need to load any other JARS ?
    2. How can I debug this issue ? I enabled TCP Monitor in JDeveloper and don't see anything when I call the PL/SQL wrapper in SQL*PLUS.
    3. I can use a Java client and tested the Web services OK.
    error message:
    SQL> l
    1 declare
    2 x varchar2(100);
    3 begin
    4
    5 x := tester.test_db1();
    6* end;
    SQL> /
    calling
    http://XX.XX.YY.121:8988/Application9-ViewController-context-root/MyWebService1S
    oapHttpPort
    java.rmi.RemoteException: Error parsing envelope; nested exception is:
    javax.xml.soap.SOAPException: Error parsing envelope
    at
    view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
    ub.java:99)
    at
    prpd.MyWebService1SoapHttpPortClient.sayhello2(MyWebService1SoapHttpPortClient.j
    ava:41)
    at prpd.TEST_DB.TEST_DB1(TEST_DB.java:21)
    Caused by: javax.xml.soap.SOAPException: Error parsing envelope
    at
    oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
    tation11.java:103)
    at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
    at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:934)
    at
    oracle.j2ee.ws.client.StreamingSender._preHandlingHook(StreamingSender.java:692)
    at oracle.j2ee.ws.client.StubBase._preHandlingHook(StubBase.java:688)
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:207)
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
    at
    view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
    ub.java:76)
    ... 2 more
    Caused by: java.lang.IllegalArgumentException
    at oracle.xml.parser.v2.XMLParser.setAttribute(XMLParser.java:794)
    at
    oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
    tation11.java:54)
    ... 9 more
    PL/SQL procedure successfully completed.
    SQL> /
    thx
    Raj

    thanks Tugduall for the comments. here are the instructions I followed to create a java stored procedure that can call a webservices. Unfortunately, this seems like a very complex task. Do you have any ideas how I could debug or troubleshoot this issue ?
    Please note that I used JDeveloper to generate the client code.
    ========================================================
    1. download the dbws-callout-utility-10R2.zip from OTN at:
    http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
    2. create an application/project with 1.4 JDK.
    3. create a web service by ‘Business Tier’->Web Service->Web Service Proxy->UDDI
    4. next… to ‘Search for’, type ‘quote’.
    5. from the list select one. For me ‘Quote of day’ was picked.
    6. click Next all the way to Finish.
    7. from the ‘Application Sources’ select ‘QuotoProxy’ then find its main method.
    8. at the section
    // Add your own code here, add the line like:
    System.out.println("quote "+myPort.getQuote());
    9. run it to see its return.
    10. cteate a class that has a method to call client method to be invoked (static)
    like the following:
    package dbws;
    import dbws.QotdPortClient;
    public class MainClientStub {
    public MainClientStub() {
    public static String getMyQoute(){
    QotdPortClient myClient = null;
    try {
    myClient = new QotdPortClient();
    return myClient.getQuote();
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    note that the package name in your project.
    11. create a deployment profile as ‘JAR File’. Uncheck the box ‘Project Dependencies’
    12. deploy it to the local box. ‘Deploy to JAR File’.
    13. unzip the dbws-callout-utility-10R2.zip to get dbwsa.jar.
    14. execute the following from command line:
    loadjava –user test/[email protected] -resolve –verbose –synonym –grant public to dbwsa.jar myarchive1.jar
    loadjava -user test/test@orcl1020 -resolve -verbose -synonym -genmissing -grant public myarchive1.j
    ar dbwsa.jar
    loadjava -user sys/<sys_pass> -resolve -verbose -synonym -genmissing -grant public myarchive1.jar dbwsa.jar
    15. create a function like the following:
    CREATE OR REPLACE FUNCTION teststub RETURN VARCHAR2 AS
    LANGUAGE JAVA NAME ‘dbws.MainClientStub.getMyQoute() return java.lang.String’;
    16. Run at sqlplus: Select teststub from dual;
    ======================================================

  • Calling a webservice from Pl/SQL

    Hi,
    I have created a function to call a webservice but I am getting the following error
    ORA-20000: soap:Client - System.Web.Services.Protocols.SoapException: Server
    did not recognize the value of HTTP Header SOAPAction: ConversionRate.
    at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
    at
    System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage
    message)
    at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
    at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
    HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp;
    abortProcessing)
    ORA-06512: at "APPS.SOAP_API", line 54
    ORA-06512: at "APPS.SOAP_API", line 81
    ORA-06512: at "APPS.PKG_MY_WEBSERVICE", line 12
    The Packages code are as follow:
    CREATE OR REPLACE PACKAGE soap_api AS
    TYPE t_request IS RECORD (
    method VARCHAR2(256),
    namespace VARCHAR2(256),
    body VARCHAR2(32767),
    envelope_tag VARCHAR2(30)
    TYPE t_response IS RECORD
    doc XMLTYPE,
    envelope_tag VARCHAR2(30)
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2);
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2;
    END soap_api;
    CREATE OR REPLACE PACKAGE BODY soap_api AS
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request AS
    l_request t_request;
    BEGIN
    l_request.method := p_method;
    l_request.namespace := p_namespace;
    l_request.envelope_tag := p_envelope_tag;
    RETURN l_request;
    END;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2) AS
    BEGIN
    p_request.body := p_request.body||'<'||p_name||' xsi:type="'||p_type||'">'||p_value||'</'||p_name||'>';
    END;
    PROCEDURE generate_envelope(p_request IN OUT NOCOPY t_request,
              p_env IN OUT NOCOPY VARCHAR2) AS
    BEGIN
    p_env := '<'||p_request.envelope_tag||':Envelope xmlns:'||p_request.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/" ' ||
    'xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">' ||
    '<'||p_request.envelope_tag||':Body>' ||
    '<'||p_request.method||' '||p_request.namespace||' '||p_request.envelope_tag||':encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' ||
    p_request.body ||
    '</'||p_request.method||'>' ||
    '</'||p_request.envelope_tag||':Body>' ||
    '</'||p_request.envelope_tag||':Envelope>';
    END;
    PROCEDURE show_envelope(p_env IN VARCHAR2) AS
    i PLS_INTEGER;
    l_len PLS_INTEGER;
    BEGIN
    i := 1; l_len := LENGTH(p_env);
    WHILE (i <= l_len) LOOP
    DBMS_OUTPUT.put_line(SUBSTR(p_env, i, 60));
    i := i + 60;
    END LOOP;
    END;
    PROCEDURE check_fault(p_response IN OUT NOCOPY t_response) AS
    l_fault_node XMLTYPE;
    l_fault_code VARCHAR2(256);
    l_fault_string VARCHAR2(32767);
    BEGIN
    l_fault_node := p_response.doc.extract('/'||p_response.envelope_tag||':Fault',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/');
    IF (l_fault_node IS NOT NULL) THEN
    l_fault_code := l_fault_node.extract('/'||p_response.envelope_tag||':Fault/faultcode/child::text()',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    l_fault_string := l_fault_node.extract('/'||p_response.envelope_tag||':Fault/faultstring/child::text()',
    'xmlns:'||p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
    RAISE_APPLICATION_ERROR(-20000, l_fault_code || ' - ' || l_fault_string);
    END IF;
    END;
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response AS
    l_envelope VARCHAR2(32767);
    l_http_request UTL_HTTP.req;
    l_http_response UTL_HTTP.resp;
    l_response t_response;
    BEGIN
    generate_envelope(p_request, l_envelope);
    show_envelope(l_envelope);
    l_http_request := UTL_HTTP.begin_request(p_url, 'POST','HTTP/1.1');
    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
    UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_envelope));
    UTL_HTTP.set_header(l_http_request, 'SOAPAction', p_action);
    UTL_HTTP.write_text(l_http_request, l_envelope);
    l_http_response := UTL_HTTP.get_response(l_http_request);
    UTL_HTTP.read_text(l_http_response, l_envelope);
    UTL_HTTP.end_response(l_http_response);
    l_response.doc := XMLTYPE.createxml(l_envelope);
    l_response.envelope_tag := p_request.envelope_tag;
    l_response.doc := l_response.doc.extract('/'||l_response.envelope_tag||':Envelope/'||l_response.envelope_tag||':Body/child::node()',
    'xmlns:'||l_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/"');
    -- show_envelope(l_response.doc.getstringval());
    check_fault(l_response);
    RETURN l_response;
    END;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2 AS
    BEGIN
    RETURN p_response.doc.extract('//'||p_name||'/child::text()',p_namespace).getstringval();
    END;
    END soap_api;
    SHOW ERRORS
    CREATE OR REPLACE PACKAGE pkg_my_webservice IS
    FUNCTION call_myfunction(vp_parameter1 VARCHAR2,vp_parameter2 VARCHAR2) RETURN VARCHAR2;
    END pkg_my_webservice;
    CREATE OR REPLACE PACKAGE BODY pkg_my_webservice IS
    vg_funciton_fnc VARCHAR2(256):='ConversionRate';
    vg_ws_address VARCHAR2(255):='http://www.webservicex.net/CurrencyConvertor.asmx';
    FUNCTION call_myfunction(vp_parameter1 VARCHAR2,vp_parameter2 VARCHAR2)
    RETURN VARCHAR2 AS
    ol_req soap_api.t_request;
    ol_resp soap_api.t_response;
    BEGIN
    ol_req:=soap_api.new_request(vg_funciton_fnc,'xmlns="'||vg_ws_address||'"');
    soap_api.add_parameter(ol_req,'string1','partns:string',vp_parameter1);
    soap_api.add_parameter(ol_req,'string2','partns:string',vp_parameter1);
    ol_resp:=soap_api.invoke(ol_req,vg_ws_address,vg_funciton_fnc);
    RETURN soap_api.get_return_value(ol_resp,'result','xmlns:m="'||vg_ws_address||'"');
    END call_myfunction;
    END pkg_my_webservice;
    -----------------------------------------------------------------------------------------------------------------------------------

    Hi,
    The soap_api package internally uses the utl_http api. I used the utl_http package directly and it works for me. Below is the code for the call, you will have to substitute the variables to suit your setup..
    Hope this Helps
    Thanks
    CREATE OR REPLACE FUNCTION get_webservice_dets(p_emp_number IN VARCHAR2
    ,p_eff_date IN DATE)
    RETURN VARCHAR2
    IS
    lc_proc VARCHAR2(50) := 'get_webservice_dets';
    ln_error_stg NUMBER := 0;
    lc_eff_date VARCHAR2(50) := NULL;
    soap_request VARCHAR2(32767);
    soap_respond VARCHAR2(32767);
    -- HTTP variables
    req utl_http.req;
    resp utl_http.resp;
    -- Store the Webservice URL in a Profile Option and change for each environment
    lc_wsdl_url VARCHAR2(32767) := FND_PROFILE.VALUE('XXERP_WEBSRVC_URL');
    -- return Values
    lc_retval VARCHAR2(32767);
    lc_response VARCHAR2(32767);
    lc_xml_ext_str VARCHAR2(100) := '/env:Envelope/env:Body/OutputParameters/';
    lc_xml_ext_unit VARCHAR2(50) := '/text()';
    lc_xmlns_ns1_url VARCHAR2(240) := 'xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XXERP_SOA_HCM_PKG/GET_SUPERVISOR_NO/"';
    lc_xmlns_env_url VARCHAR2(240) := 'xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"';
    lc_xmlns_xsi_url VARCHAR2(240) := 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
    lc_xmlns_url VARCHAR2(240) := 'xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XXERP_SOA_HCM_PKG/GET_SUPERVISOR_NO/"';
    lc_xml_namespace VARCHAR2(5000) := lc_xmlns_env_url||' '||lc_xmlns_xsi_url||' '||lc_xmlns_url;
    lc_xmlns_soap_url VARCHAR2(240) := 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"';
    lx_Response XMLTYPE;
    BEGIN
    ln_error_stg := 10;
    IF NVL(lc_wsdl_url,'X') <> 'X' THEN
    -- Format the date received as required by the Webservice i.e. - 'YYYY-MM-DDTHH:MI:SS+01:00'
    lc_eff_date := REPLACE(TRIM(TO_CHAR(TRUNC(p_eff_date),'YYYY-MM-DD HH:MI:SS')),' ','T')||'+01:00';
    -- Form a SOAP Envelope - Exact envelope can be obtained by invoking the above EndPoint URL in a browser session with required
    -- parameters and then clicking on the XML Source
    soap_request:= '<soap:Envelope '||lc_xmlns_soap_url||'>
    <soap:Body '||lc_xmlns_ns1_url||'>
    <ns1:InputParameters>
    <ns1:P_EMPLOYEE_NUMBER>'||p_emp_number||'</ns1:P_EMPLOYEE_NUMBER>
    <ns1:P_DATE>'||lc_eff_date||'</ns1:P_DATE>
    </ns1:InputParameters>
    </soap:Body>
    </soap:Envelope>';
    -- Initiate the HTTP request, don't forget to pass in the POST and HTTP/1.1
    req := UTL_HTTP.BEGIN_REQUEST(lc_wsdl_url, 'POST','HTTP/1.1');
    ln_error_stg := 20;
    -- Set the HTTP Request Headers
    UTL_HTTP.SET_HEADER(req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
    ln_error_stg := 40;
    UTL_HTTP.SET_HEADER(req, 'Content-Length', LENGTH(soap_request));
    ln_error_stg := 50;
    -- Set the SOAP Action to the Operation Name
    -- The function Name <getSupervisorID> should match the Webservice Operation Name in SOA
    UTL_HTTP.SET_HEADER(req, 'SOAPAction','getSupervisorID'); -- required to specify this is a SOAP communication
    ln_error_stg := 60;
    -- Append the SOAP Envelope to the HTTP request Header
    UTL_HTTP.WRITE_TEXT(req, soap_request);
    ln_error_stg := 70;
    -- Fetch the HTTP response from the Webservice - This will contain the SOAP Envelope response
    -- that needs to be processed downstream
    resp := UTL_HTTP.GET_RESPONSE(req);
    ln_error_stg := 80;
    -- Extract the HTTP response and store in a String Variable
    -- READ_TEXT is a specific method exposed to read the SOAP envelope returned from Webservice
    -- READ_LINE will read the entire HTML response back from the Server..
    UTL_HTTP.READ_TEXT(resp, lc_retval);
    ln_error_stg := 90;
    -- Create an XML Document from the String returned by the HTTP response..
    lx_Response := SYS.XMLTYPE.CREATEXML(lc_retval);
    ln_error_stg := 110;
    -- If the response is not null then extract the string value of the required output parameter
    -- the env: tag needs to be qualified with a corresponding namespace.
    IF lx_Response IS NOT NULL THEN
    lc_response := lx_Response.extract(lc_xml_ext_str||'PERSON_ID'||lc_xml_ext_unit,lc_xml_namespace).getstringval();
    ELSE
    DBMS_OUTPUT.PUT_LINE('XMLTYPE Doc returns NULL !!');
    lc_response := NULL;
    END IF;
    ln_error_stg := 120;
    -- End the response, otherwise you get
    -- UTL_HTTP.TOO_MANY_REQUESTS exception after 5 tries
    UTL_HTTP.END_RESPONSE(resp);
    ELSE
    DBMS_OUTPUT.PUT_LINE('Web Service URL not populated, please provide a value for the Profile Option XXERP: Web Service URL');
    lc_response := NULL;
    END IF;
    RETURN lc_response;
    EXCEPTION
    WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    WHEN UTL_HTTP.END_OF_BODY THEN
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR @'||ln_error_stg||': '||SQLERRM);
    UTL_HTTP.END_RESPONSE(resp);
    RETURN NULL;
    END get_webservice_dets;

  • Missing sender information in message from Integration Process

    Hi All,
    I am testing a scenario uses Integration Process. This Integration process sends out a async message but this message has empty sender tag in header , Because of this routing rules and agreements defined for this are not triggered and message goes into error state.
    There is sender interface Information in message header but not integration process information. I am working on SAP NetWeaver PI 7.1 system. This is working from other synchronous interface in same process.
    Routing rule and receiver agreement has sender as mandatory field, so can not define generic set without sender component.
    I went through SAP Note 807640 But there is no information about such error.
    Am I missing something in configuration? Please let me know how can i configure Routing Rule and Interface Determination for this scenario.

    Thanks for replying to the post.
    Integration process is used as a async-sync bridge. Following are high level steps.
    1. Receive async FI message from sender
    2. Map message to BAPI SAP FI document
    3. call Sync BAPI.
    4. Map the response of BAPI.
    5. Post it back to sender in async mode.
    I am having problem in step 5 where message is coming out of BPE without its own name (i.e sender name). Thus it does not triggers Routing rules and fails.

  • Spliting a Message to reuse an Integration Process made for a single one.

    Hi,
    I have a Integration Process that works well for a XML message of the type:
    <EMESSAGE>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
    </EMESSAGE>
    My BPM process the data for the Person correctly.
    Now I want to be able to tried more than one person per input message, some thing like:
    <EMESSAGE>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
    </EMESSAGE>
    I build a 1:n Interface Mapping that creates me the following structure:
    <Messages>
    <Message1>
    <EMESSAGE>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
    </EMESSAGE>
    </Message1>
    <Message2>
    <EMESSAGE>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
    </EMESSAGE>
    </Message2>
    <Message3>
    <EMESSAGE>
      <PERSON>
        <TAG_1>
        <TAG_2>
      </PERSON>
    </EMESSAGE>
    </Message3>
    </Messages>
    But when I use a ForEach Block in my new BPM, it doesn't work if there is more then 1 person in the input. The error message I got is:
    <?xml version="1.0" encoding="utf-8" ?>
    - <MappingTrace>
      <Trace level="1" type="T">Mapping-Namespace:http://domain.com/xi/domain_4</Trace>
      <Trace level="1" type="T">Mapping-Name:IM_CPM_AbsSync_to_N_CPM_AbsSync</Trace>
      <Trace level="1" type="T">Mapping-SWCV:3E235261F43111DDB40AC952C0A80C15</Trace>
      <Trace level="1" type="T">Mapping-Step:1</Trace>
      <Trace level="1" type="T">Mapping-Type:XSLT</Trace>
      <Trace level="1" type="T">Mapping-Program:CPM_to_N_ContextPersonMessage</Trace>
      <Trace level="3" type="T">Mapping has one input message.</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="3" type="T">Multi mapping required.</Trace>
      <Trace level="3" type="T">Creating XSLT mapping CPM_to_N_ContextPersonMessage.</Trace>
      <Trace level="3" type="T">Load 3e235261-f431-11dd-b40a-c952c0a80c15, http://domain.com/xi/domain_4, -1, CPM_to_N_ContextPersonMessage.xsl.</Trace>
      <Trace level="3" type="T">Search CPM_to_N_ContextPersonMessage.xsl (http://domain.com/xi/domain_4, -1) in swcv 3e235261-f431-11dd-b40a-c952c0a80c15.</Trace>
      <Trace level="2" type="T">Call XSLT processor with stylsheet CPM_to_N_ContextPersonMessage.xsl.</Trace>
      <Trace level="2" type="T">Returned form XSLT processor.</Trace>
      <Trace level="3" type="T">XSLT transformation: CPM_to_N_ContextPersonMessage.xsl completed with 0 warning(s).</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="1" type="T">Content Type application/xml</Trace>
      <Trace level="1" type="T">No interface specified for parameter 2</Trace>
      </MappingTrace>
    Does someone have any idea or a suggestion on how to reuse my BPM that works for a single person?
    Thanks in advance for your suggestions.
    greg

    ok no success for the moment, so I will try to describe my BPM more precisely:
    The DT I use can contain up to 1'000 PERSON record inside a unique EMESAGE reccord (the root element)
    My containers: (all are of type Abstract Interface of my DT)
    Input (Process)
    requestList(Process) Multiline
    request(block)
    response(block)
    Receive Request Step
    Message: input
    Start Process: Yes
    Mode : Async.
    Split (Transformation) Step
    IM: My Interface that does the 1Message with N PERSON records to N Messsages with 1 PERSON record
    Create new transaction: Yes
    Source: input
    Target: requestList
    Block Step
    Mode: ForEach
    Block Start: New transaction
    Block End: New transaction
    Multiline_Element: RequestList
    CurrentLine: request
    No end condition
    Inside the block
    My Sync Send call to a BAPI
    Source: request
    Target: response
    A final Async Send step
    Message: response.
    The workflow stop at the Transform step, as if hte fact that many messages come in result could not be handled back. Here are the details for the Interface mapping used in the transformation step:
    Source: MyDataTypeAbstractAsynchroneInterface
    Occurrence: 1
    Destination:
    Occurrences: 0:unbounded
    Mapping program: the following XSLT:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:template match="EPERSON">
         <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
                   <xsl:for-each select="CONTEXTPERSON">
                   <xsl:element name="ns0:Message{position()}">
                   <EPERSON xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ContextPersonMessage">
                        <xsl:element name="CONTEXTPERSON">
                             <xsl:attribute name="personid"><xsl:value-of select="@personid"/></xsl:attribute>
                        </xsl:element>
                        <!--End of CONTEXTPERSON> -->
                   </EPERSON>
                   </xsl:element>
              </xsl:for-each>
         </ns0:Messages>
         </xsl:template>
    </xsl:stylesheet>
    Still any suggestions ?
    The trace of the error is the same as before, so I won't copy paste it again.

  • Integration Process does not start

    Hi guru's
    My scenario is this. From ECC we send Idocs to PI. We have an integration process to receive the idocs because only max 9999 are passed in the port.
    We run just around 11000 CREMAS idocs now.
    The problem is that the integration process does not start on our QA environment while it does start on DEV environment.
    I've run many checks on both environments and they all look the same.
    To name a few:
    * Cache are all green and up-to-date.
    * I checked the WF models which are behind the Integration Process and they are the same.
    * Event correlation is correct in both environments
    * When i test the idocs are correctly sent from ECC to PI.
    However on DEV I see in transaction SXMB_MONI_BPE i see that the integration process is triggered and started. It waits 10 minutes and collects any messages that come in, and then bundles these and sends them on to the receiver.
    On QA i do not see the Integration Process being started. Only records i see in SXMB_MONI_BPE are three work items, 2 completed, 1 ready, all 3 are called waiting for event.
    I'm probably missing some configuration somewhere but what could it be?
    Regards
    Robert

    Hi Eng Swee,
    Thx. I checked it already and it works fine.
    Meanwhile i did do some changes and some retests and now i saw somewhere that all my tests were creating more steps in an already started integration process, that was still waiting.
    I now cleared some old workitems and started afresh.
    What i see now is:
    1)  the BPM process start correctly
    2)  it receives 1 or 2 or 3 or n messages
    3)  it then waits for the deadline to finish, i.e. it should run for 10 minutes and then proceed to the next step which is sending the collected idocs to receiver.
    On DEV the deadline works fine. On QA it doesn't.
    IN SWU3 i have done the customizing and it shows green, so that part is OK.
    Still the deadline is passed and it doesn't have the desired effect on mu BPM process (workflow).
    Are there any other checks i can do to see if the deadline mechanism is properly working?
    Is there a maybe a manual step i can do to trigger the deadline? Then at least i get some information on where the real problem is.
    (Sorry for earlier confusion but i hadnt realized that there was still a process running)
    Regards
    Robert

  • Integration Process exception handling & alerts, Java

    Hello,
    I would like to enhance my basic scenarios fool proof and with as much Java as possible.
    I have set up several asynchronous and synchronous File to SOAP transfers between systems A and B
    using PI70 including my own Java mapping classes and PI's AF_Modules beans. They work just fine.
    I have not designed my own Integration Processes yet, so execution is based on channel settings and availability timing.
    I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing.
    For example server problems at receiver side can result data losses as sender channel just keeps removing source
    files like normally, as the process would be better to just stop right there and alert or something.
    My question is, is the "Enterprise services Builders" Integration Process & Graphical definition screen the one and only tool to 
    customize whole process exception handling and alerts in PI, and Java is not an option?
    Appreciate your advice on this.
    Kind regards m

    Hi m,
    Strange Name
    >>I have learned this aproach may be exposed to general faults resulting manual monitoring and repairing. For example server problems at receiver side can result data losses as sender channel just keeps removing source  files like normally, as the process would be better to just stop right there and alert or something.
    If you are looking to handle this particular scenario, then we have the alert mechanism and CCMS monitoring. There you will come to know whether the end system down or not.
    Also in addition to this you can write your own java (in message mapping, as modules, java mapping) /abap code (as abap mapping, user exit in standard functions etc) for providing more details in error scenarios. But you need to validate whether the maintenance/development cost for the code is justified in your scenarios
    Regards
    Suraj

Maybe you are looking for