Sanity check: db error handling

I'm changing some code to return a better error on a record not being found. Whil I'm in there I find the error handling to be suspect:
                } finally {
                    resultSet.close();
            } finally {
                statement.close(); // etc, throws exception on any problem
        } catch(Throwable e) {
            e.printStackTrace();
            /* wrap and rethrows exception */               
        }Catching Throwable is a red flag to me (anyone disagree) but I don't want to mess with that.
The thing that concerns me is that if there is an exception closing the DB resources, that exception will be reported to the client process as a failure even when the daa was successfully retrieved. Or that exception will mask the actual DB error. This isn't just academic becasue we are using Oracle, and I know that sometimes Oracle will throw an exception on close that amounts to "already closed" which is not an error in my book.
Does anyone have any good reason why the way it's being done shouldn't be messed with? I've never seen this approach and I want to be sure I'm not just missing something.

Aye, it seems reasonable to throw up any exceptions generated by the execution of your SQL statement to the caller, but maybe you just want to log and move on should you generate exceptions from your close calls. Should your pool get exhausted or your number of connections to your DB start to grow exponentially those logs would be worth looking at.
On a related note - is it reasonable to surround your base Servlet/Struts action class's "doSomeWork" method with a try/catch block that catches Exception (even though catching Exception throws up a red flag), on the position that you want to log anything that managed to get that far, and not show the user the ol' 500 code (though I think a specified error page would assist there as well). The assumption is that any "expected" Exception (if you'll permit me that oxymoron) would've been explicitly caught and handled by now, so this is something truly exceptional .
But then again, one could argue that if something that unexpected has occurred, you should make it blow up as big as possible 'cause you should have dealt with it. But then, I don't think it looks very professional to have that big blow up happen all over a user's browser.

Similar Messages

  • R12 check printing - error handling

    I have built a custom cheque (check) using IBY_FD_EXTRACT_EXT_PUB, which generally works as required. However, from time to time errors occur, which are trapped within that package. The nature of these errors require that the payment and cheque be voided, and while I can change the XML output to print "void" on the cheque, there appears to be no way to feed back the fact that an error has occured. This results in void cheques in envelopes, and no indication in the list of payments as to which payments those cheques relate to.
    I had considered directly updating IBY_DOCS_PAYABLE_ALL.DOCUMENT_STATUS to "REMOVED_PAYMENT_VOIDED", but this is obviously not the supported method. Is there an additional API I could use, or is there another method I'm not aware of?

    Try to put them in a Table Columns.
    I Hope they will not move...
    Thanx,
    Deepak

  • LV7.1 Strange behavior with Automatic Error Handling occuring when it shouldn't [LV 7.1 Pro on WinXP for Tablet PC's]

    [LV 7.1 Pro on WinXP for Tablet PC's]
    I recently let a rather large LV app of mine run in the development environment while I was out for a couple of days. Upon returning I found that the app had hung for ~22 hours waiting for an answer to an Automatic Error Handling (AEH) dialog proclaiming an Error 7 in New File without any indication of the VI hierarchy that called New File.  I set about ensuring that AEH dialogs would not pop up and have not been able to discover how I could have possibly received one in the first place.
    Subsequent investigation revealed:
    Neither AEH option in Options>Block Diagrams were checked.
    Network problems had occurred around the time that the app had hung.  All file paths are network paths when running in the development environment, so the cause of the error was most likely valid, even if the AEH dialog appearance wasn't.
    My app has only one instance where the New File primitive is used by me. That subVI and all others above it in the hierarchy DO NOT have the AEH property enabled.  The error out cluster of New File in my subvi is wired.
    My app has three instances where New File is called from a vi.lib vi (Open/Create/Replace File.vi, Open Config Data.vi, and Prompt Web Browser Path.vi), none of which have the AEH property enabled.  Nor does any of their calling VI's.  All three instances also have their error out cluster wired.
    A utility to examine the AEH property of all VI's (with all top level and dynamic VI's loaded) in memory reported that only 1 of 308 vi's ( RGT Does File Exists.vi from the Report Generation Toolkit) had that property true.  That vi has no subVI's other than the File/Directory Info primitive and no calling VI's in common with any of the vi's that call New File, except a top level VI.
    As long as 'Enable automatic error handling dialogs' remains unselected in options>block diagram, I am unable to get an AEH dialog for either the New File or File/Directory Info primitives in a test VI with AEH property enabled and their error out clusters unwired no matter what invalid path I pass to the functions.  As soon as the options>block diagram>Enable AEH dialogs' is selected, both primitives fire AEH dialogs with no error out wired and don't when wired. i.e. works as advertised.
    In other words I can find no reason why I should have gotten the problem AEH dialog...
    I cannot afford for this app to hang because of a network problem, other portions of the app that were running concurrently correctly handled the error and, had the AEH dialog not appeared, the app would have made corrections or shutdown in an orderly fashion.
    Any ideas?

    Very good.
    Write Characters to File.vi>Open/Create/Replace File.vi>New File
    New File throws the error.  Open/Create/Replace strips the hierarchy from the source of the error.  Write Characters passes it to the General Error Handler.  I never looked above O/C/R file in the hierarchy except for enable automatic error handling property.  The tip-off should have been to realize that O/C/R file was stripping the hierarchy from the error and look above that. 
    The real irony is that Write Characters was being used to log error cluster data to an error log file...
    Save as... Copy without updating... the OEM 'Write Characters to File' is gone from this app.
    Thanx (a bunch)

  • Error handling while invoking TaskService

    Hi All,
    we are using SOA Suite 10.1.3.5
    In one of the BPEL processes we are invoking TaskService. This invoke is the one that gets generated by default when a human task is used.
    We are using Single Approver Participant type and the users of it are derived from Active Directory.To access Active directory we are using a username and password.The password got expired and so the bpel instance containing the human task got stuck at invoke Task Service. There was no exception thrown in the process instance.Now we are asked to implement a Retry logic whenever such a thing happens. But unable to proceed as there is no exception thrown in the console to catch it. Can you please tell me how to implement retry in this scenario? However the error is captured in opmn logs as follows:
    ORABPEL-10509
    User is not found.
    User "L-DCNM-S-M91BXK9=" is not found in realm "AD".
    Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
         at oracle.tip.pc.services.identity.ldap.LDAPProvider.lookupUser(LDAPProvider.java:648)
         at oracle.tip.pc.services.identity.ldap.LDAPAuthorizationService.lookupUser(LDAPAuthorizationService.java:127)
         at oracle.tip.pc.services.identity.ldap.LDAPIdentityService.lookupUser(LDAPIdentityService.java:110)
         at oracle.bpel.services.workflow.verification.impl.VerificationService.lookupUser(VerificationService.java:3014)
         at oracle.bpel.services.workflow.verification.impl.VerificationService.authenticateUser(VerificationService.java:365)
         at oracle.bpel.services.workflow.query.impl.TaskQueryService.authenticate(TaskQueryService.java:162)
         at oracle.bpel.services.workflow.query.ejb.TaskQueryServiceBean.authenticate(TaskQueryServiceBean.java:40)
         at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:707)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at TaskQueryService_RemoteProxy_18b3fg8.authenticate(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:67)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    <2011-07-08 13:24:39,957> <ERROR> <eif_domain.collaxa.cube.services> <*::*> WorkflowService:: VerificationService.authenticateUser: error: Internal Error in Verification Service.
    <2011-07-08 13:24:39,957> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Internal Error in Verification Service for user L-DCNM-S-M91BXK9=. lookupUser
    <2011-07-08 13:24:39,957> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Check the underlying exception and correct the error. Contact oracle support if error is not fixable.
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*> ORABPEL-30501
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Error in authenticating user.
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Error in authenticating and creating a workflow context for user AD/bpmadmin.
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Check the underlying exception and correct the error. Contact oracle support if error is not fixable.
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.verification.impl.VerificationService.authenticateUser(VerificationService.java:387)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.query.impl.TaskQueryService.authenticate(TaskQueryService.java:162)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.query.ejb.TaskQueryServiceBean.authenticate(TaskQueryServiceBean.java:40)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at java.lang.reflect.Method.invoke(Method.java:585)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at java.security.AccessController.doPrivileged(Native Method)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at javax.security.auth.Subject.doAs(Subject.java:396)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ThreadState.runAs(ThreadState.java:707)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
    <2011-07-08 13:24:39,958> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at TaskQueryService_RemoteProxy_18b3fg8.authenticate(Unknown Source)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at java.lang.reflect.Method.invoke(Method.java:585)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:67)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at java.lang.Thread.run(Thread.java:595)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Caused by: ORABPEL-30504
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Internal Error in Verification Service.
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Internal Error in Verification Service for user L-DCNM-S-M91BXK9=. lookupUser
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Check the underlying exception and correct the error. Contact oracle support if error is not fixable.
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.verification.impl.VerificationService.lookupUser(VerificationService.java:3018)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.verification.impl.VerificationService.authenticateUser(VerificationService.java:365)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      ... 28 more
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Caused by: ORABPEL-10509
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> User is not found.
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> User "L-DCNM-S-M91BXK9=" is not found in realm "AD".
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*> Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.tip.pc.services.identity.ldap.LDAPProvider.lookupUser(LDAPProvider.java:648)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.tip.pc.services.identity.ldap.LDAPAuthorizationService.lookupUser(LDAPAuthorizationService.java:127)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.tip.pc.services.identity.ldap.LDAPIdentityService.lookupUser(LDAPIdentityService.java:110)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      at oracle.bpel.services.workflow.verification.impl.VerificationService.lookupUser(VerificationService.java:3014)
    <2011-07-08 13:24:39,959> <ERROR> <eif_domain.collaxa.cube.services> <*::*>      ... 29 more
    <2011-07-08 13:24:39,959> <ERROR> <oracle.bpel.services.workflow> <::> Internal Error in Verification Service.
    Internal Error in Verification Service for user L-DCNM-S-M91BXK9=. lookupUser
    Check the underlying exception and correct the error. Contact oracle support if error is not fixable.
    ORABPEL-30504
    Internal Error in Verification Service.
    Internal Error in Verification Service for user L-DCNM-S-M91BXK9=. lookupUser
    Check the underlying exception and correct the error. Contact oracle support if error is not fixable.
         at oracle.bpel.services.workflow.verification.impl.VerificationService.lookupUser(VerificationService.java:3018)
         at oracle.bpel.services.workflow.verification.impl.VerificationService.authenticateUser(VerificationService.java:365)
         at oracle.bpel.services.workflow.query.impl.TaskQueryService.authenticate(TaskQueryService.java:162)
         at oracle.bpel.services.workflow.query.ejb.TaskQueryServiceBean.authenticate(TaskQueryServiceBean.java:40)
         at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:707)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at TaskQueryService_RemoteProxy_18b3fg8.authenticate(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:67)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: ORABPEL-10509
    User is not found.
    User "L-DCNM-S-M91BXK9=" is not found in realm "AD".
    Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
         at oracle.tip.pc.services.identity.ldap.LDAPProvider.lookupUser(LDAPProvider.java:648)
         at oracle.tip.pc.services.identity.ldap.LDAPAuthorizationService.lookupUser(LDAPAuthorizationService.java:127)
         at oracle.tip.pc.services.identity.ldap.LDAPIdentityService.lookupUser(LDAPIdentityService.java:110)
         at oracle.bpel.services.workflow.verification.impl.VerificationService.lookupUser(VerificationService.java:3014)
         ... 29 more
    <2011-07-08 13:32:36,768> <INFO> <eif_domain.collaxa.cube.engine.dispatch> <CallbackInvokerMessageHandler::handle> Wait for 2 seconds before retrying callback for 992573-BpInv0-BpSeq3.286-6
    <2011-07-08 13:49:02,501> <INFO> <eif_domain.collaxa.cube.engine.dispatch> <CallbackInvokerMessageHandler::handle> Wait for 2 seconds before retrying callback for 992588-BpInv0-BpSeq3.28-6
    <2011-07-08 14:11:34,778> <INFO> <eif_domain.collaxa.cube.engine.dispatch> <CallbackInvokerMessageHandler::handle> Wait for 2 seconds before retrying callback for 992606-BpInv0-BpSeq3.288-6
    <2011-07-08 14:43:16,839> <INFO> <eif_domain.collaxa.cube.engine.dispatch> <CallbackInvokerMessageHandler::handle> Wait for 2 seconds before retrying callback for 992650-BpInv0-BpSeq3.291-6
    11/07/08 14:56:54 [MYDEBUG] admin user = null
    <2011-07-08 15:06:49,877> <WARN> <eif_domain.collaxa.cube.ws> <WSInvocationManager::Failed to get callback ServiceName in wsdl> Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" in WSDL definition "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskService".
    Please verify that WSDL portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" is supported by a service in WSDL file.
    <2011-07-08 15:06:51,574> <WARN> <eif_domain.collaxa.cube.ws> <WSInvocationManager::Failed to get callback ServiceName in wsdl> Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" in WSDL definition "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskService".
    Please verify that WSDL portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" is supported by a service in WSDL file.
    <2011-07-08 15:06:52,427> <WARN> <eif_domain.collaxa.cube.ws> <WSInvocationManager::Failed to get callback ServiceName in wsdl> Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" in WSDL definition "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskService".
    Please verify that WSDL portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" is supported by a service in WSDL file.
    <2011-07-08 15:06:53,154> <WARN> <eif_domain.collaxa.cube.ws> <WSInvocationManager::Failed to get callback ServiceName in wsdl> Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" in WSDL definition "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskService".
    Please verify that WSDL portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" is supported by a service in WSDL file.
    <2011-07-08 15:06:53,872> <WARN> <eif_domain.collaxa.cube.ws> <WSInvocationManager::Failed to get callback ServiceName in wsdl> Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" in WSDL definition "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskService".
    Please verify that WSDL portType "{http://xmlns.oracle.com/bpel/workflow/taskService}TaskServiceCallback" is supported by a service in WSDL file.

    Hi Stèphane,
    You can use a Start Routine in Transfer or Update Rules that read the /BI0/Pxxxxx or /BIC/Pxxxxx Master Data table and delete all records where there is no corresponding value already stored.
    You can also use /BI0/Sxxxxx or /BIC/Sxxxxx.
    Ciao.
    Riccardo.

  • Error handling in process chain-doubts

    Hi ,
    I have some doubts in error handling of process chains.
    1) I have  aprocess load infopackeage and subsequent process is update fromPSA.
    process load infopackage got failed  , so i loaded  the IP manually and repeated the next i.e process update from PSA .
    How to correct the process chain from now?
    2) I have  aprocess load infopackeage and subsequent process is Delete request in infocube .process load infopackage got failed  , so i loaded  the IP manually and repeated the next process i.e Delete request in infocube. Chain continued by deleting the right request . How this is possible ?
    Plz  help me  as this is urgent and daily i have to deal with this  issues. If any documents on error handling is greatly appreciated.
    My mail id is [email protected]
    Regards,
    Pavan

    Hi Pavan,
    Hope the following links will give u a clear idea about process chains and clear ur doubts.
    Business Intelligence Old Forum (Read Only Archive)
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8f/c08b3baaa59649e10000000a11402f/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/19683495-0501-0010-4381-b31db6ece1e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/36693695-0501-0010-698a-a015c6aac9e1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9936e790-0201-0010-f185-89d0377639db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/263de690-0201-0010-bc9f-b65b3e7ba11c
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    Errors in monitoring of process chains can be categorized into 4 different sections...
    Master data - Full Update
    Master data - Delta Update
    Transaction data - Full Update
    Transaction data - Delta Update.. in terms of loading of data which can be due to server shut down or system maintenance... errors due to incorrect entries in the OLTP system in which case you'll have to fix the errors in the PSA and manually load the data...
    Otherwise it can have errors on Attribute change run being locked by some other job... Aggregate Roll up failing because of attribute change run being run at the same time... Problem with hierarchies and save hierarchies...
    There can be problems with the data store activation if the ODS object contains any incorrect request sitting inside it... then, you need to delete the incorrect request and reload the data again...
    In case of Transaction Delta failure, you'll have to request for a repeat either manually in the infopackage or using the repeat option if available on right clicking the load event...
    For Master Data Delta failures, you need to do an Re-init by deleteing the previous initalization condition in the "initalization option for source systems" in the menu scheduler or reschedule the enitre chain... because, master data generally do not support repeat of last delta ...
    U can even look into these links:
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    For common data load errors check this link:
    /people/siegfried.szameitat/blog/2005/07/28/data-load-errors--basic-checks
    ****Assign Points if Helpful****
    Regards,
    Ravikanth.

  • Error handling function: ORA-20001: get_dbms_sql_cursor error:ORA-00942: table or view does not exist  is not trapped. Why?

    Why APEX 4.1 Error handling function does not trap  the error of missing table?
    Say, I create simple application with single IR report page and I also assign standard simple error handling function.
    Function works perfectly, except but this case:
    If I just drop a table used by report page and then refresh the page I am getting usual APEX error message:
    ORA-20001: get_dbms_sql_cursor error ORA-00942: table or view does not exist
    and error handling function is not invoked at all.
    Is this a feature or a bug?

    Hi,
    Check the corrections given in the note 990764:
    Reason and Prerequisites
    Up to now, using a characteristic with its own master data read class as the InfoProvider was not supported. This is now released but it is not available for all modelings. Using the attributes in the query is not supported for characteristics that have their own master data read class. Using the attributes in the query causes a termination. The following errors may occur in this case:
    ORA-00942: table or view does not exist
    Fehler in CL_SQL_RESULT_SET  Include NEXT_PACKAGE
    RAISE_READ_ERROR in CL_RSDRV_VPROV_BASE
    Solution
    SAP NetWeaver 2004s BI
               Import Support Package 11 for SAP NetWeaver 2004s BI (BI Patch 11 or SAPKW70011) into your BI system. The Support Package is available once Note 0914305 "SAPBINews BI 7.0 Support Package 11", which describes this Support Package in more detail, has been released for customers.
    In urgent cases you can implement the correction instructions.
    The correction instructions contain the tightened inspection for characteristics.
    Regards,
    Anil Kumar Sharma .P

  • Issue with SRDemo error handling

    Hi All,
    Glad the forums are back up and running. In debugging some error-handling issues in our own application, I found an issue in the error handling code of SRDemo. I thought I'd post the issue here, as many of us (myself included) use some SRDemo code as the basis for our own applications.
    The issue can be found in the oracle.srdemo.view.frameworkExt.SRDemoPageLifecycle class, specifically in the translateExceptionToFacesErrors method. I'll show the code that has the issue first, and explain the issue afterwards:
            if (numAttr > 0) {
                Iterator i = attributeErrors.keySet().iterator();
                while (i.hasNext()) {
                    String attrNameKey = (String)i.next();
                     * Only add the error to show to the user if it was related
                     * to a field they can see on the screen. We accomplish this
                     * by checking whether there is a control binding in the current
                     * binding container by the same name as the attribute with
                     * the related exception that was reported.
                    ControlBinding cb =
                        ADFUtils.findControlBinding(bc, attrNameKey);
                    if (cb != null) {
                        String msg = (String)attributeErrors.get(attrNameKey);
                        if (cb instanceof JUCtrlAttrsBinding) {
                            attrNameKey = ((JUCtrlAttrsBinding)cb).getLabel();
                        JSFUtils.addFacesErrorMessage(attrNameKey, msg);
                }Now, this bit of code attempts to be "smart" and only show error messages relating to attributes if those attributes are in fact displayed on the screen. It does so by using a utility method to find a control binding for the attribute name. There are two issues with this code, one obvious, and one that is a bit more subtle.
    The obvious issue: if there is a binding in the page definition, it doesn't necessarily mean that the attribute is shown on the screen. It's a good approximation, but not exact.
    The other issue is more subtle, and led to errors being "eaten," or not shown, in our application. The issue comes if you are using an af:table to display and update your data. In that case, the findControlBinding will not find anything for that attribute, since the attribute is contained within a table binding.
    Just posting this as a word to the wary.
    Best,
    john

    somehow, this message got in the wrong thread....
    Hi Frank,
    Yes, I simply scripted it out this way to contrast the behaviour if the first attribute was read-only vs not read-only. I found the issue on a page in our app that was simply drag-and-drop the VO from the data control on the page.
    It's quite annoying, because our particular use case that hit this error is a "save" button on the page. If the commit operation doesn't return any errors (and it doesn't in this use case!), we add a JSF message saying "save successful" - then the attribute errors are further added later in the page lifecycle, so we get 3 messages: "Save successful" and "Fix this error" and "Tried to set read-only attribute" - quite confusing to the end-user when the only message they should see is "fix this error."
    At any rate, the fix is to simply re-order the attributes in the page definition - that doesn't affect the UI at all, other than to fix this issue.
    John
    it was supposed to be something like:
    Hi Frank,
    Thanks for the reply. I was simply posting this here so that people who use the SRDemo application techniques as a basis for developing the same functionality in their own apps (like me) can be aware of the issue, and avoid lots of head-scratching to figure out "what happened to the error message?"
    John

  • Error handling in File - XI - SOAP scenario without BPM

    Hello!
    We have a File -> XI -> SOAP scenario without BPM. The problem is that if the Web Service sends back an error XI tries to reprocess the same message again and again instead of taking the next one.
    We do not want set the retry interval to NULL because most error cases are temporary connection problems and then also those messages would not automatically be reprocessed any more.
    We also have to use BE instead of EO, otherwise the Web Service will not return a response. But we need the response to be sure that the processing was successful. The message volume in this scenario is quite high and we do not want to use BPM only for the error handling.
    I know that from SP19 some additional adapter modules are available for async - sync scenarios without BPM. I tried to configure it like described in File - RFC - File without a BPM - Possible from SP 19. but it did not solve the problem. Does anybody have any other ideas? Thanks.
    Regards, Tanja

    Hi Tanja,
    >>>The volume is 3000 messages/day on business days and 700 messages/day during weekends but the traffic will increase in the future
    I think, you should check that out. It is assumedly only 2 days work to build a scenario:
    IDoc -> BP
    BP <-> SOAP/HTTP
    BP -> IDoc (Acknowledgement)
    In the process you need a condition branch, where you decide success or not. You need 2 Interface Mappings for filling the ALEAUD.
    Just send 1000 IDocs to the Test-XI and look to performance monitoring at Runtime Workbench, to find out, how many message will be processed in one hour. Assumedly 3000 and more per day should be possible. The advantage would be to reduce number of systems (no file system) and messages (better monitoring) and using the standard (better maintenance).
    >>>So you are suggesting I should use HTTP adapter and then add the SOAP header manually in a mapping?
    Yes, build the SOAP envelop during the mapping. Most easy is to use XSL or, if your mapping is ready, an additionsal XSL. You can put the error into the Acknowledgement to see it in ERP transaction WE02.
    Filling of ALEAUD fields:
    E1ADHDR/MESTYP: original message type
    E1ADHDR/E1STATE/DOCNUM: original IDoc number
    E1ADHDR/E1STATE/STATUS: 68 in case of error, 53 in case of success
    E1ADHDR/E1STATE/STATXT: Short description for R/3 user what has happend
    I ve done such a scenario several times. That works without any problems.
    Regards,
    Udo

  • BPM for error handling and acknowledgements

    Hi,
    Can any one tell me how to handle BPM for error handling and acknowledgements in one scenario.
    Please send me the link if you have other wise give me the solution on the same.
    Thanks,
    Nagesh

    Hi !
    Just check out these links This might help you.
    Usually Application Level Acknowledgement is considered during Sync communication. If you are using RFC, you can make use of Sync communication. So you can handle it without bpm, provided your both sender and receiver are sync interfaces.
    To know about Ack-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    you can not dirrectly access the content of the ACK, however the BPM shows different behaviours based on the ACK status. E.g. if the ACK contains a success message the BPM will continue in its normal process, if the ACK contains a permanent error, it will either stop or go through an exception branch (provided such a branch has been defined). Have a look at the documentation: http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm It doesnt"t state the above mentioned behaviour in detail but says that you need to define an exception branch.
    The trickiest part is always to find out, when you will get a transient vs. as permanent error ack. If you are using ACKs with Proxies refer also to this link http://help.sap.com/saphelp_nw04/helpdata/en/29/345d3b7c32a527e10000000a114084/content.htm and this http://help.sap.com/saphelp_nw04/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/29/345d3b7c32a527e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/7b/94553b4d53273de10000000a114084/content.htm
    <b>The following link has entire configuration of Receiver XI Adapter (including acknowledgements)</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/f4/0a1640a991c742e10000000a1550b0/content.htm
           <b>   eror handling in BPM.  
    </b>
    1. CCMS monitoring
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/42fb24ff-0a01-0010-d48d-ed27a70205a8
    2. BPM Monitoring
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
    3. Monitoring XML Messages http://help.sap.com/saphelp_nw04/helpdata/en/41/b715045ffc11d5b3ea0050da403d6a/frameset.htm
    /people/sap.user72/blog/2005/11/29/xi-how-to-re-process-failed-xi-messages-automatically
    monitoring BPm https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
    Reconciliation of Messages in BPM - /people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm
    Also see the below BPM related links
    check list for BPM https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Many other examples can be found under the following link at help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    And some weblogs
    https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
    Also have a look at these seminars,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    Thanks !!!
    Regards
    Abhishek Agrahari
    Questions are welcome here!!
    <b>Also mark helpful answers by rewarding points</b>

  • Is there a way to find out that a variant is of type vt_null, without using an error handler?

    i am using an persistant ado-recordset. some fields may return a variant of type vt_null (sql-null value).
    i want to figure out if a field contains a null or an empty string. when i checked the "view type" at a variant control, i see that labview correctly recognize a null value.
    making a compare with "not a refnum/number/..." does not work. checking against a null string also don't work.
    i used "variant flatten string" and "flatten string" but there is no difference between a field containing data and a null field (the type string tells me that is a reference to the variant, neither function 'flatten' the refrenced variant)
    "varaint to data" results in an error, whe
    n used with lv-native datatype and trying to convert a null-value. but the function has to return a variant, so using an error-handler is not an option. (converting variant-null to variant-data does not produce an error)
    i also tried to get the "attribute" "value type"; it is not accessable with this function, like "attribute" "value".
    is there a way to extract the variant data-type from a variant? or any other soloution to find out that a variant carries a null-value?

    Hi,
    sorry, i got no idea how to get the datatype of a variant, but there are properties "ActualSize" and "Type" of the ADO Field-Object. In case of an empty field the ActualSize is zero. Maybe you can use that. See VI below.
    best regards
    chris
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"
    Attachments:
    DB_Test.vi ‏67 KB

  • Error Handling

    hi,
    I have an IDOC -> XI ->SOAP scenario.
    How do we handle error handling in the below scenarios i described:
    1. If i have an error in transmitting the xml to the receiver SOAP. How can i send an error email notification?
    2. A retry or resend has to occur for 8 hours i.e., we keep trying for 8 hours and if it fails then we need to notify through email. How can we do this?
    3. At the first failure transmission an email has to be notified and failure after 8 hours another email notification has to be sent so 2 emails will be sent for a failure transmission? Is this possible through XI?
    How can we achieve the above?
    Thanks,
    Tirumal

    Hi Tirumal,
    Configure 2 alerts.
    One to be triggered when there is the error in tramsmitting the SOAP XML.
    Next to be triggered after the retry for 8 hours. If you are using the BPM with wait, then you can associate the Alert with the Exception block of your BPM and trigger the same.
    Also, from SP14, Alerts can be triggered for errros in both integratioon engine and adapter engine.
    To create alerts , this blog can help you out,
    /people/michal.krawczyk2/blog/2005/09/09/xi-alerts--step-by-step
    From SP14 onwards, activation of end to end monitoring is not needed for Alerting. Refer to this note 870232 for this info.
    If you are on Sp14, implement the note 913858.
    If you are below SP14, then also check this blog,
    /people/michal.krawczyk2/blog/2005/09/09/xi-alerts--troubleshooting-guide
    Regards,
    Bhavesh

  • For IDOC monitoring, analysis and error handling in  ALE & idoc

    Hello...experts..can u please tell me about idoc monitoring,analysis and error handling..and can u please tell as per interview  point of view in this area..if availble can u send material about this...
    thx
    Message was edited by:
            durga kottapalli

    Hi,
    Reprocessing IDocs with errors
    Outbound (BD88)
    Once the error has been determined and corrected it is not necessary to resend the IDoc again. You simply resend the IDocs that have already been generated.
    Using the IDoc overview screen you need to take note of the following for each IDoc that was not processed:
    Error number: 2, 4, 5, 25, 29
    Error number: 30 (Execute Check IDoc dispatch to process)
    IDoc number
    Using the Error number, the IDoc number and the transaction BD88 , with the required message type you can resend the IDoc. Match the error number with this transaction and execute the function for the IDocs incorrectly processed.
    Just check the below link, u will get all IDOC related Interview questions
    http://www.allsaplinks.com/idoc_sample.html
    http://www.allsaplinks.com/
    http://www.sappoint.com/abap.html
    http://www.sap-img.com/
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDISC/CAEDISCAP_STC.pdf
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFAALEQS/CABFAALEQS.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVEDI/CAEDI.pdf
    http://www.sappoint.com/abap.html
    http://sap.ittoolbox.com/documents/popular-q-and-a/extending-a-basic-idoc-type-2358
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296858_idx0_off50,00.html
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEIO/BCMIDALEIO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDALEPRO/BCMIDALEPRO.pdf
    http://help.sap.com/saphelp_47x200/helpdata/en/dc/6b7eee43d711d1893e0000e8323c4f/frameset.htm
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sap-img.com/
    http://www.allsaplinks.com/
    Regards,
    Suresh.
    Message was edited by:
            SureshKumar Ramamoorthy

  • DML error table intermittently fails to generate error handling in package

    Hi!
    In OWB 11gR2 (11.2.0.1), we're seeing an issue when setting the DML Error table name on a target table. Sometimes, mostly on older and complex mappings, the error handling logic does not get generated when we deploy the mapping, and nothing is populated in the error tables for error conditions, though the errors display as warnings in the OWB UI.
    When I create a new mapping that is very simple - one table loading another - setting the DML Error table name always results in errors being put in the error table. That's great, but that doesn't help us with our more-complex mappings that aren't logging errors.
    We can't determine the cause of the issue. I can't see a difference in the configuration of the mappings that work and don't work. Generation Mode is All Operating Modes. Default Operating Mode is Set based fail over to row based. We've generated the error table using DBMS_ERRLOG.CREATE_ERROR_LOG. The target tables do not have primary keys.
    I've tried synchronizing the target table operator in the mapping as another forum thread suggested. No change.
    Has anyone else seen this issue or know of a workaround?
    Thanks,
    Jayce

    Which logic did you talk about ?
    For the version 10, you will find the error table more on the insert statement such as:
    INSERT INTO "TSALES"
      ("PROD_ID",
      "SALES"."AMOUNT_SOLD" "AMOUNT_SOLD"
    FROM
      "SALES"  "SALES"
    LOG ERRORS INTO TSALES_ERR (get_audit_detail_id) REJECT LIMIT 50;Come from here:
    http://blogs.oracle.com/warehousebuilder/2007/08/set_based_errors_dml_error_log.html
    Then check the insert SQL generated.
    Cheers
    Nico

  • How to perform Error Handling in this Bdc Code

    Hi,
    I had created this BDC for the tcode MB1B and i want to know how to perform the ERROR HANDLING in it ..
    Plzz provide me guidelines for doing it . here's d code:-
    report ZBDC_MB1B
           no standard page heading line-size 255.
    include bdcrecx1.
    data: begin of record OCCURS 0,
          WERKS_001(004),     "Plant
          MATNR_002(018),     "ItemId
          ERFMG_003(013),     "Quantity in Unit of Entry
          ERFME_004(003),     "Unit of Entry
          LGORT_005(004),     "Storage Location
          CHARG_006(010),     "BatchId
          KDAUF_007(010),     "Sales Order Number
          KDPOS_008(006),     "Item Number in Sales Order
          end of record.
    PARAMETERS : P_FILNAM LIKE RLGRAP-FILENAME.
      initialization.
      CTUMODE = 'A'.
      CUPDATE = 'A'.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILNAM.
      CALL FUNCTION 'WS_FILENAME_GET'
       EXPORTING
         MASK                   = ',. '
         MODE                   = 'O'
         IMPORTING
         FILENAME                 = P_FILNAM
       EXCEPTIONS
         INV_WINSYS             = 1
         NO_BATCH               = 2
         SELECTION_CANCEL       = 3
         SELECTION_ERROR        = 4
         OTHERS                 = 5
      IF SY-SUBRC <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    start-of-selection.
    CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
         FILENAME                      = P_FILNAM
         FILETYPE                      = 'DAT'
        TABLES
          DATA_TAB                     = RECORD
       EXCEPTIONS
         CONVERSION_ERROR              = 1
         FILE_OPEN_ERROR               = 2
         FILE_READ_ERROR               = 3
         INVALID_TYPE                  = 4
         NO_BATCH                      = 5
         UNKNOWN_ERROR                 = 6
         INVALID_TABLE_WIDTH           = 7
         GUI_REFUSE_FILETRANSFER       = 8
         CUSTOMER_ERROR                = 9
         NO_AUTHORITY                  = 10
         OTHERS                        = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT RECORD.
      BEGIN OF SCREEN 1
    perform bdc_dynpro      using 'SAPMM07M' '0400'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RM07M-SOBKZ'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *perform bdc_field       using 'MKPF-BLDAT'
                                 '22.12.2008'.
    *perform bdc_field       using 'MKPF-BUDAT'
                                 '22.12.2008'.
    perform bdc_field       using 'RM07M-BWARTWA'
                                  '411'.
    perform bdc_field       using 'RM07M-SOBKZ'
                                  'E'.
    perform bdc_field       using 'RM07M-WERKS'
                                  RECORD-WERKS_001.             "Plant
    perform bdc_field       using 'XFULL'
                                  'X'.
    perform bdc_field       using 'RM07M-WVERS2'
                                  'X'.
      BEGIN OF SCREEN 2
    perform bdc_dynpro      using 'SAPMM07M' '0421'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSEG-CHARG(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'MSEG-MATNR(01)'
                                  RECORD-MATNR_002.             "ITEMID
    perform bdc_field       using 'MSEG-ERFMG(01)'
                                  RECORD-ERFMG_003.             "QTY.
    perform bdc_field       using 'MSEG-ERFME(01)'
                                  RECORD-ERFME_004.             "UOM
    perform bdc_field       using 'MSEG-LGORT(01)'
                                  RECORD-LGORT_005.             "ST.LOC
    perform bdc_field       using 'MSEG-CHARG(01)'
                                  RECORD-CHARG_006.             "BATCHID
    perform bdc_field       using 'MSEGK-MAT_KDAUF'
                                  RECORD-KDAUF_007.             "S.O.
    perform bdc_field       using 'MSEGK-MAT_KDPOS'
                                  RECORD-KDPOS_008.             "S.O.LINE ITEM
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
      BEGIN OF SCREEN 3
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTE'.
    perform bdc_dynpro      using 'SAPMM07M' '0421'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSEG-ERFMG(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'DKACB-FMORE'
                                  'X'.
      BEGIN OF SCREEN 4
    perform bdc_dynpro      using   'SAPLKACB' '0002'.
    perform bdc_field       using      'BDC_OKCODE'
                                                '=ENTE'.
    perform bdc_transaction using 'MB1B'.
    ENDLOOP.

    hi,
    check this code in bold letters.
    INCLUDE BDCRECX1.
    TABLES : MARC.
    TYPES : BEGIN OF TY_UPLOAD,
            MATNR TYPE MARA-MATNR,
            WERKS TYPE MARC-WERKS,
            STEUC TYPE MARC-STEUC,
            END OF TY_UPLOAD.
    TYPES : BEGIN OF TY_MARC,
            MATNR TYPE MARA-MATNR,
            WERKS TYPE MARC-WERKS,
            END OF TY_MARC.
    TYPES : BEGIN OF TY_MTART,
            MATNR TYPE MARA-MATNR,
            MTART TYPE MARA-MTART,
            END OF TY_MTART.
    DATA : T_MARC TYPE STANDARD TABLE OF TY_MARC,
         : T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_BASIC TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_SALES TYPE STANDARD TABLE OF TY_UPLOAD,
         : T_ERROR TYPE STANDARD TABLE OF TY_UPLOAD.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_BDCDATA_VIEW LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_DATA(3200) OCCURS 0 WITH HEADER LINE,
           IT_FIELD(3200) OCCURS 0 WITH HEADER LINE,
           IT_BDCMSG TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA GI_MSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : CHAR1(500),
          CHAR2(500),
          CHAR3 TYPE STRING,
          V_SELECTION TYPE STRING.  " For View Selection
    DATA : W_MARC TYPE TY_MARC,
           WA_UPLOAD TYPE TY_UPLOAD,
           WA_BASIC TYPE TY_UPLOAD,
           WA_SALES TYPE TY_UPLOAD,
           WA_ERROR TYPE TY_UPLOAD,
           WA_MTART TYPE TY_MTART.
    DATA : VAR TYPE N,
           VAR1 TYPE STRING.
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.   "SELECTION SCREEN
    PARAMETERS: P_FNAM LIKE RLGRAP-FILENAME.
    PARAMETERS: P_BAS LIKE RLGRAP-FILENAME.
    PARAMETERS: P_SAL LIKE RLGRAP-FILENAME.
    PARAMETERS: P_ERR LIKE RLGRAP-FILENAME.
    SELECTION-SCREEN : END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAM.
      PERFORM SEARCH USING P_FNAM.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BAS.
      PERFORM SEARCH USING P_BAS.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_SAL.
      PERFORM SEARCH USING P_SAL.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ERR.
      PERFORM SEARCH USING P_ERR.
    *&      Form  SEARCH
          text
         -->PFNAME     text
    FORM SEARCH USING PFNAME.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          STATIC    = 'X'
        CHANGING
          FILE_NAME = PFNAME.
    ENDFORM.                    "SEARCH
    START-OF-SELECTION.
      PERFORM UPLOAD_PROCESS USING P_FNAM.
      PERFORM OPEN_GROUP.
      PERFORM PROCESS.
      PERFORM CLOSE_GROUP.
      IF NOT T_BASIC[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_BASIC[] USING P_BAS .
      ENDIF.
      IF NOT T_SALES[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_SALES[] USING P_SAL .
      ENDIF.
      IF NOT T_ERROR[] IS INITIAL.
        PERFORM DOWNLOAD TABLES T_ERROR[] USING P_ERR.
      ENDIF.
    *&      Form  PROCESS
          text
    FORM PROCESS.
      LOOP AT T_UPLOAD INTO WA_UPLOAD.
        PERFORM CONV_ROUTINE  USING WA_UPLOAD-MATNR
                            CHANGING WA_UPLOAD-MATNR.
        SELECT COUNT(*) FROM MARA WHERE MATNR = WA_UPLOAD-MATNR.
        IF SY-SUBRC NE 0.
          MOVE-CORRESPONDING  WA_UPLOAD TO WA_BASIC.
          APPEND WA_BASIC TO T_BASIC.
          CLEAR WA_BASIC.
          CONTINUE.
        ENDIF.
        SELECT COUNT(*) FROM MARC WHERE MATNR = WA_UPLOAD-MATNR
                                        AND WERKS = WA_UPLOAD-WERKS
                                        AND PSTAT LIKE '%V%'.
        IF SY-SUBRC NE 0.
          MOVE-CORRESPONDING  WA_UPLOAD TO WA_SALES.
          APPEND WA_SALES TO T_SALES.
          CLEAR WA_SALES.
          CONTINUE.
        ENDIF.
        CLEAR : WA_MTART.
        SELECT SINGLE MATNR MTART FROM MARA INTO WA_MTART WHERE MATNR = WA_UPLOAD-MATNR.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=AUSW'.
        PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                      WA_UPLOAD-MATNR.
        CALL FUNCTION 'MATERIAL_BTCI_SELECTION_NEW'     " Function module
        EXPORTING
          MATERIAL                  = WA_UPLOAD-MATNR  " Material number
          MATERIALART               = WA_MTART-MTART          " Material Type
          SELECTION                 = 'V'              "
          TCODE                     = 'MM02'           " Tcode where view's are called.
        TABLES
          BTCI_D0070                = IT_BDCDATA_VIEW
        EXCEPTIONS
          MATERIAL_NOT_FOUND        = 1
          MATERIAL_NUMBER_MISSING   = 2
          MATERIAL_TYPE_MISSING     = 3
          MATERIAL_TYPE_NOT_FOUND   = 4
          NO_ACTIVE_DYNPRO_SELECTED = 5
          NO_AUTHORITY              = 6
          OTHERS                    = 7.
        READ TABLE IT_BDCDATA_VIEW WITH KEY FVAL  = 'X'.
        IF SY-SUBRC = 0.
          V_SELECTION = IT_BDCDATA_VIEW-FNAM.
        ELSE.
          CONTINUE.
        ENDIF.
        VAR = IT_BDCDATA_VIEW-FNAM+17(2).
        VAR = VAR + 3.
        CONCATENATE 'MSICHTAUSW-KZSEL(' '0' VAR ')' INTO VAR1.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'MSICHTAUSW-DYTXT(06)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING VAR1
                                       'X'.
        CLEAR VAR.
        CLEAR VAR1.
       PERFORM BDC_FIELD       USING 'MSICHTAUSW-KZSEL(06)'
                                     'X'.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0080'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RMMG1-VKORG'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING 'RMMG1-WERKS'
                                      WA_UPLOAD-WERKS.
        PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4004'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=BU'.
       PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                     'MTI_ESE_HALB_01'.
        PERFORM BDC_FIELD       USING 'MARC-STEUC'
                                      WA_UPLOAD-STEUC.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'MARC-HERKR'.
        PERFORM BDC_FIELD       USING 'MARC-HERKL'
                                      'IN'.
        PERFORM BDC_FIELD       USING 'MARC-HERKR'
                                      'MAH'.
        PERFORM BDC_TRANSACTION USING 'MM02'.
    move the error record into seperate internal table nad down load it ****
        IF MESSTAB-MSGTYP = 'E'.
          MOVE-CORRESPONDING WA_UPLOAD TO WA_ERROR.
          APPEND WA_ERROR TO T_ERROR.
          CLEAR WA_ERROR.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "PROCESS
    *&      Form  UPLOAD_PROCESS
          text
         -->PFNAME     text
    FORM UPLOAD_PROCESS USING PFNAME.
      DATA : PFNAME1 TYPE STRING.
      PFNAME1 = PFNAME.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = PFNAME1
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = T_UPLOAD[].
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    "UPLOAD_PROCESS
    *&      Form  CONV_ROUTINE
          text
         -->P_INPUT    text
         -->P_OUTPUT   text
    FORM CONV_ROUTINE   USING    P_INPUT
                     CHANGING P_OUTPUT.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = P_INPUT
        IMPORTING
          OUTPUT = P_OUTPUT.
    ENDFORM.                    "CONV_ROUTINE
    *&      Form  DOWNLOAD
          text
         -->GI_FINAL   text
         -->PFNAME     text
    FORM DOWNLOAD TABLES
                  GI_FINAL
                         USING  PFNAME .
      DATA : FNAME TYPE STRING.
      FNAME = PFNAME.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                        = FNAME
          FILETYPE                        = 'DAT'
         WRITE_FIELD_SEPARATOR           = 'x'
            HEADER                          = '00'
          IMPORTING
            FILELENGTH                      =
        TABLES
          DATA_TAB                        =  GI_FINAL[]
          FIELDNAMES                      = GI_FIELDNAMES[]
      IF SY-SUBRC = 0.
        MESSAGE 'FILE DOWNLOADED SUCCESSFULLY' TYPE 'I'.
      ENDIF.
    ENDFORM.                    " DOWNLOAD
    Regards
    Siva Prasad

  • JCo Client Programming and Error Handling

    Hi all,
    I was wondering if anybody could help me out with some advice on error handling when writing code to send messages to SAP via a JCo Client, particularly IDocs.
    I understand from my reading that IDocs are always sent asyncronously to the SAP system from JCo, using JCO.Client.send(). So it is possible (and I have some test code working to do this) to force an exception with say a malformed IDoc, and catch the exception in my code.
    But due to the asyncronous nature of the send functionality for IDoc, I cannot see any way of getting back any "business level" exceptions (e.g. Order Number does not exist, Unknown Material, etc.)
    So my question is, is it possible to receive any of these type of error messages when sending IDocs to an SAP system using JCo? Perhaps by setting up a JCo Server with the correct error/exception listeners to receive these messages - but are they even sent out in the way?
    If not what is the process for handling them?
    It is of course possible to look in the SAP system using txn WE02 and see the problem/error but that does not help me to propagate this back to the sending application or to maintain state alignment between the two apps.
    Any advice much appreciated!!
    Chris

    Hi Anil,
    you should check on those trheads:
    <a href="https://www.sdn.sap.com/irj/sdn/thread?messageID=3104772&#3104772">https://www.sdn.sap.com/irj/sdn/thread?messageID=3104772&#3104772</a>
    <a href="https://www.sdn.sap.com/irj/sdn/thread?messageID=579794&#579794">https://www.sdn.sap.com/irj/sdn/thread?messageID=579794&#579794</a>
    Regards,
    Gianluca Barile

Maybe you are looking for

  • Multiple devices streaming the same music on Family Plan

    If I get the family plan for 2 devices, will we be able to listen to the same songs at the same time? I want to be able to stream music on multiple devices yet have the option to listen privately. Will the family plan offer this?

  • Does anyone know when IOS 5.01 will be released?

    Yesterday I dowloaded the new OS and now my ipad is dead - COMPLETELY! tried rebooting, tried starting in recovery, tried uninstalling i tunes 5 times and cleaned reg. I have reviewd all the articles posted and cannot find anything to fix it. All i g

  • Oracle Portal Db Link

    Can Anyone help me with Following Problems. A> I have a db link working from Oracle Database.However when i try to create a Form on the Db Link , or a synonym created on it I get the Following Error.ORA-02019: connection description for remote databa

  • IPhoto Library Selection at Start Up

    iPhoto asks "which iPhoto library do you want to use?" every time i open iphoto, but i only have one iphoto library? please help me, i want to get rid of this, so it doesent ask me every time i open iphoto.

  • HT1237 Can I update my system on MacBook Pro Intel from 10.5.8 to a more recent operating system?

    I would like to know what is the most recent version of the operating system that I can update to on my computer. Thanks.