I have a long-lived process that uses the invokeDDX service.
The invokeDDX has a primary route that connects it to a setValue/execute service under normal circumstances.
I want to now draw another route from the "Exception Catch" of the invokeDDX service icon's bottom-right corner. This new route will be connected to another service operation.
I have not done this before and I don't see much in the way of documented examples of handling an exception. It looks like invokeDDX throws a com.adobe.livecycle.assembler.client.OperationException.
What service should I route this exception to? I am considering another setValue/execute. I would like to examine details of the exception , for example: if one of the multiple PDF data inputs in the source list is a bad PDF, then I would like to get the index of the (source) array list that indicates which PDF in the list is bad. Ideally I would like to return a "document" that is the output for this process and this "document" would contain some information about the exception that was caught.
Right now, without this exception handling, my process stalls at the invokeDDX operation step. So I am trying to build some exception handling and would appreciate any help.
Thanks in advance.
I have already looked at these documents, but they don't go far enough into the details of handing an Assembler invokeDDX Operation Exception.
"What service should I route this exception to?"
Well it's really up to you. You can use a send email of variable logger to log some of the information.
The information you get from the exception is very limited. You basically get com.adobe.livecycle.assembler.client.OperationException. You can't get more specific exception. You would have to look in the server.log file.
You could always use a Exception Event Start point, which would give you more information, but this needs to be added in a separate process. So that would not take care of you stall process.
Thanks for taking my question.
Which processData variable in the tree contains the Exception message?
Whether I want to "send an email" or "log a message to SystemOut.log", I need a source variable that has some exception message that I can dump into either of those outlets. What is the variable in the processData tree that has this exception message/object?
There is no variable that will contain the exception message.
When you create your exception route, you have to select which exception you want to catch (ex. FileNotFound). Since you know which exception is being caught, you could have a Set Value operation that sets the value of a process variable with the name of that exception.
Then send an email with the value of that variable in the body of the message.
Jasmin, is it possible to get the stack trace that is getting populated in the server log / system log when an exception occurs and can it be attached as an email to the concerned team to process it and identify the cause of an exception.
For instance, I am invoking a webservice that does ticket booking and ticket issue during the flow of a process, we know that the can be three different excpetions that can happen during a web service invocation operation namely
will there be a log entry during any of these exceptions occuring during the service being called, if its logged in some where is it possible to get hold of the log and attach in an email to the concerned team that can handle these issue.
Unfortunately you can't. You have to hardcode the name of the error in the email message.
You could also attach the server.log to the email. It's not ideal, but it gives more info.