Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
In my script I use an iteration statement for several loads, then I load other tables; something like this:
LET v.Product = NoOfRows('$(v.ProductTable)');
FOR i=0 to $(v.Product)-1
Load *
Resident AA;
Next;
ProductDetail:
Load *
Resident [Product Detail];
I execute the Script without Errors, but then realized that the execution of the script was not complete.
Then I saw on the log and I found that the variable v.Product was equals to -1, so never load the table ProductDetail; this table is out of the for statement.
My log:
25-Apr-16 11:46:47: 5437 FOR i=0 to -1
25-Apr-16 11:46:48: Execution finished.
This is a bug?, when the for is from 0 to -1 the scipt stop without error message.
Thank!
Agustín
[Ediit] FOR i=0 to $(v.Product)-1
Weird, I can't even reproduce your situation.
BTW remove the semicolon from the NEXT line and see if that works better.
What version of QV Desktop are you using?
You can use the debug window to help find the problem with your script. From the script edit screen you can enable debug mode and step through your script or add breakpoints. As you step through the code you can see the last executed step, the next step and the state of any variables. This should help you see how QlikView is interpreting your script. It may help to add some trace commands to see the values of variables as the script executes.
Hi Peter,
I'm using 11.20 SR12 64 bits Edition
Best,
Agustin
What happens if you delete the FOR loop (including the Next;-line) and rewrite afresh?
Another hint: QV Desktop may start to behave in very weird (even absurd) ways if kept open for very long and performing a large number of failed reloads in succession. Does it help if you save your document, close QV Desktop and reopen it to reload again?
I am trying to reproduce the same scenery in a example but I can't.
But I found the problem but like you said QV start to beheva weird, the thing is that below the for i have a drop table to the table Product.
FOR i=0 to $(v.Product)-1
TRACE For statement;
LET v.Table = DATE(Today(),'YYYYMMDD');
NOCONCATENATE
[$(v.Table)]:
Load *
Resident AA;
Next;
DROP TABLE $(v.ProductTable);
If the v.productTable doesn't exist, the 'drop table' shows error message. But in my code only end the execution. In the example actually shows a error message.
4/25/2016 3:50:36 PM: 0034 LET v.Product = NoOfRows('Product')
4/25/2016 3:50:36 PM: 0036 FOR i=0 to -1
4/25/2016 3:50:36 PM: 0048 DROP TABLE Product
4/25/2016 3:50:36 PM: Execution finished.
If my code I put a trace statement before and after the drop table QV says doesn't exist the table and shows a error message.
Yes, this is weird..
Well!, thank all for your comments
Agustin.