Automate desktop field flow on each datatable for each row

Objective: I’m using UIpath for quality assurance but could be used shortly for replacing human work

I have built a data table like this:

Each row is a test case with different values. I would like to UIpath to:

1-Execute a desktop app (App1) then click on a radio button depending on the value.
So if Product is Report, there is a radio button called report on the desktop.
Note: I’ve done the desktop flow with a hardcoded value

2-Execute a second desktop app (app2) and do something similar, such as expiry date.
Note: I’ve done the desktop flow with a hardcoded value

It’s a huge list of permutations, what would be the ideal but not the hardest way of doing this (I’m a newbie in UIpath)? so basically execute row, then for each column of that role select a pool of options and configure, either by clicking on radio, type input or select a date

I was also able to create variables for each column and print-out on the console. but I’m unsure about what to do next. When I print out all values come together, what I need is to execute a loop for each row, depending on the values it can fill some fields in particular ways, so I’m basically executing on a cell level and connecting that to a value in the 2 applications

Hi @danielvianna

It should be completely doable, but will vary in difficulty level depending on the structure of the application you use.

If I were to approach it, this would be how:

  1. Use For Each Row activity to loop over each row.
    This activity will be the top of your sequence. It will host all the logic inside it.

    Then
  2. I would select elements based on their selectors, dynamically.
    What I mean is kind of explained in the post I made yesterday (the example was built in 2019.7.0 and it will not open on an earlier version):
    Look up functionality - #5 by loginerror
    The example shows how you can insert a value from wherever (in your case your Data Table) into your selector to click/set the thing you want.
    Step 2 is therefore the part where you figure out with UiExplorer if your elements allow for that (=that the name of each field is present anywhere in the selector and could thus be replaced by a dynamic value)
    Afterwards, two more comments
  3. You will want to check if the values were set correctly. For that, you could read the attribute of the field you have set after setting it and see if it was done correctly. This could be done with a simple Get Text, or in the case of the checkboxes, with the Get Attribute activity (I think the attribute for the checkbox would be “state”, but you have to see for your particular app).
  4. For actual well designed process, there should be error handling involved. If I were to write this application, I would make use of the ReFramework. It is more advanced, but would do the job perfectly.
    If you are curious, you should check this post for a working example of a process that takes rows from Excel as input and processes them one by one as transactions to give output. In your case, all you would need to do is to make a few changes to make it work for you:
  • replace input Excel file your with your Data Table
  • put the bulk of your code in Process.xaml
  • you would need to initialize your apps and kill them in the correct places
    Reframework help - #9 by loginerror

I hope these comments are helpful, let me know if you need more guidance :slight_smile:
I feel like my advise is based on too many tiny bits of knowledge I gained while submerged in UiPath and not everything might be clear right away :smiley: