Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello,
I am solving the problem of reloading 2 tasks - the first task is reloading qvd and storing the number of rows into variable, the second task should have dependency on first and will reload after the first task was successfull.
The problem is that i am not able to make an intentional error in script that will cause task FAILED.
I tried something like this, the first if - task will end SUCCESSFUL
the else - task will end with ERROR:
if vNoofrowsReload > vRowsLast then
execute cmd.exe /c echo OK > OK.txt;
else
LOAD BLABLA from BLABLA;
endif;
Table BLABLA does not exist - the script will fail, but it is not wokring on the QV server. Can anbybody help me with the solution?
Thank you.
load 'THIS IS AN ERROR: .....' from notexists.qvd (qvd);
you can make use of the QMC task dependence rite?
load 'THIS IS AN ERROR: .....' from notexists.qvd (qvd);
Yes i use dependence, but I want the reload FAIL (1st task) when there are no new rows and SUCCESS when there are new.
Your suggestions is not helpful, it works in desktop but both if-s FAILED on the server.
Can you elaborate what you mean with 'not working' and 'FAILED' on the server side?
What do you see in the log files and QMC?
Desktop:
I reload the QVW with this if clause, when everything is ok the reload finish successfully. When rows from last reload = rows from actual load, the error in script occurs (that is as I want).
QV Server:
I reload QVW saved on server in QV desktop client the reload works as I wanted.
If i reload QVW with QMC, the reload task always end with fail, even it the first if clause or second clause. It look like that the server always take only the second clause when I reload it using QMC.
Thanks.
And how have you defined vNoofrowsReload and vRowsLast variables?
Could you post the document log (from QMC run) / script?
Short log:
13.1.2016 15:25:56: Execution started.
13.1.2016 15:25:56: QlikView Version:11.20.12758.0
13.1.2016 15:25:56: CPU Target x64
13.1.2016 15:25:56: Operating System Windows Server (R) 2008 Standard Service Pack 2 (64 bit edition)
13.1.2016 15:25:56: Wow64 mode Not using Wow64
13.1.2016 15:25:56: MDAC Version 6.0.6002.18005
13.1.2016 15:25:56: MDAC Full Install Version 6.0.6002.18005
13.1.2016 15:25:56: PreferredCompression 2
13.1.2016 15:25:56: EnableParallelReload 1
13.1.2016 15:25:56: ParallelizeQvdLoads 1
13.1.2016 15:25:56: AutoSaveAfterReload 0
13.1.2016 15:25:56: BackupBeforeReload 0
13.1.2016 15:25:56: EnableFlushLog 0
13.1.2016 15:25:56: SaveInfoWhenSavingFile 0
13.1.2016 15:25:56: UserLogfileCharset 1200
13.1.2016 15:25:56: OdbcLoginTimeout -1
13.1.2016 15:25:56: OdbcConnectionTimeout -1
13.1.2016 15:25:56: ScriptWantsDbWrite false
13.1.2016 15:25:56: ScriptWantsExe false
13.1.2016 15:25:56: LogFile CodePage Used: 1200
...
13.1.2016 15:26:01: 1243 LET vNoofrowsReload=NoOfRows('SalesQTY')
13.1.2016 15:26:01: 1245 NoOfRowsLast:
13.1.2016 15:26:01: 1246 LOAD @1 as noofrowsLast
13.1.2016 15:26:01: 1247 FROM
13.1.2016 15:26:01: 1248 \\noofrowslast.txt
13.1.2016 15:26:01: 1249 (txt, codepage is 1250, explicit labels, delimiter is ',', msq)
13.1.2016 15:26:01: 1 fields found: noofrowsLast, 1 lines fetched
13.1.2016 15:26:01: 1251 execute cmd.exe /c echo 2885 > noofrowslast.txt
13.1.2016 15:26:01: 1253 LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast')
13.1.2016 15:26:01: 1255 if vNoofrowsReload > vRowsLast then
13.1.2016 15:26:01: 1256 execute cmd.exe /c echo OK > OK.txt
13.1.2016 15:26:01: 1257 else
13.1.2016 15:26:01: $Syn 1 = Country+Material Number
13.1.2016 15:26:01: $Syn 2 = Country+Material Number+KEY_Order
13.1.2016 15:26:01: $Syn 3 = Month+Country
13.1.2016 15:26:01: $Syn 4 = Month+Country+CustCode
13.1.2016 15:26:01: $Syn 5 = Month+Country+CustCode+Period
13.1.2016 15:26:01: $Syn 6 = Month+Country+CustCode+Material Number
13.1.2016 15:26:01: $Syn 7 = Month+Country+CustCode+Material Number+Year
13.1.2016 15:26:01: $Syn 8 = $Syn 3+$Syn 4
13.1.2016 15:26:01: $Syn 9 = $Syn 3+$Syn 4+$Syn 5
13.1.2016 15:26:01: $Syn 10 = $Syn 1+$Syn 3+$Syn 4+$Syn 6
13.1.2016 15:26:01: $Syn 11 = $Syn 1+$Syn 3+$Syn 4+$Syn 6+$Syn 7
13.1.2016 15:26:01: $Syn 12 = $Syn 1+$Syn 3+$Syn 4+$Syn 5+$Syn 6
13.1.2016 15:26:02: $Syn 13 = $Syn 1+$Syn 2
13.1.2016 15:26:02: $Syn 14 = $Syn 1+$Syn 2+$Syn 3+$Syn 4+$Syn 6
13.1.2016 15:26:02: $Syn 15 = $Syn 8+$Syn 10
13.1.2016 15:26:02: $Syn 16 = $Syn 8+$Syn 10+$Syn 13+$Syn 14
13.1.2016 15:26:02: $Syn 17 = $Syn 8+$Syn 10+$Syn 11
13.1.2016 15:26:02: $Syn 18 = $Syn 8+$Syn 9
13.1.2016 15:26:02: $Syn 19 = $Syn 8+$Syn 9+$Syn 10+$Syn 12
13.1.2016 15:26:02: $Syn 20 = $Syn 15+$Syn 18+$Syn 19
13.1.2016 15:26:02: $Syn 21 = $Syn 15+$Syn 17
13.1.2016 15:26:02: $Syn 22 = $Syn 15+$Syn 16
13.1.2016 15:26:03: General Script Error
13.1.2016 15:26:03: Execution Failed
13.1.2016 15:26:03: Execution finished.
My variables:
LET vNoofrowsReload=NoOfRows('SalesQTY');
NoOfRowsLast:
LOAD @1 as noofrowsLast
FROM
$(vPathTXT)noofrowslast.txt
(txt, codepage is 1250, explicit labels, delimiter is ',', msq);
execute cmd.exe /c echo $(vNoofrowsReload) > noofrowslast.txt;
LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast');
Could you add TRACE statements before your if statement to check the actual values of the two variables?
When the else clause:
2016-01-13 20:42:12 1243 TRACE LET vNoofrowsReload=NoOfRows('SalesQTY')
2016-01-13 20:42:12 1243 LET vNoofrowsReload=NoOfRows('SalesQTY')
2016-01-13 20:42:12 1244
2016-01-13 20:42:12 1245 NoOfRowsLast:
2016-01-13 20:42:12 1246 LOAD @1 as noofrowsLast
2016-01-13 20:42:13 1247 FROM
2016-01-13 20:42:13 1248 \\noofrowslast.txt
2016-01-13 20:42:13 1249 (txt, codepage is 1250, explicit labels, delimiter is ',', msq)
2016-01-13 20:42:13 1 fields found: noofrowsLast,
2016-01-13 20:42:13 1 lines fetched
2016-01-13 20:42:13 1251 execute cmd.exe /c echo 20 > noofrowslast.txt
2016-01-13 20:42:13 1253 TRACE LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast')
2016-01-13 20:42:14 1253 LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast')
2016-01-13 20:42:14 1254
2016-01-13 20:42:14 1255 if vNoofrowsReload > vRowsLast then
2016-01-13 20:42:14 1256
2016-01-13 20:42:14 1258 LOAD 'This is an error' from notexists.qvd(qvd)
2016-01-13 20:42:14 Error: Cannot open file '\\notexists.qvd' The system cannot find the file specified.
2016-01-13 20:42:14
2016-01-13 20:42:56 1259 endif
2016-01-13 20:42:56 $Syn 1 = CountryCode+Material Number
2016-01-13 20:42:56 $Syn 2 = CountryCode+Material Number+KEY_Order
2016-01-13 20:42:56 $Syn 3 = Month+CountryCode
2016-01-13 20:42:57 $Syn 4 = Month+CountryCode+CustCode
2016-01-13 20:42:57 $Syn 5 = Month+CountryCode+CustCode+Period
2016-01-13 20:42:57 $Syn 6 = Month+CountryCode+CustCode+Material Number
2016-01-13 20:42:57 $Syn 7 = Month+CountryCode+CustCode+Material Number+Year
2016-01-13 20:42:57 $Syn 8 = $Syn 3+$Syn 4
2016-01-13 20:42:58 $Syn 9 = $Syn 3+$Syn 4+$Syn 5
2016-01-13 20:42:58 $Syn 10 = $Syn 1+$Syn 3+$Syn 4+$Syn 6
2016-01-13 20:42:58 $Syn 11 = $Syn 1+$Syn 3+$Syn 4+$Syn 6+$Syn 7
2016-01-13 20:42:58 $Syn 12 = $Syn 1+$Syn 3+$Syn 4+$Syn 5+$Syn 6
2016-01-13 20:42:58 $Syn 13 = $Syn 1+$Syn 2
2016-01-13 20:42:58 $Syn 14 = $Syn 1+$Syn 2+$Syn 3+$Syn 4+$Syn 6
2016-01-13 20:42:59 $Syn 15 = $Syn 8+$Syn 10
2016-01-13 20:42:59 $Syn 16 = $Syn 8+$Syn 10+$Syn 13+$Syn 14
2016-01-13 20:42:59 $Syn 17 = $Syn 8+$Syn 10+$Syn 11
2016-01-13 20:42:59 $Syn 18 = $Syn 8+$Syn 9
2016-01-13 20:43:00 $Syn 19 = $Syn 8+$Syn 9+$Syn 10+$Syn 12
2016-01-13 20:43:00 $Syn 20 = $Syn 15+$Syn 18+$Syn 19
2016-01-13 20:43:00 $Syn 21 = $Syn 15+$Syn 17
2016-01-13 20:43:01 $Syn 22 = $Syn 15+$Syn 16
2016-01-13 20:43:13 Execution finished.
When the first if clause:
2016-01-13 20:51:46 1243 TRACE LET vNoofrowsReload=NoOfRows('SalesQTY')
2016-01-13 20:51:46 1243 LET vNoofrowsReload=NoOfRows('SalesQTY')
2016-01-13 20:51:46 1244
2016-01-13 20:51:46 1245 NoOfRowsLast:
2016-01-13 20:51:46 1246 LOAD @1 as noofrowsLast
2016-01-13 20:51:47 1247 FROM
2016-01-13 20:51:47 1248 \\noofrowslast.txt
2016-01-13 20:51:47 1249 (txt, codepage is 1250, explicit labels, delimiter is ',', msq)
2016-01-13 20:51:47 1 fields found: noofrowsLast,
2016-01-13 20:51:47 1 lines fetched
2016-01-13 20:51:47 1251 execute cmd.exe /c echo 20 > noofrowslast.txt
2016-01-13 20:51:48 1253 TRACE LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast')
2016-01-13 20:51:48 1253 LET vRowsLast = Peek('noofrowsLast', 0, 'NoOfRowsLast')
2016-01-13 20:51:48 1254
2016-01-13 20:51:48 1255 if vNoofrowsReload > vRowsLast then
2016-01-13 20:51:48 1256
2016-01-13 20:51:48 1258 LOAD 'This is an error' from notexists.qvd(qvd)
2016-01-13 20:51:48 Error: Cannot open file '\\notexists.qvd' The system cannot find the file specified.
2016-01-13 20:51:48
2016-01-13 20:51:54 1259 endif
2016-01-13 20:51:54 $Syn 1 = CountryCode+Material Number
2016-01-13 20:51:54 $Syn 2 = CountryCode+Material Number+KEY_Order
2016-01-13 20:51:54 $Syn 3 = Month+CountryCode
2016-01-13 20:51:55 $Syn 4 = Month+CountryCode+CustCode
2016-01-13 20:51:55 $Syn 5 = Month+CountryCode+CustCode+Period
2016-01-13 20:51:55 $Syn 6 = Month+CountryCode+CustCode+Material Number
2016-01-13 20:51:55 $Syn 7 = Month+CountryCode+CustCode+Material Number+Year
2016-01-13 20:51:55 $Syn 8 = $Syn 3+$Syn 4
2016-01-13 20:51:55 $Syn 9 = $Syn 3+$Syn 4+$Syn 5
2016-01-13 20:51:56 $Syn 10 = $Syn 1+$Syn 3+$Syn 4+$Syn 6
2016-01-13 20:51:56 $Syn 11 = $Syn 1+$Syn 3+$Syn 4+$Syn 6+$Syn 7
2016-01-13 20:51:56 $Syn 12 = $Syn 1+$Syn 3+$Syn 4+$Syn 5+$Syn 6
2016-01-13 20:51:56 $Syn 13 = $Syn 1+$Syn 2
2016-01-13 20:51:57 $Syn 14 = $Syn 1+$Syn 2+$Syn 3+$Syn 4+$Syn 6
2016-01-13 20:51:57 $Syn 15 = $Syn 8+$Syn 10
2016-01-13 20:51:57 $Syn 16 = $Syn 8+$Syn 10+$Syn 13+$Syn 14
2016-01-13 20:51:57 $Syn 17 = $Syn 8+$Syn 10+$Syn 11
2016-01-13 20:51:58 $Syn 18 = $Syn 8+$Syn 9
2016-01-13 20:51:58 $Syn 19 = $Syn 8+$Syn 9+$Syn 10+$Syn 12
2016-01-13 20:51:59 $Syn 20 = $Syn 15+$Syn 18+$Syn 19
2016-01-13 20:51:59 $Syn 21 = $Syn 15+$Syn 17
2016-01-13 20:51:59 $Syn 22 = $Syn 15+$Syn 16
2016-01-13 20:52:12 Execution finished.
Do you see something in the logs?
Thank you very much