Generates an application on demand within Qlik Sense
See the releases tab to download the correct version of this extension for your version of Qlik Sense.
To see this extension in use please check out the demo on our website. Due to the "creation" nature of this extension, an account is required on our server, and we can provide as needed.
Create a parent QVF application. This application should contain a broader dataset to drive the creation of a new application. While a frequent use case is to use an aggregated dataset to drive detailed analysis, this is not always the case. In practical application, this extension can be utilized to drive any scenario where the application author wishes to create a new application, perhaps enhanced with advanced analytics, that is specified by selections in the parent application.
Once the parent application has been created, add the App-on-Demand Extension and configure it. Three areas require configuration for use of the extension: 1) Replacement Settings - controlling what values in the target application's load script are replaced by values contained in the User's selections, 2) On Demand Settings - specifies publishing information, the target application to use as a template for the newly created application, and 3) Appearance Settings - button labels, etc.
A template application is utilized as the target for the App-on-Demand functionality. For optimal performance, this QVF will be saved with no data loaded in it, but with a full load script and any other visual elements already created. For prototyping and development we frequently create a full fledged application with data, and once we are satisfied with the application, save and publish it to a location that is readable by users of the App-on-Demand functionality.
The replacement settings specify string values to be replaced when encountered in the load script of the template app. If a single value is selected, there will be a one to one replacement, and if multiple selections are allowed, a CSV suitable for use with Match() will be inserted in the load script. This approach enables use of load script variables as well as replacements in where clauses within the template app load script. We typically surround string values to be replaced with a %% to ensure that they stand out when editing load scripts in the template application.
In the OnDemand settings, the template app ID must be specified, as well as a base name for the created application, the stream ID to publish the created app to, and optionally, a sheet id to link the user to once the app is created.
"Max number of items to send" enables the author to control how many values may be selected by the user before the App-on-Demand functionality is enabled. This is useful in many cases, as sometimes a singular selection is required, and other times multiple selections are allowed. This also enables the author to prevent creation of detailed analysis which would exceed reasonable performance requirements.
Labels for buttons (which may include HTML) are specified on the appearance panel. We recommend also displaying some text which indicates to the user what type or number of selections should be made, prior to the App-on-Demand functionality being enabled.
On Sense Desktop, clone or copy this extension into the Extensions folder located in your Qlik Sense install. On Server, follow the latest help docs from Qlik.
The advanced settings panel enables more interesting use cases. We have enabled the ability to execute JS prior to triggering the reload of the newly created application. This can be highly useful if the author desires to run external analysis using the selected values, and enhance the created application with that data. Certain use cases, e.g. prediction, GIS analysis, etc. lend themselves well as possible value-adds to the generated application. This capability also enables Qlik Sense to address certain use cases that would not otherwise be possible with purely native functionality. To ensure easier integration with external systems, we have included oauth.js by default in the extension.