Demo: UiPath robot on Oracle R12 Invoice Entry w/error handling

In this demo we are going to demonstrate how UiPath can be used to enter and validate an invoice in to Oracle R12 Accounts Payables. This video has been slowed down on purpose for you to be able to follow what happens. We are not demonstrating any OCR/Invoice data extraction or validation process in this particular demo as we are focusing on how to do this in Oracle Java Applet forms commonly used in R12.

Approach for Oracle Java Applet screens

When we enable a Oracle java applet form we carefully go through each field and capture all possible dynamic elements to our R12 form-field library used by UiPath R12 RPA robots to know what to do in case encountered. In this example you will see (on the second invoice which is successful) how we ignore a Warning messages but roll back on errors.

Invoice #1 (failure case)

For invoice number 1 we are demonstrating how a failed transaction does is detected and handled. The invoice is successfully created at header level but fails to match on the line level where we match to the PO. Where we encounter this error in the lower left-hand corner of the screen:


As this error will prevent us from completing the transaction (3-way match) we go ahead and execute a rollback of the transaction and delete the header transaction we had just created. We also capture the specific error message in to the execution log.

Rollback of transaction

We highly recommend to do a full roll back of any failed transaction and instead correct the problem. Once the issue is corrected then re-send the transaction back to the robot to re-execute. It would be quite cumbersome to have partial transactions left in the system which would be difficult to automate.

Invoice #2 (success despite Warning message)

This particular invoice is entered successfully and validated. During the entry it encounters a Warning Message (invoice date entered in a GL period which is actually ok as long as GL date is not in a closed period).


This particular Warning message is ignored (the robot clicks Ok) and UiPath proceeds with entering the rest of the transaction. At the end of the process UiPath will generate a log of the results


Automating exception handling is key to success

Real automation success depends on how well the robot handles exceptions. Building out the happy-flow is 10% of the job, whereas the real effort is in automating exceptions.

The way we do this for Oracle is to basically assume that we encountered an error or warning for every field and then only when proven wrong (basically no error found) the robot only moves to the next field. By having collected every standard field and the many possible warning/error messages which can be encountered the robot is able to know what to do for every error. Some forms in Oracle have 1000+ possible warning/error messages.

When an error or warning is encountered there are multiples mechanisms we use to handle the exception:

  • Proceed as it is only a warning
  • Handle the error (i.e. if cutting off end/front of the value if the string is too long)
  • Send the log (or only the exceptions) to a business user to investigate
  • Log a ticket in a ticketing system with the details
  • Automated analysis by robot

Automated root cause analysis

For common issues (such as this one) it is possible launch separate robot flows which investigates to find root cause instead of just having the error message logged. For this type of example we can check if this is a valid PO, status and supplier of this PO. Basically the same approach the business user would take to investigate the issue can also be performed by the robot.

Here is our standard flow for each field in UiPath when running in Oracle R12.


Symprio specialize in fast implementations of UiPath RPA on Oracle R12 and Cloud ERP. By having with ready-built UiPath flows already handling the standard Oracle application dynamic error and warning scenarios the implementations focus on the specific DFF, Personalizations & customizations you have.

Talk to us to learn more