Welcome to Tuesday's edition of the Qlik Design Blog. In this entry I have the pleasure of introducing some fine work created by Clint Carr, Principal Enterprise Architect at Qlik based in Melbourne Victoria Australia. Clint has shared a document he created that outlines the procedures to automating a Qlik Sense Enterprise deployment in the cloud. Using hosted services such as Microsoft Azure or Amazon Web Services. Qlik Sense Enterprise is a superbly thorough and versatile analytics platform. So much so, that it is even possible to create automated deployment scenarios using software such as HashiCorp Terraform and our Qlik Sense Enterprise software available from cloud marketplaces such as Microsoft Azure and Amazon Web Services. Terraform is an open source tool that enables you to create infrastructure (machines and applications) based on configuration files in a safe and predictable fashion. This approach ensures the same deployment is performed each time it is executed.For an in depth look, see the attached PDF document for prerequisites and a step by step approach to setting up this type of configuration.Some benefits of this approach include:Consistency and repeat-abilityReduce riskKnowledge is shared - the process is not owned by one individualDocumented approach with source code to deploying Qlik SenseQuick and efficient installations - saving time and moneyWe'd like to thank Clint for this most valuable contribution. I will field comments questions and direct them to Clint where applicable, so please post them as you see fit. We'd love to hear from you.About Clint Carr:Clint is an Enterprise Architect in the Global Enablement, Architecture and Research (GEAR) team at Qlik. GEAR is considered a pre-sales swat team of sorts, tasked with working on the largest of Qlik's prospective customers, performing enablement for the field (pre-sales and consulting) and creating tools and products that enable the field to be better equipped to deal with their day to day tasks. His current focus is on DevOps, integration and cloud native technologies. In the five years he has worked at Qlik Clint has held various roles. Starting as a presales architect then moving into a consulting role as a Technical Architect before joining the GEAR team. Clint has been involved in some of the largest of Qlik's customers both in Australia and internationally helping them to realize the value in the platform.
...View More
In every new Qlik Sense release, we see some cool additions and features that make our life easier. All of the major ones, are discussed here, https://community.qlik.com/blogs/qlikproductinnovation/2018/09/11/qlik-sense-september-2018-has-arrived?et=blogs.comment…, but for those that work a lot with the Capability Api, there are 3 very much desired and long expected features: exportData, exportImg and exportPdf. With these, you can export any embedded object from your mashup in the above formats. You can also customize them by passing the desired options.Below are the links to the help files so you can experiment more.ExportDatahttps://help.qlik.com/en-US/sense-developer/September2018/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportData-method.htmExportImghttps://help.qlik.com/en-US/sense-developer/September2018/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportImg-method.htmExportPdfhttps://help.qlik.com/en-US/sense-developer/September2018/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/Visual…You can view all of these in action by visiting the qdt-components webpageReact template with qdt-componentsBest,Yianni
...View More
Recently my colleague Lee Matthews made me aware of a comprehensive set of videos he created based off of a free, 3 hour workshop he and his team hold on a regular basis in the ANZ region. (Australia / New Zealand). 3 hours may not seem like a long time, however it is enough time to build a rather sophisticated Qlik Sense app from start to finish. They utilize Qlik Sense Cloud as a basis for the workshop; providing a turnkey approach that requires no setup and fast delivery. Qlik Sense Cloud provides a great introduction to Qlik Sense and while it does not have all the features of the Qlik Sense Enterprise platform, the process involved in building a Qlik Sense App is the same. To further our goal of delivering analytics and insights to everyone Lee has condensed the workshop into (5) 8-15 min videos; totaling about 50 min viewing time. Watch these videos at your own leisure and even download the workshop material (attached to this document) to follow along. I hope you find these videos helpful! Thanks for this valuable contribution Lee!Workshop PlaylistThis is just another fine example of contagious enthusiasm demonstrated by our Qlik team members whom are dedicated to our customer's success.About Lee Matthews: Lee is a Principal Solution Architect and team lead with Qlik and is based in Melbourne, Australia. He joined Qlik in 2011 but has been working in the Business Intelligence field with various ERP and CRM vendors for over 20 years. Prior to that he was a management accountant. He therefore has a long history of working with data and reporting systems for organizations. When not tinkering with Qlik applications for clients, he enjoys tinkering with robots, making things out of wood and teaching these skills to his two boys.Have a comment or question? Want to suggest a post? Let us know in the comments below?
...View More
If I ask you what the alpha value means in hypothesis testing, I’d bet most of you would be able to give a correct answer right away, am I right? But you are a minority, most people in the world wouldn’t have a clue – only about 1 in 5 people today are data literate.Data literacy is the ability to read, work with, analyze, and argue with dataSome of you might argue that 4 in 5 people doesn’t really need to know what alpha value is, and surely, not everybody needs to be a data master, however being able to speak data, would help everyone, everywhere. It might give you and edge now but surely it will be vital in the future.But, let’s focus in the Enterprise, what if we turn our heads to the people making business decisions? Should they be data literate?A new research shows only 24% of business decision makers, from junior managers to the C-suite, feel fully confident in their ability to read, work with, analyze and argue with that data.We have a problemIf only 24% of business decision makers can speak data, then it means we have a problem. But don’t worry, we have a plan. Qlik is on a mission to solve this important skills gap, by empowering everyone with the ability to properly use data.We can help to fix it, and it’s free!Qlik is offering free courses that everyone can benefit from – regardless of their role, skill level, or even the BI tools they use – designed to help people and organizations understand, analyze and use data with confidence.Qlik’s learning program, is a product agnostic training package, designed to help anyone to read, work, analyze and argue with data.Get started now by taking the FREE Data Literacy Skills Assessment it's a fun 15-minute questionnaire that will tell you where you are in data literacy and what next steps you should take. Then progress to the self-paced learning modules and finally complete the program by taking the free certification exam.Some reading about the topic: https://blog.qlik.com/posts/topics/data-literacy-topic/Data Literacy Program | QlikQlik | Data Literacy CampaignI hope you find it interesting,Arturo (@arturoqv)
...View More
Hey guys - thanks for taking some time to learn more about Qlik GeoAnalytics. Continuing my series that will make you more familiar with Qlik GeoAnalytics, I'm excited to show you how to use the Binning operation, available within the Qlik GeoAnalytics connector. Think of the Binning operation as a way to cluster or consolidate multiple location points into a defined boundary. When colored by a particular measure, such as count of the number of locations in that particular defined boundary, you can easily see where areas of concern or progress are; allowing you to immediately focus your attention on those areas.What's Next? In the next part of this series, we will expand on this example and zoom into the boundary to see the underlying data points. Let me know what you think and please post your comments. If you have specific questions please post them here Qlik GeoAnalytics - our dedicated section in the forums. Myself and others will be available to further assist you.Qlik GeoAnalytics - The Binning OperationRegards,Michael Tarallo (@mtarallo) | TwitterQlikPrevious Qlik GeoAnalytics blog posts and videos in this series.Qlik Geocoding - Street Addresses and Qlik GeoAnalyticsGet Familiar with Qlik GeoAnalytics - Custom Info BubbleGet Familiar with Qlik GeoAnalytics - The "Closest" OperatorData:https://data.cityofchicago.org/Public-Safety/Crimes-2018/3i3m-jwuy/dataNOTE: Can't see the video? YouTube blocked by your organization or region? No problem, just download the attached .mp4 file to watch on your computer or mobile device.Sample .qvf file attached.
...View More
Inspecting Qlik Sense websocket communication is useful for a variety of reasons. Let’s see how to inspect websocket traffic, and then what to look for when it comes to websocket traffic from the Qlik Sense Engine.HOW TO INSPECT WEBSOCKET TRAFFICBefore you get started checking out websocket traffic from Qlik Sense, you must know how to use browser dev tools to inspect websocket traffic. Open a tab in Chrome and open the dev tools for that tab, then navigate to a Qlik Sense app or mashup. Now in dev tools, go to the network tab, and filter for WS. You should see the websocket listed, select it. Now notice the tabs for headers, frames, cookies, and timing. You can inspect request and response headers in the headers tab, see cookies sent with the request in the cookies tab, and check out the load time in the timing tab. But the frames tab is where the action is. Click on that and you can see all of the messages sent and received over the websocket.WHAT TO LOOK FOR WITH QLIK SENSE WEBSOCKET TRAFFICAll the communication with the Qlik Sense engine happens over the websocket. You can see the messages for authenticating and connecting, opening a doc, creating and fetching objects, getting layouts, and more. You’ll want to match messages sent, which are highlighted in green, with its response message. Both will have the same id.Here’s an incomplete list of good uses for checking out the websocket communication:CHECKING THE STATUS OF THE CONNECTIONThe first two frames should always be the responses for authentication and connection. In the authentication response, you can see the user id and directory, the logout uri, and whether authentication is required or not. In the connection response, you can see that the connection was successful and whether a new session was created, or a session was attached to an existing session. If the session was attached, that means its sharing the session with another existing session. This is what you would want to check if you were opening up two or more websocket connections to the same app and wanted to make sure the connections were going to share the same session. You can also see the messages sent and received when opening a doc, which can sometimes be useful debugging any issues.DEBUGGINGThis one’s kind of obvious but should be mentioned. Here’s an example. If you’re trying to embed objects and they’re not showing up on the page, you should inspect the websocket communication. You can check to make sure that a connection is made, the doc has been opened successfully, and the getObject message has been sent. Then you can check the response message to see if it tells you anything about your issue. If you try to get an object but have the wrong id, for instance, you’ll see that you don’t get an error for anything, but the response just doesn’t contain an object, which is a good indication that you just requested an object that doesn’t exist.LEARNING STUFFI like to check out the websocket communication for native Qlik Sense objects. This let’s me see how native objects do things like paginate the data on scroll, or use the beginSelections and endSelections methods, so I can get ideas for replicating similar functionality in my own custom visualizations.
...View More
Today, I am going to blog about Table functions. I came across these functions when I was exploring the various ways I can determine if a table exists in the data model. The table functions I will review today include:FieldNameFieldNumberNoOfFieldsNoOfRowsNoOfTablesTableNameTableNumberThese functions provide information about the current table being loaded or specified in the function. All of these functions should be used in the script but the NoOfRows function can also be used in a chart expression. Let’s take a closer look at these functions but first let’s load a table that we can work with.Now load the script to illustrate the functions:Here are the results of the Temp table loaded above:While the function names give you a good idea on what they are used for, let’s take a more detailed look at each one of them.FieldNameThe FieldName function takes two parameters, field number and table name, and returns the name of the respective field. Based on the script above, the FieldName function will return Name since it is field 1 in the Table1 table. Note, field numbers start with 1, not 0.FieldNumberThe FieldNumber function takes two parameters, field name and table name, and returns the number of the specified field in the table. In this case, Gender has a field number of 2 in Table1 so 2 is returned by the FieldNumber function.NoOfFieldsThe NoOfFields function takes one parameter, table name, and returns the number of fields in the table that was specified. The table name parameter must be for a table that is already loaded in the data model. It cannot be for the table that is currently being loaded. For example, in the script above, the table Temp could not be used in the NoOfFields function since that is the table being loaded.NoOfRowsThe NoOfRows function also takes one parameter, table name, and returns the number of rows in the specified table. Like the NoOfFields function, this function must be used for a table that was previously loaded.NoOfTablesThe NoOfTables function does not take any parameters and returns the number of tables that have previously been loaded in the data model. Based on the script above, the NoOfTables function will return 1 for the Table1 table. Note that it does not include the Temp table that is being loaded when this function executes.TableNameThe TableName function takes one parameter, table number, and returns the name of the table with the respective table number.TableNumberThe TableNumber function takes one parameter, table name, and returns the number of the table with the respective table name. Note that the table number starts with 0 and not 1 so TableNumber(Table1) will return 0 since Table1 was the first table loaded.Hopefully, you have learned something new and found this useful. Table functions provide information about the tables and fields that have been loaded in the data model. If you would like more information, check out the Qlik Help site.Thanks,Jennell
...View More
Qdt-components is a library that we've created to support the Demo Team's work.In the past I talked about how we can use it with various frameworks, qdt-components - A Components Library that can be used in simple Html, Angular 5 and React and as a Wordpress plugin, qdt-components - A Wordpress plugin.I have also shared with you, some of the components with examples on how to use themqdt-components - Horizontal Barchart by Picasso.js & Selection Toolbar and, Qdt-components & Picasso.js - More Charts! (Custom Selection Toolbar, Picasso Horizontal/Vertical Barchart, Pie Chart, Scotterplot, Line Chart and Combo Chart)Since then, we have added some more components. Below are the latest additions with their examples on how to use them in your websites. Here are the latest additions with v1.3.5Stacked Bar Chart (https://webapps.qlik.com/qdt-components/react/index.html#/stacked-barchart)How to Embed object from 2 different apps (https://webapps.qlik.com/qdt-components/react/index.html#/embed-object-multi-app)Table with the Visualization API (https://webapps.qlik.com/qdt-components/react/index.html#/table)Table with the Engine API (https://webapps.qlik.com/qdt-components/react/index.html#/table-engine)Search with the results in the dropdown from the Engine API (https://webapps.qlik.com/qdt-components/react/index.html#/search)Custom Filters as a Dropdown, as a list object or as a horizontal tabular menu (https://webapps.qlik.com/qdt-components/react/index.html#/filters) andVertical Gauge indicators with Picasso.js (https://webapps.qlik.com/qdt-components/react/index.html#/gauge)Range Area with Picasso.js (https://webapps.qlik.com/qdt-components/react/index.html#/picasso-range-area-chart)Create your custom chart based on the already predefined components (https://webapps.qlik.com/qdt-components/react/index.html#/picasso-custom-chart)EnjoyYianni
...View More
My friend and colleague bps (Patric Nordstron), Sr. Product Manage for Qlik GeoAnalytics, recently made me aware of some pretty cool tips and tricks he developed that allow you to customize your info bubbles when using Qlik GeoAnalytics map objects. It is written in a post here: Adding a Sense chart into a Qlik GeoAnalytics map info bubble. I though this was a really clever way of not only providing additional information on top of your Qlik GeoAnalytics maps, but also a great way to showcase the power of our Qlik Sense APIs. I decide to create a quick video on the topic as part of my series on making you more familiar with Qlik GeoAnalytics. Let us know what you think! Enjoy.Qlik GeoAnalytics - Custom Info BubbleRegards,Mike Tarallo - TwitterQlikCan't see the video? YouTube blocked by your region or organization? Download the .mp4 video to watch on your computer or mobile device.Resources:Part 1: Qlik Geocoding - Street Addresses and Qlik GeoAnalyticsPart 2: Get Familiar with Qlik GeoAnalytics - The "Closest" Operator
...View More
A few weeks ago, Francis wrote a piece here about the (formerly) secret developer menu accessible via URL, Developer menu is a great finding but is not the only one URL hack available. These are some of the URL “hacks” I use:/options/developerMore info here: Developer menu in Qlik Sense client/language/language_keyAdding /language/key will change the client language for that tab session. Remember you can always check the available client languages by checking Dev Hubhttps://localhost:4848/app/app_id/sheet/sheet_id/state/analysis/language/es_ES/theme/theme nameLikewise, you could change the theme of an app by specifying the theme name in the URL. Also remember you can check the available themes in Dev Hub.https://localhost:4848/app/app_id/sheet/sheet_id/state/analysis/theme/qdt theme/identity/idBy specifying an identity id you can create selection realms. For example, you could have 2 different tabs open in the same browser as:https://localhost4848/app/app_id/sheet/sheet_id/state/analysis/identity/1https://localhost:4848/app/app_id/sheet/sheet_id/state/analysis/identity/2Selections performed under “identity 1” won’t impact on the tab session “identity 2”, alternatively you could share selections in different browsers by using the same identity in each one of them./ttl/secondsAdding /ttl/ and a number representing seconds will override the settings of session-expiry time in the server, setting it up to the number specified in seconds. For example, adding 1800 will set the expiration time for the session to 30 minutes.https://localhost:4848/app/app_id/sheet/sheet_id/state/analysis/ttl/1800As a general disclaimer, please note that anything that isn't documented or officially supported is subject to change in the future. Handle it with care.Arturo (@arturoqv)
...View More