You can attach dynamic an excel file, or you can use a step to populate a local data source.
In my case, I have one step called "Lookup" than load some registers from a web grid and populate the local data source of "Detail" step.
For Iterator = 1 To TestArgs("LookupIterations") Step 1
If Browser("AWAT").Page("W").Frame("ipsToolbar").WebElement(getGridXpath(Iterator,3)).Exist(1) Then
DataTable.GetSheet("Detail").SetCurrentRow Iterator
Datatable("RowId","Detail") = Iterator
Datatable("FromType","Detail") = Browser("Water (AWAT) | IPS").Page("Water (AWAT) | IPS").Frame("ipsToolbar").WebElement(getGridXpath(Iterator,3)).GetROProperty("outertext")
Datatable("FromID","Detail") = Browser("Water (AWAT) | IPS").Page("Water (AWAT) | IPS").Frame("ipsToolbar").WebElement(getGridXpath(Iterator,4)).GetROProperty("outertext")
Datatable("ToType","Detail") = Browser("Water (AWAT) | IPS").Page("Water (AWAT) | IPS").Frame("ipsToolbar").WebElement(getGridXpath(Iterator,5)).GetROProperty("outertext")
Datatable("ToID","Detail") = Browser("Water (AWAT) | IPS").Page("Water (AWAT) | IPS").Frame("ipsToolbar").WebElement(getGridXpath(Iterator,6)).GetROProperty("outertext")
Else
Iterator = TestArgs("LookupIterations") + 1
End If
Next