6. Appendix B

This appendix deals with technical subjects regarding the OON stack.

6.1. OpenRPA

6.1.1. Activities

6.1.1.1. Click Element

6.1.1.1.1. Virtual Click

A virtual click is different from a physical click in that it simulates a mouse event by using User32.dll. There are several reasons to do this but the main ones are: it consumes less resources and provides a faster way of clicking an element. For more on the mouse_event function, please refer to this link (https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event).

6.1.2. Data Types

6.1.2.1. DataView

As per the DataView Class page (https://docs.microsoft.com/en-us/dotnet/api/system.data.dataview?view=netcore-3.1), a DataView represents a databindable, customized view of a DataTable for sorting, filtering, searching, editing and navigation. It also does not store data, but instead represents a connected view of its corresponding DataTable. Changes made to the DataView’s data will affect the DataTAble. Changes to the DataTable’s data will affect all DataViews associated with it.

6.1.2.1.1. Filtering through a DataTable using DataView

To filter through data inside a DataTable using a DataView, first assign a variable of type System.Data.DataView to the DefaultView attribute of the DataTable you want to filter through.

After that, assign to the RowFilter attribute of the DataView variable the filter you want to apply. In our case, we’re using the "ID > 2” to filter through all Int32 values larger than 2 inside our DataTable.

Then, just to make sure the DataView has actually filtered, we use a Foreach DataRow activity to output every row inside the DataView. An example is shown below, with view as the DataView variable and dt as the DataTable variable.

images/appendix_b_dataview_snippet.png

6.1.3. Nested GetElements

6.1.4. Image Handling