Jim,

Could you check the below points to find out the root cause-

1. The select query that you fire to oracle db for outputting the data to
"output1" is really fetching the data in general and "Segment1"
specifically.

2. If the query results has Segment1 column then check the following-
Is "Segment1" column getting added to "output1" sheet at runtime after the
below code gets executed:

> > set outsheet=Datatable.Addsheet("output1")
> > For each fld in adoRecordset.Fields
> > outsheet.AddParameter fld.name,""
> > Next

Let me know how this goes. Thanks,
Mukesh

On Tue, Jan 25, 2011 at 1:24 AM, Jimmie Parson <[email protected]> wrote:

> Mukesh,
>
> Here is the line of code that is throwing the error.
>
> OracleFormWindow("Advanced Pricing").OracleTabbedRegion("List
> Lines").OracleTable("LIST_LINES").EnterField 1, "Product Value",
> DataTable.GetSheet("output1").GetParameter("Segment1").Value
>
>
> Here is the error:
>
> The Sheet.GetParameter operation failed. The <Segment1> column does
> not exist.
>
> Line (107): "OracleFormWindow("Advanced
> Pricing").OracleTabbedRegion("List
> Lines").OracleTable("LIST_LINES").EnterField 1, "Product Value",
> DataTable.GetSheet("output1").GetParameter("Segment1").Value".
>
>
> The code generates the sheets and I can see the correct data on the
> runtime datatables, 2 new sheets are added "output" and "output1" this
> has always worked.
>
> I run into problems on the second sheet "output1" only. With the code
> changes you suggested before returning data from the "output"
> worksheet is fine.
>
>
> I added the variable to watch in debug mode and I get the same error
> as posted above for "Segement1".
>
> Thanks for the continued assistance.
>
>
> Jim
>
>
>
>
>
>
> On Jan 23, 11:32 pm, Mukesh Takhtani <[email protected]> wrote:
> > I would advice you to debug the script and find out at what line it
> throws
> > the error. Add watch for your variables to see if they are having values
> as
> > expected at runtime.
> > Learning more on datatable and ADODB would definitely help but learning
> how
> > to debug the code is more important of all.
> >
> > QTP help is the best source of knowledge (and google of course).
> >
> > Coming back to your code, can you send the exact error message? Creating
> > multiple runtime sheets should work fine as I did in below code (somewhat
> > similar to what you have. I replaced recordset loop with a simple FOR
> loop
> > for demo purpose):
> >
> > For cnt=1 to 3 '<-- 3 sheets will be created at runtime
> >
> > ''create runtime sheet and its parameters
> >         Set var_AddSheet = DataTable.AddSheet("Testing" & cnt)
> >         For i =1 to 10 '<-- instead of recordset fields
> >             var_AddSheet.AddParameter "Col_" & cnt & "" & i,""
> >         Next
> >
> > ''populate the runtime sheet
> >         For i=1 to 10 '<-- loop through recordset rows
> >
> >             DataTable.GetSheet(var_AddSheet.name).SetCurrentRow(i)
> >
> >             For j=1 to 10 '<--- loop through recordset fields
> >                 DataTable("Col_" & cnt & "" & j,
> var_AddSheet.name)="value_"
> > & j
> >             Next
> >
> >         Next
> >
> > Next
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > On Mon, Jan 24, 2011 at 2:12 AM, Jimmie Parson <[email protected]>
> wrote:
> > > Mukesh,
> >
> > > I did as you suggested and that works wonderfully as long as I have
> > > only one new sheet created. On some tests I am required to connect to
> > > the DB and run multiple scripts which create additional "output"
> > > sheets i.e. "output1", "output2". When I try to return the data from
> > > the additional sheets I get the error stating the parameter does not
> > > exist. I guess my lack of programming knowledge is coming back to bite
> > > me again. So the additional questions I have are:
> >
> > > 1. I am assuming it is possible to return the data from those
> > > additional sheets and that I just do not know how. Is the problem just
> > > a minor difference from my original post or is my approach faulty?
> >
> > > 2. I am just duplicating the code I originally posted to create the
> > > additional sheets. If this is incorrect can anyone give me a pointer
> > > to a resource to learn more about using the database connection and
> > > runtime datatables.
> >
> > > I am posting the code as below as to how I am using it any further
> > > suggestions are greatly appreciated.
> >
> > > Once again Mukesh thank you for the intial code change it has
> > > simplified things a great deal.
> >
> > > 'Connect to Oracle DB and return Customer Information via SQL
> > > Statement, then write the data to
> > > 'the QTP runtime data table.
> >
> > > Dim adocon,adorecordset
> > > Set adocon=CreateObject("ADODB.Connection")
> > > constr="Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security
> > > Info=True;User ID=XXXX;Data Source=Dev"
> > > adocon.Open constr
> > > Set adorecordset=CreateObject("ADODB.Recordset")
> > > Set adorecordset.ActiveConnection=adocon
> > > Strsql="Select 'TEST PRICE LIST:' || to_char(sysdate,' MM-DD-YY
> > > HH:MM:SS') as PRICE_LST_NAME from Dual"
> > > adorecordset.Source=Strsql
> > > adorecordset.Open
> > > set outsheet=Datatable.Addsheet("output")
> > > For each fld in adoRecordset.Fields
> > >        outsheet.AddParameter fld.name,""
> > > Next
> > > i=1
> > > Do while Not adorecordset.EOF
> > > DataTable.GetSheet(outsheet.name).SetCurrentRow(i)
> > > For each fld in adorecordset.Fields
> > > outsheet.GetParameter(fld.name).value=fld.value
> > > Next
> > > adorecordset.MoveNext
> > > i=i+1
> > > Loop
> >
> > > 'close the recordset object
> > > adorecordset.close
> > > 'Destroy the recordset object
> > > Set adorecordset = nothing
> >
> > > 'close the database connection
> > > adoCon.close
> > > 'Destroy the connection object
> > > Set adoCon = nothing
> >
> > > 'Connect to Oracle DB and return Item Information via SQL Statement,
> > > then write the data to
> > > 'the QTP runtime datatable.
> >
> > > Set adocon=CreateObject("ADODB.Connection")
> > > constr="Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security
> > > Info=True;User ID=XXXX;Data Source=Dev"
> > > adocon.Open constr
> > > Set adorecordset=CreateObject("ADODB.Recordset")
> > > Set adorecordset.ActiveConnection=adocon
> > > Strsql="SELECT Segment1, Quantity  FROM Item_Master"
> > > adorecordset.Source=Strsql
> > > adorecordset.Open
> > > set outsheet=Datatable.Addsheet("output1")
> > > For each fld in adoRecordset.Fields
> > > outsheet.AddParameter fld.name,""
> > > Next
> > > i=1
> > > Do while Not adorecordset.EOF
> > > DataTable.GetSheet(outsheet.name).SetCurrentRow(i)
> > > For each fld in adorecordset.Fields
> > > outsheet.GetParameter(fld.name).value=fld.value
> > > Next
> > > adorecordset.MoveNext
> > > i=i+1
> > > Loop
> >
> > > 'close the recordset object
> > > adorecordset.close
> > > 'Destroy the recordset object
> > > Set adorecordset = nothing
> >
> > > 'close the database connection
> > > adoCon.close
> > > 'Destroy the connection object
> > > Set adoCon = nothing
> >
> > > Mukesh Takhtani wrote:
> > > > Jimmie,
> >
> > > > Replace your below lines of code:
> > > > Do while Not adorecordset.EOF
> > > > DataTable.SetCurrentRow(i)
> >
> > > > , with this one :
> > > > Do while Not adorecordset.EOF
> > > > DataTable.GetSheet(outsheet.name).SetCurrentRow(i)
> >
> > > > Thanks,
> > > > Mukesh
> >
> > > > On Sat, Jan 22, 2011 at 1:59 AM, Jimmie Parson <[email protected]>
> > > wrote:
> >
> > > > > To all,
> >
> > > > > I need to know if it is possible to use data from the runtime data
> > > > > sheet in its current test?
> >
> > > > > The example is as follows:
> >
> > > > > 1. A new sheet is created in runtime datasheet with a script and
> > > > > called "output".
> >
> > > > > 2. The script takes the columns names and inserts them as the
> "output"
> > > > > parameters.
> >
> > > > > 3. I want to use the values in the "output" sheet in the test. I
> have
> > > > > tried all the ways I can find that reference the global and local
> > > > > datasheets but have not found anyway to use the data from the
> created
> > > > > sheet "output"
> >
> > > > > I will include the code I am using to retrieve the data for the
> > > > > runtime datatable.
> >
> > > > > Dim adocon,adorecordset
> > > > > Set adocon=CreateObject("ADODB.Connection")
> > > > > constr="Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security
> > > > > Info=True;User ID=XXXX;Data Source=Dev"
> > > > > adocon.Open constr
> > > > > Set adorecordset=CreateObject("ADODB.Recordset")
> > > > > Set adorecordset.ActiveConnection=adocon
> > > > > Strsql="Select 'TEST PRICE LIST:' || to_char(sysdate,' MM-DD-YY
> > > > > HH:MM:SS') as PRICE_LST_NAME from Dual"
> > > > > adorecordset.Source=Strsql
> > > > > adorecordset.Open
> > > > > set outsheet=Datatable.Addsheet("output")
> > > > > For each fld in adoRecordset.Fields
> > > > >        outsheet.AddParameter fld.name,""
> > > > > Next
> > > > > i=1
> > > > > Do while Not adorecordset.EOF
> > > > > DataTable.SetCurrentRow(i)
> > > > > For each fld in adorecordset.Fields
> > > > > outsheet.GetParameter(fld.name).value=fld.value
> > > > > Next
> > > > > adorecordset.MoveNext
> > > > > i=i+1
> > > > > Loop
> >
> > > > > --
> > > > > You received this message because you are subscribed to the Google
> > > > > "QTP - HP Quick Test Professional - Automated Software Testing"
> > > > > group.
> > > > > To post to this group, send email to [email protected]
> > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<mercuryqtp%[email protected]>
> <mercuryqtp%[email protected]<mercuryqtp%[email protected]>
> >
> > > <mercuryqtp%[email protected]<mercuryqtp%[email protected]>
> <mercuryqtp%[email protected]<mercuryqtp%[email protected]>
> >
> >
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/MercuryQTP?hl=en
> >
> > > > --
> > > > Mukesh Takhtani
> >
> > > --
> > > You received this message because you are subscribed to the Google
> > > "QTP - HP Quick Test Professional - Automated Software Testing"
> > > group.
> > > To post to this group, send email to [email protected]
> > > To unsubscribe from this group, send email to
> > > [email protected]<mercuryqtp%[email protected]>
> <mercuryqtp%[email protected]<mercuryqtp%[email protected]>
> >
> > > For more options, visit this group at
> > >http://groups.google.com/group/MercuryQTP?hl=en
> >
> > --
> > Mukesh Takhtani
>
> --
> You received this message because you are subscribed to the Google
> "QTP - HP Quick Test Professional - Automated Software Testing"
> group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<mercuryqtp%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/MercuryQTP?hl=en
>



-- 
Mukesh Takhtani

-- 
You received this message because you are subscribed to the Google
"QTP - HP Quick Test Professional - Automated Software Testing"
group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/MercuryQTP?hl=en

Reply via email to