Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
This space offers a variety of blogs, all written by Qlik employees. Product and non product related.
By reading the Product Innovation blog, you will learn about what's new across all of the products in our growing Qlik product portfolio.
The Support Updates blog delivers important and useful Qlik Support information about end-of-product support, new service releases, and general support topics.
This blog was created for professors and students using Qlik within academia.
Hear it from your Community Managers! The Community News blog provides updates about the Qlik Community Platform and other news and important announcements.
The Qlik Digest is your essential monthly low-down of the need-to-know product updates, events, and resources from Qlik.
The Qlik Education blog provides information about the latest updates of our courses and programs with the Qlik Education team.
The new straight table, found in the Qlik Visualization bundle, has two new enhancements in Qlik Cloud. The first is expression-based text styling and the second is measure modifiers. Let’s look at how these new enhancements can be used.
With the first enhancement, columns in a straight table can be styled based on an expression. This is done in the properties of a column in the Text style expression.
There are four styles that can be applied in the expression. They are:
In the expression, the style can be in written in uppercase or lowercase letters and it should be enclosed in single quotes. Here is an example of an expression that can be used to bold the text in the Customer column if the Customer is Boombastic.
The results in the table look like this:
To bold all the text in the Customer column, '<b>' can be used in text style expression without the if statement.
In the example below, the text in the Discount column and the Product Name column is strikethrough if the discount is equal to 0. The same expression below is used in both columns to format the text.
Text styles can also be combined in an expression. In the example below, the text is bold, italicized and underlined if the Sales value is greater than $1,000. Notice that all the style codes are included in the single quotes.
Multiple styles can be used in the same expression based on different criteria as well. For example, Sales values can be bold if over $1,000 and strikethrough if under $100.
While text styles can be combined, use with care and use the text styles to highlight something in the data, not clutter it.
The second enhancement of the new straight table are measure modifiers. Modifiers are not new to Qlik Sense, but they are new to the straight table. In the properties of a measure, there is an option to add a modifier. The four modifier options are: accumulation, moving average, difference and relative numbers (see image below). When a modifier is selected, other modifier settings will be made available for developers to edit as needed.
Let’s look at each modifier briefly. The accumulation modifier will accumulate the measure value over dimension(s). In the table below, the Sales – Accumulation value will accumulate over the Year Month dimension.
The moving average modifier will average the measure value over a specified period. In the properties below, the moving average modifier is set to full. Also notice the output expression which shows the expression used for the modified measure – this is available for all modifier options.
With these settings, the results off the modifier will look like the table below. With every row, the Sales value is included to calculate the new moving average.
The difference modifier will display the difference between the measure value as seen in the table below. In this case, the difference between the previous row and current row values.
The relative numbers modifier will display relative percentages that can change based on the properties selected. In the example below, the year 2023 is selected. If the selection scope is set to current selections, then the resulting table will show the percentages for 2023 only.
If the selection is disregarded, then the percentages ignore the 2023 selection and show percentages across all the month year timeframes. Below in the resulting table, the percentages are a lot lower since they are across a larger dataset.
To learn more about these enhancements, check out Qlik help using the links below.
Thanks,
Jennell
There is no doubt that having some sort of version control system baked into your development workflow is very important especially when challenges like storing and maintaining different backup versions of a project or collaborating with other members of your team become a nightmare.
A version control system makes all these problems disappear as it enables you to commit changes you make throughout the lifetime of a project, giving you access to historical versions that you can easily roll back to. It also allows for easier collaboration as multiple people can simultaneously work on the same project by branching out into their own isolated environments without impacting the work of others in a controllable and maintainable manner.
When it comes to Qlik Sense, the lack of version control capabilities has opened the door to both simple solutions that can work for a smaller context as well as more creative ones to fill in the gap. From copying applications that may lead to a cluttered workspace, to manually creating your own system using a combination of Git and serializing your Qlik Sense apps, to sophisticated third-party solutions that take care of the heavy lifting, you can test and choose the option that fits your needs.
You can visit this Knowledge Base post to discover more Qlik Sense version control solutions.
In this blog post, I gave one of these solutions a go to see how adding version control can change the way you develop your Qlik Sense apps in the future.
Gitoqlok is a chrome extension that does just that, it integrates your VCS of choice such as Github, BitBucket, Gitlab, Gitea, etc … with your Qlik Sense App through their respective APIs. It uses the concept of serializing application objects to JSON and deserializing them back. The supported objects include story, sheet, measure, dimension, masterobject, snapshot, variable, bookmark, appprops, and fields.
Source: gitoqlik.com
To get started, install the chrome extension here.
1. Connect Gitoqlik to the Github API using your personal token:
Visit Github to generate a new token and check the “repo” scope. Copy over your newly generated token into the "Git Settings" page of the extension. Make sure to go over the settings including your repository visibility (private or public), how your repo and branches will be named by default, etc..
2. Once you create your app, you are ready to use the extension to create a repository. Gitoqlok makes this easy as it automatically detects your Qlik app, generates a default repo name based on the settings previously selected, and creates a master branch.
3. As you’re making progress developing the app (loading data, scripting, creating a data model, analyzing and visualizing data), you can commit your changes into the repo every time. Your commits can include the Load Script, the App Objects, Reload Tasks, and Data Connections.
You can use the git commit history to view your changes and revert to a previous state.
4. You can collaborate with other people from your team so that each team member works on their own copy of the app in their own workspace.
Each team member would create an isolated branch inside the repository so that their changes do not affect the master branch. Gitoqlik makes this process seamless as it detects that copies of the main application have been created and finds the main repository allowing you to branch out with a single click.
For more information about this tool, check out the docs.
I would love to hear what techniques you use to collaborate or track your changes when developing QS apps. If you have any suggestions for integrating version control with Qlik Sense, please leave them in the comments below.
Hi everyone,
Want to stay a step ahead of important Qlik support issues? Then sign up for our monthly webinar series where you can get first-hand insights from Qlik experts.
Next Thursday, September 12th Qlik will host another Techspert Talks session and this time we are looking at Qlik Cloud Administration 101.
But wait, what is it exactly?
Techspert Talks is a free webinar held on a monthly basis, where you can hear directly from Qlik Techsperts on topics that are relevant to Customers and Partners today.
In this session we will cover:
Click on this link to choose the webinar time that's best for you.
The webinar is hosted using ON24 in English and will last 30 minutes plus time for Q&A.
Hope to see you there!!
Today I am going to blog about cyclic dimensions. A cyclic dimension is a group of dimensions that can be cycled through in a visualization. The dimensions do not have to be related or have a hierarchical relationship. The dimensions only have to make sense with the measures used in the visualizations. Cyclic dimensions can be very useful when it is valuable to view a visualization across many dimensions. It becomes even more valuable if there are multiple visualizations on a sheet, or in an app, that use the same cyclic dimension. When a cyclic dimension is switched to the next field, all visualizations that use the cyclic dimension will be changed to the same field. This is a time saver. You may wonder if alternate dimensions can do the same thing. Alternate dimensions allow a user to change the dimension in a chart, but it only changes it for the specified chart whereas a cyclic dimension can change the dimension for multiple charts. Alternate dimensions can also be used in a visualization with a cyclic dimension.
Building a cyclic dimension is very easy and there are few ways to use them. You create a cyclic dimension the same as you do a single or drill-down dimension. From the Master items, create a new dimension. At the top select Cyclic dimension type, then add the fields to include. Give the cyclic dimension a name and save. Labels can be added to give the fields a different name and description. At least two fields need to be added to a cyclic dimension.
A cyclic dimension can be added to a visualization the same way a single dimension is added. Once they are added to a visualization a cycle icon will appear next to the field name as well as an arrow. By default, the first field in the cyclic dimension will be displayed. To change the dimension in the visualization, a user can click on the cycle icon or click on the label or down arrow and select another dimension.
Another way a user can cycle through the dimensions is to use a button. In the What’s New app, buttons have been created to cycle through the cyclic dimensions.
In all three buttons, the action is set to Step cyclic dimension and the Step is set to backward for the left arrow and forward for the right arrow and the cycle button in the middle.
In the What’s New app, you can also see how changing the cyclic dimension in one visualization, updates all the visualizations using the cyclic dimension. In the screenshot below, Category Name is the current cyclic dimension.
If I switch the dimension, using any of the ways I have described above, Country Code is the dimension. Notice that the dimension in all the visualizations have been updated to Country Code in the screenshot below.
Check out Qlik Help to learn more about cyclic dimensions and to be aware of the limitations. Also watch Michael Tarallo’s SaaS in 60 video on Cyclic Group Dimensions. Try them out in your next app.
Thanks,
Jennell
In previous posts on the Design blog, we've explored various ways for embedding Qlik Sense analytics. These have ranged from straightforward iFrames to more complex approaches like the Capabilities API, as well as more recent tools such as Nebula.js and Enigma.js.
Today, we’re going to be taking a quick look at a new library from Qlik called qlik-embed, but before diving into it, I would like to clarify that this library is currently in public preview and at the time of writing this blog, frequent updates as well as breaking changes are prone to happen (you can read more about that on qlik.dev or follow the Changelog for updated https://qlik.dev/changelog)
So what exactly is qlik-embed?
qlik-embed is a library for easily embedding data and analytics interfaces into your web apps while overcoming some of the concerns that usually arise when embedding content from one software application to another such as third-party cookies, cross-site request forgery, content security policy etc..
The library is designed to work with web apps from simple plain HTML ones to more modern frameworks like React etc.. That is in fact made easier since whichever qlik-embed flavor you use, the configuration options, the methods, and the properties will be similar.
If you are already embedding Qlik Sense content into your web applications, you can learn about the various reasons why qlik-embed would be a better solution on qlik.dev (https://qlik.dev/embed/qlik-embed/qlik-embed-introduction#why-qlik-embed-over-capability-api-or-nebulajs)
Web Components:
qlik-embed makes use of web components which are basically custom HTML elements in the form of <qlik-embed> </qlik-embed> HTML tags that allow you to configure properties of the content you’re embedding
You can find all supported web-components here:
How to quickly get started?
Before getting started, it’s worth noting that there are several ways to connect qlik-embed web components to Qlik.
More information about Auth can be found here:
- Connect qlik-embed: https://qlik.dev/embed/qlik-embed/connect-qlik-embed
- Best Practices: https://qlik.dev/embed/qlik-embed/qlik-embed-auth-best-practice
You can connect to qlik-embed in these ways:
In this post, we’re going to use OAuth2 Single-page-app from the Qlik Cloud tenant Management Console under oAuth:
Example using HTML Web Components:
Reference page: https://qlik.dev/embed/qlik-embed/qlik-embed-webcomponent-quickstart
First thing we need to do is add a <script> element in the <head> tag to configure the call to the qlik-embed library and set up the attributes relevant to the connection we choose.
<script
crossorigin="anonymous"
type="application/javascript"
src="https://cdn.jsdelivr.net/npm/@qlik/embed-web-components"
data-host="<QLIK_TENANT_URL>"
data-client-id="<QLIK_OAUTH2_CLIENT_ID>"
data-redirect-uri="<WEB_APP_CALLBACK_URI>"
data-access-token-storage="session"
>
</script>
web-component:
<qlik-embed ui="classic/app" app-id="<APP_ID>"></qlik-embed>
oauth-callback.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script
crossorigin="anonymous"
type="application/javascript"
data-host="<QLIK_TENANT_URL>"
src="https://cdn.jsdelivr.net/npm/@qlik/embed-web-components/dist/oauth-callback.js"
></script>
</head>
</html>
You can fork the full example here and change the “Tenant URL” and the rest of the attributes to your own tenant after creating the OAuth SPA config: https://replit.com/@ouadielim/qlik-embed-HTML-Web-Components#index.html
result:
Example using React:
In React, you can use qlik’s embed-react library package: npm install @qlik/embed-react (https://www.npmjs.com/package/@qlik/embed-react)
Then, you can import QlikEmbed and QlikEmbedConfig from @qlik/embed-react. React’s context is used to pass in the hostConfig that you configure to point to your Qlik Cloud Tenant (host) and use the OAuth 2 config (clientId). The redirect URI needs to point to a page which is similar to what we did above in HTML web components.
import { QlikEmbed, QlikEmbedConfig } from "@qlik/embed-react";
const hostConfig = {
host: "<QLIK_CLOUD_TENANT>",
clientId: "<CLIENT_ID>",
redirectUri: "https://localhost:5173/oauth-callback.html",
accessTokenStorage: "session",
authType: "Oauth2",
};
const appId = "<APP_ID>";
const sheetId = ""; // sheet id or empty string
export default () => (
<QlikEmbedConfig.Provider value={hostConfig}>
<div className="container">
<h1>Qlik Embed with React</h1>
<div className="selections-bar">
<QlikEmbed ui="analytics/selections" appId={appId} />
</div>
<div className="viz">
<QlikEmbed ui="classic/app" app={appId} sheet={sheetId} />
</div>
<div className="viz">
<QlikEmbed ui="analytics/chart" appId={appId} objectId="hRZaKk" />
</div>
</div>
</QlikEmbedConfig.Provider>
);
You can clone the full React example here: https://github.com/ouadie-limouni/qlik-embed-react
result:
Limitations ?
There are a few limitations to qlik-embed as it continues to develop into a more stable and robust library - you can read more about those on qlik.dev: https://qlik.dev/embed/qlik-embed/qlik-embed-limitations
Like I mentioned at the very beginning, qlik-embed is new and evolving quickly, I invite you to test it to get familiar with it early and stay tuned for more updates and bug fixes as they come out using the Changelog page.
I hope you found this post helpful, please let me know in the comments below if you have any questions!
Thanks
- Ouadie
As we embrace the longest day of the year, the summer solstice, I am reminded of the importance of making the most of every moment. While the sun shines brightly, we want our dedicated Qlik developers, consultants, and "Qlik script rock-stars" to enjoy the weather rather than spend countless hours in the script editor interface. That’s why we are excited to introduce our latest improvements, designed to enhance your scripting experience and give you more time to bask in the summer glow.
Keep reading to explore the enhancements we've made to the script and data load editors, ensuring a more efficient, consistent, and enjoyable user experience. Whether you're tackling data prep or loading data into a Qlik Sense app, these updates will streamline your workflow and promote best practices, allowing you to spend less time on scripts and more time soaking up the sunshine.
Autocomplete has been a persistent issue for many of you, often causing more frustration than convenience. Recognizing this, we released an update on February 15th, to make autocomplete less aggressive in both script and expression editors. This seemingly small bug fix has had a significant impact, earning praise from our developer community.
A few days ago on June 18th, we released an enhancement that allows you to enable or disable autocomplete according to your preference. This flexibility addresses one of the biggest pain points raised by our script writers, empowering you to work more efficiently.
For more details, check out the community discussion by Partner Ambassador – Ometis.
We are committed to providing a consistent user experience across our platforms. In November 2023, we released a standalone script editor for data prep use cases. This year, we’ve ensured that the functionality in the standalone script editor is mirrored in the Data Load Editor used by over 11k users for loading data into Qlik Sense apps.
We’ve also made strides in promoting good coding practices. We introduced QVS file support, allowing you to upload, preview, and include QVS files in your scripts. This feature, released on April 31st in the script editor and on May 21st in the Data Load Editor, supports the reuse of script parts and encourages modularity.
Stay tuned for future updates… because we are planning to take the current functionality of read only to the next level and include editable scripts within Qlik Cloud!
This enhancement not only promotes best practices but also helps with a smoother transition to Qlik Cloud for those heavily utilizing QVS files in client-managed deployments.
The Enhanced Data Load Editor, released on May 21st, brings a host of new functionalities aimed at improving usability. These include the ability to preview loaded data directly from the editor, the introduction of a STORE command wizard, and resizable panels. With these improvements the script coding experience is more intuitive and efficient, aligning it with the capabilities of the enhanced script editor in Qlik Cloud.
Key features include:
Note: These enhancements were previously introduced in the standalone script editor in November 2023 for data prep use cases. If you missed that update, catch up here:
Community reactions
The release of these improvements in the Data Load Editor has inspired positive reactions across the Qlik community. Here’s what some of our Partner Ambassadors and consultants had to say:
While we emphasize a cloud-first strategy, we understand the importance of supporting both cloud and client-managed environments. The standalone script editor and script object improvements are currently supported in Qlik Cloud. However, enhancements to the Data Load Editor and expression editor are also included in Qlik Sense client-managed, with major updates planned for the November 2024 release.
These updates, including enhanced Data Load Editor features and QVS file support, not only improve the current experience but also encourage a gradual move to Qlik Cloud.
As we continue to innovate and improve the Qlik scripting experience, your feedback remains invaluable. Be on the lookout for more updates, and let’s make the most of these long summer days together!
To learn more:
We have recently introduced a new, natural language object in Qlik Sense SaaS that can be added directly to dashboards and applications to deliver AI-generated insights. This capability extends our NLG capabilities beyond the Insight Advisor experience, allowing a much broader audience of Qlik Sense users to benefit from narrative interpretations and readouts when exploring in dashboards, boosting data literacy and delivering improved data storytelling.