Qlik Community

Qlik FinServ

A private group designed to enable innovation, share best practices and educate QlikView users in the Financial Services industry. You will not see any content if you are not a member, you can request to join by pressing "Join the Group"

Highlighted
Employee
Employee

On Demand App Generation

Following the recent Big Data event with IPC Global the concept of On Demand App Generation was demonstrated and this blog post contains an overview video as well as a white paper and code examples.


The “on demand app generation” approach expands the potential use cases for Business Discovery, enabling business users to conduct associative analysis on larger data sources. It provides a shopping list experience to allow users to first select data they are interested in discovering insights on which interactively an analysis app with full Qlik in memory capabilities.

Video Link : 4496

Thanks

Ian Crosland

Global PM Data Management

Tags (1)
43 Replies
Employee
Employee

Re: On Demand App Generation

Hi

Please find app attached to the blog post above

Thanks

Ian

Not applicable

Re: On Demand App Generation

Hi Ian,

  In your sense mashup example, how do you get the count of rows for the user selection in the selection app? Is there an explicit stats/counts table that the selection app is going against?

Regards,

Pulasti

Employee
Employee

Re: On Demand App Generation

Hi

The counts can be derived from the aggregated load script and calculated in a chart:

FlightSummary:

LOAD "FARE_CLASS" as "Fare Class",

    "ORIGIN_STATE_ABR" as "Origin State",

    "DEST_STATE_ABR" as "Destination State",

     "QUARTER" as "Quarter",

     "ORIGIN" as "Origin Code",

    DEST as "Destination Code",

     "TICKET_CARRIER" as "Ticket Carrier Code",

    "YEAR" as "Year",

     TOTAL_DISTANCE,

     FLIGHT_COUNT,

     SUMMARY_REC;

SQL SELECT

   "YEAR",

   "QUARTER",

      "ORIGIN",

      "ORIGIN_STATE_ABR",

      "DEST",

      "DEST_STATE_ABR",

      "TICKET_CARRIER",

      "FARE_CLASS",

      SUM("DISTANCE") AS "TOTAL_DISTANCE",

      SUM(1) AS "FLIGHT_COUNT",

      1 AS "SUMMARY_REC"

FROM (SELECT

      "YEAR",

   "QUARTER",

      "ORIGIN",

      "ORIGIN_STATE_ABR",

      "DEST",

      "DEST_STATE_ABR",

      "TICKET_CARRIER",

      "FARE_CLASS",

      "DISTANCE"

FROM "SAPH7T"."/QT/AIRPORT_FACT")

GROUP BY "YEAR",

  "QUARTER",

         "TICKET_CARRIER",

         "FARE_CLASS",

         "ORIGIN",

         "ORIGIN_STATE_ABR",

         "DEST",

         "DEST_STATE_ABR";

Not applicable

Re: On Demand App Generation

Thanks!

Another question - in the 'child' template app - what is the setting to accept EDXParms? In my example that i am working on, i added EDXParms as a variable to the child template app, but somehow the EDX parameters are not getting passed on.

Greatly appreciate your help!

Regards,

Pulasti

Not applicable

Re: On Demand App Generation

Sorry, i got it working. Thanks a lot for those examples!

Luminary
Luminary

Re: On Demand App Generation

icd‌, ksmith24pvn‌ - can you please put a big red warning that the above approach will be significantly impeded by Qlik's recommended multi-node server architecture (build/live) because of the synchronization impact. The above will only work seamlessly as described in a central-node only environment.

Not applicable

Re: On Demand App Generation

Hi Ian

Thanks for posting this extension.  Hoping for a little advice with it's use?  I have it working kind of, but I have an issue where despite specifying 4 fields in the on demand app that definitely match existing fields in the shopping cart app, only 2 of these fields are pulled through to the on demand app?  they all have the odso prefix (though I've tried variants)  but no matter what I try it only picks up 2 of the fields - always the same 2. ?

Thanks

Dominic

Employee
Employee

Re: On Demand App Generation

Hi

Can you post the script from your detail app, you will need to specify the fields in the SET statements and also in the FOR EACH loop:

FOR EACH fldname IN 'FIELD1', 'FIELD2'

  LET vallist = $($(fldname));

  WHEN (IsNull(vallist)) LET vallist = '';

  IF len(vallist) > 0 THEN

    CALL ExtendWhere('$(fldname)','vallist');

  ENDIF

NEXT fldname