<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: The control statement is not correctly matched with its corresponding start statement in Data Movement &amp; Streaming</title>
    <link>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2113128#M1413</link>
    <description>&lt;P&gt;I tried this and it works.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try replacing&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET vFieldExists = NoOfFields('createdAt') &amp;gt; 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;with&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;LET vFieldExists = FieldNumber('createdAt', '$(vTable)') &amp;gt; 0;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CostCentres:&lt;BR /&gt;LOAD * inline [&lt;BR /&gt;field1, field2&lt;BR /&gt;1,1&lt;BR /&gt;2,2&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;UserActions:&lt;BR /&gt;LOAD * inline [&lt;BR /&gt;field1, field2, createdAt&lt;BR /&gt;1,1, 2022-06-01T00:00:00Z&lt;BR /&gt;2,2, 2021-06-01T00:00:00Z&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;[Tables to load]:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;TableName&lt;BR /&gt;CostCentres&lt;BR /&gt;UserActions&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;//LIB CONNECT TO '&amp;lt;&amp;lt;REMOVED&amp;gt;&amp;gt;';&lt;/P&gt;
&lt;P&gt;FOR EACH vTable in FieldValueList('TableName')&lt;/P&gt;
&lt;P&gt;trace vTable=$(vTable);&lt;BR /&gt;&lt;BR /&gt;[$(vTable)]:&lt;BR /&gt;// Check if 'createdAt' field exists in the table&lt;BR /&gt;&lt;STRONG&gt;LET vFieldExists = FieldNumber('createdAt','$(vTable)') &amp;gt; 0;&lt;/STRONG&gt;&lt;BR /&gt;trace vFieldExists=$(vFieldExists);&lt;BR /&gt;&lt;BR /&gt;// Load data based on whether 'createdAt' exists and date criteria&lt;BR /&gt;IF $(vFieldExists) THEN&lt;BR /&gt;trace 'YES';&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT $(vTable)&lt;BR /&gt;WHERE "createdAt" &amp;gt;= '2022-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2022-06-30T23:59:59Z'&lt;BR /&gt;OR "createdAt" &amp;gt;= '2023-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2023-06-30T23:59:59Z';&lt;BR /&gt;ELSE&lt;BR /&gt;trace 'NO';&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT $(vTable);&lt;BR /&gt;END IF;&lt;BR /&gt;&lt;BR /&gt;//// Store data in QVD&lt;BR /&gt;//STORE [$(vTable)] into [lib://DataFiles/$(vTable).qvd];&lt;/P&gt;
&lt;P&gt;NEXT vTable&lt;/P&gt;
&lt;P&gt;EXIT script;&lt;/P&gt;</description>
    <pubDate>Tue, 05 Sep 2023 09:55:08 GMT</pubDate>
    <dc:creator>maxgro</dc:creator>
    <dc:date>2023-09-05T09:55:08Z</dc:date>
    <item>
      <title>The control statement is not correctly matched with its corresponding start statement</title>
      <link>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2113109#M1412</link>
      <description>&lt;P&gt;Hi Qlik Community&lt;/P&gt;
&lt;P&gt;Trialing out QLIK and have run into an syntax error that I don't seem to be able to work out when using the 'Data Load Editor'.&lt;/P&gt;
&lt;P&gt;Attempting to limit data import for a particular date range only if the "createdAt" column exists. If it doesn't exist, just import the entire dataset. TableNames are listed at the top of the query.&lt;/P&gt;
&lt;P&gt;I did force an exit script using /* however this isn't resolving the underlying issue in the code.&lt;/P&gt;
&lt;P&gt;Thoughts and help greatly appreciated &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's an extract of the script:&lt;/P&gt;
&lt;P&gt;[Tables to load]:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;TableName&lt;BR /&gt;CostCentres&lt;BR /&gt;UserActions &lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;LIB CONNECT TO '&amp;lt;&amp;lt;REMOVED&amp;gt;&amp;gt;';&lt;/P&gt;
&lt;P&gt;FOR EACH vTable in FieldValueList('TableName')&lt;BR /&gt;[$(vTable)]:&lt;BR /&gt;// Check if 'createdAt' field exists in the table&lt;BR /&gt;LET vFieldExists = NoOfFields('createdAt') &amp;gt; 0;&lt;BR /&gt;&lt;BR /&gt;// Load data based on whether 'createdAt' exists and date criteria&lt;BR /&gt;IF $(vFieldExists) THEN&lt;BR /&gt;SELECT *&lt;BR /&gt;FROM [bustle-supply].$(vTable)&lt;BR /&gt;WHERE "createdAt" &amp;gt;= '2022-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2022-06-30T23:59:59Z'&lt;BR /&gt;OR "createdAt" &amp;gt;= '2023-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2023-06-30T23:59:59Z';&lt;BR /&gt;ELSE&lt;BR /&gt;SELECT *&lt;BR /&gt;FROM [bustle-supply].$(vTable);&lt;BR /&gt;END IF;&lt;BR /&gt;&lt;BR /&gt;// Store data in QVD&lt;BR /&gt;STORE [$(vTable)] into [lib://DataFiles/$(vTable).qvd];&lt;/P&gt;
&lt;P&gt;NEXT vTable&lt;/P&gt;
&lt;P&gt;EXIT script;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Mar 2025 23:02:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2113109#M1412</guid>
      <dc:creator>Jay-C</dc:creator>
      <dc:date>2025-03-19T23:02:17Z</dc:date>
    </item>
    <item>
      <title>Re: The control statement is not correctly matched with its corresponding start statement</title>
      <link>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2113128#M1413</link>
      <description>&lt;P&gt;I tried this and it works.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try replacing&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET vFieldExists = NoOfFields('createdAt') &amp;gt; 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;with&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;LET vFieldExists = FieldNumber('createdAt', '$(vTable)') &amp;gt; 0;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CostCentres:&lt;BR /&gt;LOAD * inline [&lt;BR /&gt;field1, field2&lt;BR /&gt;1,1&lt;BR /&gt;2,2&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;UserActions:&lt;BR /&gt;LOAD * inline [&lt;BR /&gt;field1, field2, createdAt&lt;BR /&gt;1,1, 2022-06-01T00:00:00Z&lt;BR /&gt;2,2, 2021-06-01T00:00:00Z&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;[Tables to load]:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;TableName&lt;BR /&gt;CostCentres&lt;BR /&gt;UserActions&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;//LIB CONNECT TO '&amp;lt;&amp;lt;REMOVED&amp;gt;&amp;gt;';&lt;/P&gt;
&lt;P&gt;FOR EACH vTable in FieldValueList('TableName')&lt;/P&gt;
&lt;P&gt;trace vTable=$(vTable);&lt;BR /&gt;&lt;BR /&gt;[$(vTable)]:&lt;BR /&gt;// Check if 'createdAt' field exists in the table&lt;BR /&gt;&lt;STRONG&gt;LET vFieldExists = FieldNumber('createdAt','$(vTable)') &amp;gt; 0;&lt;/STRONG&gt;&lt;BR /&gt;trace vFieldExists=$(vFieldExists);&lt;BR /&gt;&lt;BR /&gt;// Load data based on whether 'createdAt' exists and date criteria&lt;BR /&gt;IF $(vFieldExists) THEN&lt;BR /&gt;trace 'YES';&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT $(vTable)&lt;BR /&gt;WHERE "createdAt" &amp;gt;= '2022-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2022-06-30T23:59:59Z'&lt;BR /&gt;OR "createdAt" &amp;gt;= '2023-06-01T00:00:00Z' AND "createdAt" &amp;lt;= '2023-06-30T23:59:59Z';&lt;BR /&gt;ELSE&lt;BR /&gt;trace 'NO';&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT $(vTable);&lt;BR /&gt;END IF;&lt;BR /&gt;&lt;BR /&gt;//// Store data in QVD&lt;BR /&gt;//STORE [$(vTable)] into [lib://DataFiles/$(vTable).qvd];&lt;/P&gt;
&lt;P&gt;NEXT vTable&lt;/P&gt;
&lt;P&gt;EXIT script;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Sep 2023 09:55:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2113128#M1413</guid>
      <dc:creator>maxgro</dc:creator>
      <dc:date>2023-09-05T09:55:08Z</dc:date>
    </item>
    <item>
      <title>Re: The control statement is not correctly matched with its corresponding start statement</title>
      <link>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2115811#M1424</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;SPAN&gt;Maxgro... &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thanks for taking the time. I couldn't quite get it to work as seamlessly for 151 tables... but editing this further I found the following solution ended up working well...&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;[Tables to load]:&lt;/DIV&gt;
&lt;DIV&gt;LOAD * INLINE [&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; TableName&lt;/DIV&gt;
&lt;DIV&gt;X&lt;/DIV&gt;
&lt;DIV&gt;X1&lt;/DIV&gt;
&lt;DIV&gt;X2&lt;/DIV&gt;
&lt;DIV&gt;X3&lt;/DIV&gt;
&lt;DIV&gt;];&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;LIB CONNECT TO '&amp;lt;&amp;lt;REMOVED&amp;gt;&amp;gt;';&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;FOR EACH vTable in FieldValueList('TableName')&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;[$(vTable)]:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;SELECT * FROM [bustle-supply].$(vTable) where 1=2;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Check if 'createdAt' field exists in the table&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vFieldExists = FieldNumber('createdAt','$(vTable)');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // trace vFieldExists=$(vFieldExists);&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Load data based on whether 'createdAt' exists and date criteria&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; IF (vFieldExists &amp;gt; 0) THEN&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT *&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM [bustle-supply].$(vTable)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE (createdAt &amp;gt;= '2022-06-01' AND createdAt &amp;lt;= '2022-06-30')&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OR (createdAt &amp;gt;= '2023-06-01' AND createdAt &amp;lt;= '2023-06-30');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT *&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM [bustle-supply].$(vTable);&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END IF;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; // Store data in QVD&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; STORE [$(vTable)] into [lib://DataFiles/$(vTable).qvd];&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;NEXT vTable;&lt;/DIV&gt;
&lt;DIV&gt;exit script;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2023 07:21:22 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Movement-Streaming/The-control-statement-is-not-correctly-matched-with-its/m-p/2115811#M1424</guid>
      <dc:creator>Jay-C</dc:creator>
      <dc:date>2023-09-12T07:21:22Z</dc:date>
    </item>
  </channel>
</rss>

