Qlik Community

Ask a Question

Documents

Qlik Sense documentation and resources.

Announcements
QlikWorld starts MONDAY! last chance to register is now ! REGISTER NOW

Embedding a QlikView object into Qlik Sense

ChristofSchwarz
Partner
Partner

Embedding a QlikView object into Qlik Sense

fyi: This method uses an iframe and singleobject.htm with computed querystrings to integrate into a Sense page....

The QlikView object is in a separate name-space, responds to the selections in Sense, but not other way around. It is "read only"


Screenshot 2014-11-07 11.11.28.png

Assuming you have both, Sense and a QlikView Server, then you can embed an object from QlikView in Sense and have it respond to the selections in Sense. (Selections in the QlikView object are not carried to Sense, so I made the object itself "ReadOnly").

You don't need much to do this, the cornerstones are the following and I show this in the attached video.

  • Model the data first in QlikView, since the QVW file will be binary-loaded and looked up for XML-meta information from Sense
  • Create the QV object(s) you'd like to embed
  • Create Listboxes for all fields in that QVW with the help of the attached short macro. Ctrl+M to open Macro editor, paste this and hit "Test" to execute it).
    • In order to get this work, it does not matter which ID those listboxes will get assigned
    • It does not matter if some fields have already other listboxes
    • It does not matter on which worksheet those listboxes are placed
  • Create a bookmark called "ClearAll" which has No Selection
  • install the attached extension into the Qlik Sense Extension Folder (for Sense Desktop this is  C:\Users\<username>\Documents\Qlik\Sense\Extensions)
  • Edit the script of the Sense App
  • Paste the script code snippet attached in text file "Sense Load Script.txt"
  • Define the variable vSourceQVW (uncomment the first line, reload once, then comment out the first line again
  • Correct the URL to the above .qvw file (where it is found on the AccessPoint)
  • Define the Chart ID in the script variable vQV_URL
  • Sense will load the same data as found in the QVW (because of BINARY statement) and it will scan the XML footer of the QVW for the Id's of the Listboxes and the Bookmark.
    • (It will create a island table with two fields $$FIELD and $$OBJECTID to dynamically look up which field has a selection and which listbox is associated with it in QlikView)
    • It will create a complex formula into variable @PassCurrSel, which is converting the current selections into a working QueryString for the singledoc.htm url.
  • Open Sense worksheet
  • Drag the object type "QV Object" into a worksheet in Sense and in the Property "Dynamic URL" enter this formula:

=vQV_URL & $(=$(@PassCurrSel))

That's it. The single-object mode (run in an iframe) will refresh with every selection from the (outer) Sense page.

The only values which cannot be selected via this url are text values which contain a single quote '

>> See attached SWF video

Tags (1)
Attachments
Comments
rbecher
MVP
MVP

Interesting solution! How is the other way 'round? Showing Qlik Sense Objects in QlikView?

0 Likes
richbyard
Contributor III
Contributor III

Hi Christof,

Very interesting approach and I have a few use cases this could help address...

Are you able to attach the QVW and QVF files as an example? Quicker than reinventing the wheel.

Thanks
Richard

0 Likes
ChristofSchwarz
Partner
Partner

Good point. I added the sample files, .QVW and .QVS. Put the .QVW in the public folder of the QlikView SccessPoint and adjust the variable vQV_URL to point to the web address of that particular app on the AccessPoint

0 Likes
richbyard
Contributor III
Contributor III

Awesome, thanks Christof.

I have a query around authentication that perhaps you can help with as I have done something similar to get on demand N Printing working but with a less complex string creation for the iframe. I can get it working when I have anonymous access on the QlikView side but we have been wondering how we would set things up to pass credentiuals/tickets through the string. If you have dealt with this I'd love to hear of your approach.

Thanks again

Richard

0 Likes
richbyard
Contributor III
Contributor III

Ha, that ClearAll bookmark got me for a while. I should read the instructions more carefully

Thanks for posting this as it's quite simple to implement and could be very useful for a few use cases where the customer is really not web enabled enough to look at custom extentions for each specific chart.


We'll be looking at security early next month so if you have any comments on this from your researchwe'd love to hear them.

0 Likes
AxNoxy
Contributor III
Contributor III

Hello Christof!, I found your post and I tried to replicate it, but my selections doesn't works. This method is still reliable for Feb 2019 ver? Hope you havin a nice day!

 

Regards.

0 Likes
Version history
Revision #:
1 of 1
Last update:
‎2014-11-06 04:39 PM
Updated by: