Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
See why IDC MarketScape names Qlik a 2025 Leader! Read more
cancel
Showing results for 
Search instead for 
Did you mean: 
kakani87
Specialist
Specialist

Garbage after statement Script Error

Dear All,

I'm facing a script error like garbage after statement in the following script, can any one identify where I'm going wrong.

let v_val=mid(v_val,Index(v_val,'>')+1,Len(v_val)-Index(v_val,'>'));

let v_firstloop=Index(v_val,']');

let v_count=0;

do while v_firstloop<>0

if Index(v_val,']')<>0 and Index(v_val,'//')=0 then

let v_fieldname=replace(text(mid(v_val,Index(v_val,']')+1,(Index(v_val,'(')-1) - (Index(v_val,']')+1))),'&','');

//EXIT Script; st

<<<<<<<<<<  TILL THIS POINT NO ERROR >>>>>>>>>>>>

if v_fieldname='Supp:' then

let v_val=mid(v_val,Index(v_val,':')+1,Len(v_val)-(Index(v_val,':')-2));

let v_old=text(mid(v_val,Index(v_val,':'),(Index(v_val,')')-1) - (Index(v_val,':'))));

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

let v_val=mid(v_val,Index(v_val,':')-1,Len(v_val)-(Index(v_val,':')-2));

let v_new=text(mid(v_val,Index(v_val,':')+1,(Index(v_val,')')-1) - (Index(v_val,':'))));

4 Replies
Anil_Babu_Samineni

After If Then condition you haven't used Else condition anymore hence it throw error

if v_fieldname='Supp:' then

let v_val=mid(v_val,Index(v_val,':')+1,Len(v_val)-(Index(v_val,':')-2));

let v_old=text(mid(v_val,Index(v_val,':'),(Index(v_val,')')-1) - (Index(v_val,':'))));

Else

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

let v_val=mid(v_val,Index(v_val,':')-1,Len(v_val)-(Index(v_val,':')-2));

let v_new=text(mid(v_val,Index(v_val,':')+1,(Index(v_val,')')-1) - (Index(v_val,':'))));

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
kakani87
Specialist
Specialist
Author

Check this Anil Else is considered. Till the exit script it is executing after that throwing error

script error.png

let v_val=mid(v_val,Index(v_val,'>')+1,Len(v_val)-Index(v_val,'>'));

let v_firstloop=Index(v_val,']');

let v_count=0;

do while v_firstloop<>0

if Index(v_val,']')<>0 and Index(v_val,'//')=0 then

let v_fieldname=replace(text(mid(v_val,Index(v_val,']')+1,(Index(v_val,'(')-1) - (Index(v_val,']')+1))),'&','');

//EXIT Script;

if v_fieldname='Supp:' then

let v_val=mid(v_val,Index(v_val,':')+1,Len(v_val)-(Index(v_val,':')-2));

let v_old=text(mid(v_val,Index(v_val,':'),(Index(v_val,')')-1) - (Index(v_val,':'))));

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

let v_val=mid(v_val,Index(v_val,':')-1,Len(v_val)-(Index(v_val,':')-2));

let v_new=text(mid(v_val,Index(v_val,':')+1,(Index(v_val,')')-1) - (Index(v_val,':'))));

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

else

let v_val=mid(v_val,Index(v_val,':')-1,Len(v_val)-(Index(v_val,':')-2));

let v_old=text(mid(v_val,Index(v_val,':')+1,(Index(v_val,')')-1) - (Index(v_val,':'))));

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

let v_val=mid(v_val,Index(v_val,':')-1,Len(v_val)-(Index(v_val,':')-2));

let v_new=text(mid(v_val,Index(v_val,':')+1,(Index(v_val,')')-1) - (Index(v_val,':'))));

let v_val=mid(v_val,Index(v_val,')')+1,Len(v_val)-(Index(v_val,')')-2));

end if

let v_old=Replace(v_old,']','');

let v_old=Replace(v_old,'[','');

let v_new=Replace(v_new,']','');

let v_new=Replace(v_new,'[','');

let v_fieldname=text(replace(Replace(v_fieldname,'[',''),']',''));

if $(v_tran_header_flag)=0 then

TRAN_HEADER:

load * inline

[

Srno,FieldName,Old,New

$(v_srno),'$(v_fieldname)','$(v_old)','$(v_new)'

];

end if

stigchel
Partner - Master
Partner - Master

From your screenshot I can see there are [ ] in your values in the inline load

==> PRADEEP [1]

Load values where you have these characters as e.g.

something [1]]

right bracket escaped without the single quotes

See also

Escape sequences

Anil_Babu_Samineni

Do While should end up with LOOP;


Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful