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

Similar Messages

  • Handling fault messages in BPM

    Hi,
    I am using BPM for a RFC to SOAP scenario to handle Fault messages. (Please have a look at my previous post also SOAP Fault message )
    I have created an exception block in BPM to catch the fault message from SOAP service. Inside the exception block i need to map the fault message to RFC response. But fault message is not accessible in Exception block.
    Let me know if you have any idea to solve this.
    Thanks,
    Uma

    Uma:
    Let me make clear the requiremt. You have RFC Import(aka Request message) and Export(aka Response + Exception) and you have Web Service with Request, Response, Fault messages. And you want to send the fault messages back to the RFC in addition to the response. I was wondering, If we do the following mapping without BPM, does that fulfill your requirement.
    RFC-Import <----
    > SOAP Request
    RFC-Export <----
    > SOAP Response
    RFC-Export <----
    > SOAP Fault
    Can you let me know if you face any problems with this one. I have seen your other thread and was wondering, whats the problem is. May be I didn't understand the requirement properly. Please clarify me

  • Correlate MDN to AS2 message using an integration process

    Hello,
    I had a similar question in a previous thread but closed it as the problem might have not been to clear.
    Problem is that we have to use BPM for an AS2 scenario and correlate the MDN back to the process as we need BPM functionalities such as error handling and time-outs as well as some data enrichment.
    Problem is even when I request the MDN synchronously on Adapter Level it is delivered as asynchronous message back. So I need to figure out how to correlate it.
    MDN contains the messageID so I tried to use the messageID of the original message as correlation. However problem is that a new message ID is assigned when the message is sent by the integration process and the second on is used then as ID in the MDN.
    It seems to me that it is therefore not possible at alle to correlate the MDN? However this is a definitive requirement so I am really stuck at the moment.
    Do you have any idea?
    Thank you very much!

    Hello,
    well, actually the correlation itself would work as I extract the messageID in a transformation step and then activate the correlation in a send step.
    If I check the flag "Refer MDN to XI" in AS2 receiver channel the MDN is delivered back to the integration server and the original messageID is then part of the MDN message payload.
    However, and that is the big problem, the MDN uses the second messageID that is created when sending the message from the integration process (and not the first one when the message is sent from sender and process by the integration process).

  • Alerts in Integration Process (BPM)?

    We are just beginning to use Alerts in PI 7.1.  If an error occurs in an integration process (BPM), will it trigger an alert if the Alert Rule is defined wide open?  Or do you actually have to trigger the alert in the integration process with an additionl step to trigger the alert?

    The Alert has to be defined in ALRTCATDEF.....no matter where the alert comes from (IE, AE, BPE)
    If an error occurs in BPM and you have not mainatined proper exception handling for it then....and if the processing shows in red in SXMB_MONI then the alert will be raised as IE alert
    However if you have implemented exception handling for a step and then in that exception branch you raise an alert then your BPM will raise alert....the subject of your alert email will be Process <ProcessID>
    BPM related alert can be either with static text (using Alert Container Variables) or Dynamic text (using some value from payload)
    Please note that to raise an alert from BPM it is not compulsory to only raise it as a Dynamic Alert......static alert can also be raised.
    The documents which are available for lower releases are still applicable in alert creation.....so existing blogs/ docs should work
    Regards,
    Abhishek.

  • Handling Fault Messages for JDBC Receiver (Syn Inbound)

    Dear Freinds,
    Can we handle fault messages for JDBC Receiver which is synchronous.
    OB Proxy Syn  <>  IB JDBC Syn
    1. How to handle the same ? Please give some examples.
    2. Should we use Stored Procedures at Oracle side to handle the fault messages and send back as response to the Proxy Response. Will it work.
    Thanks & Regards
    K.Ramesh

    Dear Friend,
    I have 2 interfaces where Proxy is OB & JDBC is IB. In the first interface both sender and Receiver are synchronous and in the second one it is Async.
    In the first interface i have to send one field from R/3 table along with Native SQL query string to XI and the response of the SELECT query is sent back to the sender.
    Assume if no fields are selected based on the field sent then proper error message has to be sent instead of the response message.
    In the second interface i will be using UPDATE query at Asyn JDBC receiver.
    How to do this if you are having JDBC Receiver.
    I saw in many blogs where they had mentioned that we cannot handle fault messages in the Receiver JDBC.
    KIindly explain.
    Thanks
    K.Ramesh

  • Not able to integration process(BPM) objects in ID

    hi,
    I have created one integration process(BPM) in IR part but I am not able to see it in my ID part.
    when I tried to import it thru IR its not showing me in list.
    Please let me know.
    Thanks,
    Bhupesh

    Check:
    1) If BPM is activated in IR
    2) If the Cache Status Overview of IR is showing any error entry....normally even when you activate the objects you may not view them in ID when there is an error in the cache update.
    Regards,
    Abhishek.

  • Handling Fault Messages

    Hi,
    I have this synchronous scenario :  RFC > (XI without Integration Process) > SOAP.
    Imagine that there is a problem with SOAP System and i get (don't worry about the error itself):
    <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.DeliveryException:
    invalid content type for SOAP:
    TEXT/PLAIN; HTTP 400 Bad Request</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I tried to add ExchangeFaultData into SOAP Interface, and mapping it but it didn't work.
    Can i get this exception mapped into RFC exception?

    The usage of your fault message is not correct, since it is designed to handle application error, in your case, it is technical error, it should be handled by alert framework.
    Liang
    ===========SAP Definition================
    Fault message types are designed for application-specific errors that occur on the inbound side and that are reported back to the sender or persisted in monitoring.
    u2022        In the synchronous case, when an application-specific error occurs on the inbound side, instead of sending a response message back to the sender, the application can send a fault message to handle the error.
    u2022        The fault message of the application for an asynchronous ABAP server proxy is persisted for monitoring. In the case asynchronous of Java server proxies, the fault message is part of a negative application acknowledgement (see Acknowledgments).
    Application-specific means that the application on the inbound side triggers the error itself because, for example, the request message did not contain sufficient information.
    ========= End of SAP Definition================

  • Performance tuning in objects involving Integration process (BPM)

    Hi,
    We are facing a performance problem in one of our objects having integration process. The messages are getting processed sequentially instead of parallel processing within the integration process. As a result, the messages are getting queued up in the queue waiting for processing. Thus by the time all messages get processed, the time taken would have been alarmingly high. There is no correlation involved in the int process. My questions are
    1. Is there any performance related best practices/checklist/config steps available for BPM related implementation. If so, please furnish/provide the links if any.
    2. If it is not related to BPM , but related to tuning up of the queues, please provide the guidelines for queue tune up.
    3. How to ensure that the messages are processed in-parallel within BPM ?
    Regards
    Ganesh

    Hi,
    Am not sure whether this would help you.  By any chance did u use For Each instead of Par For Each.
    Cos, when u use For each in an container step, all messages would be processed sequentially.
    Do let me know if it helps you!
    Regards,
    B.Anandh

  • Configuration for Message Exchange in integration process

    Hi,
    I'm a beginner in SAP XI (7.0) and trying to develop an integration process for a purchase order.
    There will be sent a message via Http to a receiver with Ftp.
    So for the integration process are two communication channels necessary which will be defined in the integration directory:
    One for the Sender: Http.
    One for the receiver: Ftp.
    Within the integration process are some sender and receiver steps with Bapi's.
    My questions are:
    - how and where could these sendings to a Bapi (send step) and from a Bapi (receive step) be configured?
    - is it possible at all to configure a communication channel for these sending and receiving steps within a integration process?
    Thanks for your help!
    Zoran

    Hi Zoran
    While using BPM as well you will need to have communication channels.
    BPM - > BAPI request.
    BAPI response -> BPM
    both sender and receiver channels are required for you.
    1.Demand for a material is send via HTTP to XI
    2.XI does a material availability check to the SAP system
    3.A material reservation has to be done if there are any materials available in the stock (inventory) to the SAP system
    4.If there is no material available a purchase order to a supplier (no SAP) has to be done via FTP
    5.Parallel to the purchase order a purchase order confirmation is send to the the SAP system.
    6.The supplier sends a purchase order confirmation to XI
    7.The XI sends a purchase order confirmation to the SAP system
    If i understood your requirement correctly and you want to use BPM. You need to do following in BPM
    Receivestep1(receive HTTP post) -> transform1(mapping to BAPI request) ->send step1(Send BAPI request to SAP) -> Receivestep2 (Receive BAPI response from SAP) -> Transform2 (Map BAPI response to File)-> send2(File post to non SAP supplier)-> Receive3(receive purchase order confirmation)-> transform3(map to SAP purchase order confirmation)-> send3(Purchase order confirmation to sap)
    You need no of channels
    1.Receive 1 - (HTTP)
    2.Send1/Receive2 - (RFC)
    3.Send2 - (FTP)
    4. Receive3( HTTP or FTP)
    5. For purchase order confirmation.
    Thanks
    Gaurav

  • Sending the fault message payload to sender using BPM.

    I have the scenario where BPM splits a file into multiple record and each record calls webservice.
    For a successfull call a success response is generated by web service . For a failed transaction a fault message is sent back which needs to be delivered to the sender's mail ID.
    I am not able send the fault message payload which contains the error message details to sender ..
    Please suggest what can be done for such a scenario. Is there any way by which error details can be sent to sender?
    Edited by: trisha.b on Nov 28, 2010 7:23 PM
    Edited by: trisha.b on Nov 28, 2010 7:29 PM

    Hi,
    Check the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/22017.. [original link is broken] [original link is broken] [original link is broken]
    You can handle the exception on your web service and model a Notification task so that you can send e-mail notification to the sender in case of exception
    Regards, Anil

  • Capturing of Message ID in Integration process

    Hello,
    I have a scenario where my a file is picked from FTP server and passed to Integration process. Here if there is any failure in IP then i am throwing alert. Here i am preparing dynamic text in alert message. But my problem here is i am not able to catpture Message ID whereas i am able to capture all standard variables like SenderParty and etc.
    Please help me in this regard,
    Thanks,
    Vijay Kumar T.

    Hi,
    I have implemented the same. I have used container variables and used it in the Title of my AlertMessage.Store the Message Id after the receive step of BPM. Pass this value to the Function that triggers the Alert from Transformation step. We have a RFC SCREATE_ALERT that is used to set container values.
    With Dynamic Text, i feel it always gives the processId.You can have MessageId in Alert Long text.Store the MessageID in a container element of BPM and use it in the control step message text : &message_id&. Dont forget to check the Dynamic Text in the properties of ur AlertCategory.
    Hope this gives u an idea.
    Ref this link for the possible container variables
    http://help.sap.com/saphelp_nw04/helpdata/en/d0/d4b54020c6792ae10000000a155106/content.htm
    SXMS_MSG_GUID - SXMSMGUIDC - Message ID

  • Handling fault message in orchestration

    Hi,
     I have consumed the WCF service here I want to handle the fault message,so when I right click on the service port it is not showing the fault message option.I am using BizTalk 2009 version.
    Thanks.

    Hi Ram,
    Right Click on the PortType and Select New Fault Message as shown below.
    A new fault port will then be created as shown below
    I found this document very useful for the startup while working with WCF services. 
    http://download.microsoft.com/download/1/6/9/16968441-c6c8-4bd0-9410-5f4014bc61f0/sampledesignorch.doc 
    You can also refer
    How to Add a Fault Message
    Mohamad Halabi's blog is being very useful and descriptive about how to handle different WCF exception scenarios.
    BizTalk – WCF Exception Handling Scenarios
    Rachit

  • Split message mapping to integration process

    Hi,
    I faced an error when trying to send a multiple message (after a message split) to an integration process and I would like to know the possibilities to resolve this issue.
    What I want to do (more details below) :
    1. Get an order list from a database
    2. Split the order list in multiple orders (via a multi-mapping)
    3. For each order, create a new integration process instance
    The error I got is:
    Messages in multi message format can be sent to one adapter engine only
    The solutions I thought of:
    - Creating a new integration process / Update the existing integration process in order to execute the message split in the process engine
    - Create a new service (or business system) as a receiver instead of the process that points back to another XI service and set-up the appropriate configuration between the second service and the existing integration process
    My question: is there another solution than the two above?
    Thanks in advance
    Here are the details of what I did:
    1. A JDBC request returns an order list like:
    <resultSet>
       <row>
          <order>[...order 1 details...]</order>
       </row>
       <row>
          <order>[...order 2 details...]</order>
       </row>
    </resultSet>
    2. During interface determination phase, a multi-mapping is executed to produce several orders:
    <order>[...order 1 details...]</order>
    <order>[...order 2 details...]</order>
    3. The target receiver is an integration process who take as initial document only one order ; so, having two orders as a result of the split, I would like XI to create two new instances of my integration process, each receiving exactly one order.
    And there's when the above error occured.

    Hi Alexis
    Creating a new integration process is suggested as your target receiver is your current integration process and along with this splitting and passing data to multiple receiver can be done in integration process.
    Thanks
    Mitesh

  • Axis adapter receiver handle fault message

    Hi
    We have a Sync interface which makes a Proxy call from ECC to PI 7.3 and then PI makes Soap(Axis) Sync call to Web sevice. We are having issues when handling SOAP 1.2 fault message.
    Below is the actual fault response from Webserver:
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
       <env:Header/>
       <env:Body>
          <env:Fault>
             <env:Code>
                <env:Value>env:Receiver</env:Value>
             </env:Code>
             <env:Reason>
                <env:Text xml:lang="en">FaultMsg</env:Text>
             </env:Reason>
             <env:Detail>
                <ns2:servicefault xmlns:ns2="https://hostname.de/webservice/0400-0005">
                </ns2:servicefault>
             </env:Detail>
          </env:Fault>
       </env:Body>
    </env:Envelope>
    But PI receives this response like system error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Inbound Message
      -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: FaultMsg</SAP:AdditionalText>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I checked this way http://scn.sap.com/thread/1675917 but it doesn't fit for Axis adapter.
    Please let me for any clues how to handle this fault response.
    Regards, Dzmitry

    Hi,
    I'm working with Dzmitry on the issue since last week. After analyzing the implementation and checking some SAP notes I came to the following conclusion:
    According to note 856597 the fault behavior of axis adapter is  as follows:
    " A: The receiver adapter expects a SOAP message as response. For
    synchrnous calls, a successful response should be returned with
    HTTP 200. In this case, the content of the SOAP body will be
    returned to the caller as the response payload. When some error
    occurs, the SOAP message may contain the SOAP fault element. In
    this case, when the fault detail element is not empty, its
    content will be returned as the fault payload in an application
    error message. For others, a system error message will be
    returned to the caller."
    The example shows a SOAP 1.1 fault message with a "detail" node being mapped to an application fault.
    As we are using SOAP 1.2 the namespace as well as structure of the fault defers. I assume that the module responsible for the transformation from AXIS message to XI message within the module chain does not recognize the detail node on out soap 1.2 fault.
    Therefore the solution would be to insert a custom AXIS handler before com.sap.aii.axis.xi.XI30OutboundHandle mapping the soap 1.2 fault to a soap 1.1 fault.
    Is there something like a short how to on how to implement Axis handler and how to deploy it. Sap help only says to package it into sda file....
    Thanks a lot  in advance!!!
    BR,
    Eugen

  • About Container Category in Integration Process (BPM)

    Hi Friends
    Can any one  explain me abut Process container variable ReceiverList which is defined as a type "Receiver"
    and How to use in Integration Process With Examples
    Message was edited by:
            Viswanadh Vadde

    Hi Vishwanadh,
    The Receiver type container variable is used to determine the receiver in the send step.
    The Simple type container variable are xsd data type variable which may be xsd:string / xsd:integer / xsd:date / xsd:time. These variables are used as process control elements such as counters in the IP.
    Regards
    Santhosh
    Remember to set the thread to solved when you have received a solution

Maybe you are looking for

  • Database link from 11g to 10 g

    I am trying to create a database link from the 11g database to the 10g database using: create database link ORCL10R2 connect to <username10g> identified by <password10g> using <db10g>; It Returns Database link created. select sysdate from dual@ORCL10

  • SOLUTION: Flash Video Causing Blue Screen & Lockups

    Symptoms:  While playing a flash video, your screen locks up; goes black; you can hear audio in the background; and/or Blue Screen of Death.  The Blue Screen indicates a fault in nv4_disp.dll. =================  SOLUTION   ================= Newer ver

  • Invoice Blocked Email Notification

    Hi experts, I'm having a problem where i could set email for a certain transaction. Like my case, My invoice have been blocked and it had sent a mail to the requisitioner and a certain email add for a specific company code(group mail). I want to chan

  • Backing up Local File Server to a remote File Server - Best way?

    Hi all, I am building a project for my University Dissertation which is based on the implementation of an ISO 27000 compliant virtualised environment. I have three sites ( offices ) each with their own local file server, that i would like to back up

  • Won't let me play songs or open iTunes Store

    Whenever I open iTunes, it opens fine but then when I try to click on a song or go to the iTunes Store, an error message pops up and says iTunes has stopped working. Then no matter what I do next, iTunes shuts down. I've tried reinstalling it but not