Qlik Community

Qlik Product Innovation Blog

Learn about what's new across all of the products in our growing Qlik product portfolio.

Employee
Employee

Introducing Qlik Sense June 2017!

We are pleased to announce the release of Qlik Sense June 2017!

With releases five times per year, it could be difficult to stay up to date on what’s new. The document attached to this post will help you keep up to date.  You will find a look back at some of the key features released over the past 12 months as well as a detailed outline of the the most current release.

But first.... check out this overview video:

Some of the most exciting enhancements in this release include:

  • New Visualizations – New visualizations including the Box Plot, Distribution Plot, and Histogram,
  • Advanced Analytics Integration – The ability to call out to third party engines (such as R & Python) during analysis.
  • Visual Data Prep Enhancements – A wide array of improvements to the visual data preparation capability of Qlik Sense including Visual Data Profiling, Data Binning, Visual Table Concatentation, Data Quality Transformations, Filtering, and inclusion of scripted data sets in visual data preparation.
  • On Demand App Generation – User-generated on-demand analysis apps drawn from Big Data.

WHAT YOU SHOULD DO NEXT:

  • Customers can visit the Qlik Customer Download Site HERE
  • If you are new to Qlik, you can download the Qlik Sense June 2017 desktop version HERE.
  • Stay informed and learn more by joining us on an upcoming webinar or local event.
43 Comments
josecardenas
New Contributor III

No access to the "On Demand App Generation"

0 Likes
1 View
zoltan_farkas
New Contributor III

Where can we find the R connector? Do you have any description for that? Thanks.

1 View
Employee
Employee

Hi Jose,

Thanks for letting me know.  I uploaded the video into the video library and am not sure what went wrong.... in the meantime, I am uploading the video directly here to see if that will resolve the issue.

Video Link : 5336

You can also check out a recent blog post on the topic of big data that you may find helpful.

Big Data with Qlik - One method does not fit all!

1 View
omarbensalem
Esteemed Contributor

It so difficult migrating from Qlik Sense 3.2 synchronised persistence to June 2017 Shared Persistence !

Is there any CLEAR document to describe step by step what to do? How to prepare the database? A clear guide? The help site is so unclear !

1 View
robert99
Valued Contributor II

Hi

I really like the new dimension value colors feature. But how can I get this to work with alternatives?

Thanks

0 Likes
1 View
omarbensalem
Esteemed Contributor

Hi mto‌, could you please explain the On demand app generation? Why do you present this as a new feature while I've been using this SUPER extension for at least 6 months? What's the new thing?

Another question? Will there be an official clear guidline on how to use the advanced analytics? Especially the R integration and use? And is there is a thought of having pre-designed R functions to use? like the R-extensions some of our fellow Qlik users build?

Thank you for your time and good work guys; the future is yours//ours !

0 Likes
1 View
Not applicable

I've enjoyed the new release so far, but I can't find the Python Connector. I found the experimental Python extension and example .qvf in the Advanced Analytics Extensions Group, but I don't want to spend time installing a prototype extension if the new one is out. Is it?

0 Likes
1 View
icd
Contributor III

Hi

In the June release the ODAG capability has been built into the product as navigation options which can replace the extension

thanks

Ian

0 Likes
1 View
omarbensalem
Esteemed Contributor

Hi Ian,

Can you please illustrate this with some image captures?

Thanks !

0 Likes
1 View
icd
Contributor III

Hi

Here is a little video..


Could you share how you are using the extension today/use case,


thanks

.......... Video Link : 5339

0 Likes
1 View
markodonovan
Valued Contributor

Minor point at the end of the pdf :

invistment ?

looking forward to using the new features!

Mark

0 Likes
1 View
omarbensalem
Esteemed Contributor

How are you building the generated App? In my case, I have to prepare it in a certain way with a specific syntax :

Example of one of myGeneratedApp script:

// DO NOT ALTER THIS SUBROUTINE

SUB ExtendWhere(Name, ValVarName)

  LET T = Name & '_COLNAME';

  LET ColName = $(T);

  LET Values = $(ValVarName);

  IF len(Values) > 0 THEN

   IF len(WHERE_PART) > 0 THEN

     LET WHERE_PART = '$(WHERE_PART) AND $(ColName) IN ( $(Values) )';

    ELSE

     LET WHERE_PART = ' WHERE $(ColName) IN ( $(Values) )';

    ENDIF

  ENDIF

END SUB;

