Skip to main content

Blogs

This space offers a variety of blogs, all written by Qlik employees. Product and non product related.

Announcements
Qlik Community Office Hours, March 20th. Former Talend Community users, ask your questions live. SIGN UP
cancel
Showing results for 
Search instead for 
Did you mean: 

Design

The Design blog is all about product and Qlik solutions, such as scripting, data modeling, visual design, extensions, best practices, and more!

Product Innovation

By reading the Product Innovation blog, you will learn about what's new across all of the products in our growing Qlik product portfolio.

Support Updates

The Support Updates blog delivers important and useful Qlik Support information about end-of-product support, new service releases, and general support topics.

Qlik Academic Program

This blog was created for professors and students using Qlik within academia.

Community News

Hear it from your Community Managers! The Community News blog provides updates about the Qlik Community Platform and other news and important announcements.

Qlik Digest

The Qlik Digest is your essential monthly low-down of the need-to-know product updates, events, and resources from Qlik.

Qlik Education

The Qlik Education blog provides information about the latest updates of our courses and programs with the Qlik Education team.

Subprocessors List

Qlik Subprocessors General Data Protection Regulation (GDPR).

Japan

Qlik Community blogs for our customers and partners in Japan.

Recent Blog Posts

  • Image Not found

    Design

    Chart Level Scripting - Use Cases, Samples and Examples

    I love this new capability - Chart Level Scripting! This takes generating insights to a whole new level. No longer am I required to write complex reporting frameworks or move complex logic to the backend data model. Read on!
  • qlik-community-blogs.jpg

    Design

    Basics for complex authorization

    Authorization is about determining which data a user is allowed to see. QlikView has several different ways by which you can reduce the data so that the user only gets to see the data he is allowed to see.
  • Image Not found

    Support Updates

    Qlik Sense Migration: Migrating your Entire Qlik Sense Environment

    Hi everyone, For various and valid reasons, you might need to migrate your entire Qlik Sense environment, or part of it, somewhere else. In this post, I’ll cover the most common scenario: a complete migration of a single or multi-node Qlik Sense system, with the bundled PostgreSQL database (Qlik Sense Repository Database service) in a new environment. So, how do we do that? Introduction and preparationBackup your old environmentDeploy and rest... Show More

    Hi everyone,

    For various and valid reasons, you might need to migrate your entire Qlik Sense environment, or part of it, somewhere else.

    In this post, I’ll cover the most common scenario: a complete migration of a single or multi-node Qlik Sense system, with the bundled PostgreSQL database (Qlik Sense Repository Database service) in a new environment.

    So, how do we do that?

     

     

    Introduction and preparation

    Let’s start with a little bit of context: Say that we are running a 3 nodes Qlik Sense environment (Central node / Proxy-Engine node / Scheduler node).

    On the central node, I also have the Qlik shared folder and the bundled Qlik Sense Repository Database installed.

    This environment has been running well for years but I now need to move it to a brand new hardware ensuring better performance. It’s not possible to reinstall everything from scratch because the system has been heavily used and customized already. Redoing all of that to replicate the environment is too difficult and time-consuming.  

    I start off with going through a checklist to verify if the new system I’m migrating to is up to it:

    And then I move right over to…

     

    Backup your old environment

    The first step to migrate your environment in this scenario is to back it up.

    To do that, I would recommend following the steps documented on help.qlik.com (make sure to select your Qlik Sense version top left of the screen).

    https://help.qlik.com/en-US/sense/April2019/Subsystems/PlanningQlikSenseDeployments/Content/Sense_Deployment/Backing-up-a-site.htm

    Once the backup is done you should have:

    • A backup of the database in .tar format
    • A backup of the content of the file share which includes your applications, application content, archived logs, extensions,…
    • Backups of any data source files that need to be migrated and are not stored in the shared folder like QVDs

    Then we can go ahead and…

     

    Deploy and restore the new central environment

    The next steps are to deploy and restore your central node. In this scenario, we will also assume that the new central node will have a different name than the original one (just to make things a bit more complicated 😊).

    Let’s start by installing Qlik Sense on the central node. That’s as straightforward as any other fresh install.

    You can follow our documentation. Before clicking on Install simply uncheck the box “Start the Qlik Sense services when the setup is complete.

    The version of Qlik Sense you are going to install MUST be the same as the one the backup is taken on.

    Now that Qlik Sense is deployed you can restore the backup you have taken earlier into your new Qlik Sense central node following Restoring a Qlik Sense site.

    Since the central node server name has also changed, you need to run a Bootstrap command to update Qlik Sense with the new server name. Instruction provided in Restoring a Qlik Sense site to a machine with a different hostname.

    The central node is now almost ready to start.

    If you have changed the Qlik Share location, then the UNC path has also changed and needs to be updated.

    To do that:

    1. Go to C:\Program Files\Qlik\Sense\Repository\Util\QlikSenseUtil
    2. Run QlikSenseUtil.exe as Administrator
    3. Click on Connect to the database and enter the credential to connect to the new PostgreSQL database
    4. Click on Service Cluster and press OK. This should display the previously configured UNC Path
    5. You simply need to update each path, save and start/restart all the Qlik sense services.

      01.png

    At this point make sure you can access the Qlik Sense QMC and Hub on the central node. Eventually, check that you can load applications (using the central node engine of course). You can also check in the QMC > Service Cluster that the changes you previously made have been correctly applied.

    Troubleshooting tips: If after starting the Qlik Sense services, you cannot access the QMC and/or Hub please check the following knowledge article How to troubleshoot issue to access QMC and HUB

     

    What about my rim nodes?

    You’ve made it here?! Then congratulation you have passed the most difficult part.

    If you had already running and configured rim nodes in your environment that you now need to migrate as well, you might not want to remove them from Qlik Sense to add the new ones since you will lose pretty much all the configuration you have done so far on these rim nodes.

    By applying the following few steps I will show you how to connect to your “new” rim node(s) and keep the configuration of the “old” one(s).

    Let’s start by installing Qlik Sense on each rim node like it was a new one.

    The process is pretty much the same as installing a central node except that instead of choosing “Create Cluster”, you need to select “Join Cluster

    Detailed instruction can be found on help.qlik.com: Installing Qlik Sense in a multi-node site

    Once Qlik Sense is installed on your future rim node(s) and the services are started, we will need to connect to the “new” Qlik Sense Repository Database and change the hostname of the “old” rim node(s) to the “new” one so that the central node can communicate with it.

    To do that install PGAdmin4 and connect to the Qlik Sense Repository Database. Detailed instruction in Installing and Configuring PGAdmin 4 to access the PostgreSQL database used by Qlik Sense or NPrinting knowledge article.

    Once connected navigate to Databases > QSR > Schemas > public > Tables

    You need to edit the LocalConfigs and ServerNodeConfigurations table and change the Hostname of your rim node(s) from the old one to the new corresponding one (Don’t forget to Save the change)

    LocalConfigs table

    02.png

     

    ServerNodeConfigurations table

    03.png

     

    Once this is done, you will need to restart all the services on the central node.

    When you have access back, login to the QMC and go to Nodes. Your rim node(s) should display the following status, “The certificate has not been installed

    04.png

     

    From this point, you can simply select the node, click on Redistribute and follow the instruction to deploy the certificates on your rim node. After a moment the status should change and you should see the services being up and running.

    Do the same thing on the remaining rim node(s).

    Troubleshooting tips: If the rim node status is not showing “The certificate has not been installed” it means that either the central node cannot reach the rim node or the rim node is not ready to receive new certificates.

    Check that the port 4444 is opened between the central and rim node and make sure the rim node is listening on port 4444 (netstat -aon in command prompt).

    Still no luck? You can completely uninstall Qlik Sense on the rim node and reinstall it.

     

    Finalizing your migration

    At this point, your environment is completely migrated and most of the stuff should work.

    Data Connection

    There is one thing to consider in this scenario. Since the Qlik Sense certificates between the old environment and the new one are not the same, it is likely that data connections with passwords will fail.  This is because passwords are saved in the repository database with encryption.  That encryption is based on a hash from the certs.  When the Qlik Sense self-signed cert is rebuilt, this hash is no longer valid, and so the saved data connection passwords will fail.  You will need to re-enter the passwords in each data connection and save.  This can be done in the QMC -> Data Connections.

    See knowledge article: Repository System Log Shows Error "Not possible to decrypt encrypted string in database"

    Licensing

    Do not forget to turn off your old Qlik Sense Environment. As per your license agreement, you can only use one license per active Qlik Sense environment. Reach out to your account manager for more details.

     

    Best practices

    Finally, don’t forget to apply best practices in your new environment:

     

     

     

    Show Less
  • Image Not found

    Design

    Dialing it in with Gauges

    An overview of Gauges and how to use them within Qlik Sense.
  • Image Not found
  • Image Not found

    Qlik Academic Program

    Welcome to our new Educator Ambassador, Dr. K Kalaiselvi!

    We are excited to welcome our new Educator Ambassador for 2024, Dr. K Kalaiselvi from Kristu Jayanti College, Bangalore! She is an Associate Professor with over 15 years of academic experience in roles as a J2EE developer with the Ministry of Electronics and Information Technology ( MEIT), Government of India, and Singapore Telecommunications, Government of Singapore.
  • qlik-community-blogs.jpg

    Design

    Circular References

    There are two Swedish car brands, Volvo and SAAB. Or, at least, there used to be... SAAB was made in Trollhättan and Volvo was – and still is – made in Gothenburg.Two fictive friends – Albert and Herbert – live in Trollhättan and Gothenburg, respectively. Albert drives a Volvo and Herbert drives a SAAB.If the above information is stored in a tabular form, you get the following three tables:Logically, these tables form a circular reference: The fi... Show More

    There are two Swedish car brands, Volvo and SAAB. Or, at least, there used to be... SAAB was made in Trollhättan and Volvo was – and still is – made in Gothenburg.

    Two fictive friends – Albert and Herbert – live in Trollhättan and Gothenburg, respectively. Albert drives a Volvo and Herbert drives a SAAB.

    If the above information is stored in a tabular form, you get the following three tables:

    Tables.png

    Logically, these tables form a circular reference: The first two tables are linked through City; the next two through Person; the last and the first through Car.

    Further, the data forms an anomaly: Volvo implies Gothenburg; Gothenburg implies Herbert; and Herbert implies SAAB. Hence, Volvo implies SAAB – which doesn’t make sense. This means that you have ambiguous results from the logical inference - different results depending on whether you evaluate clockwise or counterclockwise.

    If you load these tables into QlikView, the circular reference will be identified and you will get the following data model:

    Circular reference.png

    To avoid ambiguous results, QlikView marks one of the tables as “loosely coupled”, which means that the logical inference cannot propagate through this table. In the document properties you can decide which table to use as the loosely coupled table. You will get different results from the logical inference depending on which you choose.

    So what did I do wrong? Why did I get a circular reference?

    It is not always obvious why they occur, but when I encounter circular references I always look for fields that are used in several different roles at the same time. One obvious example is if you have a table listing external organizations and this table is used in several roles: as Customers, as Suppliers and as Shippers. If you load the table only once and link to all three foreign keys, you will most likely get a circular reference. You need to break the circular reference and the solution is of course to load the table several times, once for each role.

    In the above data model you have a similar case. You can think of Car as “Car produced in the city” or “Car that our friend drives”. And you can think of City as “City where car is produced” or “City where our friend lives”. Again, you should break the circular reference by loading a table twice. One possible solution is the following:

    Tables2.png

    In real life circular references are not as obvious as this one. I once encountered a data model with many tables where I at first could not figure out what to do, but after some analyzing, the problem boiled down to the interaction between three fields: Customers, Machines and Devices. A customer had bought one or several machines; a device could be connected to some of the machine types – but not to all; and a customer had bought some devices. Hence, the device field could have two roles: Devices that the customer actually had bought; and devices that would fit the machine that the customer had bought, i.e. devices that the customer potentially could buy. Two roles. The solution was to load the device table twice using different names.

    Bottom line: Avoid circular references. But you probably already knew that…

    HIC

    Further reading on Qlik data modelling:

    To Join or not to Join

    Synthetic Keys

    Fan traps and Chasm traps

    Show Less
  • Image Not found

    Support Updates

    Release Cadence Update: Qlik Sense Enterprise Client-Managed

    Beginning with the May 2024 release, Qlik Sense Enterprise Client-Managed will release two major releases a year (May and November).  This adjustment aligns our release cycle with the preferred cadence of our customers, enhancing communication around our major releases. Qlik continues to add new functionality to Qlik Sense Client-Managed versions following their initial release to the cloud.  As always, we will continue to deliver patches as need... Show More

    Beginning with the May 2024 release, Qlik Sense Enterprise Client-Managed will release two major releases a year (May and November). 

    This adjustment aligns our release cycle with the preferred cadence of our customers, enhancing communication around our major releases. Qlik continues to add new functionality to Qlik Sense Client-Managed versions following their initial release to the cloud.  As always, we will continue to deliver patches as needed under our Release Management Policy.  

    We look forward to helping you optimize your release experience. Be sure to follow the release notes area in Qlik Community and review our updated policy.

    Show Less
  • Image Not found

    Design

    Accessibility Best Practices for Qlik Sense

    Web accessibility is a topic that's not often brought up when planning to build an experience on the web. It is however crucial to acknowledge the importance of ensuring that all users are able to access the content you create as it helps to eliminate barriers to access valuable information and proactively creates an inclusive environment for people regardless of their visual, cognitive, physical, or auditory disabilities. You can read more about... Show More

    Web accessibility is a topic that's not often brought up when planning to build an experience on the web. It is however crucial to acknowledge the importance of ensuring that all users are able to access the content you create as it helps to eliminate barriers to access valuable information and proactively creates an inclusive environment for people regardless of their visual, cognitive, physical, or auditory disabilities.

    You can read more about Qlik’s commitment to making products and services available to everyone here. Qlik Sense comes with features and improvements aimed at accessibility compliance with WCAG 2.0 standards.

    Accessibility in Qlik Sense

    The product features in Qlik Sense include:

    • Default color schemes with high contrast
    • Support for keyboard navigation
    • Keyboard shortcuts
    • Screen reader support (A screen reader - NVDA is supported - can be used to interact with apps built-in Qlik Sense)

    Note: Navigation through the hub, app sheets, toolbar, and data visualizations can be done using a keyboard only for screen reader users. All key shortcuts can be found on this handy help page.

    Animation-Keyboard.gif

    Recommendations when building apps and visualizations

    • Overall app best practices:
      • Aim for a simplified design and decluttered apps
      • Aim for a simple/flat structure instead of a complicated grid when building sheets (This makes it easier for users with keyboard-only navigation to find their way around the page)
      • Build sheets so that the content provides a general overview first, then goes into details later on
      • Include descriptive titles that make it easier for users navigating with a screen reader to understand the context of the current object

     

    • Accessible visualizations best practices:
      • Color accessibility: since the spectrum of colors is narrower for people who have certain visual impairments, they may interpret visualizations differently than intended.
        • For instance: a red and green KPI can be confusing if users see those colors as more yellow and brown. In this case, including shapes with colors can help make it more accessible.
        • Stick to standard colors or safe palettes and test for sufficient color contrast ratio to allow better readability.
      • Using charts that include the accessible built-in Data View
      • Providing context whenever possible through labels and clear text descriptions (titles, subtitles, and footers)
      • Limiting values in dimensions to a minimum when possible
      • Make use of separation and space, for instance, adjusting the spacing between bars and segments in a bar chart can help users distinguish sections of a chart

    Example:
    (Source - https://accessibility.psu.edu/images/charts/)

    chartbarcolor-bad.jpg   
    Inaccessible Bar Chart: Information is conveyed only by color     

    chartbarcolor-good.jpg
    Accessible version of the Bar Chart: labels for each category added to the bottom

    Accessibility in Mashups 

    When it comes to building web apps or mashups that integrate with Qlik Sense, developers should plan for creating an accessible experience. 

    It is true that there are challenges in doing so especially when relying on direct iframe embeds or certain libraries that have limited support for accessibility features or are still in the works. But leveraging the available methods, enforcing best practices stated above, and making fallbacks available for users can be a good start.

    If using the Capability API, you can make use of the Visualization API's toggleDataView method as described here to change between a visualization and a data view.

    Otherwise, a screen-reader only text description can be added to explain this feature which will be hidden to users of the site via CSS.

     

     

    <h3>Nebula.js Rendered Line Chart</h3>
    <p>A description of the chart that explains in detail the chart for screen readers</p>
    <div className="sr-only">[This text is hidden for screen readers only] Explain here how to toggle between the chart view and the data table view by clicking on the Enter key and the Escape key and navigating the rows with Up/Down arrows.</div>
    <div id="barViz" ref={elementRef} style={{ height: 500}} onKeyDown={handleKeyDown}></div>

     

     

    If working with a third party library such as D3.js, you can use attributes to add descriptive text to your charts.

     

     

    // append the svg object to the body of the page
    var svg = d3.select("#" + id)
     .append("svg")
       .attr("width", width + margin.left + margin.right)
       .attr("height", height + margin.top + margin.bottom)
       .attr("role", "img")
       .attr("aria-label", "Include a clear description here including the type of the chart, the data represente, and the overall trend")
      .append("g")
        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

     

     

    I have put together a basic example in this github repo where you can explore the code.

    I hope you found this post helpful and it helped motivate you to introduce accessibility into your development workflow. If you have techniques or ideas that you already use, please do not hesitate to share them below!

    Show Less
  • qlik-community-blogs.jpg

    Product Innovation

    March Ahead: Qlik Cloud Data Integration's Latest Innovations

    Buckle up, data wizards and dashboard divas! Our March release continues to deliver features so hot that it’ll melt the winter snow off your driveway. This month, we’ve focused on capabilities to enhance your data management user experience. So, let’s dive right in!
  • Image Not found

    Design

    Bookmarks

    Bookmarks allow users or developers to save a selection state in an app. They are useful when a user would like to save their selections in an app to view later or to share with others. For developers, bookmarks are useful if you would like to redirect a user to a specific sheet, with selections, when they open an app. Let's begin by looking at how to create a bookmark. First, go to the sheet that you would like to bookmark and make sure your sel... Show More

    Bookmarks allow users or developers to save a selection state in an app. They are useful when a user would like to save their selections in an app to view later or to share with others. For developers, bookmarks are useful if you would like to redirect a user to a specific sheet, with selections, when they open an app.

    Let's begin by looking at how to create a bookmark. First, go to the sheet that you would like to bookmark and make sure your selections are already made. Then click on Bookmarks in the toolbar.

    toolbar.png

     

    The Bookmarks window will open showing any bookmarks that have already been created. There is also a Create new bookmark button that can be clicked to create a new bookmark. After clicking the Create new bookmark button, the Create bookmark dialog window opens.

    create.pngHere is where you can give the bookmark a name, add a description, and set some optional settings. By default, the Save sheet location is checked. This will save the sheet you are on when you created the bookmark and will navigate the user to this sheet when the bookmark is applied. The Save layout option will save the layout of the sheet and will apply that layout when the bookmark is applied. This is useful if you have made any layout changes on the sheet, such as expanding a pivot table or sorting a chart and want the bookmark to maintain the layout. The last option is to Save variable state in bookmarks. This option will save the current state of any variables when this bookmark is created. Once the bookmark is created, the user can use it at any time to return to the bookmarked state.

     

     

    Let’s look at some other options that are available when you right click on the name of a bookmark.

    options.png

    • Apply bookmark – will apply bookmark selections and layout and clear any previous selections.
    • Apply selections only - will just apply the selections of the bookmark to the app, clearing any previous selections. It will not apply any layout settings if they were saved with the bookmark.
    • View details – will show the details of the bookmark.
    • Copy link - will copy the URL for the bookmark so that it can be shared with others. Note, the bookmark will need to be made public before it can be shared. If you make a bookmark public, anyone can see and use it and you are no longer the owner, unless it is made private again.
    • Set as default bookmark - will redirect users to the sheet, layout and selections that are saved in the bookmark when the app is opened (instead of the app overview).
    • Delete – will delete the bookmark.

    There are also many ways to apply a bookmark. A bookmark can be applied from the app overview by clicking Bookmarks or the toolbar of a sheet. A bookmark can be indirectly applied by using a button, for instance, and setting the action to apply the bookmark.

    button.png

     

     

     

     

     

     

     

     

     

     

     

    Bookmarks can also be used in set analysis expressions and applied to a visualization. In the expression editor, the bookmark can be inserted as seen below or can be used by name.

    expression.png

    Example expressions using the bookmark name:

    expr1.png

     

    expr2.png

     

     

     

     

     

    These expressions will apply the bookmark to the chart, much like when you use set analysis.

    A bookmark can be edited if the name, description, or selections in the bookmark need to change. There is no longer the need to delete and create a bookmark if a change needs to be made to the selections. To edit a bookmark, click on the Bookmarks button in the toolbar and then click the Details icon next to the bookmark you would like to edit or right click on the bookmark and select View details.

    details.png

     

     

     

     

     

     

    From the details view, you can select the edit icon to make changes to the name or description of the bookmark. Once done, you can click the check mark to stop editing or the update icon to also update the bookmark with the current selections.

    editupdate.png

     

     

     

     

     

     

    Also note that possible alternate states are visible when editing a bookmark. If there were selections made in these states when the bookmark was created, they will be visible here as well. Users have the option to copy the set expression for the bookmark if they would like to use it elsewhere in the app.

    Bookmarks are a great tool for your own personal use but also for collaboration. They are easy to create and edit and take the legwork out of remembering what selections were applied when you want to return to a previous viewed state or share an insight with a colleague. Check out Qlik Help to learn more.

    Thanks,

    Jennell

    Show Less
  • qlik-community-blogs.jpg

    Explore Qlik Gallery

    Central Telefônica

    Central TelefônicahorusIn this application, we evaluate and analyze all calls passing through the telephone exchange. Being able to analyze the entries, exits, and the time of these calls. Evaluate the distribution by state, average time per call, by extension and other visions for any differente cases.DiscoveriesWith this application it was possible to analyze the call time of each extension, consequently checking the calls that actually had com... Show More
    Show Less
  • qlik-community-blogs.jpg

    Explore Qlik Gallery

    Consig Product

    Consig ProductHORUSCDASmart solution for selling creditDiscoveriesincredible insights about the growth of the companyImpacthelps a lot in the partners accompaniment beside the production improvementAudiencedirectors now can have a direct product overview and investigate how your contracts are walkingData and advanced analyticsHelped unravel the production of the teams of the agent hierarchy
  • Image Not found

    Design

    Checkout the New Pivot Table!

    Unlock the power of data with our new, redesigned Pivot Table available in the Visualization Bundle.
  • qlik-community-blogs.jpg

    Community News

    New AI/ML Area in Forums!

    A few more changes to the navigation including a new AI/ML area!
  • qlik-community-blogs.jpg

    Community News

    Marching towards a Simplified Nav

    Read more about our enhancements for February 2024.
  • Image Not found

    Qlik Academic Program

    Welcome Priscila Papazissis-Qlik Educator Ambassador for 2024!

    In this weeks blog we meet Priscila Papazissis, a new Educator Ambassador for 2024 as well as a Qlik Luminary for the second year!
  • Image Not found

    Support Updates

    Entitlement Analyzer for Qlik Sense Enterprise SaaS (Cloud only)

    We are happy to share with you the new Entitlement Analyzer for Qlik Sense Enterprise SaaS! This application will enable you to answer questions like:  How can I track the usage of my Tenant over time? How are my entitled users using the Tenant?  How can I better understand the usage of Analyzer Capacity vs. Analyzer & Professional Entitlements?  The Entitlement Analyzer app provides insights on:  Entitlement usage overview across the Tenant ... Show More

    We are happy to share with you the new Entitlement Analyzer for Qlik Sense Enterprise SaaS! This application will enable you to answer questions like: 

    • How can I track the usage of my Tenant over time? How are my entitled users using the Tenant? 
    • How can I better understand the usage of Analyzer Capacity vs. Analyzer & Professional Entitlements? 

    Entitlement Analyzer.png

    The Entitlement Analyzer app provides insights on: 

    • Entitlement usage overview across the Tenant 
    • Analyzer Capacity – Detailed usage data and a predication if you have enough 
    • How users are using the system and if they have the right Entitlement assigned to them 
    • Which Apps are used the most by using the NEW "App consumption overview" sheet
    • And much more! 

     

    Analyzer.JPG

     

    The Entitlement Analyzer uses a new API Endpoint to fetch all the required data and will store the history in QVD files to enable even better Analytics over time. 

     A few things to note: 

    • This app is provided as-is and is not supported by Qlik Support. 
    • It is recommended to always use the latest app. 
    • Information is not collected by Qlik when using this app. 

     

    The app as well as the configuration guide are available via GitHub, linked below. 

     

    Any issues, questions, and enhancement requests should be opened on the Issues page within the app’s GitHub repository.

    Be sure to subscribe to the Qlik Support Updates Blog by clicking the green Subscribe button to stay up to date with the latest Qlik Support announcements. Please give this post a like if you found it helpful! 

    Kind regards, 

    Qlik Platform Architects

     

    Additional Resources:

    Our other monitoring apps for Qlik Cloud can be found below.

    Show Less
  • Image Not found

    Design

    Conditional Show/Hide Dimensions and Measures in a Chart

    Conditional show or hide is available in line and bar charts giving the user the ability to toggle dimensions or measures on or off in a single chart. This allows developers to customize line and bar charts and save space by using one chart to show various metrics and dimensions. Let’s look at a simple way of using this feature to show or hide lines in a line chart. In the Overall Equipment Efficiency demo found on the Demo Site, there is a line ... Show More

    Conditional show or hide is available in line and bar charts giving the user the ability to toggle dimensions or measures on or off in a single chart. This allows developers to customize line and bar charts and save space by using one chart to show various metrics and dimensions. Let’s look at a simple way of using this feature to show or hide lines in a line chart. In the Overall Equipment Efficiency demo found on the Demo Site, there is a line chart accompanied by buttons that are used to toggle the lines on and off in the line chart.

    demo.pngThis is done by using variables. When each button is clicked, the respective variable is toggled from 0 to 1 or 1 to 0 depending on its current value. See the value expression in the image below.

    variable.png

     

     

     

     

     

     

     

     

     

     

     

    In the measure expression in the line chart, this variable is checked to determine if the expression should be evaluated and displayed or if the measure should be set to null.

    if.png

     

    This is a perfectly good way to toggle the lines, but with the ability to use conditional show and hide in line and bar charts, this process can be simplified. First, in the measure expression, we no longer need to use an if statement which can help reduce calculation time. We can simply use our normal expression and the “Show measure if” setting, with the respective variable, to evaluate if a line should be shown in the visualization or not.

    show measure if.png

     

     

     

    The “Show measure if” and “Show dimension if” settings evaluate the expression and will show the line if the expression evaluates to true. In my example, vShowOEE will be either 1 or 0. If it is 1, the line will be displayed. If it is 0, then it will not be displayed. We can continue to use the buttons to toggle the respective variable (from 1 to 0 and vice versa) for each line.

    My example is basic, but more complex expressions can be used as well. For example, you may want to show/hide lines based on a selection or a calculated value or you may want to use some business logic to determine which dimension or measure should be displayed. The expression can be as simple or complex as needed, as long as it returns a true or false value. Keep in mind, that this show setting is optional and can be left blank. When no expression is entered, the line (or bar) is displayed.

    There are a few limitations of this new feature to be aware of: 1) Custom tooltips are disabled when using a conditional dimension, 2) Time series forecasting is not available when using conditional dimensions or measures. While the “Show measure if” and the “Show dimension if” can both be used in the same chart, it is recommended that you use only one at a time. Check out Qlik Help to learn more and test this new feature out in your next line or bar chart.

    Thanks,

    Jennell

    Show Less
  • Image Not found

    Design

    Making a Multilingual Qlik Sense App

    A colleague of mine had translated two demos from the Demo Site to Japanese and wanted to know if we could post them on the Demo Site alongside the English versions. We decided that it would be best to combine the English and Japanese versions into one multilingual Qlik Sense app making it easier for us to add additional languages to the app as needed. It was an easy process and required only a few steps:Create a translation sheet with all the la... Show More

    A colleague of mine had translated two demos from the Demo Site to Japanese and wanted to know if we could post them on the Demo Site alongside the English versions. We decided that it would be best to combine the English and Japanese versions into one multilingual Qlik Sense app making it easier for us to add additional languages to the app as needed. It was an easy process and required only a few steps:

    1. Create a translation sheet with all the languages that will be available in the app
    2. Update the script to add a table of the translations and a list of the languages available in the app
    3. Add a Language filter pane to every sheet in the app that allows only one selected value
    4. Update sheet names, chart titles, subtitles and labels with an expression that will display the text in the selected language

    Create Translation Sheet

    To begin the process of making a demo multilingual, I created an Excel file with all the languages that are to be included in the app. Below is a snippet of the worksheet. The first column, Index, has a unique value which will be used in the charts and expressions to indicate what data should be displayed. The second and third columns are the languages to be used in the app. An additional column can be added for additional languages that need to be added to the app. In this scenario, I entered all the English text (sheet names, chart titles and subtitles, labels and text) and then using the Japanese version of the app, I entered the respective Japanese text. If I did not have the Japanese version of the app, I would have shared the Excel file with someone who could enter the Japanese translations for me. Preparing the Excel file in this format makes it easy to add additional languages to the app without having to update the QVF.

    Snippet of Excel translation sheetSnippet of Excel translation sheet

    Update the Script

    Once the translation sheet was created, it needed to be loaded into the data model. The script below is what I added to the demo.

    script.png

    On line 1, the HidePrefix system variable is used to hide all fields that begin with “#.” Starting on line 3, the Excel file is loaded. Once it is loaded, the vLanguage variable is set to the expression “=Minstring(#LANGUAGE).” This is an important step and we will take a closer look at this when we update the front-end. On line 13, the languages from the Excel file are loaded - users can select the language they would like to view from this list. These languages are then stored in the #LANGUAGE field which will be hidden from the user (since it starts with “#”).

    Add Language Filter

    One each sheet in the app, I added a Language filter pane using the dimension #LANGUAGE that was created in the script. Once the script is reloaded with the HidePrefix variable, the #LANGUAGE field will not be visible, but you can still use it as the dimension in the Language filter pane. I needed to see the field temporarily so I commented out the HidePrefix line in the script and reloaded so I could change a setting on the field. I only want the user to be able to select one Language at a time, so I needed to check the “Always one selected value” checkbox in the Field settings of the #LANGUAGE field. (Right click on the #LANGUAGE field and select Field settings to see the window below).

    Field settings dialog windowField settings dialog window

    Once my settings are saved, I uncommented the HidePrefix line and reloaded the app to hide the #LANGUAGE field again. The filter pane will look like this (image below) and only one language can be selected at any given time. When a language is selected, the vLanguage variable (that was created in the script) will store the language. This variable is used later when updating the text in the UI.

    Language filter paneLanguage filter pane

    Update Front-End

    Now the last step is to update everything in the app that should be translated. In this scenario, I updated sheet names, chart titles and subtitles, chart labels, KPI text and text on the sheets. Here is an example of how I updated the title of the Language filter pane. In the title field, I entered:

    index.png

    In the snippet below from the Excel translation sheet, the Index is 64 for the text “Language” which is why I used it in the expression above for the title of the Language filter pane. This expression will return either the English or Japanese translation for Language depending on the value of the variable vLanguage.

    Snippet from Excel translation sheetSnippet from Excel translation sheet

    Another piece of information I would like to share is how I handled Text & image objects that needed to be translated. In the screenshot below, there is heading text and body text that have 2 different formats (font size and font color).

    intro.png

    To handle this, I created two variables, one for the heading and one for the body and in the variables, I stored the translation expression.

    edit intro.png

    variables.png

    This way, I was able to not only translate the text but format the text in a single Text & image chart two different ways.

    As you can see, it is easy to make a Qlik Sense app multilingual and it is easy to update the app with additional languages as needed. Sales, Customer Experience & Churn and Supply Chain – Inventory & Product Availability are the two demos that were made multilingual. Check them out and switch between the languages to see the final results. If you are interested in doing this in QlikView, check out Chuck Bannon’s blog on this topic as well as making the data multilingual in a QlikView app.

    Thanks,

    Jennell

    Show Less