Exceptions Thrown for RFC

Hi All,
Our scenario is like this: RFC -> XI -> Web Service. It's synchronous. When the web service throws an exception, XI need to send as much as information back to RFC. So I created a fault mapping. In the fault mapping, the target RFC exception structure is like this:
+Root.Exception
++Name
++Text
++Message
++++ID
++++Number
++Attributes
++++V1
++++V2
++++V3
++++V4
Can anybody tell me how to get the info contained by this exception structure from RFC caller side (ABAP program)?
Thanks, Jerome

Hi Jerome,
If you can catch the XML response code from Web service, you can divert the message tag with Exception or Fault tags to RFC fields.
This is just an idea strike, it may useful in your case.
Regards,
sri

Similar Messages

  • Exception thrown by RFC To be handled in BPM

    Hi All ,
    I am trying the scenario.
    Http Client -> XI-->BPM -
    > RFC
                <-   <--    <------- 
    The whole communication is Synchronous.
    So I  have
    One Outbound  Synchronous Interface
    One Inbound  Synchronous Interface.
    Two Abstract  Synchronous Interface for  BPM.
    And  4  Abstract Asynchronous Interfaces for the containers which is to used in BPM.
    (Two for request and two for response )
    For simple Request Response Messages from the RFC my Scenario is working perfectly.
    But  I  Introduced  an Exception in RFC, So my Rfc is Throwing an Exception Message which needs to be returned back to Http Client.
    Now my problem is only Synchronous interfaces have the option of  fault messages in which the  exception  message can be included. So how do I pass the Exception message to Http Client via BPM , Because Containers require Asynchronous Interfaces and they are not accepting fault messages.
    Has Anyone tried this kind of exception handling in BPM,
    Please Help Me.
    Yomesh.

    Hi Saravana,
    first of all thanks for ur reply,
    In my scenario there are two reciever systems(SAP and JDE) and call to both the systems is synchronous. I am merging the responses from both systems into one using BPM. Thats why I needed BPM.
    Now About exception handling that is required because if response from one system is not there then also the BPM process should not terminate .It should give the output from other system and an error message for first one to the HTTP client.
    I think now the scenario is clear for you,
    Please see if you can help me with that.
    Thanks,
    Yomesh

  • BPM Exception handling for RFC errors

    Hi all
    I have to handle the exception which would be like below:
    com.sap.aii.af.ra.ms.api.DeliveryException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: could not get a client from JCO.Pool: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed
    I am trying to put Block step and things are not working fine. Can anyone please explain me the steps to trap the exception?
    My scenario has synchronous call to RFC FM.
    Rightnow i have inserted Exception branch in my Block step and put the send step to write the error file.  I have put the Synchronous SEND step as part of block. This is not working.
    Help please??

    Hello Samuel,
    Just to close this thread and finish up my own search, where I met your discussion, here I'm quoting two experts of this forum:
    "you cannot catch the exception's value in the XI "
    (see posting from Michal Krawczyk, Jun 12, 2006, in thread catch the exception)
    "The content of a fault message are not accessible inside a BPM."
    (see posting from Bhavesh Kantilal, Oct 3, 2007, in thread Notify user about Exception in BPM)
    Regards,
    Dennis

  • PI 7.11 - Alert creation for RFC Exceptions does not work

    Hi folks!
    In our PI 7.11 SP04 system we have created an Alert Category as well as an Alert Rule to be informed about errorneous messages in the Integration Engine (ABAP).
    The scenario is synchronous SOAP Axis to sRFC, where the RFC answers with an exception that is transferred to a SOAP Fault response message.
    Now we see messages with Application Errors in the Integration Engine, but no alert is created. Having a look at the alert creation log using report SXMSALERT_LOGREADER shows us that the system even does not try to create an alert for these messages.  Alerts are only created for errors in the Adapter Engine.
    Question:
    Why does the system not create alerts in this case and how can we achieve this?
    Thanx for any hint!
    Kind Regards,
    Volker

    Hi!
    Additional information for all:
    When forcing an error like "receiver not found" both kinds of alerts are created: AE Alert and IE Alert. Thus in general the alert configuration and the alert rule for IE errors are correct and working - only not for RFC exceptions ....
    Regards,
    Volker

  • How to check that exception is not thrown for particular exception alone

    Hi,
    I want to check for Exception but I don't want it to throw exception when it is
    java.net.SocketException.
    I want to throw message for all other exception.
    Please let me know how to implement it.
    Thanks & Regards,
    Nasrin.N

    try {
    //some exception throwning code
    } catch (SocketException e) {
      //handle the exception
    } catch (Exception e) {
    //all other exceptions are handled here
    }

  • Error on /SafeMode: error while trying to run project uncaught exception thrown by method called

    i try run VS 2012 with /SafeMode. I create new empty Winform. When I start debug, I got:
    "error while trying to run project uncaught exception thrown by method called through reflection"

    Hi Matanya Zac,
    Did you restart your machine? How about installing the VS2012 update 4?
    >>error while trying to run project uncaught exception thrown by method
    Did you install the VS update in your VS IDE? I met this issue before which was related to the VS update:
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/5ead8ee9-ea09-4060-88b0-ee2e2044ff82/error-while-trying-to-run-a-project-uncaught-exception-thrown-by-method-called-through-reflection?forum=vsdebug
    If still no help, I suggest you repair your VS, and then restart your machine, test the result.
    Best Regards,
    Jack
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to properly handle Exception thrown in a .tag file?

    I've got a .jsp file that makes use of some custom tags, each defined in their own .tag file, and located in WEB-INF/tags. I'm having a lot of trouble with the scenario of cleanly dealing with an exception raised by scriptlets in either a .jsp file, and a .tag file. I'm using both Java and Tomcat 6....
    Originally, I wanted to use .tag files in order to componentize common elements that were present in .jsp pages, as well as move ugly scriptlets out of .jsp pages, and isolate them in tag files with their associated page elements.
    Things started getting hairy when I started exploring what happens when an exception is thrown (bought not handled) in a scriptlet in a .tag file. Basically, my app is a servlet that forwards the user to various .jsp pages based on given request parameters. The forwarding to the relevant .jsp page is done by calls to the following method:
    servletContext.getRequestDispatcher("/" + pageName).forward(request, response);
    Where 'pageName' is a String with the name of the .jsp I want to go to...
    Calls to this method are enclosed in a try block, as it throws both a ServletException, and IOException...
    When either my .jsp, or .tag throw an exception in a scriptlet, the exception is wrapped in a JSPException, which is then wrapped in a ServletException.
    I can catch this exception in my servlet... but then what? I want to forward to an error page, however, in the catch block, I can't forward in response to this exception, as that results in an IllegalStateException, as the response has already been committed. So what do I do? How do I get from this point, to my "error.jsp" page?
    It was suggested to me that I use the <% @ page isErrorPage="true" %> directive in my error.jsp,
    and the in my real .jsp, use <%page errorPage="/error.jsp" %>.
    This works great when the exception is thrown in my .jsp.... But when the exception is thrown in the .tag file... not so much...
    My .jsp page was rendered up until the point where the <my:mytag/> (the tag with the offending raised exception) was encountered. Then, instead of forwarding to the error page when the error in the tag is encountered, the error page is rendered as the CONTENT of of my TAG. The rest of the .jsp is then NEVER rendered. I checked the page source, and there is no markup from the original .jsp that lay below the my tag. So this doesn't work at all. I don't want to render the error page WITHIN the half of the .jsp that did render... Why doesn't it take me away from the .jsp with the offending tag altogether and bring me to the error.jsp?
    Then it was suggested to me that I get rid of those page directives, and instead define error handling in the web.xml using the following construct:
    <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error</location>
    </error-page>
    <error-page>
    <error-code>404</error-code>
    <location>/error</location>
    </error-page>
    For this, I created a new servlet called ErrorServlet, and mapped it to /error
    Now I could mangle the end of the URL, which causes a 404, and I get redirected to the ErrorServlet. Yay.
    However, exceptions being thrown in either a .jsp or .tag still don't direct me to the ErrorServlet. Apparently this error handling mechanism doesn't work for .jsp pages reached via servletContext.getRequestDispatcher("/" + pageName).forward(request, response) ????
    So I'm just at a total loss now. I know the short answer is "don't throw exceptions in a .jsp or .tag" but frankly, that seems a pretty weak answer that doesn't really address my problem... I mean, it would really be nice to have some kind of exception handler for runtime exceptions thrown in a scriptlet in .tag file, that allows me to forward to a page with detailed stacktrace output, etc, if anything for debugging purposes during development...
    If anyone has a few cents to spare on this, I'd be ever so grateful..
    Thanks!!
    Jeff

    What causes the exception?
    What sort of exception are you raising from the tag files?
    Have you got an example of a tag file that you can share, and a jsp that invokes it so people can duplicate the issue without thinking too much / spending too much time?
    My first instinct would be that the buffer is being flushed, and response committed before your Exception is raised.
    What you describe is pretty much standard functionality for Tomcat in such cases.

  • Jco exception thrown while executing function "BICS_PROV_OPEN" against syst

    Hi,
         Am implementing SAP EP, BI Integration. The BI Querys are running fine, but when i try to run a BEx Application Query am thrown with this exception in portal.
    Exception caught: com.sap.ip.bi.base.exception.BIBaseRuntimeException: Jco exception thrown while executing function "BICS_PROV_OPEN" against system "SAP_BW" com.sap.ip.bi.base.exception.BIBaseRuntimeException: Jco exception thrown while executing function "BICS_PROV_OPEN" against system "SAP_BW" at
    I've done all the configuration for the integration and the BI Diagnostic tool is showing all the configurations to GREEN.
    Please help me on this...
    Regards,
    mcsekar

    Exception caught: com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: The current application triggered a termination with a short dump. com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: The current application triggered a termination with a short dump. at com.sap.mw.jco.MiddlewareJRfc.generateJCoException(MiddlewareJRfc.java:516) at com.sap.mw.jco.MiddlewareJRfc$Client.execute(MiddlewareJRfc.java:1514) at com.sap.mw.jco.JCO$Client.execute(JCO.java:3980) at com.sap.mw.jco.JCO$Client.execute(JCO.java:3417) at com.sap.ip.bi.base.application.service.rfcproxy.impl.jco640.Jco640Proxy.executeFunction(Jco640Proxy.java:362) at com.sap.ip.bi.base.application.service.rfcproxy.impl.jco640.Jco640Function.executeRfc(Jco640Function.java:75) at com.sap.ip.bi.base.application.service.rfcproxy.base.RfcFunction.execute(RfcFunction.java:46) at com.sap.ip.bi.bics.dataaccess.resource.impl.bi.selector.variableprocessor.RfcServiceWithVariables.executeCreationFunctionForVariableHandling(RfcServiceWithVariables.java:64) at com.sap.ip.bi.bics.dataaccess.resource.impl.bi.selector.ProviderSelectionObject.isApplicable(ProviderSelectionObject.java:339) at com.sap.ip.bi.base.application.impl.Application.checkAndCreateService(Application.java:709) at com.sap.ip.bi.base.application.impl.Application.createService(Application.java:634) at
    Exception caught: com.sap.ip.bi.base.exception.BIBaseRuntimeException: Jco exception thrown while executing function "BICS_PROV_OPEN" against system "SAP_BW" com.sap.ip.bi.base.exception.BIBaseRuntimeException: Jco exception thrown while executing function "BICS_PROV_OPEN" against system "SAP_BW" at com.sap.ip.bi.base.application.service.rfcproxy.base.RfcFunction.execute(RfcFunction.java:48) at com

  • Exception Handling in RFC lookup

    Hi Experts,
    I have a query in RFC Lookup function working with PI 7.1,  file to Idoc scenario.
    I am using Enhance Receiver Determination to find the dynamic recivers.Here we have used a Functional Module which gives an output according to the the input parameter (which comes from input file). thus i have used RFC lookup to the remote system to fetch this info from FM.
    Problem -
    When the remote system is down or if the RFC lookup attemped & exceptions raised for some reason (RFC user authority has been changed & it was not able to perform the intended Job at remote system) , the message stuck in queue and block the several other messages from another interfaces which belongs to teh same queue.
    Queries-
    This is not allowed in production as it affects other services.
    1>how can we handle the RFC lookup exception (in case of remote system is down or if the RFC lookup exception)
    2>how can we perform Local lookup at PI box rather then remote lookup (the FM fetches the data from remote system)
    3>Is Value mapping is relevant in this case raher the RFC lookup ? I am not sure as the values are dynamic & selected as per the FM's output.
    Please provide your valuable insight .
    Thanks in advance !
    -Jyoti

    Hi Jyoti,
    Answer for your 3 question.
    1. RFC lookup will get execute on R/3 so if R/3 is down there no way that your RFC lookup will work as expected.
    2. So if R/3 is down or RFC not able to get receiver system due to some problem.. then in that case.
              On your Receiver determination at bottom
              Configure  u201Cif no receiver found proceed as followingu201D
               In this you can have 3 option.
                        a. Error message u2013 if you select this the transaction will end with error message in SXMB_MONI
                        b. Ignore: if you select this execution will get ignored and there will not be any entry in SXMB_MONI
                        c. Select the following receiver. You can select this and can configured default receiver system in case if RFC not able to determine receiver then interface will get route to receiver system configured here.
    3. As you mentioned values are dynamic  then Value mapping doesnu2019t make any sense here. RFCl ookup is the right option and above are few other option in case you RFC lookup flailed.
    Thanks,
    Bhupesh

  • Exception thrown while calling back a DSC componentcom/adobe/edc/policy/APSDocumentServicesManagerHo

    Hi,
    on starting LC 8.2 Server I get this error,
    2009-04-02 09:40:00,031 ERROR [STDERR] 02.04.2009 09:40:00 com.adobe.idp.scheduler.callback.ServiceCallbackHandler execute
    SCHWERWIEGEND: Exception thrown while calling back a DSC componentcom/adobe/edc/policy/APSDocumentServicesManagerHome
    any ideas what went wrong?
    regards
    Johannes

    As am I,
    I manually installed LC ES2 into a new JBoss/mySQL instance following the manual install instructions here:
    http://help.adobe.com/en_US/livecycle/9.0/prepareinstallsingle.pdf
    http://help.adobe.com/en_US/livecycle/9.0/install_jboss.pdf
    Then, applied the SP1, now I get this exception every ten minutes on the dot.
    2010-09-24 00:00:00,038 ERROR [STDERR] 24/09/2010 00:00:00 com.adobe.idp.scheduler.callback.ServiceCallbackHandler execute
    SEVERE: Exception thrown while calling back a DSC componentcom.adobe.edc.common.EDCException
    2010-09-24 00:00:00,076 INFO  [org.quartz.core.JobRunShell] Job APS_PRINCIPALKEY_REKEY_JOB_GRP.APS_PRINCIPALKEY_REKEY_JOB threw a JobExecutionException:
    org.quartz.JobExecutionException: java.lang.Exception: ALC-DSC-003-000: com.adobe.idp.dsc.DSCInvocationException: Invocation error. [See nested exception: java.lang.Exception: ALC-DSC-003-000: com.adobe.idp.dsc.DSCInvocationException: Invocation error.]
    at com.adobe.idp.scheduler.callback.ServiceCallbackHandler.execute(ServiceCallbackHandler.ja va:102)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
    Caused by: java.lang.Exception: ALC-DSC-003-000: com.adobe.idp.dsc.DSCInvocationException: Invocation error.
    at com.adobe.idp.scheduler.callback.ServiceCallbackHandler.execute(ServiceCallbackHandler.ja va:101)
    ... 2 more
    Any suggestions on how to check the callback schedule for the misbehaving callback ?
    Jason.

  • Exception thrown when trying to create MimeMessage

    Hello,
    I was working on the tutorial for sending SMTP messages using the JavaMail API. I set up the Session using Properties fine, but I begin throwing exceptions when trying to construct a new MimeMessage.
    Properties props = System.getProperties();
    props.put("mail.smtp.host", MAILHOST);
    props.put("mail.transport.protocol", "SMTP" );
    Session session = Session.getInstance(props, null);
    // Exceptions thrown below
    MimeMessage rfc822Msg = new MimeMessage(session);
    The exception error message I receive is:
    Exception occurred during event dispatching:
    java.lang.NoClassDefFoundError: javax/activation/DataSource
    at MailApplet.actionPerformed(MailApplet.java:30)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:10
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ton.java:1101)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    :378)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    er.java:204)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:2
    at java.awt.Component.processMouseEvent(Component.java:3165)
    at java.awt.Component.processEvent(Component.java, Compiled Code)
    at java.awt.Container.processEvent(Container.java, Compiled Code)
    at java.awt.Component.dispatchEventImpl(Component.java, Compiled Code)
    at java.awt.Container.dispatchEventImpl(Container.java, Compiled Code)
    at java.awt.Component.dispatchEvent(Component.java, Compiled Code)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2068
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:1852)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java, Compiled
    at java.awt.Container.dispatchEventImpl(Container.java, Compiled Code)
    at java.awt.Window.dispatchEventImpl(Window.java, Compiled Code)
    at java.awt.Component.dispatchEvent(Component.java, Compiled Code)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java, Compiled Code)
    at java.awt.EventDispatchThread.pumpOneEventForComponent(EventDispatchTh
    java, Compiled Code)
    at java.awt.EventDispatchThread.pumpEventsForComponent(EventDispatchThre
    va:95)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:90)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    If you have any idea what is going on your help will be greatly appreciated.
    I am using the jdk1.2.2 build and the JavaMail1.2 distribution.
    Thanks,
    William Mapp

    Thanks for the help. Sorry I goofed. Now I have a question regarding what addresses you can send mail to. It seems that if I attempt send mail to a server other than the SMPT host I get a javax.mail.SendFailedException: Sending failed. The exception continues by stating that the address was Invalid, Relaying Denied.
    What does this actually mean? Should i be supplying more information?
    Thanks,
    Will

  • Possible to determine exception thrown in a finally block?

    I believe the answer to this is 'no', but I thought I would ask just to confirm.
    If an exception is thrown in a try block, is there a way in the finally block to determine what exception was thrown? I tried using Throwable#fillinStackTrace and Thread#getStackTrace and did not get anywhere. I did see other methods like Thread#getAllStackTraces and perhaps going up to a parent ThreadGroup and inspecting other child Thread instances, but at least in my debugger, I did not see anything useful.
    The basic idea I am trying to achieve is to detect if an exception is thrown in the try, if yes, chain any exception thrown in the finally block to the original exception. I know I can do this on a case-by-case basis by storing the exception caught and then manually chaining it in the finally block. I was looking for something more generic/applicable to all finally blocks.
    Thanks.
    - Saish

    Thanks JSchell, have done that many times in the past.
    I was looking for a more generic (not generics) solution to the problem. So that an error handler could be written to automatically chain exceptions thrown in the finally clause (granted, one still needs to invoke the error handler). My hope was the stack in the finally clause would look different if an exception was thrown in the try block versus none at all.
    - Saish

  • Get Exception Information from RFC Response Message

    Hi All,
    I want to make RFC call from ABAP system to XI RFC Adapter. I found that on the caller side, the RFC has the following interface for RFC exception.
    Exception
    __Name
    __Text
    __Message
    ____ID
    ____Number
    __Attributes
    ____V1
    ____V2
    ____V3
    ____V4
    Can anybody tell me how to get the info contained by this exception structure from RFC caller side (ABAP program)?
    Thanks, Jerome

    Hi Madan,
    My problem is how to display the exception information on the caller side. The called side is able to throw exception now.
    Thanks, Jerome

  • Exception handling in rfcs and bapis

    exception handling in rfcs and bapis

    Hi Jayakrishna,
    In General , there are non execptions in BAPIs, because of the reason, that the exception raised in a SAP envoronment may not mean anything for a non SAP initiator. All the exception situations would only fill the return table(TYpe BAPIRET2 or something like that). If you read that table after the call to the bapi, you can understand what has gone wrong.
    Regards,
    Ravi

  • Exception thrown in a midlet constuctor

    The following message is being displayed each on my curve 8310 each time I try to launch java applications.
    "Uncaught exception: Exception thrown in a midlet constuctor"
    It happens for all java apps and re-installing them doesn't help.
    Does anyone know if it is possible to fix this problem without re-installing the OS?  I don't want to risk losing my application data. 

    Nee333 wrote:
    I have a web service created in JAVA.. The modules throw certain exceptions and i am having auto generated JSP created from the WSDL's , which i can obviously edit. i want to catch these exceptions in this JSP page.. Any clue how to do this? It is not possible to catch the Exception in a JSP. You can however put any logging or even an if statement into your JSP to display the error or control the flow based on the error.

Maybe you are looking for