How to select a specific record from Oracle EBS application based on the value extracted from Excel?

Hello All, I have values extracted from Excel which are SO Number, SO Line and Ordered Item. In this case, SO Number and Ordered Item might be duplicated records, and I can only use SO Line as the reference to search for the record contains in Oracle EBS because the values are unique. In this example, I would like the robot to search in Oracle EBS under Source Line Number column for the value “1.20”, where this value is extracted from my Excel listing, and select the record containing “1.20” in Oracle EBS so that I can get the Delivery number. How to program RPA for this behavior? Help is kindly appreciated. Thank you.
Oracle Invoice.xaml (390.3 KB)

@dvkc91

  1. Identify the source line number column and get the selector and make sure to not include any values or line number…
  2. Now in the selector add idx and incrmewnt idx in a loop and use get text inside it
  3. Now check if the value returned is the value you need
  4. If yes then extract the value from the column beside using the idx value
  5. If no continue the loop

Cheers

Hi @dvkc91

  1. Read Excel File using Read Range Activity And Store “SO Line” value
  2. Take Assign Activity
  3. To store value (Delivery) = Assign Variable Text as String. And use below expression. (To Store Value From Delivery Column)

DT.AsEnumerable().Where(Function(row) row.Field(Of String)(0) = “SearchText”).Select(Function(row) row.Field(Of String)(1)).FirstOrDefault()

Note:
(0)= (Column Index) OR you can use (“Source Line Number”)
“SearchText” is your input text to match in Source Line Number (SearchText=SO Line Value from excel)
(1)= Value to Get from Column 2. (Column Index) OR you can use (“Delivery”)

DT.AsEnumerable().Where(Function(row) row.Field(Of String)(“Source Line Number”) = “SearchText”).Select(Function(row) row.Field(Of String)(“Delivery”)).FirstOrDefault()

For reference you can check below image

Hope it will helps you :slight_smile:
Cheers!!

Can you provide a more detailed example with the steps mentioned using UiPath?

My output is want to select the record in Oracle EBS where string value is extracted from Excel. Desired output is the activities within Oracle not in Excel.

@dvkc91

The example selectors looks like this

<java column='SO Line' idx='{{indexVarible}}' />

In the loop you have an index variable…it starts from 0 so add 1 before the get text activity …

Now once get text gives the required value

Use get text to get the delivery …selector looks as below

<java column='Delivery' idx='{{indexvariable}}' />

These selectors are for illustration use uiexplorer to get the exact selectors

Hope this helps

Cheers


The selector is where I declare the get text activity. It seems that the index is not starting from 0, as this is the first line of the record which is Source Line Number “1.1”.

I still unable to get the robot to point to the record I want. Below is the screenshot of my workflow. Kindly assist.

@dvkc91

Already mentioned that the index does not start from 0

There are multiple idx i see…one with 21

And then you did a nav up means its going to parent…

Then from there idx 1 is giving the header…if you need values idx starts from 2…also check if idx 21 is changing if you change the rows to values instead of header

Cheers




@Anil_G I am able to get the selector index work. But there is another issue arise. Assuming my first index was with Source Line Number “46.1”. I wanted to get Source Line Number “36.2” which is on the next scroll. Originally the index for “36.2” is idx=16. But after the 10th index if scroll to the next line of record it restarts the idx back to 1. Is there any way to make it to continue detect the upcoming index upon scrolling after each 10 records?

@dvkc91

Index cannot be detected like that…instead what you can do is use the last value before scrolling to get the index of it after scroll …or if you know by scrolling how many lines are coming up accordingly after scroll minus the number from the idx

Cheers

We recommend the following:

  • check if with newest System.UiAutomation.Activities the Table can be handled by Table Extraction. If so, prefer an approach based on this.

If it is not supported (we have seen often) then inspect the details of the structures

Lets assum a table like:

Col1 Col2
A 1
B 2

When using the UiExplorer inpect the structures and details. It can come up like this

A
B
1
2

Or

A
1
B
2

Once you have find out then let the table scroll manually and inspect again

  • is it 1 row scrolling?
  • is it PageSegment wise scrolling

Still have an analysis, for the selector details. It can happen, that some field will have a name, label… or not

Once all these base inspections are done, then dependiong on the result in a next step a retrieval strategy can be checked.

Also, do the analysis by using all frameworks (F4 Switching)

yes, can happen when more rows are present as the segment size can show and also influenced by the above mentioned scroll mode

Do you have some example workflow for this behavior? As I am not really familiar for the manual table scroll with inspect.

Unfortunately, XAMLs can not be shared due to work agreement reasons.

But we can guide you, when you will support us on our analysis questions. We recommend being familiar with UiExplorer and having an understanding of all panels and functionalities.





This is my current workflow for the selector index with variable int_start_idx. I have also extracted out an index value and store to out_value1 variable for the Source Line Number that I want to search. If int_start_idx and out_value1 are tally, then it will able to get the Source Line Number and Delivery Number. Unfortunately, I’m still unable to produce the correct output. Kindly assist. Thanks.

it is necessary to use UiExplorer in advance for inspecting the element structure.

and also the other mentioned parts

We can guide you but we have no access to your specifics and do need your support






I have re-attached the UiExplorer for the element structure you have requested. As you see, Source Line Number “1.1” is starting from idx=1, and the last index was idx=10 which is “1.10”. But now the main issue is what if I want to get the Source Line Number for example “1.15”, the index is reset back to 1 upon scroll.

Perfect

here it is necessary to deeper inspect the

we mentioned:

e.g.

Col1 Col2
A 1
B 2
C 3
D 4
Scrollmode: 1 row, Segment Size: 2

At the begin we will see:
A,1
B,2
B will have idx=2

When we scroll then we move 1 row forward and will get:
B,2
C,3
B will have idx=1 after Scrolling

As mentioned: there are many variations (depending on what was done by the Application Developer) and therefore the deeper analysis is needed on

  • overall structures
  • paging influences
  • scroll influences, changed idx, element orders

etc.