// CHANGE 1: Update these SET statements to correspond to the names of the fields from your Shopping Cart app.

//           The contents inside the $() on the righ-hand-side of the first SET statement of each of these

//           must match the names of the fields from your shopping cart app that the user can create selections on.

//           If the database column name for any of the selection fields has a different name, you need to alter the

//           right hand side of the second SET statement to reflect that field's corrresponding database column name;

//  

//            All fields for On Demand are prefixed with od and the following to indicate selected or associated or NOT associated

//            ods = Selected values

//            odo  = Associated values

//            odx = Excluded vlaues

//            odso = Selected/assocaited values

//

SET Year =;

SET Year = $(odso_MyYear2_n);

SET Year_COLNAME = 'Year';

SET TerritoryCode = ;

SET TerritoryCode = $(odso_code)[2-4];

SET TerritoryCode_COLNAME = 'TerritoryCode';

SET CarSales = ;

SET CarSales = $(odso_CarSales);

SET CarSales_COLNAME = 'CarSales';

// CHANGE # 4: Replace this with your CONNECT statement

LIB CONNECT TO 'Microsoft_SQL_Server_localhost (win-d1qku4urkte_administrateur)';

// CHANGE #2:  Alter this with a leading 'WHERE <condition>' if you want your SQL statement (below)

//             to have a non-changing WHERE clause in addition to the clauses that will be inserted

//             by the shopping cart app (it is fine to leave it as is).

SET WHERE_PART = '';

// CHANGE 3: Update the list of field names here to reflect each of the field names variables you have on the

//           left hand side (assignment target) of the first SET statement of the SET statement pairs in change

//           1 above.

FOR EACH fldname IN 'TerritoryCode','CarSales','Year' //'ORIGIN', 'DEST', 'YEAR', 'QUARTER', 'ORIGIN_STATE_ABR', 'DEST_STATE_ABR', 'TICKET_CARRIER', 'FARE_CLASS'

  LET vallist = $($(fldname));

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

  IF len(vallist) > 0 THEN

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

  ENDIF

NEXT fldname

TRACE Generated WHERE clause: ;

TRACE $(WHERE_PART);

// CHANGE # 5: Replace everything EXCEPT the $(WHERE_PART) portion of the SQL SELECT statement with

//             query you wish to send to the database.  Note that you can have more than one of these

//             dynamiclly alterered SELECT statemnents by replicating the sections from CHANGE #2 thru this

//             change #5 and customize which WHERE clauses will be inserted by altering the list of fields

//             in the FOR EACH statement in Change #3.

Load*,

num(Timestamp( MyYear2_n,'YYYY-MM-DD hh:mm:ss.SSSSSS')) AS MyYear;

//num(MyYear2_n) as yearr;

LOAD Year as MyYear2_n,

  TerritoryCode as code,

  CarSales,

  [Car production],

  [Cars in use],

  [Commercial vehicle sales],

  [Commercial vehicle production],

  [Commercial vehicles in use],

  [Motorization rate];

[WorldVehicleData]:

SELECT "Year",

  TerritoryCode,

  CarSales,

  "Car production",

  "Cars in use",

  "Commercial vehicle sales",

  "Commercial vehicle production",

  "Commercial vehicles in use",

  "Motorization rate"

FROM SSIS.dbo.WorldVehicleData

$(WHERE_PART);

Then, in the selection app; I have my model and the extension that call this app

0 Likes
1 View
icd
Contributor III

The built in version is the same selection app/detail app with the variables, it also contains extra script to build the where clause as an inline load to allow more values

0 Likes
1 View
icd
Contributor III

Hi

Did you activate it through the QMC?:

Capture.JPG

0 Likes
1 View
omarbensalem
Esteemed Contributor

icd‌, I'm currently trying the Qlik Sense June 2017 server ; there is something I don't really get :

There is a published application; I want to add a new sheet ; I thus edited an existing sheet(from the base sheets) and wanted to perform my modification BUT the FIELDS logo is MISSING !!!

Capture.PNG

But I can access to the fields on the existing charts and thus change the expressions/dimensions !

Capture.PNG

Capture.PNG

Why that??

Don't tell me you've altered again the by default rules?! It makes no sense what so ever !

PLEASE help on this !

0 Likes
1 View
alex_walker
Contributor II

I think that's standard behaviour for a published app and has been on previous releases - you only see the master items in the left hand panel, but can access the field list in the expression editor. I imagine it's to promote self-service users making use of the master items...

