Here’s a heads up on a QlikView script syntax issue. The problem came up several times in a beginner class last week and I’ve also noted beginners on the QlikCommunity Forum struggling with this as well.
There should be a space after a script keyword, separating it from the next word, right?
Resident MyTab // correct ResidentMyTab // incorrect
If we omit the space the syntax coloring will alert us and we may get a red error underline as well.
What if a bracket is used, such as the case when a name contains a space? If a bracket appears immediately after the keyword, the syntax highlighter will make look it correct. But it is invalid syntax and will fail when reloaded.
There are a number of places in script where this problem can happen. Here are a few examples.
- LOAD * INLINE[ - [F1] as[F2] - LOAD[F1]
Good news! QlikView Version 12 corrects the problem. In QV12, the missing space will be flagged in the editor.
While the requirement for a space may seem obvious to an experienced developer or programmer type, it can be a problem for beginners who are copying an example from a book where the space is not so clear, and who rely on highlighting to tell them they have it right.
It can be a difficult error to debug. The resulting script error message can be something indirect like “missing/misplaced FROM..” when the actual error is a missing space after an “AS” keyword.
I’m going to add the following slide to all my beginner trainings:
Words in expressions or script must be separated by a delimiter. Depending on context, the delimiter will be one of: Space Comma ( { < = + - * / Semicolon [ Single-quote and Double-quote are not delimiters.
I know this incomplete, leaving off tabs, newline, =>. Just keeping it simple.
-Rob
So timely! As a newbie to databases, scripting and Qlikview, I can tell you that there is a divot in my head from all of the STUPID scripting errors I’ve made that have sent me down rabbit holes, sometimes literally for hours.
I used to love linguistics and syntax. Now? I’m convinced that semicolons and commas are evil. PURE EVIL!