Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to Get multiple errors with ScriptErrorDetails

Hi I'm currently creating a script that should catch the errors using ScriptErrorDetails (eg: Field Not Found). But when using ScriptErrorDetails it only gets the first error it catches. Is there a way to get all the errors in the load statement? For example multiple missing fields. My goal is to create a table that contains all the errors in my script. Below is my sample code.

Set ErrorMode=0;  //would let qlik continue if there is an error

Sample:

LOAD Datesdsd, //Date (purposedly typed in an incorrect field)

[Application ID]

    

FROM

[..\Documents\Working Hours Calendar.xlsx]

(ooxml, embedded labels, table is [Sample Date]);

Let vErrorDetails0 = ScriptErrorDetails; //just gets the 1st error

Holidays:

LOAD Holiday_Dtsda, //Holiday_Dt (purposedly typed in an incorrect field)

     Holiday_Type

FROM

[..\Documents\Working Hours Calendar.xlsx]

(ooxml, embedded labels, table is Holidays);

Let vErrorDetails1 = ScriptErrorDetails; //just gets the 1st error

ERROR_TABLE:

LOAD * INLINE

[LOAD #, ERRORS

LOAD 1, '$(vErrorDetails0)'

LOAD 2, '$(vErrorDetails1)'];

ERROR_TABLE1:

LOAD [LOAD #] as LOAD_NO, ERRORS as ERROR

RESIDENT ERROR_TABLE

WHERE ERRORS <> '';

//whows only errors

//this table would be stored and will be populated incrementally

DROP TABLE ERROR_TABLE;

1 Reply
Peter_Cammaert
Partner - Champion III
Partner - Champion III

The LOAD script engine uses an interpreted language. IMHO upon encountering the first error, statement interpretation and/or execution will be aborted. If you have set ErrorMode to zero, the script engine will proceed to the next statement. Otherwise script execution will be aborted altogether.

I think you can only capture one error per statement. However using some clever code, you can capture every first error in every statement. However since the first error in a particular statement (for example "Field Not Found") usually produces a cascade of more-or-less-irrelevant errors in subsequent statements (for example "Missing table"), that may not be very useful.