0 Likes
1 View
icd
Contributor III

‌This has been the default behaviour since version 1.0, a published app can use the master items created by the app designer to create new visualisations

0 Likes
1 View
harishicon
New Contributor III

Hi ,

While upgrading the qliksense 3.0 to qliksense June 2017 , I am getting  error "Installation Failed".

I am using qliksense Desktop only.

Please have a look .

0 Likes
1 View
phc
New Contributor III

Hi Harish,  Unfortunately we are unable to respond to support questions here.  Personally, I upgrade with each release and have not experienced any issues.  If you are working with desktop, I would suggest uninstalling and reinstalling Qlik Sense.  Thanks PeggySue

0 Likes
1 View
Employee
Employee
0 Likes
1 View
zoltan_farkas
New Contributor III

Thank you, and the Python connector?

0 Likes
1 View
Employee
Employee

The GitHub - qlik-oss/server-side-extension: A Qlik server-side extension protocol for extending the Qli...‌ has the general overview of Server Side Extension and related documentation. At the bottom of the page you will find some examples including Python references.

1 View
luizcdepaula
Contributor II

Hi Harish,

You can only upgrade directly to Qlik Sense June 2017 if the version you have is 3.1 SR2 or higher. If not, follow the instructions below.

Upgrading from any version of Qlik Sense earlier than 3.1 SR2 to Qlik Sense June 2017 cannot be done using the setup program. To upgrade from earlier versions of Qlik Sense with a synchronized persistence model to Qlik Sense June 2017, see Upgrading to Qlik Sense June 2017 from Qlik Sense versions earlier than 3.1 SR2.

I hope it helps.

Cheers,

LD

0 Likes
1 View
sebasdpereira
New Contributor II

Hi guys. Warning!

I have upgraded to June2017, but now i must to downgrade!!.

There are two bugs:

1- Look at this simple graph. I have more than one value for the same dimension.

2- When you set persistent colors, if you set alternative dimensions this only works with one of the alternatives.

1217bb9e0ea34eb2a6bf37aa3da7bfab.png

0 Likes
1 View
robert99
Valued Contributor II

Hi Sebastian

2- When you set persistent colors, if you set alternative dimensions this only works with one of the alternatives.

This has always been a slight issue but it's worse now. Before this release if I selected 'Colors Auto' it defaulted with some charts to the selected alternative dimension. Now it doesn't. In other words coloring by dimension doesn't work with alternatives anymore. So the great new July 2017 feature (using master dimension coloring) is a bit limited if alternative are used

The obvious way for QLIK to get around this problem (and it has existed since alternatives was first introduced) is to have two selection options along with all of the dimensions. Either

  • Selected 1st Data alternative dimension
  • Selected 2nd Data alternative dimension.

This would be fine for every chart except the tree map whe three or more dimensions are used. and I don't use alternative for the tree map. For tree maps Qlik could link colors to the alternative like with tables but as a temporary fix the above should be easy to introduce.

TBH I almost always color by the selected dimension anyway so I would always select one or other of these 2 options

As a work around 'By Expression' can be used. But hopefully Qlik will sort this soon

if (wildmatch ([Product Type], 'Rhythm*' ) ,'#282828',

if (wildmatch ([Product Type], 'Herbal*' ) ,'#f8981d' ,

if (wildmatch ([Product Type], 'coco i*' ) ,'#545352' ,

if (wildmatch ([Product Type], 'Chocolate*' ) ,'#cb7c18' ,

if (wildmatch ([Product Type], 'vitamin*' ) ,'#ffcf02',

if (wildmatch ([Product Type], 'coco y*' ) ,'#7b7a78' ,

if (wildmatch ([Product Type], 'organic*' ) ,'#e3b902' ,

if (wildmatch ([VP Sales], 'April*' ) ,'#282828',

if (wildmatch ([VP Sales], 'Dan*' ) ,'#f8981d' ,

if (wildmatch ([VP Sales], 'Rand*' ) ,'#545352' ,

black()   ))))))))))

1 View
robert99
Valued Contributor II

1- Look at this simple graph. I have more than one value for the same dimension.

Are you using a time stamp formatted as a date and a stacked chart?

1 View
sirpod90
New Contributor III

The On Demand App Generation feature is  in my eyes just a better form of  Document Chaning and / or Script builder.

It's a nice feature that you able to hand over multiple parameters to other apps (I hope there are no limitations anymore, not like document chaining via URL before [2000 chars]), but the key function of an On Demand App Generation should be not to load the data again from the sources (DB/QVD).

