Skip to main content

Product

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: 

Analytics

Forums for Qlik Analytic solutions. Ask questions, join discussions, find solutions, and access documentation and resources.

Data Integration & Quality

Forums for Qlik Data Integration solutions. Ask questions, join discussions, find solutions, and access documentation and resources

Explore Qlik Gallery

Qlik Gallery is meant to encourage Qlikkies everywhere to share their progress – from a first Qlik app – to a favorite Qlik app – and everything in-between.

Support

Chat with us, search Knowledge, open a Case, read the latest Updates Blog, find Release Notes, and learn about our Programs.

Events & Webinars

Learn about upcoming Qlik related events, webinars and local meetups.

Groups

Join a Group that is right for you and get more out of your collaborations. Some groups are closed. Closed Groups require approval to view and participate.

About Qlik Community

Get started on Qlik Community, find How-To documents, and join general non-product related discussions.

Blogs

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

Qlik Resources

Direct links to other resources within the Qlik ecosystem. We suggest you bookmark this page.

Qlik Academic Program

Qlik gives qualified university students, educators, and researchers free Qlik software and resources to prepare students for the data-driven workplace.

Community Sitemap

Here you will find a list of all the Qlik Community forums.

Recent Blog Posts

  • Image Not found
    blog

    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... 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
    blog

    Design

    Chart Level Scripting - Use Cases, Samples and Examples

    Hi Guys - I'd like to introduce you to some use cases, samples and examples of Qlik Sense Chart level scripting courtesy of Qlik Solution Architect, V... Show More

    Hi Guys - I'd like to introduce you to some use cases, samples and examples of Qlik Sense Chart level scripting courtesy of Qlik Solution Architect, Venkat Subharaman. You can learn more about Venkat at then end of this blog. 

    Recently we released a new capability in Qlik Sense, that allows you to provide and manipulate data directly within a chart object using script. It allows users to modify the data set behind a chart using a subset of the Qlik scripting language, using techniques such as variables and loops. Rows and columns can be added or modified that were not in the original data set enabling calculations that have previously not been possible in chart expressions or with variables.  Offering a new way to analyze your data such as simulations and goal seeking.

    Venkat was so excited when he developed a few use cases for Qlik Sense Chart level scripting and worked out a few examples he wanted to share with everyone that might need them. (attached to this post)

    Note that official documentation is available on the Qlik Help site and additional examples will be made available so stay tuned. 

    I'd like to thank Venkat for his valuable contribution. Take it away Venkat!

    With Chart level scripting I can create simple data models and write complex logics on a subset of data on the fly. Here are some of the benefits:

    1. Customization
    2. Flexibility
    3. Maintainability

    I have found it especially useful where working with financial reports when performing the following:

    1. Running totals (Sounds so simple)
    2. I have more complex % to be calculated based on business rules
    3. I want calculation on the current row to be based on the rows above or below.

    Traditionally I can use out-of-the-box functions like RangeSum and achieve the desired result. BUT, depending on the business use case and the requirements, formulas can get complex very quickly. Even though our we achieved the desired result, it is always at the back of my mind how will it be maintained going forward if something changes. 

    Chart Level Scripting gives you a simple way of doing complex calculation with the added ease of working with just a small subset of data that is utilized in the chart or table.

    Let's take a look at 3 simple examples that will highlight only a small percentage of the power of Chart level scripting.

    First I want to just set the stage and familiarize you with some terminology and functions.

    • HCNoRows(): returns the number of rows in the chart or table
    • HCValue : Function that is used to return the value in a row for a dimension or measure
    • HC1: Prefix used to represent the subset of data from the Hyper Cube that is utilized in the current chart or table.
    • HC1.Measure.<MeasureNo> : Represents the measure in the chart or table
    • HC1.dimension.<dimensionNo> : Represents the dimension in the chart or table

     

    Example 1: Running total and percentage calculated at aggregate level

    Steps:

    1. Assumption : Enabled Chart Level Scripting
    2. I have created a straight table with
      1. Dimensions: Division and Financial Month
      2. Measure: Actuals (Sum(Actuals))
    3. Create 2 additional dummy measures
      1. Additional Measure 1: Give Sum(0) as the Expression and Running Total as the label
      2. Additional Measure 2: Give Sum(0) as the Expression and % as the label
    4. Copy the script from the attached Example1.txt in the attached .zip file.

    Add the division filter and select the required division, you will see that the totals and % will be re calculated and will adapt as per the selections. In the above example we just created running totals and percentage at the total level. Let us look at example 2 where we will do the calculation at the aggregate level as well as at the divisional level.

    Example 2: Running total and percentage calculations at the aggregate level and at the divisional level

    Steps:

    1. Assumption : Enabled Chart Level Scripting
    2. I have created a straight table with
      1. Dimensions: Division and Financial Month
      2. Measure: Actuals
    3. Create 2 additional dummy measures
      1. Additional Measure 1: Give Sum(0) as the Expression and Running Total as the label
      2. Additional Measure 2: Give Sum(0) as the Expression and % as the label
      3. Additional Measure 3: Give Sum(0) as the Expression and Divisional Total as the label
      4. Additional Measure 4: Give Sum(0) as the Expression and Divisional % as the label
    4. Copy the script from the attached Example2.txt in the attached .zip file.

    Now the totals will be calculated at the aggregate level and at the Divisional Level.

    Please note that I have just written the script in a simple fashion to showcase the functionalities like

    1. Control statements
    2. Regular statements
    3. Prefixes (We will look at this in example 3)

    Example 3: Aggregated measures and dimensions in a bar graph

    Steps:

    1. Assumption : Enabled Chart Level Scripting
    2. Drag and drop a bar graph on a sheet and
      1. Dimensions: Financial Month
      2. Measure: Actuals
    3. Copy the script from the attached Example3.txt in the attached .zip file.

    The above 3 samples are simple uses cases to showcase the power of chart level scripting. Share with me your use cases  where you can apply Chart level scripting .

    In summary Chart level scripting provides a simpler and compact way of solving specific business problems.

    Happy Qliking!!!!!!!!!

    Useful References

    1. Turning on chart level scripting ‒ Qlik Cloud
    2. Using chart level scripting and Limitations of Chart Level Scripting ‒ Qlik Cloud
    3. Chart level scripting ‒ Qlik Cloud
      1. Control statements ‒ Qlik Cloud
      2. Prefixes ‒ Qlik Cloud
      3. Regular statements ‒ Qlik Cloud 

    About Venkat

    VenkitaSubharaman.JPG

    Venkat is a Solution Architect, currently working with the presales team at Melbourne (Australia), having a broad experience in leading and systematizing BI Initiatives. With 25+ years of experience. Venkat has participated in various development projects & has played a key development role in the Enterprise Level Data warehouse & Business Intelligence Applications. Venkat has a deep interest in research and data analysis, drawing actionable insights from the raw data to help further the business’ goal. 

    www.linkedin.com/in/venkitasubharaman

    Show Less
  • qlik-productblogs.jpg
    blog

    Design

    Basics for complex authorization

    In the simplest case, the authorization table defining who-gets-to-see-what is just a two column table linking user names to e.g. regions. But sometim... Show More

    In the simplest case, the authorization table defining who-gets-to-see-what is just a two column table linking user names to e.g. regions. But sometimes you need a more complicated logic. It could be that you have users that are allowed to see all products but just within one region, and at the same time all regions but just for one product. In other words, you want to make the reduction in several fields with the possibility of OR-logic.

     

    QlikView can do this and here’s how you do it:

     

    1. Create an authorization table by loading the authorization data into QlikView after concatenating the reducing fields into one single generic authorization key:

           Load USER, REGION &'|'& PRODUCT as %AuthID From AuthTable ;

      Authorization table.png

    2. Create an authorization key in the table with the most detailed transactions:

           Load *, Region &'|'& Product as AuthID From OrderDetails ;

      If you don’t have all the necessary keys in the table, you can fetch fields from other tables using Applymap. See more about Applymap here:

    3. Create an authorization bridge table linking the two above tables. Since the %AuthID field can contain generic symbols such as '<ANY>', several load statements are needed to create the bridge table:

           Load
      Region &'|'& Product as AuthID, Region &'|'& Product as %AuthID  From OrderDetails ;
           Load Region &'|'& Product as AuthID, Region &'|'&'<ANY>' as %AuthID  From OrderDetails ;
           Load Region &'|'& Product as AuthID, '<ANY>'&'|'& Product as %AuthID  From OrderDetails ;
           Load Region &'|'& Product as AuthID, '<ANY>'&'|'&'<ANY>' as %AuthID  From OrderDetails ;

      Authorization bridge.png

    4. Reduce the file on the USER field using either Section Access or QlikView Publisher.

     

    Using the above method you can create quite complex security models. For instance, you can use generic symbols also for product groups. Read more about generic keys in this Technical Brief.

     

    Good luck!

     

    HIC

     

    Further reading related to this topic:

    A Primer on Section Access

    Data Reduction Using Multiple Fields

    Authorization using a Hierarchy

    Show Less
  • Image Not found
    blog

    Design

    Dialing it in with Gauges

    Within Qlik Sense, gauges are tied to a measure, with the data labeled a KPI. Gauges find their strength in displaying the progress toward a goal. As ... Show More

    Within Qlik Sense, gauges are tied to a measure, with the data labeled a KPI. Gauges find their strength in displaying the progress toward a goal. As such, a major component of the gauge is found under ‘Appearance’ then ‘Presentation’ in the form of the ‘Range Limits’. Through range limits, users can provide the beginning and goal values of the gauge. Again, under ‘Presentation’, users can provide ‘limits’ within gauge, partitioning the gauge to show different subgoals or areas within the gauge, providing colors and values to track progress.

    Gauges in Qlik are expressed in two different forms, the first being ‘Radial’ which displays the data as a dial, with the value being a needle that moves along the radius of the dial. The other form of gauge is the ‘Bar’. A rectangle that can be either horizontal or vertical, showing the maximum and minimum values on either side.

     

    MattSmart_0-1710515521177.png

     

     

     

    How can you use a gauge to visualize your data?

    Let’s begin with the radial style of gauge. For this example, we can put ourselves into the mind of an district manager across a number of computer stores. Our computer stores sell a high number of graphics cards, and it is one of our main revenue drivers. As such, we need to make sure we always have a good amount in inventory. With Qlik Sense, we could tie the measure ‘Graphics Cards in Inventory’ to a gauge to visualize this item’s inventory value. In this example, you could associate different ranges within your gauge as good, order, and dangerously low, coloring them green, yellow, and red respectively. This example would look like this:

    MattSmart_1-1710515521182.png

     

     

    Now we have a visualize to show us the status of our inventory so we can make the appropriate actions to keep revenue where it needs to be. Also, with Qlik Sense, you can connect an alert to this chart so that you’ll be notified when your inventory dips into the yellow, and another when it drops to the red.

    Now we’ll move onto the bar form of the gauge. For this example, we could put ourselves in the mind of a car sales manager. Our company has a promotion going saying that if we sell a total of a thousand cars during a certain amount of time throughout the district, we’ll get a bonus. With the bar chart, we can set the upper limit 1000, our measure to ‘Number of Cars Sold’ and our gauge is made. Now we can quickly view how close we are to our goal by the status of the cars sold. Our gauge should like this:

    MattSmart_2-1710515521184.png

     

    In this example we have also added markers throughout our journey to 100% of our goal. So now we can see how close we are to the $2,000, $5,000, and $10,000 bonuses. In other scenarios we could have money raised, contracts signed, anything that necessitates the tracking toward a goal.

    These are only a few examples of how you could use a gauge. What are some examples you can think of where gauges may help you in visualizing your data?

    Show Less
  • Image Not found
    blog

    Support Updates

    Join Us Live! Q&A with Qlik: App Development

    Don't miss our next Q&A with Qlik! Pull up a chair and chat with our panel of experts to help you get the most out of your Qlik experience. Let our Q... Show More

    Don't miss our next Q&A with Qlik! Pull up a chair and chat with our panel of experts to help you get the most out of your Qlik experience.

    BlogImage.jpg

    Let our Qlik experts help you with your dashboard, app, and visualization related questions.

     

    REGISTER HERE

     

    Not able to make it live? Don't worry! All registrants will get a copy of the recording the following week.

    See you there!

    Qlik Global Support

    Show Less
  • Image Not found
    blog

    Qlik Academic Program

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

    Dr. K. Kalaiselvi oversees courses in Data Analytics, specializing in Machine Learning, R and Python Programming, Data Visualization Technologies, and... Show More

    Dr. K. Kalaiselvi oversees courses in Data Analytics, specializing in Machine Learning, R and Python Programming, Data Visualization Technologies, and Process Mining Technologies at Kristu Jayanti College. She also manages specialized and certification courses for students, complementing the regular curriculum.

    Since 2019,  Dr. K Kalaiselvi has been associated with the Qlik Academic Program and has also earned the Qlik Sense Business Analyst Qualification. By December 2023, approximately 300 students from Kristu Jayanti College achieved their qualifications in Qlik Sense Business Analyst and Data Literacy. Presently, 122 students are training for the Data Architect qualification. She says, “I’m thrilled that our institution was recognized as the Centre of Excellence in 2023, under the Qlik Academic Program”

    According to Dr. K Kalaiselvi, she was drawn by the reputation of Qlik for providing comprehensive resources and tools geared towards learning data analytics and visualization. She therefore, decided to take further interest in the Qlik Academic Program. Kristu Jayanti recognizes the growing importance of new age skills in various industries, and this led to her interest in exploring further. The Qlik Academic Program stood out due to its commitment in offering free access to their powerful data analytics and visualization software, Qlik Sense along with free training and certifications.

    Dr K Kalaiselvi believes that Qlik Academic Program's resources and learning materials will not only enhance understanding of data analytics and visualization but also contribute significantly to her students’ academic and professional growth. The opportunity to gain proficiency in using Qlik technologies is one that she finds both exciting and valuable, and she is enthusiastic about the potential it holds for her students’ future endeavors.

    “The future of this engagement appears promising for me”, according to Dr. K Kalaiselvi. She further adds, “As students continue to benefit from Qlik Academic Program's training and certifications, they are likely to graduate with desirable skills in data analytics and visualization. This, in turn, could lead to increased job placements in roles such as Business Analysts, Data Scientists, and Data Visualization Designers. With a growing network and a reputation for producing skilled professionals, the engagement could contribute positively to both student careers and industry advancement”

    Dr Kalaiselvi feels that her engagement with Qlik, especially after achieving the Qlik Sense Business Analyst certification, has deepened her understanding and appreciation for data literacy.  She recognizes the critical role it plays in today's data-driven world, and she is eager to share this knowledge with others. Joining the academic program has offered her a structured platform to advocate for and elevate data literacy among students, preparing them for a future where data-informed decision-making is key. By becoming a Qlik Educator Ambassador, she aims to not only expand her own skills and understanding of Qlik technologies but also to stay at the forefront of BI and analytics innovations. It enables her to contribute to and learn from a like-minded community, further enriching the educational experiences she can offer and to foster a collaborative spirit among her students for global and cross-disciplinary projects.

    At present, Dr. K Kalaiselvi is engaged in developing an AI chatbot project tailored for adolescents, aimed at addressing their psychological, physical, and academic inquiries. In addition to her teaching responsibilities, she has embarked on collaborative ventures with universities across Asia Pacific, concentrating on facilitating exchange programs and fostering project collaborations.

    She feels thrilled and grateful to be involved in this collaboration with the Qlik Academic Program, as it allows her to learn and grow alongside her students.

    We wish Dr. K Kalaiselvi all the best during her role as the Educator Ambassador! 

    Educators and students can get access to free Qlik software and training resources, qualifications and certifications by applying to the Academic Program today: qlik.com/academicprogram

    Show Less
  • qlik-productblogs.jpg
    blog

    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 i... 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
    blog

    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 ... 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
    blog

    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 imp... 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-productblogs.jpg
    blog

    Product Innovation

    March Ahead: Qlik Cloud Data Integration's Latest Innovations

    Data Movement Gateway Improvements As part of our continued commitment to ensure access to data is as seamless as possible, we have made a bunch of im... Show More

    Data Movement Gateway Improvements

    As part of our continued commitment to ensure access to data is as seamless as possible, we have made a bunch of improvements to the Data Movement Gateway to offer greater flexibility in deployment and supporting new sources and targets, database versions, and driver versions.

    Deployment Options

    It is now possible to install the Data Movement gateway on Red Hat 9.x* or on any corresponding and compatible Linux distribution. In addition to assisting in managing deployments a new notification feature has been introduced that will notify admins when a new gateway version is available.

    Anand_Rao_0-1710356933895.png

     

    New Data Sources and Target data platforms

    We have really strong strategic technical and commercial partnerships with the technology vendors and we are continually improving our support of data movement options for databases and cloud data platforms.

    Source Updates

    • Azure Database for MySQL - Flexible Serverwe have added this new data source which is supported via the existing MySQL source connector.
    • MariaDB versionswe have expanded the support for MariaDB versions from 10.4 to 10.11 (previously 10.4 and 10.5)

    Target Updates

    • Azure Database for MySQL - Flexible Serverwe have added this new target which is supported via the existing MySQL target connector.
    • Databricks (Cloud Storage)we have expanded our support to include Databricks 13.3 LTS and Serverless SQL Warehouse.

     

    *Note: If you have an SAP HANA source that you want to use with a Data Movement gateway on Red Hat Linux 9.x, you must ensure you are using SAP HANA ODBC 64-bit Driver version 2.0.19 or later.

    For information about how to upgrade to the latest version, see Upgrading the Data Movement gateway installation.

    New Monitor Views

    Monitor Views provide more granular visibility into task operations with the ability to create monitoring perspectives via various filtering options. This release introduces two new filters based on “Source Type” and “Data Movement Gateway”:

    Anand_Rao_1-1710357031719.png

    Source Type Filter

    This filter creates monitor views that only show tasks for specific source technologies. With this new filter you can now focus on tasks with specific sources of interest, e.g. your tasks for SAP Landing or your SQL Server Replications. 

    Data Movement Gateway Filter

    This filter creates a monitor view that lists all tasks for a specific gateway to simplify administration and management. It is really handy when an organization operates multiple gateways. For example, use the view to stop all tasks on a specific gateway before upgrading. Then, restart all gateway tasks once the upgrade is complete to ensure everything is operational. 

    Additional Data Landing Configurations

    Qlik Cloud Data Integration landing tasks are the first step in transferring data into your cloud data warehouse. This release provides additional configuration options to control the behavior of the landing task and improve performance.

     Anand_Rao_2-1710357159615.png

    Control Tables

    Control tables store additional operational information in the target data platform, such as landing status, suspended tables, and task history (including the number and volume of records processed during landing).

    Error Handling Policies

    Error handling policies allow you to control what happens when data truncation or other data errors occur. Choices include ignoring errors, suspending table updates, or stopping the task.

    Data Preview

    The new data preview feature displays the live data for the currently active task without leaving the Qlik Cloud Data Integration interface. The preview helps validate and shape the data while designing pipelines. 

    The data preview is currently available for physical tables and SQL transformations. 

    Physical tables behind logical datasets.

    This shows the actual schema and data in the physical tables that logical datasets are mapped to.

    Anand_Rao_3-1710357239560.png

    Anand_Rao_0-1710357957999.png

     

    Output of SQL transformations.

    This allows previewing the result set of a SQL transformation while writing the query, even before any physical tables have been created. This is more powerful than just previewing source data.

     

    Anand_Rao_3-1710358011395.png

     

    Security Controls:

    • Can be disabled at the tenant level completely.
    • Can be enabled/disabled at the space level (currently same as project level). This allows enabling for dev/staging spaces but disabling for production spaces.
    • Can be restricted at the user level - to allow only certain users to view data.

     

    So, in summary, this new data preview feature is a huge benefit for users to validate data and shape transformations, with granular security controls to restrict access to production data. The initial phase focuses specifically on SQL transformations, providing strong value and thereby allowing data shaping entirely within Qlik Cloud Data Integration. Additional data preview capabilities will be rolled out progressively over 2024.

    What Next?

    All these updates are available from March 12th, 2024, check them out now in your Qlik Cloud Data Integration tenant. If you don't yet have access to Qlik Cloud, why not take a guided tour and experience the value it can bring by yourself here?

     

    Show Less
  • Image Not found
    blog

    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 ... 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-productblogs.jpg
    blog

    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 entrie... Show More
    Show Less
  • qlik-productblogs.jpg
    blog

    Explore Qlik Gallery

    Consig Product

    Consig ProductHORUSCDASmart solution for selling creditDiscoveriesincredible insights about the growth of the companyImpacthelps a lot in the partners... Show More
    Show Less
  • Image Not found
    blog

    Design

    Checkout the New Pivot Table!

    The New Pivot Table can quickly transform rows and columns into actionable insights with just a few clicks. You can organize, analyze, and visualize y... Show More

    The New Pivot Table can quickly transform rows and columns into actionable insights with just a few clicks. You can organize, analyze, and visualize your data and even style various elements such as headers, borders, fonts, grid lines and more. Say goodbye to manual calculations and hello to dynamic summaries. Pivot Tables,. simplify complexity, reveal patterns, and take control of your information.

    Try it now and elevate your data game to new heights.

    Qlik Help: Pivot Object

    SaaS in 60 Playlist

    Can't See the video?  - Check it out on Qlik's video site 

    Show Less
  • qlik-productblogs.jpg
    blog

    Community News

    New AI/ML Area in Forums!

    Hello Qlik Community! I’m back with a few more changes in the navigation! These changes were made to align more with Qlik and give AI/ML time in the s... Show More

    Hello Qlik Community!

    I’m back with a few more changes in the navigation! These changes were made to align more with Qlik and give AI/ML time in the spotlight!

     

    Added AI/ML area

    A section for AI/ML forums has been added. We have moved the Qlik AutoML and Insight Advisor forums to this area.  You can find Integrations, Extensions & API’s (for Qlik Analytics) in this section or Analytics.

    Jamie_Gregory_0-1710167572478.png

     

    Renamed ‘New to Qlik Sense’ forum

    The New to Qlik Sense forum has been renamed to Qlik Sense Analytics. When posting, be sure to use the appropriate label: either Client Managed for on prem or Qlik Cloud.

    Jamie_Gregory_1-1710167572481.png

    (Also, a cleanup of the labels on this forum is imminent.)

     

    Reordered 'Discover'

    Programs has been moved down the list, but it doesn’t mean it’s any less important! Make sure you’re subscribed to the Education or Academic areas for updates.

    Jamie_Gregory_2-1710167572483.png

     

    Please let us know if you have any questions about the changes using the comments below. We will be back soon with some more Qlik Community enhancements!

    Your Qlik Community Admins,

    Melissa, Sue, Jamie, and Nicole

    @Melissa_Potvin @Sue_Macaluso @Jamie_Gregory @nicole_ulloa 

    Show Less
  • qlik-productblogs.jpg
    blog

    Community News

    Marching towards a Simplified Nav

    Hello Qlik Community! Ah, February. We hardly knew ye. Let's March towards the enhancements and fixes for the month of February.   NPrinting dropdowns... Show More

    Hello Qlik Community!

    Ah, February. We hardly knew ye. Let's March towards the enhancements and fixes for the month of February.

     

    NPrinting dropdowns are back

    The NPrinting forum has a couple more dropdowns to select Product and Version when posting.

    Jamie_Gregory_0-1709151672475.png

     

    Last Update and Created date timestamps

    These two fields were potentially using different settings based on a user's profile. These timestamps are now using the preferred time zone for each user to ease any confusion.

     

    Search icon slide out

    A text window slides out when clicking the search icon.

    Jamie_Gregory_1-1709151672477.png

     

    And now… the pièce de résistance…

     

    A Simplified Navigation

    There are now only 4-5 options across the top of the navigation, depending on your user type. Let’s review each area and walk through the changes.

     

    Forums

    • Data Integration has been renamed to Data Integration & Quality
    • The Analytics forums are now under Data Integration & Quality forums on the left side to match the order in which you use the tools
    • The Job Board is now under Discover > Programs > Qlik Academic Program
    • Removed More tab that included Job Board and Video Transcripts (which can still be found on the Resources page)

     

    Jamie_Gregory_2-1709151672479.png

     

    Support

    • Ideation is now under Support! Same structure – new location!
    • Learn to move to Qlik Cloud has been renamed to Move to Qlik Cloud
    • View Licenses and Archived Cases is now under Support > Get Help
    • Renamed the Product Downloads page to Download Qlik Products

     

    Jamie_Gregory_3-1709151672482.png

     

    Discover (Formally Learn)

    • Job Board is now under Qlik Academic Program
    • Blogs, Events and Qlik Gallery are now under Discover
    • The Japan blog is now under Product
    • Events has been renamed to Events & Webinar
    • The Events & Webinar page is now called Global Events
    • The two different categories (Webinar & In-person and Expert Led) have been condensed into one category
    • The Qlik Gallery page has a new name: Explore Qlik Gallery

     

    Jamie_Gregory_4-1709151672484.png

     

    The Partners area (only visible to Partners) is unchanged and of course, the Greenway is still available  to learn how to engage more with Qlik.

    This is just the first step in simplifying the navigation. We have more simplification coming in the next few months. Let us know what you think about the changes in the comments below.

    Your Qlik Community Admins,

    Melissa, Sue, Jamie and Nicole

    @Melissa_Potvin @Sue_Macaluso @Jamie_Gregory @nicole_ulloa 

     

    Show Less
  • Image Not found
    blog

    Qlik Academic Program

    Welcome Priscila Papazissis-Qlik Educator Ambassador for 2024!

     Priscila started using Qlik for her work in 2013, and in 2016 she began teaching at Pontifícia Universidade Católica de Minas Gerais in Brazil, on th... Show More

     Priscila started using Qlik for her work in 2013, and in 2016 she began teaching at Pontifícia Universidade Católica de Minas Gerais in Brazil, on the Post Graduation courses, “I decided to use Qlik as the platform to help the students to understand in a practical way how to model data warehouses using the concepts of the star schema. Qlik is used showing the star schemas and how this kind of data model can be transformed in a dashboard full of information to potentially take better and faster decisions.”

    Priscillas course is all about data warehouse modelling, when she started teaching, she thought, “it's not very interesting to create a conceptual model without understanding in a practical way how it will be used in the future." I understood that to show the conceptual model, [if I] show data about that model and use the data visually, the students could understand more about how to build good data products and try to use it in their day by day business.” Priscila knew from her professional life that Qlik could do this very simply, so she chose it as the tool for her course.

    Pricilla started by using Qlikview with her students then in 2018 she moved onto Qlik Sense Cloud and began to incorporate data literacy concepts too, “In 2018 I started studying about the concepts of Data Literacy, and when I discovered that Qlik had this program too, some of the classes were built to show the students that they can count on this program to know more about how to deal with data in a better way.”

    With the inclusion of the Academic Program in her teaching, Priscila has seen her students achieve great professional success, “As I am a leader in the companies I have been working for since 2017, I already hired 3 of my post-graduation students after they finished the courses. But I believe that many of my other students have been hired because of the competences they acquire during this post graduation.”

    In 2024 Priscila hopes to spread Data Literacy further, using more the materials Qlik makes available. “I plan to give more examples using Qlik Sense Cloud, using the concepts of AUTO ML to give more robustness to the knowledge students of 2024 need to make a difference in their careers, as we are in the AI Era.”

    “I believe we will face many changes in 2, 3 years in data industry. With the spread of AI practices, both traditional AI and Generative AI, every employee, in business areas or technology areas must understand how data can help to do more with less, to get some operational efficiency through the use of data and how to help to increase revenue and shrink the costs.”

    When Priscila isn’t teaching, she’s busy managing an analytics team at a large company in Brazil. Outside of work and teaching she can be found travelling, visiting the beach and enjoying nature with her husband, daughter and stepson. As well as visiting the cinema and enjoying dinners out together.

    During her year as Educator Ambassador, she hopes to make new friends and understand how her fellow educator ambassadors are using Qlik in their universities as well as have the opportunity to present about the program and her teaching. Priscila hopes to learn even more about Qlik and how can be used to better educate students on data analytics.

    Educators and students can get access to free Qlik software and training resources, qualifications and certifications by applying to the Academic Program today: qlik.com/academicprogram 

    Show Less
  • Image Not found
    blog

    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:... 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
    blog

    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.... 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
    blog

    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 En... 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