Qlik Community

Blogs

Hear directly from Qlik employees in our eight unique blogs. Check out the new Architecture Deep Dive Blog!

All about product and Qlik solutions: scripting, data modeling, visual design, extensions, best practices, etc.

Learn about what's new across all of the products in our growing Qlik product portfolio.

Deep dives into specific back-end technologies which allow for the extension of Qlik to fit the needs of the enterprise.

Information on all new product releases, connectors, beta programs, and technical product information.

Updates for Qlik Community offerings, announcements and changes.

Important and useful support information about end-of-product support, new service releases, and general support topics.

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

On this forum you can access and follow the latest updates of our courses and programs with the Qlik Education team.

Recent Blog Posts

  • qlik-community-blogs.jpg
    Qlik Support Updates Blog

    Qlik Sense April 2019 Patch 1 now avaialabe

    Dear Qlik Sense users, We are pleased to confirm that the latest patch for Qlik Sense April 2019 is now available on our download site. April 2019 Patch 1 includes several bug fixes and you can find details of all the fixes in the attached release notes. The patch is installed as a MSP and must be installed on top of the full Qlik Sense April 2019 installation. Thank you for choosing Qlik software. As always, please follow best practices when upg... Show More

    Dear Qlik Sense users,

    We are pleased to confirm that the latest patch for Qlik Sense April 2019 is now available on our download site. April 2019 Patch 1 includes several bug fixes and you can find details of all the fixes in the attached release notes.

    The patch is installed as a MSP and must be installed on top of the full Qlik Sense April 2019 installation.

    Thank you for choosing Qlik software. As always, please follow best practices when upgrading any software and make sure you back up your system before making changes.

    Kind regards,

    Global Support

    Show Less
  • Image Not found
    Qlik Academic Program Blog

    Four reasons why you may not be ready for a job in data science

    This week on towardsdatascience.com Jeremie Harris has been sharing insights on the most common reasons why applicants get rejected for data science roles. In his vast experience coaching hundreds of data scientists, Jeremie believes that lack of competency in the below areas accounts for around 70% of interview rejections. So if you can work on improving on these points, it might just be enough to land you that job that you've been sea... Show More

    This week on towardsdatascience.com Jeremie Harris has been sharing insights on the most common reasons why applicants get rejected for data science roles. In his vast experience coaching hundreds of data scientists, Jeremie believes that lack of competency in the below areas accounts for around 70% of interview rejections. So if you can work on improving on these points, it might just be enough to land you that job that you've been searching for. And of course, in this post I'll also let you know how the Qlik Academic Program can help you to develop some of these skills. 

    1. Python for data science skills - To prove to prospective employers that you are job-ready, make sure that you have experience on a few projects using: data exploration, feature selection, hyperparameter search for model optimization and pipelines. 

    2. Probability and statistics knowledge - As the cornerstones of data science work, it's vital that you are familiar with Bayes' theorem, basic probability and model evaluation. 

    The Qlik Academic Program offers a product agnostic data analytics curriculum which includes teaching on Bayes' theorem and statistical concepts. 

    NOTE: To access the above link, you must be a member of the academic program. 

    3. Software engineering know-how - Software engineering work now often comes as part and parcel of Data Science roles. You must be able to manage your code and keep clean notebooks and scripts including version control, web development and web scraping.

    4. Business Instinct - Unfortunately being the most technically able candidate won't necessarily land you the job. You also have to show that you are business savvy and that you can help propel the company forward to future success. This includes working on projects that people in the business actually need and want. A key way to ensure that you do this is by having the ability to ask the right questions from the start. And being able to explain your results to a non-technical audience is also vital, so that the outcomes for/ impacts on the business are clear.

    Qlik's  Data Literacy Program can help you to improve these key business skills by teaching you to ask the right questions, interpret findings and to take informed action. 

    You can read Jamie's full article here, and to develop your statistical knowledge and  business instincts, sign up for the Academic Program today! The program is open to all university students and academics globally. We hope that these tips will set you on the road to landing your dream job in data science!

     

    Show Less
  • Image Not found
    Qlik Product Innovation Blog

    Emergency Response Drone

    What is it? The Emergency Response Drone demonstrates how the Qlik platform and our approach to Augmented Intelligence can assist emergency responders to ensure units respond efficiently based on observations from multiple data feeds including drones and other sensors. The drone detects objects and sends them to the Qlik Core web application. This application allows the 911 Operator to make decisions based on data from the field in order to prov... Show More

    What is it?

    The Emergency Response Drone demonstrates how the Qlik platform and our approach to Augmented Intelligence can assist emergency responders to ensure units respond efficiently based on observations from multiple data feeds including drones and other sensors. The drone detects objects and sends them to the Qlik Core web application. This application allows the 911 Operator to make decisions based on data from the field in order to provide appropriate recommendations of which units to deploy. The drone has an onboard camera which recognizes and tracks the people, cars and hazardous material involved in an incident – in this case a multi-vehicle collision. This data is being aggregated in Qlik Core which is also running locally on the drone in order to calculate a risk score. The risk score is used to automatically recommend which resources should be sent to the scene of the incident.

    Act1-screenshot-DEMO.jpgQlik Core app providing response recommendations to 911 operator

    The Emergency Response Drone is an industrial-grade DJI hexacopter with an AWS DeepLens camera as payload. The DeepLens is an Amazon edge device that leverages deep learning AI. We run Qlik Core inside a Docker container on the camera. Data is streamed to the Qlik Core web app via the cloud. Our Qlik Core web app leverages the same Qlik Associative Engine we all know and love to provide responders with fast and efficient recommendations.

    ArchitectureDiagram.jpg

    How does the AI detection work?

    The DeepLens runs a type of convolutional neural network called a Single Shot Detector which can quickly identify multiple objects and return bounding boxes of where each object is found in each frame of video. It leverages a resnet-50 architecture and was finetuned from Imagenet which is a popular base model that can classify 1000 different types of objects. For this project, we wanted to detect specific objects such as hazardous material placards and paramedics which weren’t in the Imagenet model. We also wanted to improve the accuracy, so we used annotated images from the video of the collision. We wrote a custom add-on to Adobe After Effects in order to leverage their motion tracking in order to produce the annotation files. Our model was trained with roughly 5000 labeled images and another 1000 images were used to validate the model. Through hyperparameter tuning and brightness/contrast/color augmentation, we were able to achieve over 80% mean average precision. The training was performed using AWS Sagemaker. Sagemaker helps facilitate deep learning through Jupyter Notebooks and S3 storage.

    AI_TrainingStill.jpg

    How does Qlik Core work?

    Having this information from the Qlik drone can help shape the response plan by sending specific types of resources to the emergency while not over-prioritizing the response, which ensures responders have the capacity for other emergencies that might occur. Data from the drone and emergency response vehicles are later uploaded into the Qlik Sense application in the cloud for post-incident analysis.

    Act2-screenshot-DEMO.jpgQlik Core app providing Incident Commander improved situational awareness

    What else can this be used for?

    In addition to this multi-vehicle collision scenario, this system could be applied to many other use cases. We’ve already begun discussing the potential of using this to assist responders during massive floods. We have also explored how this could be useful in several humanitarian efforts such as assisting woman and children with foraging for firewood and monitoring water holes near refugee camps.

    Act3-FloodApp-FINAL.pngOttawa Flood application by GINQO

    This project took a lot of effort from a large team. We are very grateful for all the work from the following people and agencies: Qlik (Todd Margolis, Aiham Azmeh, Elif Tutuk, Chuck Bannon, John Trigg, Anthony Alteraic, Robin Muren, Johan Persson) City of Ottawa (Deputy Chief Greg Furlong, Project Manager Rebecca Anderson, Ottawa Paramedic Service, Ottawa Fire Services, Ottawa Police Service) GINQO (Martin Curtis, Mike Ellis)

    This is only the beginning for the Emergency Response Drone and the impact it will have.  More to come on this innovation and how Qlik continues to make a difference  with our commitment to social responsibility and global humanitarian efforts.

    Show Less
  • Image Not found
    Qlik Design Blog

    Using Bookmarks in Set Expressions in Qlik Sense

            Hey guys, happy to be back and sharing some awesome tips and tricks with you today! When demonstrating Qlik Sense the other day to some business users, we touched on the topics of Set Analysis, Set Expressions and the use of Bookmarks in Qlik Sense. Though documented in the Qlik Online help, many methods and approaches to using these powerful capabilities can often be missed. In this video I'll show how you can us... Show More

            Hey guys, happy to be back and sharing some awesome tips and tricks with you today! When demonstrating Qlik Sense the other day to some business users, we touched on the topics of Set Analysis, Set Expressions and the use of Bookmarks in Qlik Sense. Though documented in the Qlik Online help, many methods and approaches to using these powerful capabilities can often be missed. In this video I'll show how you can use the expression editor and a defined Bookmark (from your selection state) as a Set Expression.

    Ohh...one thing not covered in the video, that I will mention here is that when you create a Bookmark, if you select the information icon () nesx to the Bookmark date on the right in the Bookmark list pop-up, you can preview the Set Expression that is defined from the selection before you insert it with the expression editor.

     

    6-17-2019 3-25-04 PM.png

     

     


    Bookmarks and Set Expressions

     

    If you have any comments or questions, I'd love to hear from you, so please speak up and don't be shy.

     

    Regards,

    Mike Tarallo
    Qlik

    Show Less
  • qlik-community-blogs.jpg
    Qlik Education Blog

    Looking to be Data Literate? Begin with Curiosity!

    Data literacy is everywhere, but don’t know where to begin? Start with a curious mind....It has been said that curiosity killed the cat, well, in the case of data and analytics, curiosity brings success.In the world of data and analytics, we are hearing a lot more about data literacy, and the reality is, data literacy is vitally important to companies and their cultures to succeed, but most people are asking: where do we begin? There are many ste... Show More

    Data literacy is everywhere, but don’t know where to begin? Start with a curious mind....

    Capture.JPG

    It has been said that curiosity killed the cat, well, in the case of data and analytics, curiosity brings success.

    In the world of data and analytics, we are hearing a lot more about data literacy, and the reality is, data literacy is vitally important to companies and their cultures to succeed, but most people are asking: where do we begin? There are many steps and things that can be done to build the right data literate culture, infusing success in data literacy throughout an organization, but there is a certain mindset that needs to permeate throughout the organization: curiosity. What does it mean to be curious within analytics? Why is curiosity such a vital mindset to have within the world of data literacy?

    To read the full article written by Jordan Marrow (Qlik Global Head of Data Literacy) visit Looking to be Data Literate? Begin with Curiosity! | Qlik Blog

    Show Less
  • qlik-community-blogs.jpg
    Qlik Architecture Deep Dive Blog

    Chaining External Program Tasks

    Last week, @Jesse_Paris covered (1) what are External Program Tasks, (2) how to create External Program Tasks, and (3) how to schedule External Program Tasks here: https://community.qlik.com/t5/Qlik-Architecture-Deep-Dive-Blog/External-program-tasks-in-Qlik-Sense/ba-p/1583492 His post covers how to schedule the External Program Task on a time-based schedule which solves one type of use case. This week we'll cover how to chain ... Show More

    Last week, @Jesse_Paris covered (1) what are External Program Tasks, (2) how to create External Program Tasks, and (3) how to schedule External Program Tasks here: https://community.qlik.com/t5/Qlik-Architecture-Deep-Dive-Blog/External-program-tasks-in-Qlik-Sense/ba-p/1583492 His post covers how to schedule the External Program Task on a time-based schedule which solves one type of use case.

    This week we'll cover how to chain the External Program Task to reload tasks and vice versa. With the capability to trigger an External Program Task before or after a reload task combined with the capability to trigger the External Program Tasks on a time interval, a site can fully integrate Qlik Sense into an end-to-end work-flow.

    Before we start, a pre-requisite before going down this path will be to have some tool or scripted approach which can interact with the Qlik Sense Repository API. Postman is an easy tool to use and there's a helpful Qlik Support Article which will walk you through that process.

    Reload Task > External Program Task

    In this walk-through will we execute the external program task upon the successful completion of a reload task. An obvious use case for this would be to have a script that opens the app which just reloaded in order to warm the cache for end users.

    We will start assuming that you have an External Program Task and a Reload Task. The high-level steps will be:

    1. GET the External Program Task details
    2. GET the Reload Task details
    3. (POST) CREATE a CompositeEventOperational
    4. (POST) CREATE a CompositeEvent (the link between the two tasks)

    For our environment we will have the following response for the External Program Task (GET /qrs/externalprogramtask/{id}) :

     

    {
      "id": "b8c12920-858f-42a4-a799-741e46e45c73",
      "createdDate": "2019-06-17T19:16:46.492Z",
      "modifiedDate": "2019-06-17T19:16:46.492Z",
      "modifiedByUserName": "INTERNAL\\sa_repository",
      "customProperties": [],
      "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
      "parameters": " -ExecutionPolicy Bypass C:\\Temp\\preLoad.ps1",
      "qlikUser": null,
      "operational": {
        "id": "7a0506ed-4fd6-4e4d-bd2d-32d6e2c81c2e",
        "lastExecutionResult": {
          "id": "2acfbd42-4e5e-48f1-bd4d-c85fe975360f",
          "executingNodeName": "",
          "status": 0,
          "startTime": "1753-01-01T00:00:00Z",
          "stopTime": "1753-01-01T00:00:00Z",
          "duration": 0,
          "fileReferenceID": "00000000-0000-0000-0000-000000000000",
          "scriptLogAvailable": false,
          "details": [],
          "scriptLogLocation": "",
          "scriptLogSize": -1,
          "privileges": null
        },
        "nextExecution": "1753-01-01T00:00:00Z",
        "privileges": null
      },
      "name": "CacheApp-5k_Random_Data",
      "taskType": 1,
      "enabled": true,
      "taskSessionTimeout": 1440,
      "maxRetries": 0,
      "tags": [],
      "privileges": null,
      "schemaPath": "ExternalProgramTask"
    }

     

     

    For the reload task in question we will have this response to a GET /qrs/reloadtask/{id} request:

     

     

    [
      {
        "id": "5afd0e10-f9b5-4853-beb9-b84450059774",
        "createdDate": "2019-06-17T19:16:17.518Z",
        "modifiedDate": "2019-06-17T19:16:17.518Z",
        "modifiedByUserName": "QMI-QS-CLN\\vagrant",
        "customProperties": [],
        "app": {
          "id": "5cbfd02a-e0b1-4c75-802b-cbfefc369d32",
          "name": "5k Random Data",
          "appId": "",
          "publishTime": "2019-06-17T15:41:02.887Z",
          "published": true,
          "stream": {
            "id": "aaec8d41-5201-43ab-809f-3063750dfafd",
            "name": "Everyone",
            "privileges": null
          },
          "savedInProductVersion": "12.334.3",
          "migrationHash": "98d482c3f964dccf69cbfb9a00e0c048ea6eb221",
          "availabilityStatus": 0,
          "privileges": null
        },
        "isManuallyTriggered": false,
        "operational": {
          "id": "f18c7ab9-0bab-4414-a559-b7e9516974a8",
          "lastExecutionResult": {
            "id": "8272d9ba-9278-4c9b-8fef-1dffff14d7b2",
            "executingNodeName": "",
            "status": 0,
            "startTime": "1753-01-01T00:00:00Z",
            "stopTime": "1753-01-01T00:00:00Z",
            "duration": 0,
            "fileReferenceID": "00000000-0000-0000-0000-000000000000",
            "scriptLogAvailable": false,
            "details": [],
            "scriptLogLocation": "",
            "scriptLogSize": -1,
            "privileges": null
          },
          "nextExecution": "1753-01-01T00:00:00Z",
          "privileges": null
        },
        "name": "Reload task of 5k Random Data",
        "taskType": 0,
        "enabled": true,
        "taskSessionTimeout": 1440,
        "maxRetries": 0,
        "tags": [],
        "privileges": null,
        "schemaPath": "ReloadTask"
      }
    ]

     

     

    With those stored for reference so that we can extract out elements we will create a CompositeEventOperational by sending the following API call: POST /qrs/compositeeventoperational, body: {}

    In this walk-through the response is:

     

     

    {
      "id": "e7f14883-1bcd-4be3-9536-167f502ab7d3",
      "createdDate": "2019-06-17T19:22:21.828Z",
      "modifiedDate": "2019-06-17T19:22:21.828Z",
      "modifiedByUserName": "INTERNAL\\sa_repository",
      "timesTriggered": 0,
      "privileges": null,
      "schemaPath": "CompositeEventOperational"
    }

     

     

    The final step is to create the link between the two tasks. To do this we will issue a POST call to /qrs/compositeevent. For the body we will need elements from the three final calls. Our body is:

     

     

    {
      "timeConstraint":{
                "seconds":0,
                "minutes":360,
                "hours":0,
                "days":0
      },
      "compositeRules": [
        {
          "reloadTask": {
            "id": "5afd0e10-f9b5-4853-beb9-b84450059774",
            "name": "Reload task of 5k Random Data",
            "taskType": 0,
            "enabled": true,
            "taskSessionTimeout": 1440,
            "maxRetries": 0,
            "privileges": null
          },
    
          "schemaPath": "CompositeEvent.Rule"
        }
      ],
      "operational": {
        "id": "e7f14883-1bcd-4be3-9536-167f502ab7d3",
        "timesTriggered": 0,
        "privileges": null
      },
      "name": "app-cache-trigger",
      "enabled": true,
      "eventType": 1,
      "externalProgramTask": {
        "id": "b8c12920-858f-42a4-a799-741e46e45c73",
        "operational": null,
        "name": "CacheApp-5k_Random_Data",
        "taskType": 1,
        "enabled": true,
        "taskSessionTimeout": 1440,
        "maxRetries": 0,
        "privileges": null
      },
      "privileges": null,
      "schemaPath": "CompositeEvent"
    }

     

     

    The elements which will need to be adjusted to fit your environment are:

    • compositeEvent > reloadTask > ID & Name
      • Determinable from the GET /qrs/reloadtask call
      • Notes:
        • Insofar as you are chaining to a reload task then the above skeleton is correct. If chaining to another task type, then the reloadTask element will need to be renamed to the appropriate task type (userSyncTask,reloadTask)
        • Additionally the taskType param will need to be adjusted to reflect the appropriate type of task. From our trusty GET /qrs/about/openapi/main we can get the mapping:

     

     

     

    "taskType": {
        "type": "integer",
        "enum": [
            0,
            1,
            2
        ],
        "x-enumNames": [
            "Reload",
            "ExternalProgram",
            "UserSync"
        ]

     

     

    •  Operational > ID
      • This is from the creation of the Operational the step before
    • Name: The name of the trigger
    • externalProgramTask > ID & Name
      • From the GET /qrs/externalprogramtask/full call earlier
      • Same notes as compositeEvent > reloadTask. If you adjust the task type before to rename the element and change to the appropriate taskType

    Once we get the success response (a 201 HTTP response), our QMC looks as follows:

    reload_to_externalProgram.png

    External Program Task > Reload Task

    In this section will we do the reverse. The trigger for the reload task will be the successful execution of the External Program Task. This is the exact style of chain that we have used in our Telemetry Dashboard project. In it we are executing a series of Engine API calls to build out meta-data on all the apps which will then be consumed in the Qlik app which reloads after it. There are a litany of other use cases, but the key use-case here involves doing things outside of Qlik Sense prior to an application's reload.

    We will start assuming that you have an External Program Task and a Reload Task. The high level steps will be:

    1. GET the External Program Task details
    2. GET the Reload Task details
    3. (POST) Update the Reload Task to link it to the External Program Task

    For the External Program Task we have:

     

     

    {
      "id": "6c65ace8-0a81-4b4f-96d8-43573d32f9e0",
      "createdDate": "2019-06-17T20:19:12.226Z",
      "modifiedDate": "2019-06-17T20:19:12.226Z",
      "modifiedByUserName": "INTERNAL\\sa_repository",
      "customProperties": [],
      "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
      "parameters": " -ExecutionPolicy Bypass C:\\Temp\\preLoad.ps1",
      "qlikUser": null,
      "operational": {
        "id": "4c70c20c-779e-4b07-942b-0f563cd33e66",
        "lastExecutionResult": {
          "id": "1174e76a-ded9-4de9-8ebe-11e732974a11",
          "executingNodeName": "",
          "status": 0,
          "startTime": "1753-01-01T00:00:00Z",
          "stopTime": "1753-01-01T00:00:00Z",
          "duration": 0,
          "fileReferenceID": "00000000-0000-0000-0000-000000000000",
          "scriptLogAvailable": false,
          "details": [],
          "scriptLogLocation": "",
          "scriptLogSize": -1,
          "privileges": null
        },
        "nextExecution": "1753-01-01T00:00:00Z",
        "privileges": null
      },
      "name": "CacheApp-5k_Random_Data",
      "taskType": 1,
      "enabled": true,
      "taskSessionTimeout": 1440,
      "maxRetries": 0,
      "tags": [],
      "privileges": null,
      "schemaPath": "ExternalProgramTask"
    }

     

     

    For the Reload Task we have:

     

     

    {
      "id": "13bbe435-c8da-408a-9a1d-3afebcc735da",
      "createdDate": "2019-06-17T20:18:42.905Z",
      "modifiedDate": "2019-06-17T20:18:42.905Z",
      "modifiedByUserName": "QMI-QS-CLN\\vagrant",
      "customProperties": [],
      "app": {
        "id": "5cbfd02a-e0b1-4c75-802b-cbfefc369d32",
        "name": "5k Random Data",
        "appId": "",
        "publishTime": "2019-06-17T15:41:02.887Z",
        "published": true,
        "stream": {
          "id": "aaec8d41-5201-43ab-809f-3063750dfafd",
          "name": "Everyone",
          "privileges": null
        },
        "savedInProductVersion": "12.334.3",
        "migrationHash": "98d482c3f964dccf69cbfb9a00e0c048ea6eb221",
        "availabilityStatus": 0,
        "privileges": null
      },
      "isManuallyTriggered": false,
      "operational": {
        "id": "4c4eda49-7dd6-41ae-8b6a-f0bb3324a433",
        "lastExecutionResult": {
          "id": "13c75400-b8e1-41e4-b78b-d72df4bb5459",
          "executingNodeName": "",
          "status": 0,
          "startTime": "1753-01-01T00:00:00Z",
          "stopTime": "1753-01-01T00:00:00Z",
          "duration": 0,
          "fileReferenceID": "00000000-0000-0000-0000-000000000000",
          "scriptLogAvailable": false,
          "details": [],
          "scriptLogLocation": "",
          "scriptLogSize": -1,
          "privileges": null
        },
        "nextExecution": "1753-01-01T00:00:00Z",
        "privileges": null
      },
      "name": "Reload task of 5k Random Data",
      "taskType": 0,
      "enabled": true,
      "taskSessionTimeout": 1440,
      "maxRetries": 0,
      "tags": [],
      "privileges": null,
      "schemaPath": "ReloadTask"
    }

     

     

    With these pieces of information we will create the link by calling POST /qrs/reloadtask/update with a body in this vein:

     

     

    {
       "compositeEvents":[
          {
             "timeConstraint":{
                "seconds":0,
                "minutes":360,
                "hours":0,
                "days":0
             },
             "name":"appPreload",
             "enabled":true,
             "eventType":1,
             "reloadTask":{
                "id":"13bbe435-c8da-408a-9a1d-3afebcc735da"
             },
             "compositeRules":[
                {
                   "ruleState":1,
                   "externalProgramTask":{
                      "id":"6c65ace8-0a81-4b4f-96d8-43573d32f9e0",
                      "name":"CacheApp-5k_Random_Data"
                   }
                }
             ],
             "privileges":[
                "read",
                "update",
                "create",
                "delete"
             ]
          }
       ]
    }

     

     

    The elements which will need adjusted are:

    • compositeEvent > name: This is the name of the trigger
    • compositeEvent > reloadTask > ID: The ID of the reload task
    • compositeEvent > compositeRules > externalProgramTask > id & Name: The Name and ID of the External Program task.

    The resulting view in the QMC:

    external_to_reload.png

     

    At this point you will have the capability to construct any variant of chain involving an External Program Task.

    Show Less
  • Image Not found
    Qlik Community Manager Blog

    Community Enhancements for May 2019

    Hello Qlik Community! Once again, we've made more exciting enhancements in the month of May (and early June).   1. New Qlik Resources Page In place of the Qlik Company page, we now have a Qlik Resources page with links to a wide array of Qlik resources, including portals, sites, and social media channels. It's your one stop shop for all things Qlik. Since this page offers easy access to so many other Qlik resources, be sure to bookmark it. ... Show More

    Hello Qlik Community!

    Once again, we've made more exciting enhancements in the month of May (and early June).

     

    1. New Qlik Resources Page

    2019-06-12 Qlik Resources Nav.png

    In place of the Qlik Company page, we now have a Qlik Resources page with links to a wide array of Qlik resources, including portals, sites, and social media channels. It's your one stop shop for all things Qlik. Since this page offers easy access to so many other Qlik resources, be sure to bookmark it.

    2019-06-12 Qlik Resources Cards.png

     

    2. Sort Feeds by Date on the Fly

    2019-06-12 Sort By Filters Context.png

     

    The filter selection for content feeds now has two more options - Sort by Original Post Date and Sort by Latest Reply.

     

    Sort by Original Post Date to see the order threads were created, or choose Latest Reply to see which threads are currently active with new replies. You can still make your own selection in My Settings, and use this filter when you want to switch views temporarily. To do so, go to My Settings > Preferences > General > Sort Topics by.

    2019-06-11 My Settings Sort Topics.png

    3. New Blog - Qlik Architecture Deep Dive Blog

     

    2019-06-12 Architecture Blog Image.png

    The Qlik architecture team has launched a new blog for deep dives into specific back-end technologies which allow for the extension of Qlik to fit the needs of the enterprise. Blog posts so far cover getting notifications from Qlik Sense, SMTP, UDP, and external program tasks. Check out the Qlik Architecture Deep Dive Blog and welcome them to the community. 

    With the addition of this Architecture blog, Qlik Community now has eight blogs!

     

     

    4. Standardized Date Display

    2019-06-12 ISO Date.png

    Discussion board pages were using a different date format from the rest of the community. Now, all dates displyed in the community are ISO format of YYYY-MM-DD.

     

    5. Icons for Partners

    2019-06-12 Partner Rank Leaderboard.png

     

    Looking for a partner? We've added a new rank icon for community members who are Qlik partners, and "Partner" is listed next to their usernames.

     

     

    6. Link Fixes

    We've made updates to repair broken links in the community due to the platform migration. This was particularly affecting links to blog posts, but also some other pages as well. Now, they redirect to the proper page. 

    If you find any links that still need to be repaired, let us know with a comment below and a link to the page the broken link is on.

     

    Thanks for reading and thanks for being a community member. As always, let us know if you have any questions or feedback.

     

    Best,

    Jeremy and the Qlik Community team

     

    Show Less
  • Image Not found
    Qlik Academic Program Blog

    The Qlik Academic Program made a splash at this years Qonnections!

    This year the Academic Program got the opportunity to present to Qlik customers and partners  about what the program provides and how its made an impact to one of our professors.  The presentation was hosted by Angelika Klidas, a professor from  Hogeschool van Amsterdam who is also a Qlik customer and a Qlik Luminary!  Angelika has been teaching her students about the importance of learning Data Literacy and how to use Ql... Show More

    This year the Academic Program got the opportunity to present to Qlik customers and partners  about what the program provides and how its made an impact to one of our professors.  The presentation was hosted by Angelika Klidas, a professor from  Hogeschool van Amsterdam who is also a Qlik customer and a Qlik Luminary!  Angelika has been teaching her students about the importance of learning Data Literacy and how to use Qlik Sense as a means of visualizing data!

    Angelika brings a unique perspective to the program because she is also a Qlik customer who uses Qlik Sense at her company so she understands the importance of understanding data literacy and Qlik Sense.  In fact, Angelika said that teaching  students offers her a wonderful opportunity to select her top students for employment upon  graduation!  Since she began teaching she has hired 5 of her students to work for her.

    The presentation was a hit!   There were no empty seats and a line had formed after she was done for additional Q&A. 

    To learn more about how you can enhance your course with Data Literacy and Qlik Sense, visit  qlik.com/academicprogram.  To learn more about Angelika you can visit training the next generation of BI specialists

     

    Show Less
  • Image Not found
    Qlik Academic Program Blog

    Qlik Academic Program expands its reach to 80 countries!

    The Qlik Academic Program has recently reached a new milestone. Since 2012 when the program was born, we have now had involvement from students and academics in 80 different countries! This has encompassed involvement from 1,390 Universities and over 7,000 students.  This is a great achievement for the entire organisation as we continue to progress towards our vision of a data-literate world, where everyone can use data to solve their most c... Show More

    The Qlik Academic Program has recently reached a new milestone. Since 2012 when the program was born, we have now had involvement from students and academics in 80 different countries! This has encompassed involvement from 1,390 Universities and over 7,000 students. 

    This is a great achievement for the entire organisation as we continue to progress towards our vision of a data-literate world, where everyone can use data to solve their most challenging problems. Currently only 21% of 16-24 year-olds deem themselves to be data literate, and the Academic Program is an excellent resource for bridging this skills gap. 

    The program is open to students and academics from all accredited Universities globally and is completely free of charge. Members get access to free Qlik software and training resources, as well as Qlik Sense qualifications which can really help students to stand out from the crowd in their job applications. Professors are able to build our content directly into their teaching, including product agnostic lecture materials on theories and concepts in analytics. 

    To find out more or to apply for the program visit qlik.com/academicprogram. You can also email academicprogram@qlik.com with any inquiries. 

    Please help us to spread the word on this invaluable free resource from Qlik, to help us to move ever closer to our vision of a data literate world, one student at a time!

    Show Less
  • Image Not found
  • Image Not found
    Qlik Design Blog

    "Stealing" the Visualization Bundle to be used on an older release

      Hey guys - a few valued Qlik Community members and contributors  ( @millerhm  @juraj_misina  ) brought to my attention an interesting topic after we released the February 2019 release of Qlik Sense. What if I want those exciting, sexy, awesome, new visualizations I just saw....BUT I am not ready to upgrade to February 2019?  Since we don't offer the Visualization Bundle as a separate installation package, ... Show More

     

    Hey guys - a few valued Qlik Community members and contributors  ( @millerhm  @juraj_misina  ) brought to my attention an interesting topic after we released the February 2019 release of Qlik Sense.

    What if I want those exciting, sexy, awesome, new visualizations I just saw....BUT I am not ready to upgrade to February 2019? 

    Since we don't offer the Visualization Bundle as a separate installation package,  I guess you could find them individually in the Qlik Branch Garden - as I originally suggested, but @millerhm pointed out that they wanted the "certified extensions" that were part of the February 2019 release. That's when @juraj_misina made mention of a simple work-around involving "stealing them" Smiley Wink from the February 2019 release of Qlik Sense Desktop. I thought this was a great topic to produce a quick video on to show others whom might not be familiar with how that process might look.

    Watch this quick video to see how I "stole" the visualization bundle from the February 2019 release and added it to my Qlik Sense Enterprise November 2018 release.

     

    Thanks @millerhm and @juraj_misina for your contribution!

    Note: I cannot attach the .zip file here at this time. It is possible if you have any issues with these extensions while being used with an older release, our support team may ask you to reproduce the issue within the February 2019 release, so please be aware.

    Can't see the video? YouTube blocked by your region or organization?

    Download the .mp4 to watch on your computer or mobile device.

    Thanks,

    Mike Tarallo

    Qlik

    Follow me

    Show Less
  • Image Not found
    Qlik Academic Program Blog

    What can you do with an analytics degree?!

    It's been seven years already since the Harvard Business Review declared business analytics the "sexiest job of the 21st century", and the glamour of the job hasn't shown any signs of waning.   New opportunities for graduates with business analytics skills Analytics degrees can open doors for new graduates, particularly in light of the widening talent gap created by the new challenges presented by big data. According to a r... Show More
    It's been seven years already since the Harvard Business Review declared business analytics the "sexiest job of the 21st century", and the glamour of the job hasn't shown any signs of waning.
     
    Show Less
  • qlik-community-blogs.jpg
    Qlik Design Blog

    TextBetween Function

    I was parsing data with a colleague when I learned about the TextBetween function. It is a simple function that can be used in a chart or in the script to return the character(s) that are between two delimiters you specify. Here is the syntax from Qlik Help: TextBetween(text, delimiter1, delimiter2[, n]) The first parameter, text, is the input string. Delimiter1 is the first character to search for in the text while delimiter2 in the second chara... Show More

    I was parsing data with a colleague when I learned about the TextBetween function. It is a simple function that can be used in a chart or in the script to return the character(s) that are between two delimiters you specify. Here is the syntax from Qlik Help:

    TextBetween(text, delimiter1, delimiter2[, n])

    The first parameter, text, is the input string. Delimiter1 is the first character to search for in the text while delimiter2 in the second character to search for in the text. The last parameter, n, is optional and is used to search for a specific delimiter pair. Let’s look at some examples.

    The chart expression below returns 1234. The TextBetween function finds the first open parenthesis and the first close parenthesis and returns the text that is between them.

    chart.png

     

    Now if the text included multiple sets of data in parentheses, I can use the chart expression below to get the text in the third parentheses set.

    chart2.png

     

    This chart expression returns 3456 because I have set the fourth parameter to 3 in the TextBetween function which means I want the text between the third delimiter pair (the third pair of parentheses).

    TextBetween can also be used in the script. In the script snippet below, I load 3 products into a table named Temp. Then I parse the Product field using TextBetween to create another field in the Products table named Product Code.

    script.png

     

     

     

     

     

     

     

     

    The result is a table like this:

    table.png

     

     

     

     

    In the past, I would have approached this parsing exercise differently. I would have used a combination of functions like the index function and the mid function to parse out the product code. Using the TextBetween function is so much easier, cleaner and more straight-forward. I cannot believe it took me this long to learn about it but I am glad I know about it now.

     

    Thanks,

    Jennell

    Show Less
  • Image Not found
    Qlik Academic Program Blog

    Why data literacy is a must have for everyone

    In a recent article for The Data Literacy Project , Experian's Head of Thought Leadership & Data Literacy, Paul Malyon, discusses not only how data literacy is useful to Experian as an information services company, but how it can benefit us all as individuals.  Paul discusses the example of buying a home, and how many of the factors that we take into consideration when we make this decision are based on data.  Th... Show More

    In a recent article for The Data Literacy Project , Experian's Head of Thought Leadership & Data Literacy, Paul Malyon, discusses not only how data literacy is useful to Experian as an information services company, but how it can benefit us all as individuals. 

    Paul discusses the example of buying a home, and how many of the factors that we take into consideration when we make this decision are based on data.  Things we may want to consider include commute time to work, local school performance, crime rates, planning history and much more. And while some of the information needed may be easily accessible, in other cases we may need to look beyond the surface level data to get the real answers that we are looking for. It's about being curious, and having the confidence to go out and request additional information to perform your own analysis, to meet your specific needs. You can read the full article here: https://thedataliteracyproject.org/posts/data-literacy-a-must-have-in-the-data-powered-future

    And these skills of curiosity and confidence that come with being data literate can help us in many other aspects of our lives too. For example when we are considering a new career path we may want to analyse data on salaries, job satisfaction and progression opportunities. Or if we want to relocate we can compare living costs, services and well-being information to help us to make the best choice. 

    So you can see from the above examples that data literacy is not just a skill for the workplace, but something that can bring us big benefits in our personal lives too. Qlik is committed to improving data literacy rates through the Data Literacy Project and also the Qlik Academic Program. The Data Literacy Project has learning resources open to all, and the Qlik Academic Program is specifically for students and academics who want to get trained in the use of Qlik analytics software, as well as to learn more about general theories and concepts in analytics. To find out more or to sign up visit qlik.com/academicprogram

     

    Show Less
  • qlik-community-blogs.jpg
    Qlik Design Blog

    Don't join - use Applymap instead

    It is, in fact, one of my favorite functions and I do not seem to be alone in this choice. Several of the QlikView developers who regularly write on QlikCommunity seem to share this preference and have written about this function, e.g., QlikView Notes, Quick Intelligence and QVApps.   So, what does the function do? Well, basically it is just a lookup function – it takes one value as input, checks if this value exists in a mapping table and r... Show More

    It is, in fact, one of my favorite functions and I do not seem to be alone in this choice. Several of the QlikView developers who regularly write on QlikCommunity seem to share this preference and have written about this function, e.g., QlikView Notes, Quick Intelligence and QVApps.

     

    So, what does the function do? Well, basically it is just a lookup function – it takes one value as input, checks if this value exists in a mapping table and returns the corresponding value from the second column in the mapping table. Think of it as a translation function where the translation is fetched from a pre-defined, two-column table. A simple translation function, but you can still do a lot with it...

     

    What has this got to do with joins? Everything. A very common situation in data modeling is that you need to get a single field value (per record) from a different table than the current one. Then the standard way to do this is to use a join. However, in QlikView you can – and should – use Applymap() instead. The only time that you cannot use Applymap() instead of a join is if you want to fetch more than one single corresponding value (record) from the second table.

     

    Let's look at an example of how to use Applymap(): In an ERP system, the customer table is the table where all information about the customer is stored, e.g. the name and country of the customer. Further, it could be that you need the customer’s country when making a calculation in the order table. This is a field that you don't have in the order table. In SQL you would join the two tables to get country into the order table.

     

    In the QlikView script you would instead first define the mapping table that maps a customer ID to a customer country as follows:

     

         MapCustomerIDtoCountry:
         Mapping Load CustomerID, Country From Customers ;

     

    The second step is to use this information when reading the order table, such as:

     

         Orders:
         Load *,

              ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country
              From Orders ;

    Tables2.png

     

    The "null()" as third parameter of the function defines what it should return when the customer ID isn't found in the mapping table.

     

    And with this, you have joined the field Country with the order table – without using a join. And you have done it faster and with less chance of errors. Bottom line: Whenever you know that you just want to fetch one single value per record – don’t join. Use Applymap() instead.

     

    HIC

     

    See more in the Technical Brief on Joins and Lookups.

    Show Less
  • qlik-community-blogs.jpg
    Qlik Design Blog

    Qlik Sense Mobile - Update (video)

    Hi folks - this video will show you how to get started with Qlik Sense Mobile from a basic sense. There have been some signifcant changes since I last recorded a video on this and it was time for a brief update. Due note that we have much more for those of you who administer, secure and deploy mobile BI. We work with Enterprise Mobile management vendors to tightly integrate our solution with their platforms. See the resource links below.In this v... Show More

    Hi folks - this video will show you how to get started with Qlik Sense Mobile from a basic sense. There have been some signifcant changes since I last recorded a video on this and it was time for a brief update. Due note that we have much more for those of you who administer, secure and deploy mobile BI. We work with Enterprise Mobile management vendors to tightly integrate our solution with their platforms. See the resource links below.

    In this video you will learn how to:

    • Install the Qlik Sense Mobile App on iOS
    • Configure and Send Client Authentication Link Using the QMC
    • Verify Offline Security Settings
    • Start the app and login to your server
    • Download your app
    • Access your app offline

    Note: Offline access via the Qlik Sense Mobile App is only available to Qlik Sense Enterprise customers. However, Qlik Sense servers and Qlik Sense Cloud can be quickly and easily accessed via a mobile device such as a tablet or smart phone by simply using a mobile browser that supports HTML5 - i.e. Chrome, Safari, etc. Check out these 2 videos to learn more:

    Please let me know if you have any comments or questions.

    Qlik Sense Mobile

    Resources:

    Enjoy!

    Michael Tarallo (@mtarallo) | Twitter

    Can't see the embedded video? YouTube blocked by your organization or region? Download the .mp4 to watch on your computer or mobile device.

    Show Less
  • qlik-community-blogs.jpg
    Qlik Support Updates Blog

    Qlik April 2019 - New Feature Releases for Qlik Sense and QlikView

    Hello All Qlik Customers,We are pleased to confirm that Qlik Sense April 2019 and QlikView April 2019 feature releases are now available on our download site. These new feature releases include a host of new features as well as numerous bug fixes.  For additional information, please see the attached release notes. Qlik Sense April 2019 - New features including: Associative Insights – offering powerful new AI insight suggestions that reveal ... Show More

    Hello All Qlik Customers,

    We are pleased to confirm that Qlik Sense April 2019 and QlikView April 2019 feature releases are now available on our download site. These new feature releases include a host of new features as well as numerous bug fixes.  For additional information, please see the attached release notes.

    Qlik Sense April 2019 - New features including:

    • Associative Insights – offering powerful new AI insight suggestions that reveal hidden insights in your selections, driven by the Qlik Cognitive and Associative Engines working together.
    • Two New Chart Types in the Visualization Bundle - Bar & Area chart and Bullet chart 
    • New Mapping Enhancements -  It is now possible to set a default map background for all new map charts.
    • SaaS Deployment for Qlik Sense Enterprise - a standalone SaaS deployment option for Qlik Sense Enterprise (QSE), with the ability to create, reload and consume Qlik Sense Enterprise apps entirely on Qlik’s hosted cloud.


    QlikView April 2019 - New features including:

    • Supporting QlikView and Qlik Sense dual-use – New unified licensing for customers taking advantage of QlikView and Qlik Sense dual-use.
    • Cross product integrated links - offers linking to QlikView from Qlik Sense Enterprise on Qlik Cloud Services and Qlik Sense Enterprise on Kubernetes.

     

    As always when upgrading any software, make sure that you backup your system and applications before doing any installation and follow upgrading best practices. Thank you for choosing Qlik software.

     

    Kind regards
    The Global Support Team

    Show Less
  • qlik-community-blogs.jpg
    Qlik Technical Bulletin Blog

    Technical Preview: Qlik Sense June 2019 & Qlik NPrinting June 2019

    Qlik is pleased to invite Customers and Partners to participate in the Technical Preview program for the June 2019 release of Qlik Sense and Qlik NPrinting.    Updated June 21st: Thank you for your interest, the Technical Previews are now closed. Stay tuned for the official June releases.   
  • qlik-community-blogs.jpg
    Qlik Architecture Deep Dive Blog

    External program tasks in Qlik Sense

    External program tasks in Qlik Sense are simply another task type that exists, but not fully exposed by the QMC. They are tasks that are triggered from the QMC but allow for commands to be run in a command shell process behind the scenes; which in turns means you can run more or less anything you can run on the command prompt. Once you define your command and create a new task, you can both trigger and chain these types of tasks in the QMC. I wil... Show More

    External program tasks in Qlik Sense are simply another task type that exists, but not fully exposed by the QMC. They are tasks that are triggered from the QMC but allow for commands to be run in a command shell process behind the scenes; which in turns means you can run more or less anything you can run on the command prompt. Once you define your command and create a new task, you can both trigger and chain these types of tasks in the QMC.

    I will be using JavaScript for all the examples which means that node.js needs to be in your PATH variable (the location of node.exe). Again, you can run any command that you can run in the windows command prompt, so these examples are only for demo purposes.

    Before we get started, we need to understand that IF you are calling scripts in your command, the script needs to be accessible by the user running the Qlik services. In this example, there’s a folder on the root C: drive called ‘externalTasksExample’, in this folder there is a createFile.js file which simply creates a new file in the same folder.

    The file looks like:

    var fs = require('fs');
    var outputText = "This text will be in my output file.";
    const data = new Uint8Array(Buffer.from(outputText));
    fs.writeFile('C:\\externalTasksExample\\testCreateFile.txt', data, function (err) {
      if (err) throw err;
      console.log('The file has been saved!');
    });

    You can run the file from the command prompt by doing the following:

    C:\externalTasksExample>“C:\Program Files\Qlik\Sense\ServiceDispatcher\Node\node.exe” createFile.js

    When the command runs successfully, you should have a new file created in the externalTasksExample folder called “testCreateFile.txt” with the contents: “This text will be in my output file.”

    Now we will delete this testCreateFile.txt and try to run that same JavaScript file using an external program task in Qlik Sense. The first thing we need to do is actually create the task.

    The endpoint is:

    POST /qrs/externalprogramtask

    With the body being:

    {
      "path": "C:\\Program Files\\Qlik\\Sense\\ServiceDispatcher\\Node\\node.exe",
      "parameters": "C:\\externalTasksExample\\index.js",
      "name": "ExampleExternalTask",
      "taskType": 1,
      "enabled": true,
      "taskSessionTimeout": 1440,
      "maxRetries": 0,
      "privileges": null,
      "schemaPath": "ExternalProgramTask"
    }

    Once you post this into Qlik, you should be able to go to the QMC and see the following task in the task list.

    You should be able to select the task, click 'Start', and the same file should appear in 'C:\externalTasksExample'. You are now running an external task. Remember you don't have to use node.js, you can trigger anything you want as long as it can be run from the command line.

    Scheduling

    When it comes to scheduling an external program task, the easiest way is to create a "scheduled trigger" for a dummy reload task in the QMC, then move the trigger from the reload task to the external program task. You will need the ID of the external program task for this, which you would have gotten back in a response from the POST in the previous section, or you can use the GET call below to get a list of all external program tasks and their IDs.

    GET /qrs/externalprogramtask

    To start, go back to the Tasks list in the QMC and create a new task. Give it a memorable name (I will use 'tempTask'), and choose any application. Then under 'Triggers -> Actions', 'Create new scheduled trigger'. Fill out the scheduled trigger as if it was for the external program task.

    Hit ok, click apply on the reload task, and you will then be taken to the 'Tasks' screen in the QMC. Next, we will use the API to find the new scheduled trigger we created.

    GET /qrs/schemaevent?filter=name eq 'testTrigger'

    Note the ID returned for this object, then get:

    GET /qrs/schemaevent/{ID}

    You will want to copy the entire response, which should look like something below.

    {
        "id": "23268794-35f3-42f6-a9c0-57d91e2040cd",
        "createdDate": "2019-02-16T01:42:38.583Z",
        "modifiedDate": "2019-02-16T01:42:38.583Z",
        "modifiedByUserName": "DESKTOP-GS8LAA5\\jesse paris",
        "timeZone": "America/Chicago",
        "daylightSavingTime": 0,
        "startDate": "2019-02-15T19:47:30.000",
        "expirationDate": "9999-01-01T00:00:00.000",
        "schemaFilterDescription": [
            "* * - * * * * *"
        ],
        "incrementDescription": "0 0 0 0",
        "incrementOption": 0,
        "operational": {
            "id": "f113579d-3c68-4313-b448-1d934f09c998",
            "nextExecution": "2019-02-16T01:47:30.000Z",
            "timesTriggered": 0,
            "privileges": null
        },
        "name": "testTrigger",
        "enabled": true,
        "eventType": 0,
        "reloadTask": {
            "id": "4eb7f372-1333-4f1c-842d-678e6e3b3acb",
            "operational": {
                "id": "fe6cc117-5fcb-44bb-a18d-1c35dade5189",
                "lastExecutionResult": {
                    "id": "9f4b69d7-c97e-4262-ab52-07401b93df7e",
                    "executingNodeName": "desktop-gs8laa5",
                    "status": 7,
                    "startTime": "2019-02-16T00:53:17.140Z",
                    "stopTime": "2019-02-16T00:53:19.171Z",
                    "duration": 2031,
                    "fileReferenceID": "792555fa-e96a-41ea-afbe-59b0028d8439",
                    "scriptLogAvailable": false,
                    "details": [
                        {
                            "id": "dc3a8eb0-9d44-4b32-aac7-bafb9c7d4e32",
                            "detailsType": 2,
                            "message": "Changing task state to Triggered",
                            "detailCreatedDate": "2019-02-16T00:53:17.140Z",
                            "privileges": null
                        },
                        {
                            "id": "8551a721-7d48-45fe-8505-c2fe6d1a1ee1",
                            "detailsType": 2,
                            "message": "Trying to start task. Sending task to slave scheduler desktop-gs8laa5",
                            "detailCreatedDate": "2019-02-16T00:53:17.468Z",
                            "privileges": null
                        },
                        {
                            "id": "55e9458f-af57-4f4b-92c5-463c9ad5ae67",
                            "detailsType": 2,
                            "message": "Changing task state from Triggered to Started",
                            "detailCreatedDate": "2019-02-16T00:53:17.718Z",
                            "privileges": null
                        },
                        {
                            "id": "5836b6c3-2287-4c8f-8c9b-af39dbea4176",
                            "detailsType": 2,
                            "message": "Reference to scriptlog added",
                            "detailCreatedDate": "2019-02-16T00:53:19.093Z",
                            "privileges": null
                        },
                        {
                            "id": "d0c66f1d-3238-43f5-a7c1-358a8d40a746",
                            "detailsType": 2,
                            "message": "Changing task state from Started to FinishedSuccess",
                            "detailCreatedDate": "2019-02-16T00:53:19.233Z",
                            "privileges": null
                        }
                    ],
                    "privileges": null
                },
                "nextExecution": "2019-02-16T01:47:30.000Z",
                "privileges": null
            },
            "name": "TestTaskDeleteME",
            "taskType": 0,
            "enabled": true,
            "taskSessionTimeout": 1440,
            "maxRetries": 0,
            "privileges": null
        },
        "userSyncTask": null,
        "externalProgramTask": null,
        "privileges": null,
        "schemaPath": "SchemaEvent"
    }

    We will take this response, remove the 'reloadTask' object, and add a reference to our external program task. Here we will need the ID that was returned when we created a new external program task. A final body should look like the following:

    {
        "id": "23268794-35f3-42f6-a9c0-57d91e2040cd",
        "createdDate": "2019-02-16T01:42:38.583Z",
        "modifiedDate": "2019-02-16T01:42:38.583Z",
        "modifiedByUserName": "DESKTOP-GS8LAA5\\jesse paris",
        "timeZone": "America/Chicago",
        "daylightSavingTime": 0,
        "startDate": "2019-02-15T19:47:30.000",
        "expirationDate": "9999-01-01T00:00:00.000",
        "schemaFilterDescription": [
            "* * - * * * * *"
        ],
        "incrementDescription": "0 0 0 0",
        "incrementOption": 0,
        "operational": {
            "id": "f113579d-3c68-4313-b448-1d934f09c998",
            "nextExecution": "2019-02-16T01:47:30.000Z",
            "timesTriggered": 0,
            "privileges": null
        },
        "name": "testTrigger",
        "enabled": true,
        "eventType": 0,
        "reloadTask": null,
        "userSyncTask": null,
        "externalProgramTask": {
            "id": "e7ba25a8-a56c-4529-bc9a-af41755d3feb"
        },
        "privileges": null,
        "schemaPath": "SchemaEvent"
    }

    Using this body, you will update the schema event in the Qlik Sense Repository service with

    PUT /qrs/schemaevent/{ID}

    Once this is done, the task you created will now be assigned to the external program task. If you go back to the temporary reload task you created, you will notice that it no longer has a scheduled trigger associated to it, and you can delete that task. Any changed to the trigger need to be made to the schema event through the API, and any changes to the task itself needs to be made to the external program task through the API.

    Happy APIing!

    Show Less
  • Image Not found
    Qlik Product Innovation Blog

    April 2019 Qlik Product Releases are here!

           Qlik Sense April 2019 sets us apart from the competition with significant advancements to our multi-cloud capabilities and the introduction of our new market leading AI offering,  Associative Insights. This release continues to support our position as a leader in the market and the only BI & Analytics solution that supports the diverse needs of customers looking to execute their cloud strategy and push the boun... Show More

     

         Qlik Sense April 2019 sets us apart from the competition with significant advancements to our multi-cloud capabilities and the introduction of our new market leading AI offering,  Associative Insights. This release continues to support our position as a leader in the market and the only BI & Analytics solution that supports the diverse needs of customers looking to execute their cloud strategy and push the boundaries with Augmented Intelligence.

     

    Check out the live What's New Demo app

     

    Learn what's new in this brief video:

     

    To begin, Qlik Sense April 2019 introduces a new Enterprise SaaS deployment option, running on our multi-cloud Kubernetes architecture and giving our enterprise customers more flexibility and choice on where they deploy Qlik Sense Enterprise. This new capability allows users to consume, create and reload apps directly on Qlik’s hosted SsaaS cloud environment, Qlik Cloud Services, and also allows them to deploy Qlik Sense Enterprise in their own public or private cloud infrastructure using Qlik Sense Enterprise on Kubernetes. No matter which deployment option(s) you choose, you get all of the benefits of Qlik Sense Enterprise. All deployment options for Qlik Sense Enterprise – including Qlik Sense Enterprise on Windows – work cohesively as part of a multi-cloud deployment framework.

     

    You will also find in this release the much-anticipated augmented intelligence capability - Associative Insights.   This unique and powerful new feature combines our associative and cognitive engines to suggest hidden insights in data for users to explore.  Our Associative Engine uniquely identifies the data values that are unrelated to your selections, and our Cognitive engine can now analyze those unrelated values and reveal the most significant insights that might have been overlooked.  Associative insights, provides users with peripheral vision, and prompts them to ask additional questions to bring about new, and potentially transformative, discoveries across data sets.

    associativeinsights2.PNG

    With this release, we are also including several new QlikView features, making it easier for our QlikView customers to adopt Qlik Sense for dual-use.  This includes a new unified licensing capability, which allows organizations to unlock both QlikView and Qlik Sense with a single license key, and integrated links to QlikView apps from select Qlik Sense environments.  Providing a central hub for users to access both QlikView and Qlik Sense apps. These features make it possible for organizations using QlikView to add Qlik Sense and take advantage of our latest innovations.QVtoQS.PNGWe continue to add new and improved visualizations and mapping capabilities, such as:

    • Bullet chart - great for tracking goals and showing targets combined with color banding to depict your defined ranges in a clear and organized fashion

    • New Bar & Area chart  – a variant of the standard bar chart giving more flexibility when applying labels to stacked bar charts, showing percentage differences or showing dimension values on the bars.VizBundle.PNG

    And, our native map chart now has a new background layer that can use any image as a map background. This is great when using custom drawings that require GPS coordinates to analyze specific dimensions –  specifically things such as: floor plans/space layouts, hardware positioning, parking grids, stadium seating, transit routes, and much more.

     We have also released a new iOS app - Qlik Sense Mobile for Blackberry client, which is a containerized version of Qlik Sense Mobile supporting advanced management and security for BYOD (bring your own device) environments. MobileforBlackberry.PNG

    We have added new task notifications to Qlik NPrinting, allowing greater efficiency for administration as well as extended Qlik Associative Big Data Index functionality with additional "live" mode aggregation options in a KPI object, e.g. sum/min/max/avg. As mentioned, all of this content, and much more, will be featured at Qonnections, which is just a month away! 

    The more you understand about what’s possible with our platform, the more you and your organization can benefit from it. Register now for our May 29 Qlik Insider session for a live, exclusive look at the Qlik April 2019 release, including the newest features and extensions to our platform.

    Please download the latest product releases from our customer downloads site and let us know what you think in the comments below!

    Show Less