How can I extract data from table in client’s win app

Hi.
In advance to explain it, DataScraping activity doesn’t work here.
I’m working on project to automate tasks now. My client has their own windows programs. One of them, I guess it’s developed by MFC or something.
So I need to extract data from table in that app. I inspected into selector of the table, and found column headers and rows in sub trees.
I want to use those information to find how many rows table has. Actually, I couldn’t bring sources out cuz of security. Even, screenshot as well.
Every Cell in the table has their own index. So If I knew rows’ count, I can extract data by looping certain count.

I know it’s very tricky to answer without showing data.
Plz give me some advices

Thx. Have a nice day :slight_smile:

Use FindChildren activity on the table. Filter it by the element which indicates rows. Count the number of objects returned in the list variable output by FindChildren.

Something along those lines should tell you how many rows there are.

Hello @Chris_Kim!

Did you try the native Data Scraping UiPath tool? It does the dirty work for you, finding children, patterns and more. It really gives an awesome result in most of the cases.

Regards!
Alan

1 Like

You can loop inside a try catch, when you get error is the end of the rows…

Thx to answer :slight_smile:
Actually, I’m trying to use find children activity now.
But it isn’t easy to use it.
I filtered some elements using that activity. But I couldn’t get rows’ count tho.
If you have some guidance of find children activity, could you let me know?

Thx to advice. But Data Scraping Activity doesn’t work to the App. It’s made by C/C++ language and I guess this kind of app can’t be extracted by Data Scraping Activity. So I can’t help finding another way to scrap it

Thx to answer :slight_smile:
I also reckon this way is simplest way to do. I will try it as a final resort.

This is how it works.

  1. Find Children returns all descendant elements of the table which align to the value in the activity’s filter property ( e.g. "<webctrl idx='1' parentid='overview' tag='P' />" ). This is output to a list variable. You should edit the filter to align to whatever identifies a row in your table combined with a wildcard (e.g. “<webctrl row=*”).

  2. Each item in this list, which is a UiPath.Core.Uielement object. In your case, these objects are instances of rows. To see if you are on the correct path, output the selectors for the elements collected using a For Each loop on the variable and write each item selector to a text file (item.selector.tostring). Maybe post the output here so we can help you understand it.

  3. If all is well, then each object represents a row and a simple count of the number of objects in the list variable will provide you the number of rows in the table.

Some examples of how Find Children is used:

It works. I have done with find children activity.
I figured structure of table out using Ui Explore. It takes a lot of try and time. But well done. Thx :slight_smile:

1 Like

Its worth the effort to understand how the activity works so well done. It is very flexible in terms of what it can be used for and once you understand how it works, you’ll find a place for it in many different automation projects.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.