1 2 3 Previous Next

Qlik Design Blog

456 posts

I've been doing most of my projects lately with React and enigma.js, and developing some general patterns along the way that I've been working into a starter project that I can use as a starting point. I'd like to share that with you today, and potentially start a discussion around the design decisions I've made thus far.

 

The starter project can be found at GitHub - fkabinoff/qlik-react-starter: Starter project for rapidly developing QAP-powered apps. It's still very much in development, but there's a decent framework and dev environment in place, as well as a few useful components.

 

Overview

The project uses enigma.js to interface with the Qlik engine, along with React, webpack, Babel, ESLint, Sass, and a few other goodies. Really, a pretty standard React app with enigma.js added. The qDoc, which is the name the enigma.js docs use for the connection to the Qlik app is created in a plain Javascript module and simply imported to any file that needs to use it.

 

I use react-hot-loader, which allows you to change react components without refreshing the page or losing state, and I really like it. It has it's problems, most noticeably to me that it doesn't play very nicely with higher order components, but the ability to change my React components and not have to reload the page or lose state helps me develop faster.

 

I'm using the latest Babel preset, which enables es2015, es2016, and es2017, and Babel plugins which enable decorators, spread syntax, and class properties. I can't believe we actually wrote Javascript before this stuff.

 

I use the very popular airbnb config for ESLint. It helps keep the code healthy and uniform.

 

I make use of reactstrap, a library of Bootstrap 4 components for React, and SASS for customizing and mixing in Bootstrap styles, as well as creating a few utility classes. I prefer using reactstrap over some of the more feature-rich React UI libraries, because I often find it creates more work trying to make the components of those UI libraries, such as Material UI, play nicely with how I want a component in a Qlik-powered app to function since in a Qlik-powered app the Qlik engine acts as a state machine, and many of the UI libraries with more features expect the state to be managed and changed by the client. Reactstrap gives me what I need, without being too opinionated about it.

 

I use the "render prop" pattern in place of higher order components. The render prop pattern is simply passing a component as a prop to another component for that component to render it. It basically works like a higher order component does, but to me it's a bit simpler, a little more flexible, and doesn't mess with react-hot-reload or PropTypes checking.

 

Notably, I don't use a state manager like Redux or MobX, and this may be my most contentious decision. To me, the use of a state manager in most instances is redundant when building a Qlik-powered app. Qlik already manages my state, and shares it between components. I hardly, if ever, have state that needs to be managed outside of Qlik in my Qlik-powered apps, and using a state manager forces me to do extra work to keep the client state and Qlik state in sync. I don't like it.

 

It would be very interesting to hear what you think about these design decisions, and the decisions that you've made with your own Qlik projects.

 

Components

Now, let's take a look at the actual components. There are currently 4 Qlik-specific components, but I expect to add more as I continue developing this. I tried to design the Qlik-specific components to expect props which are identical to values defined in Qlik docs, and pass down values directly returned by the Qlik engine, in order to standardize as much as possible. Though in some instances, I broke that rule. For instance, since the QlikObject wrapper, which I'll talk about in a moment, is really only designed to work with an object that fetches one page, it didnt make sense to pass down the qDataPages returned by the Qlik generic object getData method. Instead, I simply pass down the object at the first index of qDataPages.

 

QlikObject.jsx

The QlikObject component implements the render prop pattern, and contains the logic to create and manage a Qlik generic object and its state. It passes down the Qlik generic object information to the component defined in the Component prop, which is responsible for rendering something.


QlikVirtualScroll.jsx

The QlikVirtualScroll component implements the render prop pattern, and paginates data on vertical scroll so only data in view gets rendered. It passes down a subet of the qMatrix to the component defined in the Component prop, which is responsible for rendering something. It is used by the QlikFilter and QlikTable components.


QlikFilter.jsx

The QlikFilter component renders a dropdown that acts as a Qlik Sense filter. It's meant to be used as the `Component` prop of a `QlikObject` component a type of `qListObject`. This component doesn't need to be passed any props other than the props passed to it by `QlikObject`.


QlikTable.jsx

The QlikTable component renders a table. It's meant to be used as the `Component` prop of a `QlikObject` component with a type of `qHyperCube`. This component requires a prop `columnWidths` to be passed to it, defining the widths of the columns of the table. This prop should be passed using the `componentProps` prop of the `QlikObject`.



Finishing up

Go to GitHub - fkabinoff/qlik-react-starter: Starter project for rapidly developing QAP-powered apps, download the zip, run npm install, and npm run dev, and you can check out the QlikFilter and QlikTable components in action, and check out the code. I'll be adding more components and styles as I'm still pretty actively developing it, so watch the repo if you're interested, and let me know what you think.

Jennell McIntire

Qlik Sense Histogram

Posted by Jennell McIntire Jan 12, 2018

