Discussion Board for collaboration related to QlikView App Development.
Hi, I have a table with field batch id with many id including 20200523. So i want to do in such a way that if the count of test 2 is 1 because it is equal to test, then it will exit script. But seems like it doesn't work as it will continue on the else portion.
let test = Date(20200523, 'YYYYMMDD');
LET test2 = (Count(if([BATCH_ID]= $(test), 1, 0)));
if test2=1 then
TRACE( Condition is valid);
EXIT Script;
ELSE
continue on the other part of the script
let test = Date(today()-1,'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident BAD_TPUT where BATCH_ID=$(test);
LET test2 = if(isnull(FieldValue('Ctmp',1)),0,FieldValue('Ctmp',1));
drop table tmp;
if $(test2)>1 then
trace --- buzzz ----;
Exit script
else
or share your file
changes to be expecte, for example :
let test = Date#(20200523, 'YYYYMMDD');
$(test2)
I suggest the following example :
Data:
load * inline [
BATCH_ID,A,B
20200523,1,5
20200523,2,6
20200525,3,7
20200526,4,8
];
let test = Date#(20200523, 'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=$(test);
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)=1 then
TRACE .... ;
ELSE
.....
Hi, i did this based on your suggestion but it don't seems to hit the error and continue on the else section
Data:
load * inline [
BATCH_ID,A,B
20200523,1,5
20200523,2,6
20200525,3,7
20200526,4,8
];
let test = Date#(20200523, 'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=$(test);
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)=1 then
SET TriggerError;
ELSE
because in Data the value of test2 is 2 (count of BATCH_ID(20200523))
suppose I have this input data :
Data:
load * inline [
BATCH_ID,A,B
20200523,2,6
20200525,3,7
20200526,4,8
];
let test = Date#(20200523, 'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=$(test);
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)=1 then
SET TriggerError;
the output is :
so it doesn't go to ELSE
Currently my script is
Data:
load * inline [
BATCH_ID,A,B
20200523,2,6
20200525,3,7
20200526,4,8
];
let test = Date#(20200523, 'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=$(test);
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)=1 then
SET TriggerError;
else
but the error is not coming out for me. it just finished running the script. Did i miss out some settings in qlikview?
2020-07-01 10:50:19 0103 Data:
2020-07-01 10:50:19 0104
2020-07-01 10:50:19 0105 load * inline [
2020-07-01 10:50:19 0106 BATCH_ID,A,B
2020-07-01 10:50:19 0107 20200523,2,6
2020-07-01 10:50:19 0108 20200525,3,7
2020-07-01 10:50:19 0109 20200526,4,8
2020-07-01 10:50:19 0110 ]
2020-07-01 10:50:19 3 fields found: BATCH_ID, A, B,
2020-07-01 10:50:19 3 lines fetched
2020-07-01 10:50:19 0113 let test = Date#(20200523, 'YYYYMMDD')
2020-07-01 10:50:19 0115 tmp:
2020-07-01 10:50:19 0116 load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=20200523
2020-07-01 10:50:19 1 fields found: Ctmp,
2020-07-01 10:50:19 1 lines fetched
2020-07-01 10:50:19 0118 LET test2 = FieldValue('Ctmp',1)
2020-07-01 10:50:19 0120 drop table tmp
2020-07-01 10:50:19 0122 if 1=1 then
2020-07-01 10:50:19 0123 SET TriggerError
2020-07-01 10:50:19 0125 else
2020-07-01 10:50:19 Execution finished.
can you share your file
attached my qlikview file
hi, i managed to get it to work using the below code. Thanks for helping.
tmp:
load count(BATCH_ID) as Ctmp resident BAD_TPUT where BATCH_ID=$(test);
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)>1 then
trace --- buzzz ----;
Exit script;
else
Would like to check with you if i want to count on resident data table where batch_id = system-1, what is the right way to do it?
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=sysdate-1;
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)>1 then
trace --- buzzz ----;
Exit script;
else
Maye be
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=Date(today()-1,'YYYYMMDD');
LET test2 = FieldValue('Ctmp',1);;
drop table tmp;
if $(test2)>1 then
trace --- buzzz ----;
Exit script;
else
hi, i have this error
Unexpected token: '>', expected one of: '(', 'ZTestw_z', 'OPERATOR_PLUS', 'OPERATOR_MINUS', 'not', 'bitnot', 'LITERAL_NUMBER', ...
if >>>>>>><<<<<<1 then
for this code
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=Date(today()-1,'YYYYMMDD');
let test = Date(today()-1,'YYYYMMDD');
tmp:
load count(BATCH_ID) as Ctmp resident Data where BATCH_ID=$(test);
....