Outlook Mail Messages – NullReferenceException

The full stack trace is below:

Message: Object reference not set to an instance of an object. This error usually occurs when using a variable with no set value (not initialized).

Exception Type: NullReferenceException

System.NullReferenceException: Object reference not set to an instance of an object

This is a standard object null reference error, meaning some object that is being used has not be instantiated, or is set declaratively as null. Within the context of Outlook and UiPath, this is most likely because your mail lists are empty, this happens within the Get outlook mail messages activity. If this looks good and you are still having issues, you should emit mails.count to standard output and see if there is a problem there while trying to contact the mail list.

Clear Box Content With TypeInto

This method pertains to when in UiPath you need to remove all the content from a box before using the next number variable.

  1. Verify that the typeinto activity will not work. This has an empty field property.
  2. If 1. does not work, Locate the Relative Click container.
  3. Add an Anchor base activity (A container that searches for a UI element by using other UI elements as anchors.)
  4. Input the position of the AnchorPosition in the Anchor Base activity

Select Item From Dropdown In Excel Without Write Cell

It is possible to select a value from a drop down within an Excel file within UiPath by using Write Cell to define a local variable, however if the result is going to be used by a secondary robot this approach will fail. In order to get around this issue, perform the following steps:

  1. Open with Excel sheet via Excel Application Scope.
  2. Point to whatever cell has the available options via Select Range.
  3. Go to Data Validations (“[k(alt)]avv” Shortcut)
  4. Get Text from the source field to get all options.
  5. Write the option using Write Cell.

Excel Activities Bot – Copy Between Files

In order to copy between two Excel files within UiPath it is relatively simple. Firstly, you must define the Excel Application Scope, which opens an Excel workbook and provides a scope for Excel Activities. Following, read the values as batch data in a temporary Datatable. Once that is done it providers a source you can iterate against, so then you can search or do whatever else you want to do and then you can Write Range the CellValue however you want.

Note: If you need to iterate against the column headers it is a little different because if you use Datatable.Columns and would like to create a new variable with each Column Header that is read, you will need use a dictionary variable and store your dynamic variables. This is defined within the Run time variable screen.

Choosing The Best OCR Automation Tool

The best OCR software is the one that is not just an OCR engine but also has a powerful analytics and machine learning engine to complement it. In my experience, what works best is the combination of machine learning technologies and multiple OCR engines. Different OCR engines have different strengths, some work really great on scanned documents others are good at images captured from mobile. Once you deploy data science and machine learning technologies on top of the extracted data, you land up with something that is way more potent than vanilla OCR.

Google Vision and Microsoft Cognitive Services both provide a pretty good platform for OCR. However, most OCR use cases, which are used for business process optimization and to automate business workflows are fairly nuanced and are not solved by the default available services. It is not always the case of just extracting text from the entire image or document, but requires a combination of object detection and localization in concert with character recognition to provide a meaningful analysis of the document or image being processed. There are other platforms I have worked with that also give really good results, namely:

  • Abbyy
  • Tesseract OCR SDK

Examine your requirements carefully when you are choosing your specific RPA platform.

Convert Excel To CSV In Blue Prism

  1. Make a copy of the existing ‘Save Workbook As’ action tab of the MS Excel VBO.
  2. Rename it as ‘Save Workbook As CSV’
  3. Go to the Code stage and modify the below marked in bold
    wb.SaveAs(filename,6)
  4. 6 is the numeric constant for xlCSV FileFormat.
  5.  Publish your new action
  6. From the process when you pass the ‘Filename’ Input parameter pass it with the .csv extension “c:\MyFileName.csv”
  7. After you run the process you will see the Input/Output as below

What Is Surface Automation?

Surface automation consists of image recognition algorithms, OCR, font-based text-recognition and others. It means that the robot will react to what it can/cannot find/read on/from the screen, much like a human eye would. It is a very delicate thing to use because it does not have concrete parameters that the script can use. If not configured correctly, the text recognition can misread things like a status and react accordingly (throw an exception for instance) when in reality it could have completed successfully.

Workfusion Express: java.net.MalformedURLException: no protocol:

If you are using Workfusion Express and have no problems recording or editing the different actions, but as soon as you try to play the recording it fails with java.net.MalformedURLException: no protocol there is a fix. This fix will work if you are receiving the following stacktrace:

java.net.MalformedURLException: no protocol:
com.workfusion.studio.rpa.recorder.player.driver.DriverInitializationException: java.net.MalformedURLException: no protocol:
at com.workfusion.studio.rpa.recorder.player.driver.RpaUniversalDriver.getSeleniumServerUrl(RpaUniversalDriver.java:136)
at com.workfusion.studio.rpa.recorder.player.driver.RpaUniversalDriver.initialize(RpaUniversalDriver.java:64)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.run(PlaybackLogic.java:75)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(URL.java:593)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at com.workfusion.studio.rpa.recorder.player.driver.RpaUniversalDriver.getSeleniumServerUrl(RpaUniversalDriver.java:134)
at com.workfusion.studio.rpa.recorder.player.driver.RpaUniversalDriver.initialize(RpaUniversalDriver.java:64)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.run(PlaybackLogic.java:75)
at java.lang.Thread.run(Thread.java:745)

Go to Server profile, Manage profiles at the bottom right corner of RPA Express and check the Bot Relay URL. It should be http://localhost:15444/wd/hub 11Correct it if it is empty or incomplete.

Microsoft Flow Is Not RPA Software

I get asked this question a lot. Is Microsoft Flow a tool to build RPA applications?

RPA consists of software robots or artificial intelligence workers, where as Flow is an online workflow service that enables you to work smarter and more efficiently by automating workflows across the most common apps and services. RPA is not necessarily a workflow, rather a way to capture the rhythm of a process, distill it, and then find the means to automate it. A workflow could technically be a part of this overall RPA process, however RPA is more broad spectrum and can be responsible for things before the workflow, while it was occurring, and reactions to the output response. So, RPA is the vehicle for workflow essentially, allowing the precursor actions that trigger the workflow to be established, monitoring while the workflow is running, and performing any other trailing tasks that are required in order for the RPA process to be considered as complete.

Flow is also really only capable of primitive responses to events whereas the goal of a well built bot is to grow sporadically if possible to compensate with the multitude of outcomes that are possible. In this way the bot will become smarter, and will gradual not only define the process it is targeting, but gradually improve it. Workflows are not usually maintained in this manner because the process that they are defining is linear, and as long as the back end business process it is associated with a consistent it should not require interaction.