<?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 Incremental QVD in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497872#M102803</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hi, Hoping someone have done this before and can help me. I want to store campaigns in a QVD, each campaign has different criterion so I load the criterion for each campaign from an Excel file and then store the values in a variables. Then I load the variable in a where clause to return the required data set, at this point I need to keep this in memory and then repeat the process for the next campaign and in the end store it in one QVD which can then be used for analytics.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried a for loop, so it loop through each campaign which works. But I am struggling to increment this data into a QVD. I can't store the QVD in the for loop because it overrides the previous campaign data. How do I either store the QVD for each campaign and then pick it up again to increment or concatenate all the tables into one table and then store in a QVD?&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;tblCampaignsTemp:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;LOAD&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "Campaign Number" as Cnumber,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "Campaign Name" as Cname,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Item as Citem&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;/DIV&gt;
&lt;DIV&gt;(ooxml, embedded labels, table is Campaigns) where len("Campaign Name")&amp;gt;1;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//Populate variable for each field - this is then used in the sales where clause&lt;/DIV&gt;
&lt;DIV&gt;FOR vRow = 0 TO $(vRowCount)-1&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vCampaignNumber = Peek('Cnumber', $(vRow), 'tblCampaignsTemp');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vCampaignName = Peek('Cname', $(vRow), 'tblCampaignsTemp');&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vShortItemNumber = Peek('Citem', $(vRow), 'tblCampaignsTemp');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;NoConcatenate&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//Create the sales for each campaign&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;PreCampaignSales:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;load '$(vCampaignName)' as "Campaign Name",&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp; Item,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Sales&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;/DIV&gt;
&lt;DIV&gt;(ooxml, embedded labels, table is Sales) where wildmatch("Item",$(vShortItemNumber));&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;next;&lt;/DIV&gt;
&lt;DIV&gt;drop table tblCampaignsTemp;&lt;/DIV&gt;</description>
    <pubDate>Fri, 13 Dec 2024 12:00:25 GMT</pubDate>
    <dc:creator>Gerhard</dc:creator>
    <dc:date>2024-12-13T12:00:25Z</dc:date>
    <item>
      <title>Incremental QVD</title>
      <link>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497872#M102803</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hi, Hoping someone have done this before and can help me. I want to store campaigns in a QVD, each campaign has different criterion so I load the criterion for each campaign from an Excel file and then store the values in a variables. Then I load the variable in a where clause to return the required data set, at this point I need to keep this in memory and then repeat the process for the next campaign and in the end store it in one QVD which can then be used for analytics.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried a for loop, so it loop through each campaign which works. But I am struggling to increment this data into a QVD. I can't store the QVD in the for loop because it overrides the previous campaign data. How do I either store the QVD for each campaign and then pick it up again to increment or concatenate all the tables into one table and then store in a QVD?&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;tblCampaignsTemp:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;LOAD&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "Campaign Number" as Cnumber,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "Campaign Name" as Cname,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; Item as Citem&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;/DIV&gt;
&lt;DIV&gt;(ooxml, embedded labels, table is Campaigns) where len("Campaign Name")&amp;gt;1;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//Populate variable for each field - this is then used in the sales where clause&lt;/DIV&gt;
&lt;DIV&gt;FOR vRow = 0 TO $(vRowCount)-1&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vCampaignNumber = Peek('Cnumber', $(vRow), 'tblCampaignsTemp');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vCampaignName = Peek('Cname', $(vRow), 'tblCampaignsTemp');&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; LET vShortItemNumber = Peek('Citem', $(vRow), 'tblCampaignsTemp');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;NoConcatenate&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//Create the sales for each campaign&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;PreCampaignSales:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;load '$(vCampaignName)' as "Campaign Name",&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp; Item,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Sales&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;/DIV&gt;
&lt;DIV&gt;(ooxml, embedded labels, table is Sales) where wildmatch("Item",$(vShortItemNumber));&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;next;&lt;/DIV&gt;
&lt;DIV&gt;drop table tblCampaignsTemp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Dec 2024 12:00:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497872#M102803</guid>
      <dc:creator>Gerhard</dc:creator>
      <dc:date>2024-12-13T12:00:25Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental QVD</title>
      <link>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497891#M102806</link>
      <description>&lt;P&gt;You should be able to achieve both methods you are suggesting by implementing something like the following:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. Multiple QVD's&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;By using one of your variables in the store path you can save each iteration in the loop in a seperate QVD.&lt;/P&gt;
