<?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>article How to: Loop &amp;amp; Reduce using a lightweight QVD generator app in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/How-to-Loop-amp-Reduce-using-a-lightweight-QVD-generator-app/ta-p/2076062</link>
    <description>&lt;P&gt;This article explains how you can achieve&lt;FONT color="#339966"&gt;&lt;STRONG&gt; Loop &amp;amp; Reduce&lt;/STRONG&gt;&lt;/FONT&gt; functionality using a lightweight QVD generator app in combination with a Qlik Application Automation. The reduced QVDs that are generated are stored in different managed spaces. Empty apps are published to each of these managed spaces and then read the reduced QVD.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Automation flow&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;These illustrations have been cropped to only display two of the four managed spaces that are created using this example.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation creates new managed spaces.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Two new managed spaces.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111539i085C3C2C71268B4E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Two new managed spaces.png" alt="Two new managed spaces.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation reloads the source app. This app acts as a QVD generator. The load script has been configured to read QVDs stored in the same shared space as the app and then store the reduced QVD files in the newly created managed spaces.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="source app is reloaded and stored.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111540i872FE3BCB1E76CBD/image-size/large?v=v2&amp;amp;px=999" role="button" title="source app is reloaded and stored.png" alt="source app is reloaded and stored.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation publishes empty apps to the managed spaces and then reloads them. The load scripts in the empty apps have been configured to read data from the reduced QVDs within the same managed space.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="empty app is published and reloaded.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111542i7565928DF82C5157/image-size/large?v=v2&amp;amp;px=999" role="button" title="empty app is published and reloaded.png" alt="empty app is published and reloaded.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Resources&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;You will find the resources you need to run the automation example attached to this article.&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Apps&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;QVD generator app&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The 'QVD generator app'&amp;nbsp;read the source QVDs stored in the same shared spaces as the app and then stores reduced QVDs into managed spaces per reduction field, in this case, region. The reduction and storage of these QVDs is done by running the load script of the QVD generator app. There’s no need for the QVD generator to contain any data, making it very lightweight. However, in this example, we do load some data for control purposes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Empty app for reading reduced QVDs per space&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The 'Empty app for reading reduced QVDs' per space has a load script that loads regional data into the app using relative paths. The automation publishes copies of this app into each managed space per reduction field. Upon reload, the reduced QVDs are read into these reduced apps.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;QVD files&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Source QVDs&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This example comes with six QVD files:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Categories.qvd&lt;/LI&gt;