What is a histogram?  A histogram is a chart that allows you to visualize the distribution of data over a continuous interval or certain period.  It is made up of bars like a bar chart but instead of displaying actual counts against a dimension, a histogram displays the frequency at each interval or bin allowing you to see where the values are concentrated and where there are gaps or odd values.  A histogram is also different from a bar chart in that it does not need measures.  Only a single numeric dimension is needed to create a histogram.  Once the dimension is added to the Qlik Sense histogram chart, the frequency is automatically calculated.

 

Let’s look at an example, in the histogram below, the dimension BMI (body mass index) is used to view the frequency.  After BMI was added to the chart, Qlik Sense automatically created the BMI bins based on the frequency distribution.  This chart shows that BMI is concentrated in the range 21 <= x < 22.75 (21 to 22.75, but not including 22.75).

histogram.png

The Qlik Sense histogram chart has some properties that can be used to customize the histogram.  There is the ability to set the number of bars to a maximum number or set the width of the bars if you would like the bars to be even intervals.  Qlik Sense Help has an example of a histogram using even intervals to show temperature.

num of bars.png               bar width.png

 

In the histogram above, the number of bars is set to 10.  When the bars are set to Auto, Sturges’ formula is used to determine the bins and this may change based on selections.

 

A histogram chart is ideal for a large amount of data when you need a quick visualization of frequency.  It is easy to create since only one dimension is required.  The key to remember is that the dimension field must be numeric.  Try it out with your numeric dimensions in your next Qlik Sense app.  If you are using QlikView, you may be interested in Henric Cronström’s blog Recipe for a Histogram on how to create a histogram in QlikView.  Also, check out Arturo Munoz’s blogs on the Distribution Plot chart and the Box Plot chart.  You may also find these helpful in your next Qlik Sense app.

 

Thanks,

Jennell

ny2018.pngWell guys - where do I begin? – Ah I got it, Happy New Year! <sigh> It feels like only yesterday that I was writing my first blog for 2017. However, after a long break, I’m excited to get back to work and contribute towards another prosperous year at Qlik! I didn’t want this to be another one of those “Year-in-review-type” posts…..so…I cleverly disguised it to highlight some of our product achievements during 2017. Think about it as a sitcom clip-show. So much Qlik goodness has transpired over the past year not only is it difficult to cover everything that has happened with the product, but as a consumer, I know it's difficult to keep track of it all, so I ‘ll do my best to summarize and consolidate where I can. This post is a bit long - so for some of you, I expect you to bookmark it and use it for later reference if needed.


ENTER TO WIN $50 Amazon Gift Card - Rules Below


So, let’s begin.

 

For those of you who want the short, short version:

 

  • Qlik GeoAnalytics
  • Qlik Sense 3.2
  • QlikView Converter
  • Qlik Sense Chat Bot
  • Data Connectivity
  • Qlik Sense June 2017
  • Advanced Analytics Integration
  • Qlik Sense September 2017
  • Qlik Sense November 2017
  • Qlik Sense Mobile
  • Qlik's Associative Difference

 

Qlik GeoAnalytics

 

Qlik GeoAnalytics Datasheet1-3.jpgIn January of 2017 – we kicked off the then new year with an acquisition of our Sweden-based partner, Idevio, creator of Idevio Maps. We introduced the recently acquired product as Qlik GeoAnalytics. Currently available as an extension for both Qlik Sense and QlikView, Qlik GeoAnalytics goes beyond traditional “points on a map” and adds a broader range of capabilities to support advanced geoanalytic use cases. During 2018 (no specific time-frame yet) we plan on integrating Qlik GeoAnalytics directly into Qlik Sense, so stay tuned.

 

ICYMI: Introducing Qlik GeoAnalytics

 

Qlik Sense 3.2

qlik_sense_3.2_highlights_0.jpg

 

Soon after, in March 2017 - we announced our first release of Qlik Sense for the year, version 3.2. 3.2 added the ability to easily create time-based measures (Calendar Measures), included additional chart options to support custom colors and color assignments, introduced the QlikView Converter and added a new configuration to improve the performance and stability of multi-node deployments (Shared Persistence)


ICYMI: Introducing Qlik Sense 3.2

 

 

The QlikView Converter

 

ui-qlikview-converter-example-01.png With version 3.2 we included a utility found in the Dev Hub that simplifies converting a QlikView document (.qvw) over to a Qlik Sense app (.qvf). You simply upload your .qvw to the converter to be analyzed, and it will extract the data model, script, measures, dimensions, expressions, variables and even compatible visualizations. The user can then choose what they want to convert to create a starter Qlik Sense app. Next they can create new or modify existing visualizations using the assets that were already available in QlikView.

 

ICYMI: QlikView converter - Qlik Sense - YouTube

 

Qlik Sense Chat Bot

 

