cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Rounds 2.3 - Transaction Failure Handling - Error 13 in Agentry

florian_weigold
Advisor
Advisor
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

jason_latko
Advisor
Advisor
0 Kudos

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

florian_weigold
Advisor
Advisor
0 Kudos

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

jason_latko
Advisor
Advisor
0 Kudos

Florian,

Thanks for the solution, good to know.

Jason Latko - Senior Product Developer at SAP

Answers (0)