&lt;LI&gt;Customers.qvd&lt;/LI&gt;
&lt;LI&gt;Order_Details.qvd&lt;/LI&gt;
&lt;LI&gt;Orders.qvd&lt;/LI&gt;
&lt;LI&gt;Products.qvd&lt;/LI&gt;
&lt;LI&gt;Regions.qvd&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Reduced QVDs&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Three reduced QVDs are created and stored in each of the managed spaces:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Customers.qvd&lt;/LI&gt;
&lt;LI&gt;Order_Details.qvd&lt;/LI&gt;
&lt;LI&gt;Orders.qvd&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Automation&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The automation ('Loop &amp;amp; Reduce using a lightweight QVD generator app.json') orchestrates:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The creation of managed spaces, if it doesn't already exist.&lt;/LI&gt;
&lt;LI&gt;Adding the automation owner as a member of the managed space with the role 'contributor'.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Reload of the QVD generator app.&lt;/LI&gt;
&lt;LI&gt;Publishing empty apps in the managed spaces.&lt;/LI&gt;
&lt;LI&gt;Populating the empty apps with data read from the reduced QVDs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;More information on importing automations can be found&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.qlik.com/t5/Knowledge-Base/How-to-upload-and-download-blends/ta-p/1781602" target="_blank" rel="noopener"&gt;here&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;App &amp;amp; QVD configuration&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;The 'Source QVDs' and the 'QVD generator app' must reside in the same shared space. When setting up this example, we recommend that you name this shared space&amp;nbsp;'Loop and Distribute QVD'.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;In this example, we also read data from non-reduced QVDs to the reduced apps. For this to work, you must ensure that the 'Global Data' section in the load script for 'Empty app for reading reduced QVDs per space' has the shared space specified, in which the source QVDs and the 'QVD generator app' is located.&amp;nbsp; If you named the shared space 'Loop and Distribute QVD' you don't have to update the load script.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Running the automation&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When running the automation you will be prompted to provide the following inputs:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;QVD generator app:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="icon-red"&gt;&lt;SPAN&gt;specify the App ID.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Empty app for reading reduced QVDs per space:&lt;/STRONG&gt;&lt;SPAN class="icon-red"&gt;&lt;SPAN&gt;&amp;nbsp;specify the App ID.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;ReductionFields:&lt;/STRONG&gt;&amp;nbsp;Provide a c&lt;/SPAN&gt;omma-separated list of values that corresponds to the reduction values used in the QVD Generator App. In this case: &lt;FONT face="courier new,courier"&gt;Eastern,Northern,Southern,Western&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="QVD generator app.png" style="width: 613px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111544i8D70C5CC6C87FE77/image-size/large?v=v2&amp;amp;px=999" role="button" title="QVD generator app.png" alt="QVD generator app.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Notes:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Using a loop, the automation searches for existing managed spaces that match the provided values in the&amp;nbsp;&lt;STRONG&gt;ReductionFields&lt;/STRONG&gt;. If a space with a matching name exists, the automation owner is added as a member with the role 'contributor'.&lt;/LI&gt;
&lt;LI&gt;If there's no space matching the provided name, a new space is created and the automation owner is added as a member with the role 'contributor'.&lt;/LI&gt;
&lt;LI&gt;When all spaces exist, the 'QVD generator app' is reloaded to store reduced QVDs in each of the managed spaces.&lt;/LI&gt;
&lt;LI&gt;'Space name' and 'Space ID ' for&amp;nbsp;existing or created spaces are added to the variable &lt;STRONG&gt;SpaceObject&lt;/STRONG&gt;, these are then stored in the variable &lt;STRONG&gt;SpacesList&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;A copy of the 'Empty app' is published to each of the managed spaces in the SpacesList by looping through the&amp;nbsp;&lt;STRONG&gt;SpacesList&lt;/STRONG&gt;.&amp;nbsp;The name of the space is included in the name of the new reduced app and the Space ID is used to determine where to publish this app.&lt;/LI&gt;
&lt;LI&gt;Once an empty app has been published, it is reloaded so that it is populated with regional data from the reduced QVDs that reside in the same managed space. Global data is also read from&amp;nbsp;Categories.qvd, Products.qvd, and Regions.qvd.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Potential improvements&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Instead of specifying app IDs and reduction fields, you could read these values from Microsoft Excel, or Google Sheets.&lt;/LI&gt;
&lt;LI&gt;Space memberships for users could also be assigned to spaces by reading the values from spreadsheets. For more information, see the article '&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-Use-Qlik-Application-Automation-to-manage-space/ta-p/2056159" target="_self"&gt;How to: Use Qlik Application Automation to manage space membership (users)&lt;/A&gt;'.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;LI-PRODUCT title="Qlik Application Automation" id="qlikApplicationAutomation"&gt;&lt;/LI-PRODUCT&gt;&lt;BR /&gt;&lt;LI-PRODUCT title="Qlik Cloud" id="qlikSenseEnterpriseSaaS"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-style: italic;"&gt;The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.&lt;/P&gt;</description>
    <pubDate>Tue, 04 Jul 2023 12:56:10 GMT</pubDate>
    <dc:creator>J_Lindberg</dc:creator>
    <dc:date>2023-07-04T12:56:10Z</dc:date>
    <item>
      <title>How to: Loop &amp; Reduce using a lightweight QVD generator app</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/How-to-Loop-amp-Reduce-using-a-lightweight-QVD-generator-app/ta-p/2076062</link>
      <description>&lt;P&gt;This article explains how you can achieve&lt;FONT color="#339966"&gt;&lt;STRONG&gt; Loop &amp;amp; Reduce&lt;/STRONG&gt;&lt;/FONT&gt; functionality using a lightweight QVD generator app in combination with a Qlik Application Automation. The reduced QVDs that are generated are stored in different managed spaces. Empty apps are published to each of these managed spaces and then read the reduced QVD.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Automation flow&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;These illustrations have been cropped to only display two of the four managed spaces that are created using this example.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation creates new managed spaces.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Two new managed spaces.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111539i085C3C2C71268B4E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Two new managed spaces.png" alt="Two new managed spaces.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation reloads the source app. This app acts as a QVD generator. The load script has been configured to read QVDs stored in the same shared space as the app and then store the reduced QVD files in the newly created managed spaces.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="source app is reloaded and stored.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111540i872FE3BCB1E76CBD/image-size/large?v=v2&amp;amp;px=999" role="button" title="source app is reloaded and stored.png" alt="source app is reloaded and stored.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;The automation publishes empty apps to the managed spaces and then reloads them. The load scripts in the empty apps have been configured to read data from the reduced QVDs within the same managed space.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="empty app is published and reloaded.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111542i7565928DF82C5157/image-size/large?v=v2&amp;amp;px=999" role="button" title="empty app is published and reloaded.png" alt="empty app is published and reloaded.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Resources&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;You will find the resources you need to run the automation example attached to this article.&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Apps&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;QVD generator app&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The 'QVD generator app'&amp;nbsp;read the source QVDs stored in the same shared spaces as the app and then stores reduced QVDs into managed spaces per reduction field, in this case, region. The reduction and storage of these QVDs is done by running the load script of the QVD generator app. There’s no need for the QVD generator to contain any data, making it very lightweight. However, in this example, we do load some data for control purposes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Empty app for reading reduced QVDs per space&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The 'Empty app for reading reduced QVDs' per space has a load script that loads regional data into the app using relative paths. The automation publishes copies of this app into each managed space per reduction field. Upon reload, the reduced QVDs are read into these reduced apps.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;QVD files&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Source QVDs&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;This example comes with six QVD files:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Categories.qvd&lt;/LI&gt;