1.pngApril 2017 set a new milestone for Qlik by pushing the boundaries of analytics.  We demonstrated the art of the possible using the Qlik platform, its awesome APIs, and various 3rd party technologies - to create the first ever Qlik analytics chat bot. Simply stated, imagine getting your answers to your business questions by asking your digital assistant. Since the original bot debuted at the Gartner BI Bake-off and Qonnections there has been tremendous interest in this concept, which has evolved rapidly over the 2nd half of 2017. There is now a new community group: https://community.qlik.com/groups/qlik-chatbots with many supporting resources and our own Todd Margolis is leading the charge to help enable our community to take advantage of our two open-source Qlik Bots.  Whether you’re a business user and want quick and easy access to your KPIs on the go or you’re a developer and want to extend them with new capabilities or integrate Qlik into your existing bots, we’ve got you covered.

 

ICYMI:

 

Data Connectivity

cloud+blog+2.pngOver the course of 2017 Qlik Sense and Qlik Sense Cloud had many improvements, especially in the area of connectivity. In May we introduced the first integration of our Web Connectors package to Qlik Sense Cloud – starting with access to Twitter, Facebook and Google Analytics.  Then in July we introduced on premise connections from Qlik Sense Cloud starting with MS SQL as well as the Web file connector. During 2017 we delivered over 20+ connectors to Qlik Sense and Qlik Sense Cloud Business including Dropbox, REST, Amazon Redshift, YouTube and many more.

 

 

 

ICYMI:

 

In addition to the aforementioned connectivity we also debuted our new release schedule and product naming convention when delivering Qlik Sense June 2017. No more dot releases for us – new releases are now identified by the month they are delivered in. June 2017 brought us new visualizations (Histogram, Distribution and Box plots), enhanced visual data preparation features that support data profiling and data quality and a new Advanced Analytics integration framework – allowing you integrate with advanced analytics engines such as R and Python.

 

 

7-20-2017+5-40-37+PM.png


Qlik Advanced Analytics Integration (AAI) enables direct server to server data exchange between Qlik Sense and 3rd party calculation / analysis engines via a connector or what we also call a plugin. So for example, a specific forecasting function that is part of an R library can now be called from within Qlik script and chart expressions and calculated on the fly. Passing the results back to the Qlik analysis engine and subsequent visualizations. With this capability we now support the APIs that provide connectivity to such engines and provide starter connector projects for R and Python.

 

ICYMI: Introducing Qlik Advanced Analytics Integration

 

Qlik Sense September and November 2017

 

9-5-2017 1-20-11 PM.png

Continuing our commitment to deliver iterative improvements and features every 10 weeks, we released our September and November 2017 releases, which introduced our new Waterfall chart, continuous transformations using visual data preparation, our Qlik Sense Mobile app, visualization and navigation improvements and the introduction of our extension certification pilot.

 

 

 

ICYMI:

 

Qlik Sense Mobile (offline)

 

552x414bb.jpg
Originally released to select participants in June, the Qlik Sense Mobile app for iOS became available to customers and partners in the Apple App Store later in the year. This iOS app enables its users to connect to their Qlik Sense Enterprise Server and download a local copy of their Qlik Sense app directly to their iOS device where they can analyze data on the device just as if they were connected to the server, allowing them to take Qlik Sense with them on the go in a disconnected state. (at this time Qlik Sense Mobile is for iPad only – a version for the iPhone is expected to be release early this this year.)

 

 

ICYMI:

 

Qlik’s Associative Difference

 

assoc_thumb.pngFinally, analytics is more than just creating charts, it’s about finding answers. Therefore, I’d like to give an honorable mention to our team, who has created resources to help our prospects, customers and partners clearly understand the benefits of Qlik’s Associative Difference, powered by our patented associative technology. Sometimes referred to by many different names (Associative Experience, Associative Model, Green-White-Grey), Qlik’s Associative Difference separates us from those traditional query-based visualization tools. Qlik’s Associative Difference allows you to explore data freely in any direction, automatically associating every dimension in the data model which visually reveals how the data are related using the colors green, white and grey - AND -  without leaving any data behind.

 

ICYMI:

 

Well guys – that’s it – your Qlik 2017 Year In Review – oh wait. - I said I wasn't doing a "year-in-review" post, ah @#$%&!.

 

Personal Giveaway Rules:

 

Do you have some interesting Qlik highlights or discoveries during 2017 that you would like to share? We want to know. Post them in the comments below OR if you would like to participate in my personal giveaway with a chance to win a $50 Amazon Gift Card (claim code) post a tweet using twitter http://twitter.com/ with your 2017 Qlik highlight or discovery and tag me using @mtarallo along with the hashtag:

 

#Qlik2017Highlights

 