But if I understand it right, the only way Qlik has presented, is to get the list of fields from the one app, paste to the other app and then start loading QVD's with that specified filters.

On bigger data, this concept doesn't make so much sense for me.

For example: My original App has around 20 GB of data and takes about 1,5 h to (re-)load the data from the source files. If I now use "odso_" prefix to bind the user selected fields to my template app, the template app also takes about one hour to load the data from the source.

Why does not Qlik takes the data directly from RAM???

The only work around I came up with, is to work with a binary load and short the data afterwards.

For example:

Binary [LIB://QlikSenseApps/myBigApp_ODG_Master.qvf];

// Load all data from OnDemandMaster App

SET ThousandSep='.';

SET DecimalSep=',';

SET .......

// Get "ID" filter from OnDemandMaster App

TMP_OdagBindings_ID:

LOAD * INLINE [

ID

$(odso_ID){"quote": "", "delimiter": ""}

];

// Drop all rows without the selected or associated ID's

[TMP]:

Right Keep (TABLE_WITH_ID) LOAD * RESIDENT TMP_OdagBindings_ID;

// Clean up

Drop Table TMP;

This works quit faster and just takes about 5 minutes in my example.

But still, why Qlik cannot just paste the current selected and available data from the one app to the other in RAM?

I would really like to open a new discussion about ODAG and how to handle bigger Data in Qlik in RAM.

BTW: In the huge presentation of QlikSense June they showing the new On Demand App Generation feature, but what they really showing is just a button to open another App, because they are not creating anything while the presentation.

But I like your direction you are heading and hope you will more go more into technical aspects in the future instead of announcing marketing tags

And one more question: I cannot find the Advanced properties panel. Where is it located QMC/hub? And where is it exactly???

0 Likes
1 View
icd
Contributor III

The key function of the On demand approach is to load a slice of data from source and not just to chain between in memory applications to cater for Big Data scenario's which also to allows our customers to retain data at the majority of data at source but still have the associative experience.

An example customer deployment could have a requirement to do basket analysis on billions of transactions stored in an in-memory MPP DB and they have a further requirement of allowing a section of users access to all of the data without overtly "replicating" all of this data in another layer, for example QVD files.

We can satisfy this requirement by deploying two applications, the first is an aggregated view of the underlying source (for example your 20GB app could be reduced by using GROUP BY on  a number of dimensions to reduce the size/reload time) This app would only go to a certain level of granularity.

A detail app could then be constructed (potentially with the same data model) which would allow the customer to "drill to details" accessing the billions of transaction rows with a series of filters in the where clause potentially building an app with <1M rows which could take <60secs to reload (most of our customer deployments follow this model).  Users can be "forced" to select a combination of dimensions e.g they have to select no more than 10 products/two quarters of data from the aggregated selection app to ensure the detail app returns in good time, the user can generate as many detail slices as they wish which can be configured to auto-delete on a time basis

0 Likes
1 View
sirpod90
New Contributor III

I understand your point of view, but I think most of the companies who are not in marketing or sales field have another data structure as you expect.


In your examples you have always group of details by areas, products, countries etc. But in more technical fields, we have also some groups, but if the user wants to look into a detailed problem, he also wants than to look back to rest of the data associated by the problem that is given.


For example: We have one specific part that has a failure. Now the engineer wants to find the reason for it. He can now create an on demand app by searching for the type, group or production date of the part and start analyzing. If he now finds out, we haven’t any problems in our production, but the supplier had a problem with the batch, the user has to go back and create a new on demand app for vendor batch and the product details he used before.


The problem I try to describe is we have to provide all detailed information for the engineers to find all associated information to the actual problem and not a group of information where the problem could be!

On the other hand we could create 1000 types of groups by any kind of accumulation, and would still need all details to it. That would lead us to the problem, we have always two types QVD’s, one for the group (on demand master app) and one for the detail view (template app) what makes the data redundant and what also means a lot of overflow and administration for no reward. Or on the other hand, we just have one or more QVD’s with all the information. But then we need quite a while to find all the group elements and distinct values, so the resources for that kind of calculation kills nearly our server(‘s).

The best practice would be to load everything into RAM (without any transformation, aggregation and analysis) and provide the user with data he needs from the RAM and then start analyzing.

The current concept is always to load the data twice or prepare the data for a cumulated and detailed view. But why, when it is already fast accessible in your RAM?

0 Likes
1 View