Fault message handling in BPM workaround?

Okay so we all know by now that SAP does not support fault messages in their ccBPM implementation of the BPEL standard.
My question is this.
Does anyone have a viable work around for a SOAP (or any other) interface?
I have altered my calling interface to return either a success response or a fault response in the normal response message e.g.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Response xmlns:ns0="">
   <Success>
   </Success>
   <Fault>
   </Fault>
</ns0:Response>
but I still need a way to get the SOAP adapter to return a fault message when the <Fault> segment of the above mesage is populated.
Thanks,
Stephen

Hi,
if fault part of message is filled, just trigger an exception or an alert..
cheers,
André

Similar Messages

  • Fault message handling in BPM

    Hi again xi fighters
    I created a business process with a synchronous sending step. I defined all interfaces and implemented also an own fault message type within the synchronous abstract interface. If the used RFC got the correct data the sync. sending step worked proper and also the business process worked fine. If I providing wrong data to the RFC to force him to throw an exception the Business process received the fault message. Then I just want to send the received fault message asynchronously to a file adapter within the defined exception branch. And now the question no-one answered in several discussion threads ;-<
    How can I send the message? I am not able to implement a new variable in the container for the fault message type. Any advises here?????
    Please help me, before I got inshane of SAP ;->>
    Regards Oliver
    Message was edited by: Oliver Bluhm
    Hi everybody
    any ideas, or is the question not clear. Please have a look and let me know you exlperience!
    Regards Oliver

    Hi Oliver,
    how do you know, that is impossible to read the content of the fault message in the exception branch? Did someone from SAP say that? For days I read all the notes, blogs, help,.. and didn't find an answer.
    It should work.
    1. I have an integration process in XI sending a sync message to R3.                                    
    - OK
    2. In the generated proxy class I raise an exception of the generated exception proxy class.              
    - OK
    3. The exception message is shown in the message monitoring, containing also all our customer-data.
    - OK
    4. The integration process in XI activates the correct exception branch.
    - OK
    Missing: How do I get a grip on the data in the error message? 
    Kind regards Philipp
    Message was edited by:
            Philipp Jakob

  • IDoc to SOAP Receiver Fault Message Handling?

    Hi,
    I am working on IDoc to SOAP Scenario (IDoc -> PI -> SOAP). It is in async mode without BPM. This works fine as long as there is no error on the SOAP receiver side. How to handle the falut message raised by the SOAP receiver and send it back the SAP ECC.
    Do I need to use ALEAUD IDoc for this? If Yes, how to configure this to handle fault message? Is there any other way of doing it?
    Could you please give steps to handle the fault message?
    Thank you.
    Regards,
    Cdr.

    Have a look into the below threads -
    How to capture SOAPFault in an Async/Sync Scenario without BPM
    Acknowledgement Handling in IDoc to SOAP Scenario in PI 7.3

  • Fault message handling in abap client proxy

    Hi experts,
    i have scenario like this SAPECC---XI---WEBservice
    i was decided to using the ABAP CLIENT proxy in sender side and soap adapter communication in receiver side
    i will be get the wsdl file form client
    problem is i am in bit of confusion like  am i need to create fault message for this asychronous scenario?
      how can i create the fault message for this scenario(that WSDL) and how the abaperwill  handle those error
    thanks in advance

    Hi.
    You can use fault message but it won´t return a error to your ABAP Proxy because your interface is ASSYNC. The fault message generated will stop in Adapter Engine.
    If you need a return of the error, you have to change your interface to Sync mode.
    To get more information, follow the link below:
    Fault Message Type
    http://help.sap.com/saphelp_nwpi711/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    Best Regards.
    Bruno

  • Using Fault Message Type in BPM

    Hi,
    In my BPM Scenario, I am using a synchronous send step in which I am using a fault message type.For giving the container for the fault message in the Properties area of the send step, I want to define a container corresponding to the Fault message Type I have already defined.How can I achieve this since it is not possible by defining an Abstract Interface? Can someone please explain how to do this?
    Thanks and Regards,
    Soumya.

    Hi Soumya,
    Here are the links for two threads. one has discussed fault mssage type in bpm and the other the general application of a fault message type.
    thread1:- Alert monitoring and fault message types
    thread2:- fault message in BPM process
    Regards,
    Sushumna

  • Soap fault message handling in XI

    Hi,
    I am using axis 1.4. SAP XI is my clinet. My wsdl file as below
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://ws.example.com/service"
       xmlns:wns="http://ws.example.com/service"
       xmlns:tns="http://ws.exampleenterprise.com"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
             <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    targetNamespace="http://ws.exampleenterprise.com"
                    elementFormDefault="qualified">
                     <xs:complexType name="SecrtySbj">
                             <xs:sequence>
                                     <xs:element name="usrname" type="xs:string"/>
                                     <xs:element name="pswrd" type="xs:string"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:complexType name="AuthenticateRequest">
                             <xs:sequence>
                                     <xs:element name="secrtySbj" type="tns:SecrtySbj"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="authenticateRequest" type="tns:AuthenticateRequest"/>
                     <xs:complexType name="AuthenticateResponse" >
                             <xs:sequence>
                                     <xs:element name="sessnId" type="xs:string"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="authenticateResponse" type="tns:AuthenticateResponse"/>
                     <xs:complexType name="customFault">
                             <xs:sequence>
                                     <xs:element name="customCd" type="xs:int"/>
                                     <xs:element name="customMsg" type="xs:string" minOccurs="0"/>
                                     <xs:element name="customExcp" type="xs:string" minOccurs="0"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="customFault" type="tns:customFault"/>
             </xs:schema>
    </wsdl:types>
    <wsdl:message name="authRequest">
       <wsdl:part name="parameters" element="tns:authenticateRequest"/>
      </wsdl:message>
      <wsdl:message name="authResponse">
       <wsdl:part name="result" element="tns:authenticateResponse"/>
      </wsdl:message>
      <wsdl:message name="CustomFault">
       <wsdl:part name="CustomFault" element="tns:customFault"/>
      </wsdl:message>
      <wsdl:portType name="AuthenticateServiceInterface">
            <wsdl:operation name="authenticate">
        <wsdl:input message="wns:authRequest" />
            <wsdl:output message="wns:authResponse" />
        <wsdl:fault name="CustomFault" message="wns:CustomFault"/>
       </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="AuthenticateServiceSoapBinding" type="wns:AuthenticateServiceInterface">
              <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
       <wsdl:operation name="authenticate">
        <soap:operation soapAction=""/>
        <wsdl:input>
         <soap:body use="literal"/>
        </wsdl:input>
            <wsdl:output>
                    <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="CustomFault" >
                       <soap:fault name="CustomFault" use="literal" />
               </wsdl:fault>
       </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="AuthenticateServiceService">
       <wsdl:port name="AuthenticateService" binding="wns:AuthenticateServiceSoapBinding">
        <soap:address location="http://10.236.14.6:8080/axis/services/AuthenticateService"/>
       </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>
    Axis generates the soap fault as below in detail tag as below
    <ns1:customFault xmlns:ns1="http://ws.examplenterprise.com">
    <ns1:customCd>123</ns1:customCd>
    <ns1:customMsg>Password is wrong</ns1:customMsg>
    <ns1:customExcp>CustomException</ns1:customExcp>
    </ns1:customFault>
    They are getting error like below while getting the fault message.
    <SAP:ApplicationFaultMessage namespace="http://ws.exampleenterprise.com">customFault<SAP:ApplicationFaultMessage>
    Question: Why it is throwing "ApplicationFaultMessage" for fault messages? is there any error in wsdl file in defining the elements? or style has to be different? or is it an namespace issue in the wsdl?
    Note: They are able to do it sucessfull for the response message.

    Hi,
    The answer is in your Question itself.
    XI Sequence
    1.First step is to identify the wsdl:Message element with the namespace http://ws.example.com/service
    2.The next step is to go to the part element in http://ws.exampleenterprise.com and map the fault message.
    To be simple in your case http://ws.example.com/service is the namespace of Fault Message and http://ws.exampleenterprise.com is the namespace of the fault message payload  (Fault XML Message).
    So even though the Fault XML Message has the namespace http://ws.exampleenterprise.com ,but if the fault namespace doesnot come with http://ws.example.com/service then Fault will not be triggered and processed in XI.
    I hope you get the difference between the two namespaces used and the implications of them.
    Fault is entirely different from respone.
    Its like exception in java. If you donot catch the correct exception, will the exception raised be caught? Similarly if your SOAP service doesnot invoke the fault message with correct namespace (http://ws.example.com/service ), you cannot invoke/catch the fault message in XI.
    Regards,
    Sudharshan N A

  • Fault message handling in syn proxy

    Hi Experts,
    I have implemented Proxy to Web service synchronization scenario and implemented request response and fault message mapping.
    But when the scenario is getting the Application error the fault message is visible in sxmb_moni but not visible in the proxy or not being forward to proxy ?
    Can you help if there is any more config or  any other follow up is required, all the mapping and other part of fault message is as per PI standard only including the proxy ABAP code?
    regards,.

    Hi,
    But when the scenario is getting the Application error the fault message is visible in sxmb_moni but not visible in the proxy or not being forward to proxy ? - In your R/3 system by transaction SXMB_ADM, then integration engine configuration - specific configuration - in RUNTIME add parameter for logging and tracing and set it to maximum level...........also LOGGING_SYNC parameter should be enabled................
    then re-run your scenario..........then for a application fault msg in SXMB_MONI of XI, you should see a fault msg in SXMB_MONI of your r/3 system.
    Regards,
    Rajeev Gupta

  • Fault message in synchronous send step in BPM

    Hi,
    When executing a synchronous send step in BPM it is possible to handle application errors (fault messages) with an exception branch. But how do you get hold of the actual data in the Fault message(faultText, faultURL, faultDetail etc) for further processing (mapping)?
    Kind regards Johan

    Johan,
    u have to define another container element in integration process.
    For that container element an Async Abstract interface has to created with falult message as the message.
    Do u have the fault message defined already...
    Also go through this thread.
    Fault message handling in BPM
    -Naveen.

  • Fault message in BPM process

    I have a bpm process with a sync send step. i have a default fault message strcuture and my sync interface ( a proxy) is using this as fault message format. In case of an fault in the proxy i get the fault message returned. In my bpm i have an exception handler installed for the exception. What i would like to do in my process is send the fault message to another step like a send step.
    i m not looking to understand sync/async bridges or how to setup a bpm process. I am looking for help in how i can work with the fault message in my bpm process other then only let it trigger the exception routine

    Hi Frank,
    in the view of your BP an exception at proxy side is no reason to stop processing. The message will be put to your interface and it is your decision to put data into a container and to send it. For using a "global" container for every kind of message have a look to my weblog <a href="/people/udo.martens/blog/2006/04/28/bpm-container-for-any-message-type Container for any Message Type</a>. If your send step is not successful and you want to catch that: Define an exception branch for your block, where you send a senseful message to notice the error. You can refer in the original send step the exception, during runtime the process jumps into the exception branch and is doing that what you defined there.
    Regards,
    Udo

  • BPM synchronous send step - Fault message extraction

    Hello Experts,
    I am developing a BPM with Asynch RFC -> synch Webservice -> Asynch RFC scenario.
    I have defined fault message in the synchronous interface used in the send step for web service, and also defined
    exception branch where an alert is thrown.
    In the alert, i want to send the fault text from the fault message. How can i do that??
    Thanks

    Hi Mona,
    SOAP adapter doesnt support fault messages.
    check stephan's reply @ How catch the SOAP Fault Message ?
    > SOAP adapter does not support fault message.
    > Any fault is treated as error.
    > fault messages are only supported for XI messages (ABAP or Java proxies) and RFCs.
    Fault message handling is not possible inside BPM.

  • Emulate Fault message in BPM

    Hello
    I have read all related topics
    fault message in BPM process
    Alert monitoring and fault message types
    Using Fault Message Type in BPM
    but no answer..
    I have synch BPM that send synch request to RFC and a mapping step. Then I have to catch exception (of send step or mapping) and send fault message in exception handler.
    I haven't a proxy. I want to create fault message manually and send it. Is it possible? I cannot create an interface of fault message type.

    Hi Sergey,
    As far as I know, it's possible to catch the mapping/send exception.
    It's also easy to define an exception branch for this exception, and inside the exception branch, send a "normal" message in a send step.
    However, as far as I know there's no way of specifying a BPM send step that sends a fault message.
    At least in my experience, regular messages are just as useful when sending error information.
    Cheers,
    Ofer

  • Send Fault message from SAP XI

    I have scenario: get async file from FTP. Starting BPM. From BPM I send message to SOAP service(sync). Where I recieve Fault Message. In BPM I have exception handler.
    Could any body tell how send parced Fault message to FTP.
    As I understand we need mapping somthing like "Fault message type" to "Inbound message type"

    Hi Anton,
    Its not possible to catch the data of fault message in BPM with the standard design.Since you can't make an abstract interface of the fault message.
    The option available is to parse the XML in the fault message mapping and do a call using UDF's (RFC, SOAP, JDBC calls are supported).
    cheers
    Sunil.

  • Sync/Async bridge via JMS with FAULT messages

    Hello all,<br><br>
    I set up a sync/async bridge scenario with using of JMS communication channel (SAP - JMSReceiverCC - JMSServer and application - JMSSenderCC - SAP). The normal communication works fine.<br>
    But what we can not solve is the Fault Message handling. If there is a application error behind the JMS, a fault message is generated instead of proper application response and sent back to XI. Without any additional setup of JMS Sender CC the processing of the message ends with "MAPPING - EXCEPTION_DURING_EXECUTE", because normal "response mapping" is executed instead of "fault message mapping". This is correct behavior without any discussion.<br><br>
    [SAPhelp|http://help.sap.com/saphelp_nw70/helpdata/en/45/202845de34072ce10000000a155369/frameset.htm] says that there are 2 module parameters to be set : fault, faultNamespace. The description is rather vague, so let's see, what the "NotifyResponseBean" does, when parameters fault/faultNamespace are filled:<br><br>
    <pre>if(fault != null && faultNamespace != null)
      if(faultNamespace.equals("http://sap.com/xi/XI/System"))
        ((XIMessage)message1).setMessageClass(MessageClass.SYSTEM_ERROR);
        ((XIMessage)message1).setError(fault, "no additional information");
      } else
        ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_ERROR);
        ErrorInfo errorinfo = message1.createErrorInfo();
        errorinfo.setAttribute("ApplicationFaultInterface", fault);
        errorinfo.setAttribute("ApplicationFaultInterfaceNamespace", faultNamespace);
        errorinfo.setAttribute("ErrorCode", fault);
        errorinfo.setAttribute("AdditionalErrorText", "no additional information");
        message1.setErrorInfo(errorinfo);
    } else
      ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_RESPONSE);
    }</pre><br>
    The code is pretty straight forward so one could assume, that it's the name and namespace of inbound synchronnous message interface what is supposed to be filled in the values of each parameter. And from that kind of information SAP XI can evolve how to handle the response, actually the fault.<br>
    Unfortunatelly the real situation is different - every time the fault message is generated and sent back to XI, the response is correctly corelated with the request message, "WaitResponseBean" and "NotifyResponseBean" are finished correctly and the processing crashes in messaging class on following exception:<br><br>
    java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:592) at
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    com.sap.aii.adapter.xi.ms.XIMessage.updateHeaders(XIMessage.java:4244) at
    com.sap.aii.adapter.xi.ms.XIMessage.getTransportHeaders(XIMessage.java:570) at
    com.sap.aii.af.ra.ms.impl.ServerConnectionImpl.request(ServerConnectionImpl.java:212) at
    com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet.doPost(MessagingServlet.java:337) at ...
    <br><br>
    Is there anyone, who can put more light on JMS sync/async bridge fault handling ???
    <br><br>
    Thank you ...<br>
    Regards
    Tomas

    Hello again,
    I proceed in investigation little more, but the main problem has not been solved. I found that the problem is not even in WaitResponseBean (placed in JMCReceiverCC). This bean is woken up properly on base of proper CorrelationID. See the log:
    2009-10-15 11:00:33 Success WRB: entering WaitResponseBean
    2009-10-15 11:00:33 Success WRB: retrieving the message for f1ea1fc0-b96d-11de-9b68-00144f4acd86 ...
    2009-10-15 11:00:46 Success WRB: retrieved the message: ApplicationError
    2009-10-15 11:00:46 Success WRB: leaving WaitResponseBean
    I think, that the problem is somewhere within main messaging functionality. I suppose that on base of exception message:
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    which is generated.
    Any ideas or comments ?
    Thank you in advance.
    Regards
    Tomas

  • RFC Exception handling in BPM

    Hi All,
    I currently have a scenario where I receive an IDoc, then need to make an RFC call to another R/3 system to get some additional data, and then transform and send the resulting message out to another system.  There is a possible case where the R/3 system will send back a fault message with some meaningful text which we would like to map to a Status IDoc to send back to the source system.  The problem is, I can't seem to find a way to be able to use the fault message in a map in the BPM.
    Is this a limitation of XI, or is there some way to get this fault message into the BPM?

    Fault message propagation still functions the same for BPM....now instead of populating it as a Fault message can you ask the end system to populate the error (if any) as a response....may be the response RFC will be required to have the error structure.
    Now in BPM decide whether this is an error....if yes then create the IDOC....if not then discard the message.
    In one of my project requirements we had a similar req wherein there was proxy at receiving end....we updated the proxy (ASYNC) and if any error then another proxy would be populated giving error details (in case there was an error)....both the flows ASYNC....once we got the details we would do further processing.
    Regards,
    Abhishek.

  • SOAP to RFC using fault message

    Hi All,
    I get a request from Web-service by using the SOAP adapter and pass the same to the SAP ECC for geting the response. I do not need a message mapping as i am passing the same data to SAP ECC. I need to track the errors in fault messages.
    Q1. Can i use the fault message handling without using the message mapping.
    Q2. If web-service is down and i can't send the response back then do i need to using the fault messageing concept or is there any other way i can get the details back in XI.
    If we can use the fault message without using message mapping concept, can someone help me out.
    Thanks,
    JGD

    You are using SOAP sender and Proxy receiver synchronous
    >>Q1. Can i use the fault message handling without using the message mapping.
    Request mapping, Response mapping and fault message mapping - all these three constitutes message mapping.
    >>Q2. If web-service is down and i can't send the response back then do i need to using the fault messageing concept or is there any other way i can get the details back in XI.
    If the webservice is down , you dont get message, then you dont need fault message.  Fault message is used only for business exceptions and more. If your ECC is down due to some exceptions or errors, you can trace those messages in  proxy coding and pass  it up to soap as fault message as response.
    In this case, you dont need at all.

Maybe you are looking for