...you will then be entered into a reviewed, random drawing to receive $50 Amazon Gift Card(claim code). Winner will be selected using Qlik's Twitter Connector and Qlik Sense app which will draw a random tweet using the hashtag: #Qlik2017Highlights. Winner will be announced on Twitter by @mtarallo on February 6th 2018 and in the Tuesday edition of the Qlik Design Blog. Entry must be an interesting or valid Qlik highlight or discovery - if not it will be discarded and the next entry will be selected at random.

 

Contest starts Tuesday Jan 9 2018 and ends on Tuesday Jan 30 2018. We want to hear from you!

 

Enjoy!

 

Regards,

Michael Tarallo (@mtarallo) | Twitter
Qlik

Qlik_BOT_Headers_Skype.jpg

 

Last month I talked about our new QlikBotNode, setting it up and getting it ready for Telegram Qlik Sense Bot with Node.js and Enigma.js.

 

Today, I will talk about the steps needed to make your bot available for Microsoft Skype as well!

 

Assuming that you have already forked the code from GitHub - qlik-bots/QlikBotNode: QlikBotNode is a server build in Node.js, Express.js, Enigma.js and MySql that connects … and you have already went through the previous tutorial and set up the Telegram bot.


Installation


  • First you need to "Register a Bot with Bot Service". Login to the Azure Portal http://portal.azure.com/
  • Click the New button found on the upper left-hand corner of the Azure portal, then select AI + Cognitive Services > Bot Channels Registration.
  • Click the Create button to start the creation process.

registration-create-bot-service-blade.png

 

  • Enter a Bot Name as you want to appear in your contact list
  • You can use the free Pricing Tier for testing
  • For the Messaging Point add you full route like https://{your-server}/api/sense-bot/microsoft/
  • You can skip the Application Insight for now
  • Once registered, go to settings and get the AppId and the Password. You will need to add them in your environmental variables

registration-settings-manage-link.png

 

  • Click on Manage to get the password

registration-generate-app-password.png

 

  • Put the AppId and Password in your Environmental variables.
  • For Windows, go to "Control Panel" -> "System" -> "Advanced System Settings" -> "Environment Variables"
  • - For Linux, from your directory (~), type "nano .bash_profile" or "vim .bash_profile" and enter the variables there like
  • export SKYPE_BOT_ID_SCV=''
    • export SKYPE_BOT_PASSWORD_SVC=''
  • While still in settings, go to "channel" and add skype.


Thats it!