&lt;PRE&gt;//Populate variable for each field - this is then used in the sales where clause&lt;BR /&gt;&lt;BR /&gt;FOR vRow = 0 TO $(vRowCount)-1&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vCampaignNumber = Peek('Cnumber', $(vRow), 'tblCampaignsTemp');&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vCampaignName = Peek('Cname', $(vRow), 'tblCampaignsTemp');&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vShortItemNumber = Peek('Citem', $(vRow), 'tblCampaignsTemp');&lt;BR /&gt;&lt;BR /&gt;//Create the sales for each campaign&lt;BR /&gt;NoConcatenate&lt;BR /&gt;PreCampaignSales:&lt;BR /&gt;load &lt;BR /&gt;'$(vCampaignName)' as "Campaign Name",&lt;BR /&gt;&lt;SPAN&gt;Item,&lt;/SPAN&gt;&lt;BR /&gt;Sales&lt;BR /&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;BR /&gt;(ooxml, embedded labels, table is Sales) where wildmatch("Item",$(vShortItemNumber));&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;STORE PreCampaignSales INTO [lib://DataFiles/Campaign_$(vShortItemNumber).qvd] (qvd);&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;next&lt;BR /&gt;drop table tblCampaignsTemp;&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;2. One QVD&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this scenario you first create a dummy table where you will concatenate all your iterations from the loop.&lt;/P&gt;
&lt;PRE&gt;&lt;STRONG&gt;//Create a dummy table&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;TableName:&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;LOAD&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;null()       AS "Campaign Name"&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;AutoGenerate 0;&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;FOR vRow = 0 TO $(vRowCount)-1&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vCampaignNumber = Peek('Cnumber', $(vRow), 'tblCampaignsTemp');&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vCampaignName = Peek('Cname', $(vRow), 'tblCampaignsTemp');&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; LET vShortItemNumber = Peek('Citem', $(vRow), 'tblCampaignsTemp');&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;//Create the sales for each campaign&lt;BR /&gt;Concatenate(TableName)&lt;BR /&gt;load &lt;BR /&gt;'$(vCampaignName)' as "Campaign Name",&lt;BR /&gt;&lt;SPAN&gt;Item,&lt;/SPAN&gt;&lt;BR /&gt;Sales&lt;BR /&gt;FROM [lib://DataFiles/Test Campaigns.xlsx]&lt;BR /&gt;(ooxml, embedded labels, table is Sales) where wildmatch("Item",$(vShortItemNumber));&lt;BR /&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;next&lt;BR /&gt;&lt;BR /&gt;drop table tblCampaignsTemp;&lt;BR /&gt;&lt;STRONG&gt;STORE TableName INTO [lib://DataFiles/Campaigns.qvd] (qvd);&lt;/STRONG&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Would something like this help?&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2024 13:22:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497891#M102806</guid>
      <dc:creator>fldc2500</dc:creator>
      <dc:date>2024-12-13T13:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental QVD</title>
      <link>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497894#M102808</link>
      <description>&lt;P&gt;That's brilliant thanks, I was going to use the multiple QVD's as a last resort but then you're stuck with all the QVD's. Your dummy table did the trick, I actually tried this but I did it in the loop rather than outside. Thanks so much for your help. Greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Dec 2024 13:39:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Incremental-QVD/m-p/2497894#M102808</guid>
      <dc:creator>Gerhard</dc:creator>
      <dc:date>2024-12-13T13:39:57Z</dc:date>
    </item>
  </channel>
</rss>

