BPM(IP) - how do you trap an AppErr in an Int Process?

We are running SAP PI 7.11.
Have created an Integration Process (BPM) that makes a synchronous call to a web-service.  When an error occurs, the web-service passes back an ApplicationError.  So far so good.
Currently - the error shows up in SXMB_MONI, as an Application Error.  We want to trap this, and handle the error another way.  That is, in SXMB_MONI, we do not want to see the red-box Application Error when this fails - we want to see a Checkered Flag.  (We will handle the error another way.)
In the IP, we have built a Block with an Exception Branch, and have pointed the Exception Handling from the sync Send step to that branch, but, on an App Error -
1)  The branch is not getting executed.
2)  The entry in SXMB_MONI shows as an App Error, not Checkered Flag.
Thoughts?
-Bill

Thank you for the link to the "SOAP Fault in PI - Hijack It" blog.
The solution outlined in the blog is, however, a much more complicated implementation for such a minor, annoying problem.  We want to solve it with standard PI if possible (...which it sounds like it might not be.)
We do not have the Axis adapter installed on our PI system (I ran the test outlined in the blog) and even if we installed it, the blog includes a massive java program to be installed somewhere.
We have a PI staff of 4, only one of us is a true java developer.  The rest of us can code java in PI, but this looks daunting.
So, I am still looking for a cleaner solution - I mean, a ynchronous Service Interface has a request, a response, and a fault property.  But the Send component in the BPM only has parameters for the request and response.  Why not a slot for the Fault?
Again, thanks for the (very fast) response....I will continue searching for another way.
-Bill

