on 02-17-2014 5:56 PM
Hi Agentry-Folks!
In Agentry.ini file's [Configuration] section, we have the option to enable Transaction Failure Handling. With these options, we enabled the users of our Work Manager 5.3 application to "skip" problematic transactions and save them as a trace file on the Agentry server. We achieved this by adjusting the Agentry.ini as follows:
enableTransactionFailureHandling=true
enableFailedTransactionLogging=true
failedTransactionsQueue=FailedTransactionsQueue
failedTransactionFilenameFormat=%{userid} %{transaction_name} %{date} %{time}-%{count}.xml
We have just tried the same changes in a Rounds Manager 2.3 based application running on Windows CE platform. However, that did not enable the user to "skip" the transaction on the client. The transmit log states Error 13 - JavaBackEnd.
Do you know if Rounds Manager 2.3 is prepared for Transaction Failure Handling? Do we need to implement additional (Java-) Logic for that - e.g. Subclassing and throwing a specific Exception class?
We need this "skip" functionality since users are recording measurement points, that may be deactivated in the backend while the device was offline. During the next sync, complex tables are only checked (...and so inactive points removed...) after the existing transactions are posted to the server. However, posting them causes the Error 13.
Looking forward to read your thoughts and suggestions,
Florian
Florian,
I have never personally implemented transaction failure handling and our products are not set up to support it out of the box, so I can't comment on setting that up correctly.
With Rounds on any of the Point list screens, you should be able to "Delete" any points that are giving you an error 13 prior to transmit. This should remove the transaction from the client that is failing, allowing the transmit to succeed.
Jason Latko - Senior Product Developer at SAP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jason,
thank you for the reply. We are working with a non-standard Rounds Manager where users can't delete the points themselves. In the meanwhile, I found a solution - see details below.
In Stephandler (where BAPI throwing the exception is called) and Steplet, make sure the try/catch block has a special catch statement for AgentryException, rethrowing an exception of type FatalTransactionException. Together with the changes in Agentry.ini section, the user gets a popup message with the text that is passed to the constructor of the new exception instance - see "Error" and ex.getMessage() below.
----- Java Sources -----
catch (AgentryException ex) {
// FatalTransactionException
Logger log = new Logger(_user, "readMeasuringPoint");
log.info("Transaction Error occured - no Measurement Document will be created for Point " + String.valueOf(sapObject.getID()));
throw new FatalTransactionException("Error", ex.getMessage(), "OK");
}
----- Agentry.ini -----
[Configuration]
enableTransactionFailureHandling=true
enableFailedTransactionLogging=true
failedTransactionsQueue=FailedTransactionsQueue
failedTransactionFilenameFormat=%{userid} %{transaction_name} %{date} %{time}-%{count}.xml
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.