&lt;LI&gt;Customers.qvd&lt;/LI&gt;
&lt;LI&gt;Order_Details.qvd&lt;/LI&gt;
&lt;LI&gt;Orders.qvd&lt;/LI&gt;
&lt;LI&gt;Products.qvd&lt;/LI&gt;
&lt;LI&gt;Regions.qvd&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="--darkreader-inline-color: #e8e6e3;" color="#000000" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Reduced QVDs&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Three reduced QVDs are created and stored in each of the managed spaces:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Customers.qvd&lt;/LI&gt;
&lt;LI&gt;Order_Details.qvd&lt;/LI&gt;
&lt;LI&gt;Orders.qvd&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Automation&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The automation ('Loop &amp;amp; Reduce using a lightweight QVD generator app.json') orchestrates:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;The creation of managed spaces, if it doesn't already exist.&lt;/LI&gt;
&lt;LI&gt;Adding the automation owner as a member of the managed space with the role 'contributor'.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Reload of the QVD generator app.&lt;/LI&gt;
&lt;LI&gt;Publishing empty apps in the managed spaces.&lt;/LI&gt;
&lt;LI&gt;Populating the empty apps with data read from the reduced QVDs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;More information on importing automations can be found&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.qlik.com/t5/Knowledge-Base/How-to-upload-and-download-blends/ta-p/1781602" target="_blank" rel="noopener"&gt;here&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;App &amp;amp; QVD configuration&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;The 'Source QVDs' and the 'QVD generator app' must reside in the same shared space. When setting up this example, we recommend that you name this shared space&amp;nbsp;'Loop and Distribute QVD'.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;In this example, we also read data from non-reduced QVDs to the reduced apps. For this to work, you must ensure that the 'Global Data' section in the load script for 'Empty app for reading reduced QVDs per space' has the shared space specified, in which the source QVDs and the 'QVD generator app' is located.&amp;nbsp; If you named the shared space 'Loop and Distribute QVD' you don't have to update the load script.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Running the automation&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;When running the automation you will be prompted to provide the following inputs:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;QVD generator app:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="icon-red"&gt;&lt;SPAN&gt;specify the App ID.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Empty app for reading reduced QVDs per space:&lt;/STRONG&gt;&lt;SPAN class="icon-red"&gt;&lt;SPAN&gt;&amp;nbsp;specify the App ID.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;ReductionFields:&lt;/STRONG&gt;&amp;nbsp;Provide a c&lt;/SPAN&gt;omma-separated list of values that corresponds to the reduction values used in the QVD Generator App. In this case: &lt;FONT face="courier new,courier"&gt;Eastern,Northern,Southern,Western&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="QVD generator app.png" style="width: 613px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/111544i8D70C5CC6C87FE77/image-size/large?v=v2&amp;amp;px=999" role="button" title="QVD generator app.png" alt="QVD generator app.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Notes:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Using a loop, the automation searches for existing managed spaces that match the provided values in the&amp;nbsp;&lt;STRONG&gt;ReductionFields&lt;/STRONG&gt;. If a space with a matching name exists, the automation owner is added as a member with the role 'contributor'.&lt;/LI&gt;
&lt;LI&gt;If there's no space matching the provided name, a new space is created and the automation owner is added as a member with the role 'contributor'.&lt;/LI&gt;
&lt;LI&gt;When all spaces exist, the 'QVD generator app' is reloaded to store reduced QVDs in each of the managed spaces.&lt;/LI&gt;
&lt;LI&gt;'Space name' and 'Space ID ' for&amp;nbsp;existing or created spaces are added to the variable &lt;STRONG&gt;SpaceObject&lt;/STRONG&gt;, these are then stored in the variable &lt;STRONG&gt;SpacesList&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;A copy of the 'Empty app' is published to each of the managed spaces in the SpacesList by looping through the&amp;nbsp;&lt;STRONG&gt;SpacesList&lt;/STRONG&gt;.&amp;nbsp;The name of the space is included in the name of the new reduced app and the Space ID is used to determine where to publish this app.&lt;/LI&gt;
&lt;LI&gt;Once an empty app has been published, it is reloaded so that it is populated with regional data from the reduced QVDs that reside in the same managed space. Global data is also read from&amp;nbsp;Categories.qvd, Products.qvd, and Regions.qvd.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;Potential improvements&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Instead of specifying app IDs and reduction fields, you could read these values from Microsoft Excel, or Google Sheets.&lt;/LI&gt;
&lt;LI&gt;Space memberships for users could also be assigned to spaces by reading the values from spreadsheets. For more information, see the article '&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-Use-Qlik-Application-Automation-to-manage-space/ta-p/2056159" target="_self"&gt;How to: Use Qlik Application Automation to manage space membership (users)&lt;/A&gt;'.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT style="--darkreader-inline-color: #6ecf9e;" color="#339966" data-darkreader-inline-color=""&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;LI-PRODUCT title="Qlik Application Automation" id="qlikApplicationAutomation"&gt;&lt;/LI-PRODUCT&gt;&lt;BR /&gt;&lt;LI-PRODUCT title="Qlik Cloud" id="qlikSenseEnterpriseSaaS"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-style: italic;"&gt;The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jul 2023 12:56:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/How-to-Loop-amp-Reduce-using-a-lightweight-QVD-generator-app/ta-p/2076062</guid>
      <dc:creator>J_Lindberg</dc:creator>
      <dc:date>2023-07-04T12:56:10Z</dc:date>
    </item>
  </channel>
</rss>