Similar Messages

  • How do you trap bad request exceptions

    Hi,
    Can anyone tell me how to catch an exception from the page flow request processor. I'd like to be able to trap requests to invalid .do and .jpf urls. I have exception handling in my Global.app, but that only seems to apply to exceptions generated by the page flow controller.
    At the moment I'm getting this magic html which I think is maybe hardcoded in one of the struts or workshop servlets?
    <html><head><title>Page Flow Error - Action Not Found</title></head>
    <body>
    <h1>Page Flow Error - Action Not Found</h1>
    <table border="1" cellspacing="0">
    <tr><td><b>Page Flow:</b></td><td>Global.app</td></tr>
    <tr><td><b>Action:</b></td><td>blah/something</td></tr>
    <tr><td><b>Form:</b></td><td>null</td></tr>
    </table>
    <span style="color:red">Unable to find action <b>blah/something</b>.</span>
    </body></html>
    thanks,
    laphroaig

    You can report a problem with a purchase as described on this page : http://support.apple.com/kb/HT1933
    There is this general feedback page for the iPad, but I think the above is probably better : http://www.apple.com/feedback/ipad.html

  • How do you invoke a method with native int array argument?

    Hi,
    Will someone help me to show me a few codes samples on how to invoke a method which has only one argument, an int [] array.
    For exampe:
    public void Method1(int [] intArray) {...};
    Here is some simple code fragment I used:
    Class<?> aClass = Class.forName("Test2");
    Class[] argTypes = new Class[] {int[].class};
    Method method = aClass.getDeclaredMethod("Method_1", argTypes);
    int [] intArray = new int[] {111, 222, 333};
    Object [] args = new Object[1];
    args[0] = Array.newInstance(int.class, intArray);
    method.invoke(aClass, args);I can compile without any error, but when runs, it died in the "invoke" statement with:
    Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at Test1.invoke_Method_1(Test1.java:262)
         at Test1.start(Test1.java:33)
         at Test1.main(Test1.java:12)
    Any help is greatly appreciated!
    Jeff

    Sorry, my bad. I was able to invoke static methods and instance methods with all data types except native int, short, double and float, not sure the proper ways to declare them.
    After many frustrating hours, I posted the message for help, but at that time, my mind was so numb that I created a faulted example because I cut and pasted the static method invocation example to test the instance method passing int array argument.
    As your post suggested, "args[0] = intArray;", that works. Thanks!
    You know, I did tried passing the argument like that first, but because I was not declaring the type properly, I ended up messing up the actual passing as well as the instantiation step.
    I will honestly slap my hand three times.
    jml

  • How do you pass the data from a SBO process to a crystal report laout

    Hi Everyone
    Can someone please assist or direct me to documentation that could be of help.
    I do production orders in SBO.
    I have a crystal report that I have imported as a layout to print these production orders.
    The report was developed the normal way, linking to the tables and returning data(all data for all production orders ever done)
    The production print option is set to make use of this layout.
    What I would like to see is that when I create production order 12345 and click on print preview I get the data of the mentioned order only displayed in my crystal layout(that is set to default)
    What I get however is all the data from the tables.
    Where am I going wrong. With my design already or is there a different way to pass the data to my report/layout direct from my SBO production order screen
    This is quite urgen
    Regards
    Burger

    Hi All
    The solution i was looking for is:
    In Crystal create the parameter called DocKey@
    This is recognized by sap and the active document number is passed to the report layout.
    In crystal itself also do a filter {<Table>.<Column Name>} = {?DocKey}
    So simple once you know how.
    Hope this help someone else that is as stuck as I was.
    Regards
    Burger

  • How do you load subReports in ReportViewer in remote processing mode using LoadReportDefinition

    We have a reportViewer control on a web page that renders reports in Remote ProcessingMode.
    However, it does not access the reports from the SSRS server, it loads them from our own repository, and sends the Stream of the RDL file to LoadReportDefinition.
    This works fine when there are no SubReports.  However, I am not sure how to handle SubReports.
    I know that in Local ProcessingMode you have to handle the events to load the SubReports manually, and that in normal Remote ProcessingMode when running a report stored on the server, it handles the SubReports for you.
    But what is the process for handling SubReports for Reports in Remote Processing mode that are rendered with LoadReportDefinition?
    Should I handle the event and load the SubReport manually somehow using LoadReportDefinition again?  Or is it simply not supported?

    Hi jth001,
    From your description, do you mean the ReportExecutionService.LoadReportDefinition method or the LocalReport.LoadReportDefinition method? If it is the former method, subreports and data source references with relative paths are not supported using this
    method. However, absolute paths to catalog items can be used. For more information, please see:
    ReportExecutionService.LoadReportDefinition Method
    If it is the latter, you need to call LoadSubreportDefinition method and provide data for any subreports. Fore more information, please refer to:
    LocalReport.LoadReportDefinition Method
    LocalReport.LoadSubreportDefinition Method
    Regards,
    Mike Yin
    TechNet Subscriber Support
    If you are TechNet Subscription user and have any feedback on our support quality, please send your feedback
    here.

  • BPM 11g -- How to find where my instance is in the process

    Hi,
    I have a requirement where I need to programatiically query to find out where my instance is in the process flow;,it could be sitting in an Human Interactive step, might well be waiting to be notified or might be excecuting a business service. I am assuming that the TaskQueryService and TaskService API's only deal with the human ineractive. Which API can I use to achieve this?
    Thanks
    Raj
    Edited by: user588394 on 24-Apr-2013 08:50

    948165 wrote:
    Hello,
    When I go to System Administrator > Concurrent > Program > Define I can lookup programs that I should be able to run. Now I want to actually run the process but I cant find figure out what responsability it is under.
    How can I go about finding this?Please see (WHOCANRUN.SQL - List Responsibilities That Can Run a Given Concurrent Program [ID 134036.1]).
    Thanks,
    Hussein

  • How do you parse a varable to a int in JSTL

    the hiddenfield input field is set like:
    int add = 1;
                 session.setAttribute( "ADD", add ); %>
    <input type="text" name="hiddenField" value="<% session.getAttribute( "ADD" ); %>" />i have a JSTL varable:
    <c:set var="rows" value="${param.hiddenField}"/>the error indicates the value isnt a number
    org.apache.jasper.JasperException: An exception occurred processing JSP page /Updates/skills.jsp at line 356
    353:    <input type="hidden" name="empid" value="<c:out value="${empid}"/>">
    354:    
    355:    <c:set var="rows" value="${param.hiddenField}"/>
    356:    <c:forEach var="item" begin="1" end="${rows}">
    357:          <br> </br>
    358:         <table>
    359:              <tr>
         org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:414)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    javax.servlet.ServletException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "end" with value "${rows}": An exception occured trying to convert String "NaN" to type "java.lang.Integer" (null)
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
         org.apache.jsp.Updates.skills_jsp._jspService(skills_jsp.java:554)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "end" with value "${rows}": An exception occured trying to convert String "NaN" to type "java.lang.Integer" (null)
         org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:109)
         org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:129)
         org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:75)
         org.apache.taglibs.standard.tag.el.core.ForEachTag.evaluateExpressions(ForEachTag.java:137)
         org.apache.taglibs.standard.tag.el.core.ForEachTag.doStartTag(ForEachTag.java:66)
         org.apache.jsp.Updates.skills_jsp._jspx_meth_c_005fforEach_005f3(skills_jsp.java:1539)
         org.apache.jsp.Updates.skills_jsp._jspService(skills_jsp.java:527)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)how can i make it one?

    String sQuantity = request.getParameter("quantity");
    int quantity = Integer.parseInt(sQuantity );

  • How do you have more than 1 ipod in your family and only 1 computer to be able to each have a separate account?

    HOw do you have more than 1 ipod int he family and be able to have your own itunes on 1 computer?

    Did you read the support document at the other end of the link? What additional information do you desire?
    The Apple support document How to use multiple iPods with one computer (n.b. same link as above!) suggests a number of ways for managing the media content. I use method two (Sync with selected playlists) with a slight twist. Rather than regular playlists I set the grouping field to indicate which users should receive which tracks and create smart playlists based on the content of this field.
    e.g.
    "Alice's Tracks" is "Grouping contains Alice" + "Kind contains audio"
    "Bob's Videos" is "Grouping contains Bob" + "Kind does not contain audio"
    Tracks that both Alice & Bob want on their iPods have the grouping set to "Alice/Bob"
    etc.
    I currently manage our family's five iDevices using this system, each getting a different selection to suit their tastes and the capacity of their device. An advantage of using the grouping field is that it is stored in file tags (for non-wav audio files anyway) so that it is relatively easy to recreate the playlists should the iTunes library get trashed and need rebuilding. Also useful if you move files about manually as playlist membership is preserved when you delete & re-import the tracks.
    tt2

  • How can you escape a KeyTrap without a Mouse?

    Whenever I am on a website that has a flash or Java object in it such as YouTube or a game site, whenever the object is activated it traps the keyboard input and access to the Browser's shortcuts etc are unavailable.
    As an example in Ctrl + T opens a new Tab. If you open a YouTube page showing a video and then click the YouTube player so that it takes the keyboard inputs, when you press Ctrl + T it doesn't work anymore. The Flash object is trapping the input. No amount of pressing Tab etc works to escape the input trap.
    How do you escape this key-trap WITHOUT using the mouse? This is a question of accessibility; you should be able to escape the key-trap and return key-focus to the browser itself. I do not want to be told to terminate the process I want to know how to escape the key-trap. PC Emulators etc usually have 'Host Keys' a key that returns the key focus to the Host OS. Does Firefox have a Host Key or a shortcut to return key focus to the browser itself and escape the object?

    Here is a discussion that might help you.
    https://discussions.apple.com/thread/3855140?start=0&tstart=0
    Cheers

  • Hello gentlemen how are you. All your base are belong to us ????

    My X server just shut down leaving me with a black screen full of messages, mostly relating to vlc.
    In the middle of all this was the above message.
    Do we have a developer with a sense of humour or is this something I should be worried about?
    I never run the system as root although I usually leave a root terminal open.
    Bizarre.

    This is ringing many, many bells with openbox.
    *scratches head*
    *greps openbox source*
    -> grep -r "your base are" *
    Binary file openbox/.libs/openbox matches
    openbox/mainloop.c: fprintf(stderr, "How are you gentlemen? All your base are"
    Binary file openbox/openbox_openbox-mainloop.o matches
    ->
    Hm, maybe someone decided to get all funny with their error messages like the OB devs did... or maybe it was the other way around.
    The most likely cause is that this message is a SIGSEGV (segmentation fault) trap - a message that is printed to std{out|err} when the app crashes, since OB prints the AYB when it's crashed too.
    You can actually segfault apps manually with `kill -SIGSEGV <PID>' or killall -SIGSEGV <processname>'
    -dav7
    Last edited by dav7 (2008-05-13 02:08:17)

  • How do you invoke Edge Web Fonts?

    Assuming this is available in this release, how to you bring up the Edge Web Fonts capability?

    Hi Phil,
    You should be able to trigger the code hints manually anywhere in the font-family value by pressing Ctrl+Space.  It should also pop up automatically if you type "," followed by a space anywhere in the value.  Are those approaches not working for your code?  (If so, please post a snippet of your CSS here so we can investigate).
    - Peter

  • How do you use edge web font in Edge Reflow?

    By default, I don't have a lot of fonts. It's just viewing a few of them.
    How can you get the web font for Edge Reflow? Can you use font from fontbook?
    Is there a way to download Edge Web Font?

    Above: using Brandon Grotesque (web use font) does not display the correct font.
    I'm using Typekit and have an internet connection. If I switch to a "desktop use" font, it shows up, so I'm guessing the "web use" only fonts won't show in Reflow. A little frustrating when you're trying to get an accurate preview/determine best font styling because of the back-and-forth workflow.
    Above: using Source Sans Pro (desktop use font) does display the correct font.

  • Itunes match  how do you to select multiple songs or do you click each one

    In ITunes match  how do you to select multiple songs to download to pc or do you have to click each one.

    First make sure you have the current version of iTunes, which is actually 10.5.1.  I had to manually download it from apples website, for some reason, it wouldnt auto-update.
    http://www.apple.com/itunes/download/
    Once that is complete, go to the iTunes store. In the Quick Links secion to the right, you should see iTunes Match. This will prompt you to activate your subscription to iTunes match.  After that it should ask you to add your computer and once youve done that, it should begin the process of scanning your library and adding it to the cloud
    Alternatively, once you activate your subscription, you can also go to the Store dropdown menu in iTunes and select Turn On iTunes Match.

  • How do I use the time capsule to share itunes music between multiple apple devices? Also, is it possible to control the music on one device using another, and how do you set this up?

    How do I use the time capsule to share itunes music between multiple apple devices? Also, is it possible to control the music on one device using another, and how do you set this up?

    unless i'm missing something, i think you got mixed up, this is easy google for walk throughs
    i'm assuming this is the new 3tb tc AC or 'tower' shape, if so, its wifi will run circles around your at&t device
    unplug the at&t box for a minute and plug it back in
    factory reset your tc - unplug it, hold down reset and keep holding while you plug it back in - only release reset when amber light flashes in 10-20s
    connect the tc to your at&t box via eth in the wan port, wait 1 minute, open airport utility look in 'other wifi devices' to setup the tc
    create a new wifi network (give it a different name than your at&t one) and put the tc in bridge mode (it may do this automatically for you, but you should double check) under the 'network' tab
    login to your at&t router and disable wifi on it
    add new clients to the new wifi network, and point your Macs to the time machine for backups

  • HT1349 How do you get help from apple if you don't know where to find the serial number of my "product."  I don't know if they mean my itunes program, my iphone, my computer, which one, the number on the computer (is there one), or something in Windows or

    How are you supposed to get help from Apple if you don't know what your serial number is?  They say to input the serial number of the "product" that you are asking about.  Since my problem is how to deauthorize/authorize computers, and they are saying I have more than 5 (which I have never owned more than 5 computers in my life), I can't imagine what serial number they mean.  Does it mean your desktop computer?  If so, which one?  Do they mean your device?  LIke your iPhone, iPod or whatever?  Do they mean the software ON one of your computers and/or devices?  If so, which program, and on which computer/device?
    We have three operational computers, one does not have iTunes on it.  Since Apple is saying I have more than 5 authorized computers, and I can't imagine what they are, I am afraid to deauthorize all my computers.  See what I mean?  I just wanted to ask the question about how I can find out WHICH computers Apple thinks I have authorized, so I can decide if it's safe to deauthorize them all or not.  I only know of 2 computers that have iTunes on them, so how can there be 5?  We also have 2 iPhones and 2 iPods in this family, but one of the iPhones has his own apple id.  He may have been using mine, since his computer died.  I read that those don't count as "computers" to the 5.  Do they, then?
    Help!  I can't contact apple because I have no idea what they mean about serial number.  I doubt they would help me anyway.  In order to get the serial number off my desktop computer (that has iTunes on it already), I will have to move furniture, so I don't want to if that's not it.  Is there some way to find the serial number in the software, either on my desktop or my iPhone?

    sunshinecowgill wrote:
    We have three operational computers, one does not have iTunes on it.  Since Apple is saying I have more than 5 authorized computers, and I can't imagine what they are, I am afraid to deauthorize all my computers.  See what I mean?  I just wanted to ask the question about how I can find out WHICH computers Apple thinks I have authorized, so I can decide if it's safe to deauthorize them all or not. 
    You could have more 5 computers authorized if you ever, for example, reformatted a hard drive or replaced a hard drive without deauthorizing the computer first. Apple's system would see that as a different computer, even though you don't. There's nothing to be afraid of in deauthorizing everything and the reauthorizing what you actually have. You won't lose any data. Mistimp is correct, they can't tell you which computers are authorized.

Maybe you are looking for

  • Printing order of pages in case of multiple repeating frames

    Hi, I am developing a custom invoice report with layout (everything included in main section) spread across 2 pages. The whole of first page (invoice document) is in one repeating frame and the other page (support document which is a matrix) is in an

  • Simple Examples of BMP

    Hi, Does anybody have basic examples of XI BMP (Step by Step)? Thanks, Fernando

  • Photoshop CC: Is it possible to turn a color logo in to a brush?

    I am trying to make a fairly simple color logo in to a brush in order to easily put it over a large number of photos. Is this possible? I have created a brush but can only get it in greyscale. I have also tried the pattern stamp but don't want multip

  • PS Album 2.0 kompatibel mir PS Elements 3.0 ?

    Habe gut gepflegtes PS Album. Überlege Kauf von PS elements 3.0. Werden die Daten von Album 2.0 übernommen ?

  • BBM Error Date when Posting Picture to Group

    Hi, I'm facing a strange behavior on one of my Group, let say Group A. When I'm posting a picture to this group the date always set to 01 JAN 2080, but at the same time when I'm posting the picture to another group, the date is correct as today's dat