For more Details on Register a bot with Bot Service (https://docs.microsoft.com/en-us/bot-framework/bot-service-quickstart-registration)


Usage


  • Type help for all of the available commands.

chat-help.png

 

  • Click on Salesforce to get the available commands for the Salesforce App and then click on the Dashboard to get a list of KPIs

chat-salesforce.png

 

  • Click on CIO Dashboard and then on Management

chat-cio.png

 

  • - If you want to change your language click on Language and select one of the available ones. So far we have only 3, English, Spanish and Greek but please feel free to add as many more as you want

chat-language.png

That's it!

 

Make sure you follow:

 

 

Best,

Yianni

It's time for the end-of-the-year in review post, it's time for the cream of the crop.

 

During 2017 six main authors and a respectable number of guest bloggers posted a total number of 85 articles (plus this one).

 

We wrote 39,822 words (7,819 distinct words), that’s 15% more than the number of words we wrote previous year. We wrote the word “Qlik” 566 times, an absolute record. You contributed 695 times to the success of this blog in the comments section, we truly appreciate your feedback and comments!

 

1.png

 

Most popular posts in 2017

 

Most read/visited posts

Don't be the last one to read it!

 

  1. Qlik Sense September 2017 - What's New
  2. Quotes in Set Analysis
  3. Push the Boundaries of Analytics - Qlik Sense Bot (video)
  4. Take a look at Qlik Sense June 2017
  5. Introducing DAR mashup template

 

Most commented posts of the year

Everyone is buzzing

 

  1. Quotes in Set Analysis
  2. Introducing Qlik Sense 3.2
  3. Take a look at Qlik Sense June 2017
  4. Qlik Sense September 2017 - What's New
  5. Push the Boundaries of Analytics - Qlik Sense Bot (video)

 

The underdogs 2017

They worth a second read.

 

  • Qlik Sense WordPress Plugin
    The world most popular CMS and the most powerful Analytics platform combined? it seems like a perfect match. This blog post is capturing a lot of comments, check it out and join the conversation.
  • Rank Function
    Some of the old Qlik functions still have secrets, check this post to learn what you are missing from the Rank function.
  • Intro to Qlik Open Source Software
    It feels great to contribute to the Open Software community, read what Qlik has to offer!
  • Salesforce and CIO dashboard mashups available to the public
    You can use these examples as templates or just dissect them into pieces to learn more about Qlik APIs and how to build impacting data sites.

 

 

I wish you an enjoyable New Year countdown!

Arturo (@arturoqv)

Wow! There are some really mind-blowing trends developing in BI and data analytics. Here are a few that have me the most excited, and my favorite examples of each from the past year.

 

Augmented Analytics

artificial-intelligence-2228610_640.jpg

Augmented intelligence incorporates machine learning to supplement and support human analysis. Qlik Sense is now capable of Advanced Analytics Integration through the use of server-side extensions, and Qlik Sense + Advanced Analytics = Augmented Intelligence. Go get started augmenting your own intelligence today, using Qlik Sense Advanced Analytics Toolbox.

 

speech-bubbles-303206_640.png

Conversational Analytics

As virtual assistants like Alexa and Google Assistant and chatbots in messaging services like Slack and Telegram become more ubiquitous, interest in conversational analytics continues to grow. Conversational analytics is the ability to provide a query in natural language, either spoken aloud or as text, and receive a response. The ability to simply ask a question and get an answer about your data is pretty cool. Ask some questions and get some answers by trying out QlikBotNode.

 

Immersive Analytics

thumbnail.png

Immersive analytics utilizes virtual and augmented reality to enable analytics in immersive environments. While widespread adoption of immersive analytics may be a little further off that either augmented intelligence or conversational analytics, the possibilities are truly exciting. Immerse yourself today and take a glimpse into the future with Qlik Healthcare Analytics AR.

vik.png

 

Hi Guys, we are almost at the finish line for 2017! So roll up your sleeves and get ready to show off that Qlik creativity and passion as we are ready to start accepting applications for our 2018 Qlik Luminary program. Here to tell you more is our Global Customer Communications Manager, Viktoria Lindback.


Viktoria Lindback has had many roles during her 5-year tenure at Qlik. Today, she runs global customer programs including the https://www.qlik.com/us/solutions/customers/qlik-luminaries which means she gets to spend the majority of her time interacting with the most enthusiastic Qlik users around the world.

 

If you haven’t heard of the Qlik Luminary Program yet, this is a great time to get educated about it because we’re accepting applications to the 2018 Qlik Luminary Program as we speak!

 

IMG_3397.JPG

Click here to see our awesome Qlik Luminary Class of 2017

 

Every year, we roll out the green carpet to a remarkable group of people who all receive the “Qlik Luminary” designation. With deep drive, passion and expertise, Qlik Luminaries are constantly pushing the envelope, finding new and innovative ways to use, deploy and talk about Qlik solutions. Some of them are BI thought leaders; others are recognized industry visionaries, business leaders, or masterful developers. But what they all have in common is a passion for innovating with Qlik and sharing their expertise with others in a global arena. You will catch them speaking at events, running Qlik Dev Group, writing blog posts, contributing to case studies, and participating in Qlik Community and other social networks. A great place to follow their work is #QlikLuminary on Twitter.

 

Here are some of the characteristics of a Qlik Luminary:

  • Passionate about Qlik and widely recognized as a BI innovator and expert in his or her field
  • Active and consistently helpful on Qlik Community
  • Active on online forums, industry social networks, and/or organizational or personal blog
  • Willing to share best practices and knowledge at industry events, forums, in the press, and with industry analysts
  • Prolific content creator who creates or contributes to blogs, white papers, reviews, articles, videos, etc.

There are also plenty of benefits to being a Qlik Luminary. They enjoy free access to state of the art Qlik training, custom merchandise, exclusive engagements with R&D, Product Management, and Support teams, membership in a private Qlik Community group, NDA briefings with Qlik product executives, and VIP treatment at Qonnections.

 

 

We are accepting applications for the 2018 cohort until December 31st here: https://www.qlik.com/us/solutions/customers/qlik-luminaries


Don't miss your chance to join a group of the sharpest brains and most skilled users in the BI industry!

 

Kinds Regards,

Viktoria (@VLindback) | Twitter
Global Communications Manager
Qlik

Today I thought I would share how I used the system functions OSUser() and DocumentName() in a Qlik Sense app.  Here is some background on the app - the app resides on a server and users must log in to access it.  Users can have multiple copies of the app and each file name is unique.  The app allows users to store the results of their analysis in QVDs and I wanted the QVDs to include the QVF name/id as well as the logged in user name to ensure that there is one set of QVDs per app.  To do this, I used the OSUser() and DocumentName() functions.


Let’s learn a little more about these functions.  According to Qlik Sense Help, OSUser() returns the name of the user currently connected and DocumentName() returns the name of the current Qlik Sense app.  In the script below, I created variables that store the results of these functions.

script.png

OSUser() returns a string formatted like this:

UserDirectory=xxx;UserId=xxx

 

This is what I stored in the vFullUser variable.  Then in the vUser variable, I used the Right, Len and Index functions to capture just the UserId portion of the string.  DocumentName() returns the app ID for the QVF.  I use the vUser and vAppName variables later in the script when I am storing the data into QVDs.  Below is an example of what that script looks like.  I append the user ID and the app ID to the name of the QVD.

store.png

Qlik Sense offers many system functions that can be used in both the script and chart expressions to provide system, device and Qlik Sense app properties.  Here is a list of the available system functions:

 

AuthorDocumentTitleIsPartialReload
ClientPlatformEngineVersionOSUser
ComputerNameGetCollationLocaleProductVersion
DocumentNameGetObjectFieldReloadTime
DocumentPathGetRegistryStringStateName

 

You can learn more about the system functions available in Qlik Sense Help.  The OSUser() and DocumentName() functions are easy to use and capture the information I need to make the QVDs specific to a user and an app.  Keep these functions in mind the next time you need information about a Qlik Sense app or the system/device it is running on.

 

Thanks,

Jennell

Qlik_BOT_Headers_Telegram.jpg

Hello everyone. After I saw the popularity of Juan's Qlik Bot for Telegram written all in C#, I decided to create another one in JavaScript with Node.js and Enigma.js. Today I am going to share with you the code and how to get started creating your own bot for Telegram on any Operating System that has Node.js installed.

 

The server will be running under https so if you do not have valid certificates for your domain, or localhost if you are testing it on your local computer, you can have Qlik Sense Enterprise take care of that for you. From QMC, go to start->Certificates and then export for localhost using the "Platform Independent PEM-format"

export-certificates.png

Copy these certificates and paste them into {QlikBotNode folder}/app/server/certs/localhost

 

I have used 3 apps in this, helpdesk, Salesforce and CIO dashboard. The qvf for helpdesk is bundled in your Qlik Sense Desktop while the Salesforce one you can get from Salesforce/Files at master · yianni-ververis/Salesforce · GitHub and the CIO Dashboard one from CIO/Files at master · yianni-ververis/CIO · GitHub.

 

Now lets get the code from GitHub - qlik-bots/QlikBotNode: QlikBotNode is a server build in nodejs, expressjs and MySql that connects to chat and m…

 

From the command line using your favorite tool, I am using Git Bash for this one, type Npm install to get all of the required modules.

 

Install MySql or Xampp / Wamp and connect to it. Xampp is bundled with phpmyadmin so you can use that. Then create the database and the tables by running sql query (QlikBotNode/sensebot.sql at master · qlik-bots/QlikBotNode · GitHub)

 

Every platform, upon creation of the bot, it gives you some tokens so your code can authenticate with the platform's servers. Once we have these tokens, for security reasons, we need to set them as environment variables. So, lets create our bot and get our token.

 

Once you install Telegram Desktop, go to your "BotFather" contact and type "/newbot". Everything in Telegram that starts with "/" is a command. So we typed the command to create a new bot. This will give you an options menu to configure your bot.

settings.png

Go ahead and give your Bot a name, an icon and a description. If you click on "Back to Bot", you will get a button with the "API Token". Take that token and store it as Environment Variable.

In windows you have to go to "Control Panel" -> "System" -> "Advanced System Settings" -> "Environment Variables" and set a new one as "TELEGRAM_BOT_TOKEN", while in Linux, from your directory (~), type "nano .bash_profile" or "vim .bash_profile" and enter a new line with the token "export TELEGRAM_BOT_TOKEN=######".

 

Now you should be ready to run your code. From the command line (Git Bash), type "gulp". If everything goes well and you do not have any errors, you should see a message "[nodemon] starting `node app/server/server.js`". Your server is up and running and communication via the Token auth has been established.

 

Now lets explore the Bot.

  • Type help to view all of the available commands main.png

 

  • Click on the Salesforce button or type /salesforce salesforce.png
  • Here, there are some buttons to get KPIs and one that takes you to the mashup for validation. Try them all!!!!!
  • Click on the CIO button or type /cio and then click on "Management" to get the set of KPIscio-dashboard-management.png
  • Click on the Helpdesk button or type /helpdesk helpdesk.png

That's it! Now you can a have a Node.js server running with your QlikBotNode and you can start experimenting with KPI commands in the Telegram app.


The code is open sourced at GitHub - qlik-bots/QlikBotNode: QlikBotNode is a server build in nodejs, expressjs and MySql that connects to chat and m…

Certificate_color_new.png
Hey Guys! - Happy Friday! Yep I'm blogging on Friday this week and our Demo and Design Team will be taking my usual Tuesday slot next week, to blog about something many of you have been waiting for (mark my words) I think you ALL are going to love it - so until then you'll have to deal with me for today. So what difference does that make to you for today's blog?!?! Absolutely nothing!

 

Seriously though - back in September, with the announcement of Qlik Sense September 2017 Qlik Sense September 2017 - What's New - I made mention of an Extension Certification Pilot program which will allow extension authors to submit their extensions to Qlik for review, to be certified and supported by the author for use within the Qlik platform. So in this blog I am making good on my promise to update you on the progress of this with some detailed information that should answer a few questions.

 

In the November 20017 -  What's New in Qlik Sense November 2017 we made mention that certified extensions are now going to have some badging to identify that they are certified -- and that they will be made available on Qlik Market - our online partner solution showcase. However - we have had some members and partners with additional questions and I think the answers will benefit everyone.

 

What extensions are certified? (There is currently no badging or filter on Qlik Branch for these items)

The only certified extensions currently are the ones that we are planning to put on Qlik Sense Cloud in the near future. Once certified they will automatically be part of Qlik Sense Cloud and be available for installation with Qlik Sense Desktop and Enterprise. (available form Qlik Market)

 

Do you have any extensions that will be certified first?

 

These 4 are on the certification list, and final certification will be made shortly:

 

It’s important to note that the versions of these extensions available on Branch are NOT certified. Certified versions will only be available for use on Qlik Sense Cloud or available for download from Qlik Market (market.qlik.com). Only the versions on Qlik Market will be badged. The plan is for those versions on Qlik Branch to be the open source, work-in-progress versions, subject to change at any time, and therefore, can’t be certified.

 

What does certification entail for our customers, partners, community ?

For a customer, certification doesn’t entail anything different except using the certified version. For developers (whether they be our customers or partners, or outside of those communities) the certification process will mean submitting the extension to be run through a battery of tests to ensure that they run correctly, don’t use any undocumented APIs, contain no malicious code, and some other tests. If they want the extension to be listed on Qlik Market, there is another check that the QM team makes before they can be posted (mostly around brand compliance and usability).

 

How can I submit and extension?


The "official" certification program is not yet in place. The four extensions we certified were Qlik-created. We are not yet ready to accept outside submissions for certification but will have a process in place early next year, so please stay tuned.

 

Hope this information is helpful to you all and if you have any questions please post them below and I'll do my best to address them for you.

 

Have a great weekend everyone!

 

Regards,

Michael Tarallo (@mtarallo) | Twitter

Qlik

 

Additional Reference Resources:

 

QlikHelpTypemark-Vertical-Web.png


Hello Qlik Community! In Tuesday's edition of the Design Blog I highlight some of the latest features found in our new Help Site - created with collaboration from our engineers, technical writers and our Product Content and Media team. We hope that the site's new layout and navigation features make it easier to find the information you need, when you need it.





The New Qlik Help Site



"Teamwork for results" -- this is one of Qlik's core values that many of us embrace when creating content that makes our community successful with the Qlik platform. However, few are aware of our unsung heroes that work behind the scenes to bring you this great content, delivered to the Qlik Help site as well as our Qlik Help YouTube channel. I'd like to take this moment to thank and recognize them on behalf of the Qlik Community.


There is a small army led by Renata Rieschel, Director Product Content and Media. Renata manages the development and maintenance of all the content, design and infrastructure of the Qlik Help site. Our technical writers and architects not only design and write the help documentation, but they are also tasked with writing video scripts and verifying content from a linguistic point of view for many of the structured help videos you will find on the Qlik Help Channel. We have even enlisted the appealing voice talents of our Collaboration Product Designer, Stephen Jasionowski and our Internal Communications Manager Helene Rudzinski to provide the voice-overs for many of the help channel videos created by our interaction designer Giuseppe Panella, including those from our new series Qlik Tuesday Tips and Tricks - found on YouTube.

 

With all this great content being created, both visual and text-based - how should it be hosted, what will the UI look like, how will people search, navigate and find what they need? That is where Magnus Franzen and Tobias Leander come in. They have built a framework and implemented a platform to host all this content and strive to improve the performance, accuracy and usability of it daily, providing you with the best user experience possible.


I'd also like to recognize our technical writers, interaction designers, web developers, architects and engineers in Product Content and Media whom all work together to bring you the best content in a timely and efficient manner.

Sara Garmark

Jim Siwila

Mary Newell

Chris Bushnell

Konstantinos Fioretos

Thomas Oxenby

Thomas Lewis

Daniel Chabot

Daniel Rignell

Filippo Guizzetti

Greg Ralston

Julia Beingessner

Kyle Weishaar

Mary Newell

Michelle Thomas

Ralf Narfeldt

Sarah Anderson

Ingemar Hansson

Karin Dahlgren

Swati Jha


Thank you Team!

 

Regards,

Michael Tarallo (@mtarallo) | Twitter

Senior Product Marketing Manager
Qlik

 

 

Can't see the video?

 

Download the .mp4 and watch from your computer or mobile device.

Since the introduction of Data Manager (the Data manager is where you visually add and manage data from your own data sources, or from Qlik DataMarket, so that you can use it in your app) Qlik has been constantly improving the set of features that makes the task of loading data an enjoyable part of the analysis process.

 

One of the most recent (and genius) additions to Data Manager is the “Summary card

 

 

1.png

 

So what is the Summary card?

 

Summary data profiling card is a visual representation of your data. It contains a set of elements, values and charts, that let you better understand each field in your data set.

 

Summary card has been designed to help you anticipate and prevent data quality issues before loading data into Qlik Sense. The Summary card content adapts to the field selected, so depending on the column data type, measure, dimension, or time it will present you with different insights.

 

For measures the following information is provided

  • Field name
  • Field type
  • Distinct Values
  • Total Values
  • Preview of the distinct value distribution in a bar chart showing the 20 highest count elements.
  • Value Range. It is a very interesting chart itself, for a measure field it will show a distribution chart showing the Min, Median, Average, and Max values for the field.
    If a temporal field is selected the Value Range will display the first and last date in the range.
  • Null Values and Mixed values charts only appears based on the field data.

 

5.png

 

How to access the Summary card

 

To see and use the Summary card by yourself you have to get to Data manager, In Data manager, select a table and click the pencil icon, then select a table field and the Summary card appears. Or just check the animation below:

 

dp2.gif

 

Enjoy it!

Arturo (@arturoqv)

Our Christof Schwarz is back and has created a video tutorial that shows you how to use PERSISTENT CUSTOM colors with Qlik Sense visualizations. Persistent colors map all dimension values to specific consistent colors that are represented equally in all charts on the sheet. When you perform selections - the values displayed will all be represented by the same color in the charts. However the colors can change when the sequence or number of values for that dimension have changed. So this tip will show you how to assign specific custom colors to those values so they don't change and remain "sticky" as Christof puts it.

 

Enjoy!

 

I posted back in May about creating an app that allows a user to authenticate with Facebook, grabs the user's post data, generates a load script, and creates a Qlik Sense session app with enigma.js (When do you post to Facebook?). At the time, I still had to overcome a few hurdles to put it up live so you could check it out yourself. Since then, it's also become possible to create a Qlik Sense session app with the Capability APIs so that you can use the Visualization API with your on-the-fly Qlik Sense session apps, which I posted about in September (Creating apps on the fly).

 

The demo is now up live, and there's two versions of it, one using enigma.js, and one using the Capability APIs. They're pretty minimal when it comes to design yet, I plan on building them out a bit more still, but it's cool to just see this all working, authenticating a user with Facebook, grabbing their data, generating a load script, creating a Qlik Sense session app, and visualizing the data. It's easy to see how something like this could be applied to a business use case where users may have very user-specific data. Check the demos out below!


Capability APIs version - Qlik Sense Session App Demo - Capability APIs

enigma.js version - Qlik Sense Session App Demo  - enigma.js


Jennell McIntire

Do..Loop

Posted by Jennell McIntire Nov 17, 2017

The do..loop control statement is used in the script to iterate through one or more statements until a condition is met.  It is useful when you need to dynamically check a condition while executing statements in the script.  There are two ways the do..loop can be used.  The first is to check the condition before executing statement(s) in the loop and the second is to check the condition after the statement(s) in the loop have been executed.  Let’s look at some examples.

 

The script below checks to see if the condition has been met before the statements are executed.  When x is no longer less than 10, the do..loop will stop.

Do while.png

The script below is a little different.  In this script, the condition is checked after the statements are executed so the statements will always run at least one time.

Do loop while.png

Both scripts produce the same results as seen below.  Products 1 through 9 were created.

Do while table.png

The do..loop also can be used with the “Until” keyword instead of the “While” keyword producing different results.  In the script below, the statements will be executed until x is less than 10.  Since x is equal to 1 which is less than 10, the statements never run so no products are generated.

Do until.png

Now if the condition is checked after the statements are run, as shown in the script below, one product will be created since the statements run once before the condition is checked.

Do loop until.pngDo until table.png

Now what if you need to exit the do..loop.  You can do this using Exit do.  The loop will be exited and execution will continue with the statement(s) following the loop.  Here is an example of what this looks like.  In the script below, the loop will exit after the Load statement runs 3 times, stopping when x is equal to 3.

exit do when.png

In the script below, this loop will exit after the Load statement executes one time.  Since x is not equal to 3, the loop will be exited when execution gets to the exit do statement.

exit do unless.png

The do..loop is helpful in the script when you need to execute statements while /until a condition is met.   It provides flexibility since the condition can be dynamic and be evaluated before or after the statement(s) in the loop.  This is a little different from the For..Next loop where a counter is used to determine the number of times the statement(s) in the loop are executed.  Learn more about loops in Henric’s blog Loops in the Script.

 

Thanks,

Jennell

Filter Blog

By date:
By tag: