CINXE.COM
Qlik Support | Qlik® | Support Portal
<!DOCTYPE HTML> <html lang="en"> <head> <script src="/static/111213/js/perf/stub.js" type="text/javascript"></script><link class="user" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" /><link class="user" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700" rel="stylesheet" type="text/css" /><link class="user" href="https://support-files.qlik.com/css/anno.css" rel="stylesheet" type="text/css" /><link class="user" href="https://support-files.qlik.com/css/screen.css" rel="stylesheet" type="text/css" /><link class="user" href="https://support-files.qlik.com/css/responsive.css" rel="stylesheet" type="text/css" /><link class="user" href="https://support-files.qlik.com/css/overwrite.css" rel="stylesheet" type="text/css" /><script>(function(UITheme) { UITheme.getUITheme = function() { return UserContext.uiTheme; }; }(window.UITheme = window.UITheme || {}));</script><meta HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE" /> <meta HTTP-EQUIV="Expires" content="Mon, 01 Jan 1990 12:00:00 GMT" /> <style> @font-face { font-family: 'fontello'; src: url("https://support-files.qlik.com/fonts/fontello.eot?6157106"); src: url("https://support-files.qlik.com/fonts/fontello.eot?6157106#iefix") format('embedded-opentype'), url("https://support-files.qlik.com/fonts/fontello.woff2?6157106") format('woff2'), url("https://support-files.qlik.com/fonts/fontello.woff?6157106") format('woff'), url("https://support-files.qlik.com/fonts/fontello.ttf?6157106") format('truetype'), url("https://support-files.qlik.com/fonts/fontello.svg?6157106#fontello") format('svg'); font-weight: normal; font-style: normal; } </style> <meta charset="utf-8" /> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script> <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> <link href="/favicon.ico?v=2" rel="shortcut icon" /> <meta content="text/html; charset=UTF-8" http-equiv="Content-type" /> <meta content="320" name="MobileOptimized" /> <meta content="True" name="HandheldFriendly" /> <meta content="yes" name="apple-mobile-web-app-capable" /> <meta content="initial-scale=1, width=device-width, user-scalable=yes" name="viewport" /> <meta content="white" name="apple-mobile-web-app-status-bar-style" /> <meta content="Qlik | Support Portal" name="author" /> <meta content="Support for our Qlik comprehensive Business Intelligence Product Suite" property="og:title" /> <meta content="http://www.qlik.com/us/-/media/images/global/homepage/2018/og-homepage.jpg" property="og:image" /> <meta content="Transform your entire business with help from Qlik's Support Team. Learn new skills and discover the end-to-end support options available to drive results. Trusted by over 48,000 customers worldwide." property="og:description" /> <script src="../soap/ajax/27.0/connection.js"></script> <script src="https://c.la7cs.salesforceliveagent.com/content/g/js/36.0/deployment.js"></script> <script src="https://cdn.oncehub.com/mergedjs/so.js"></script> <script> (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("jQuery")); else if(typeof define === 'function' && define.amd) define(["jQuery"], factory); else { var a = typeof exports === 'object' ? factory(require("jQuery")) : factory(root["jQuery"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function(__WEBPACK_EXTERNAL_MODULE_1__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { var $, Anno, AnnoButton, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; $ = __webpack_require__(1); __webpack_require__(2); exports.Anno = Anno = (function() { var _returnFromOnShow; function Anno(arg) { var key, options, others, val; if (arg.__proto__ === Array.prototype) { options = arg.shift(); others = arg; } else { options = arg; } if (options instanceof Anno) { console.warn('Anno constructor parameter is already an Anno object.'); } if (options == null) { console.warn("new Anno() created with no options. It's recommended" + " to supply at least target and content."); } for (key in options) { val = options[key]; if (key === 'chainTo' || key === 'start' || key === 'show' || key === 'hide' || key === 'hideAnno' || key === 'chainSize' || key === 'chainIndex' || key === 'version') { console.warn(("Anno: Overriding '" + key + "' is not recommended. Can ") + "you override a delegated function instead?"); } } for (key in options) { val = options[key]; this[key] = val; } if ((others != null ? others.length : void 0) > 0) { this.chainTo(new Anno(others)); } return; } Anno.setDefaults = function(options) { var key, val, _results; _results = []; for (key in options) { val = options[key]; _results.push(Anno.prototype[key] = val); } return _results; }; Anno.prototype.chainTo = function(obj) { if (obj != null) { if (this._chainNext == null) { this._chainNext = obj instanceof Anno ? obj : new Anno(obj); this._chainNext._chainPrev = this; } else { this._chainNext.chainTo(obj); } } else { console.error("Can't chainTo a null object."); } return this; }; Anno.prototype._chainNext = null; Anno.prototype._chainPrev = null; Anno.chain = function(array) { console.warn('Anno.chain([...]) is deprecated. Use ' + '`new Anno([...])` instead.'); return new Anno(array); }; Anno.prototype.chainSize = function() { if (this._chainNext != null) { return this._chainNext.chainSize(); } else { return 1 + this.chainIndex(); } }; Anno.prototype.chainIndex = function(index) { var find; if (index != null) { return (find = function(curr, i, u) { var ci; if (curr != null) { ci = curr.chainIndex(); if ((0 <= ci && ci < i)) { return find(curr._chainNext, i, u); } else if ((i < ci && ci <= u)) { return find(curr._chainPrev, i, u); } else if (ci === i) { return curr; } } else { return console.error(("Couldn't switch to index '" + i + "'. Chain size ") + ("is '" + u + "'")); } })(this, index, this.chainSize()); } else { if (this._chainPrev != null) { return 1 + this._chainPrev.chainIndex(); } else { return 0; } } }; Anno.prototype.show = function() { var $target, lastButton; $target = this.targetFn(); if (this._annoElem != null) { console.warn(("Anno elem for '" + this.target + "' has already been ") + "generated. Did you call show() twice?"); } this._annoElem = this.annoElem(); this.emphasiseTarget(); this.showOverlay(); this.showBodyclass(); $target.after(this._annoElem); this._annoElem.addClass('anno-target-' + this.arrowPositionFn()); this.positionAnnoElem(); setTimeout(((function(_this) { return function() { return _this._annoElem.removeClass('anno-hidden'); }; })(this)), 50); $target.scrollintoview(); setTimeout(((function(_this) { return function() { return _this._annoElem.scrollintoview(); }; })(this)), 300); lastButton = this._annoElem.find('button').last(); if (this.rightArrowClicksLastButton) { lastButton.keydown(function(evt) { if (evt.keyCode === 39) { return $(this).click(); } }); } if (this.autoFocusLastButton && $target.find(':focus').length === 0) { lastButton.focus(); } this._returnFromOnShow = this.onShow(this, $target, this._annoElem); return this; }; Anno.prototype.start = function() { return this.show(); }; Anno.prototype.rightArrowClicksLastButton = true; Anno.prototype.autoFocusLastButton = true; Anno.prototype.onShow = function(anno, $target, $annoElem) {}; _returnFromOnShow = null; Anno.prototype.hide = function() { this.hideAnno(); this.hideBodyclass(); setTimeout(this.hideOverlay, 50); return this; }; Anno.prototype.hideAnno = function() { if (this._annoElem != null) { this._annoElem.addClass('anno-hidden'); this.deemphasiseTarget(); this.onHide(this, this.targetFn(), this._annoElem, this._returnFromOnShow); (function(annoEl) { return setTimeout((function() { return annoEl.remove(); }), 300); })(this._annoElem); this._annoElem = null; } else { console.warn(("Can't hideAnno() for '" + this.target + "' when @_annoElem ") + "is null. Did you call hideAnno() twice?"); } return this; }; Anno.prototype.onHide = function(anno, $target, $annoElem, returnFromOnShow) {}; Anno.prototype.switchTo = function(otherAnno) { if (otherAnno != null) { this.hideAnno(); return otherAnno.show(); } else { console.warn("Can't switchTo a null object. Hiding instead."); return this.hide(); } }; Anno.prototype.switchToChainNext = function() { return this.switchTo(this._chainNext); }; Anno.prototype.switchToChainPrev = function() { return this.switchTo(this._chainPrev); }; Anno.prototype.target = 'h1'; Anno.prototype.targetFn = function() { var r; if (typeof this.target === 'string') { r = $(this.target).filter(':not(.anno-placeholder)'); if (r.length === 0) { console.error("Couldn't find Anno.target '" + this.target + "'."); } if (r.length > 1) { console.warn(("Anno target '" + this.target + "' matched " + r.length + " ") + "elements. Targeting the first one."); } return r.first(); } else if (this.target instanceof jQuery) { if (this.target.length > 1) { console.warn(("Anno jQuery target matched " + this.target.length + " ") + "elements. Targeting the first one."); } return this.target.first(); } else if (this.target instanceof HTMLElement) { return $(this.target); } else if (typeof this.target === 'function') { return this.target(); } else { console.error("Unrecognised Anno.target. Please supply a jQuery " + "selector string, a jQuery object, a raw DOM element or a " + "function returning a jQuery element. target:"); return console.error(this.target); } }; Anno.prototype.annoElem = function() { this._annoElem = $("<div class='anno anno-hidden " + this.className + "'>\n<div class='anno-inner'> <div class='anno-arrow'></div> </div>\n</div>"); this._annoElem.find('.anno-inner').append(this.contentElem()).append(this.buttonsElem()); return this._annoElem; }; Anno.prototype._annoElem = null; Anno.prototype.className = ''; Anno.prototype.content = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'; Anno.prototype.showBodyclass = function() { $('body').addClass('tour'); } Anno.prototype.hideBodyclass = function() { $('body').removeClass('tour'); } Anno.prototype.contentFn = function() { return this.content; }; Anno.prototype.contentElem = function() { return $("<div class='anno-content'>" + this.contentFn() + "</div>"); }; Anno.prototype.showOverlay = function() { var $e; if ($('.anno-overlay').length === 0) { $('body #panel').append($e = this.overlayElem().addClass('anno-hidden')); return setTimeout((function() { return $e.removeClass('anno-hidden'); }), 10); } else { return $('.anno-overlay').replaceWith(this.overlayElem()); } }; Anno.prototype.overlayElem = function() { return $("<div class='anno-overlay " + this.overlayClassName + "'></div>").click((function(_this) { return function(evt) { return _this.overlayClick.call(_this, _this, evt); }; })(this)); }; Anno.prototype.overlayClassName = ''; Anno.prototype.overlayClick = function(anno, evt) { return anno.hide(); }; Anno.prototype.hideOverlay = function() { $('.anno-overlay').addClass('anno-hidden'); return setTimeout((function() { return $('.anno-overlay').remove(); }), 300); }; Anno.prototype.emphasiseTarget = function($target) { var origbg, origheight, origleft, origtop, origwidth, origzindex, placeholder, ppos, startposition, tpos; if ($target == null) { $target = this.targetFn(); } this._undoEmphasise = []; $target.closest(':scrollable').on('mousewheel', function(evt) { evt.preventDefault(); return evt.stopPropagation(); }); this._undoEmphasise.push(function($t) { return $t.closest(':scrollable').off('mousewheel'); }); if ($target.css('position') === 'static') { $target.after(placeholder = $target.clone().addClass('anno-placeholder')); (function(_this) { return (function(placeholder) { return _this._undoEmphasise.push(function() { return placeholder.remove(); }); }); })(this)(placeholder); startposition = $target.prop('style').position; (function(_this) { return (function(startposition) { return _this._undoEmphasise.push(function($t) { return $t.css({ position: startposition }); }); }); })(this)(startposition); $target.css({ position: 'absolute' }); if ($target.outerWidth() !== placeholder.outerWidth()) { origwidth = $target.prop('style').width; (function(_this) { return (function(origwidth) { return _this._undoEmphasise.push(function($t) { return $t.css({ width: origwidth }); }); }); })(this)(origwidth); $target.css('width', placeholder.outerWidth()); } if ($target.outerHeight() !== placeholder.outerHeight()) { origheight = $target.prop('style').height; (function(_this) { return (function(origheight) { return _this._undoEmphasise.push(function($t) { return $t.css({ height: origheight }); }); }); })(this)(origheight); $target.css('height', placeholder.outerHeight()); } ppos = placeholder.position(); tpos = $target.position(); if (tpos.top !== ppos.top) { origtop = $target.prop('style').top; (function(_this) { return (function(origtop) { return _this._undoEmphasise.push(function($t) { return $t.css({ top: origtop }); }); }); })(this)(origtop); $target.css('top', ppos.top); } if (tpos.left !== ppos.left) { origleft = $target.prop('style').left; (function(_this) { return (function(origleft) { return _this._undoEmphasise.push(function($t) { return $t.css({ left: origleft }); }); }); })(this)(origleft); $target.css('left', ppos.left); } } if ($target.css('backgroundColor') === 'rgba(0, 0, 0, 0)' || $target.css('backgroundColor') === 'transparent') { console.warn(("Anno.js target '" + this.target + "' has a transparent bg; ") + "filling it white temporarily."); origbg = $target.prop('style').background; (function(_this) { return (function(origbg) { return _this._undoEmphasise.push(function($t) { return $t.css({ background: origbg }); }); }); })(this)(origbg); $target.css({ background: 'white' }); } origzindex = $target.prop('style').zIndex; (function(_this) { return (function(origzindex) { return _this._undoEmphasise.push(function($t) { return $t.css({ zIndex: origzindex }); }); }); })(this)(origzindex); $target.css({ zIndex: '1001' }); return $target; }; Anno.prototype._undoEmphasise = []; Anno.prototype.deemphasiseTarget = function() { var $target, fn, _i, _len, _ref; $target = this.targetFn(); _ref = this._undoEmphasise; for (_i = 0, _len = _ref.length; _i < _len; _i++) { fn = _ref[_i]; fn($target); } return $target; }; Anno.prototype.position = null; Anno.prototype.positionAnnoElem = function(annoEl) { var $targetEl, offset, pos; if (annoEl == null) { annoEl = this._annoElem; } pos = this.positionFn(); $targetEl = this.targetFn(); offset = $targetEl.position(); switch (pos) { case 'top': case 'bottom': annoEl.css({ left: offset.left + 'px' }); break; case 'center-top': case 'center-bottom': annoEl.css({ left: offset.left + ($targetEl.outerWidth() / 2 - annoEl.outerWidth() / 2) + 'px' }); break; case 'left': case 'right': annoEl.css({ top: offset.top + 'px' }); break; case 'center-left': case 'center-right': annoEl.css({ top: offset.top + ($targetEl.outerHeight() / 2 - annoEl.outerHeight() / 2) + 'px' }); } switch (pos) { case 'top': case 'center-top': annoEl.css({ top: offset.top - annoEl.outerHeight() + 'px' }); break; case 'bottom': case 'center-bottom': annoEl.css({ top: offset.top + $targetEl.outerHeight() + 'px' }); break; case 'left': case 'center-left': annoEl.css({ left: offset.left - annoEl.outerWidth() + 'px' }); break; case 'right': case 'center-right': annoEl.css({ left: offset.left + $targetEl.outerWidth() + 'px' }); break; default: if ((pos.left != null) || (pos.right != null) || (pos.top != null) || (pos.bottom != null)) { annoEl.css(pos); } else { console.error("Unrecognised position: '" + pos + "'"); } } return annoEl; }; Anno.prototype.positionFn = function() { var $container, $target, allowed, annoBounds, bad, containerOffset, targetBounds, targetOffset, viewBounds; if (this.position != null) { return this.position; } else if (this._annoElem != null) { $target = this.targetFn(); $container = $target.closest(':scrollable'); if ($container.length === 0) { $container = $('body'); } targetOffset = $target.offset(); containerOffset = $container.offset(); targetBounds = { left: targetOffset.left - containerOffset.left, top: targetOffset.top - containerOffset.top }; targetBounds.right = targetBounds.left + $target.outerWidth(); targetBounds.bottom = targetBounds.top + $target.outerHeight(); viewBounds = { w: $container.width() || $container.width(), h: $container.height() || $container.height() }; annoBounds = { w: this._annoElem.outerWidth(), h: this._annoElem.outerHeight() }; bad = []; if (annoBounds.w > targetBounds.left) { bad = bad.concat(['left', 'center-left']); } if (annoBounds.h > targetBounds.top) { bad = bad.concat(['top', 'center-top']); } if (annoBounds.w + targetBounds.right > viewBounds.w) { bad = bad.concat(['right', 'center-right']); } if (annoBounds.h + targetBounds.bottom > viewBounds.h) { bad = bad.concat(['bottom', 'center-bottom']); } allowed = Anno.preferredPositions.filter(function(p) { return __indexOf.call(bad, p) < 0; }); if (allowed.length === 0) { console.error(("Anno couldn't guess a position for '" + this.target + "'. ") + "Please supply one in the constructor."); } else { console.warn(("Anno: guessing position:'" + allowed[0] + "' for ") + ("'" + this.target + "'. Possible Anno.preferredPositions: [" + allowed + "].")); } return this.position = allowed[0]; } }; Anno.preferredPositions = ['bottom', 'right', 'left', 'top', 'center-bottom', 'center-right', 'center-left', 'center-top']; Anno.prototype.arrowPositionFn = function() { var pos, r; if (this.arrowPosition != null) { return this.arrowPosition; } else if (typeof this.positionFn() === 'string') { return { 'top': 'bottom', 'center-top': 'center-bottom', 'left': 'right', 'center-left': 'center-right', 'right': 'left', 'center-right': 'center-left', 'bottom': 'top', 'center-bottom': 'center-top' }[this.positionFn()]; } else { pos = { l: parseInt(this.positionFn().left, 10), t: parseInt(this.positionFn().top, 10) }; if (Math.abs(pos.l) > Math.abs(pos.t)) { r = pos.l < 0 ? 'center-right' : 'center-left'; } else { r = pos.t < 0 ? 'center-bottom' : 'center-top'; } console.warn(("Guessing arrowPosition:'" + r + "' for " + this.target + ". ") + "Include this in your constructor for consistency."); return r; } }; Anno.prototype.arrowPosition = null; Anno.prototype.buttons = [{}]; Anno.prototype.buttonsFn = function() { if (this.buttons instanceof Array) { return this.buttons.map(function(b) { return new AnnoButton(b); }); } else { return [new AnnoButton(this.buttons)]; } }; Anno.prototype.buttonsElem = function() { var b; return $("<div class='anno-btn-container'></div>").append((function() { var _i, _len, _ref, _results; _ref = this.buttonsFn(); _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { b = _ref[_i]; _results.push(b.buttonElem(this)); } return _results; }).call(this)); }; return Anno; })(); exports.AnnoButton = AnnoButton = (function() { function AnnoButton(options) { var key, val; for (key in options) { val = options[key]; this[key] = val; } } AnnoButton.prototype.buttonElem = function(anno) { return $("<button class='anno-btn'></button>").html(this.textFn(anno)).addClass(this.className).click((function(_this) { return function(evt) { return _this.click.call(anno, anno, evt); }; })(this)); }; AnnoButton.prototype.textFn = function(anno) { if (this.text != null) { return this.text; } else if (anno._chainNext != null) { return 'Next'; } else { return 'Done'; } }; AnnoButton.prototype.text = null; AnnoButton.prototype.className = ''; AnnoButton.prototype.click = function(anno, evt) { if (anno._chainNext != null) { return anno.switchToChainNext(); } else { return anno.hide(); } }; AnnoButton.NextButton = new AnnoButton({ text: 'Next', click: function() { return this.switchToChainNext(); } }); AnnoButton.DoneButton = new AnnoButton({ text: 'Done', click: function() { return this.hide(); } }); AnnoButton.BackButton = new AnnoButton({ text: 'Back', className: 'anno-btn-low-importance', click: function() { return this.switchToChainPrev(); } }); return AnnoButton; })(); /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { /*! * jQuery scrollintoview() plugin and :scrollable selector filter * * Version 1.8 (14 Jul 2011) * Requires jQuery 1.4 or newer * * Copyright (c) 2011 Robert Koritnik * Licensed under the terms of the MIT license * http://www.opensource.org/licenses/mit-license.php */ (function ($) { var converter = { vertical: { x: false, y: true }, horizontal: { x: true, y: false }, both: { x: true, y: true }, x: { x: true, y: false }, y: { x: false, y: true } }; var settings = { duration: "fast", direction: "both" }; var rootrx = /^(?:html)$/i; // gets border dimensions var borders = function (domElement, styles) { styles = styles || (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(domElement, null) : domElement.currentStyle); var px = document.defaultView && document.defaultView.getComputedStyle ? true : false; var b = { top: (parseFloat(px ? styles.borderTopWidth : $.css(domElement, "borderTopWidth")) || 0), left: (parseFloat(px ? styles.borderLeftWidth : $.css(domElement, "borderLeftWidth")) || 0), bottom: (parseFloat(px ? styles.borderBottomWidth : $.css(domElement, "borderBottomWidth")) || 0), right: (parseFloat(px ? styles.borderRightWidth : $.css(domElement, "borderRightWidth")) || 0) }; return { top: b.top, left: b.left, bottom: b.bottom, right: b.right, vertical: b.top + b.bottom, horizontal: b.left + b.right }; }; var dimensions = function ($element) { var win = $(window); var isRoot = rootrx.test($element[0].nodeName); return { border: isRoot ? { top: 0, left: 0, bottom: 0, right: 0} : borders($element[0]), scroll: { top: (isRoot ? win : $element).scrollTop(), left: (isRoot ? win : $element).scrollLeft() }, scrollbar: { right: isRoot ? 0 : $element.innerWidth() - $element[0].clientWidth, bottom: isRoot ? 0 : $element.innerHeight() - $element[0].clientHeight }, rect: (function () { var r = $element[0].getBoundingClientRect(); return { top: isRoot ? 0 : r.top, left: isRoot ? 0 : r.left, bottom: isRoot ? $element[0].clientHeight : r.bottom, right: isRoot ? $element[0].clientWidth : r.right }; })() }; }; $.fn.extend({ scrollintoview: function (options) { /// <summary>Scrolls the first element in the set into view by scrolling its closest scrollable parent.</summary> /// <param name="options" type="Object">Additional options that can configure scrolling: /// duration (default: "fast") - jQuery animation speed (can be a duration string or number of milliseconds) /// direction (default: "both") - select possible scrollings ("vertical" or "y", "horizontal" or "x", "both") /// complete (default: none) - a function to call when scrolling completes (called in context of the DOM element being scrolled) /// </param> /// <return type="jQuery">Returns the same jQuery set that this function was run on.</return> options = $.extend({}, settings, options); options.direction = converter[typeof (options.direction) === "string" && options.direction.toLowerCase()] || converter.both; var dirStr = ""; if (options.direction.x === true) dirStr = "horizontal"; if (options.direction.y === true) dirStr = dirStr ? "both" : "vertical"; var el = this.eq(0); var scroller = el.closest(":scrollable(" + dirStr + ")"); // check if there's anything to scroll in the first place if (scroller.length > 0) { scroller = scroller.eq(0); var dim = { e: dimensions(el), s: dimensions(scroller) }; var rel = { top: dim.e.rect.top - (dim.s.rect.top + dim.s.border.top), bottom: dim.s.rect.bottom - dim.s.border.bottom - dim.s.scrollbar.bottom - dim.e.rect.bottom, left: dim.e.rect.left - (dim.s.rect.left + dim.s.border.left), right: dim.s.rect.right - dim.s.border.right - dim.s.scrollbar.right - dim.e.rect.right }; var animOptions = {}; // vertical scroll if (options.direction.y === true) { if (rel.top < 0) { animOptions.scrollTop = dim.s.scroll.top + rel.top; } else if (rel.top > 0 && rel.bottom < 0) { animOptions.scrollTop = dim.s.scroll.top + Math.min(rel.top, -rel.bottom); } } // horizontal scroll if (options.direction.x === true) { if (rel.left < 0) { animOptions.scrollLeft = dim.s.scroll.left + rel.left; } else if (rel.left > 0 && rel.right < 0) { animOptions.scrollLeft = dim.s.scroll.left + Math.min(rel.left, -rel.right); } } // scroll if needed if (!$.isEmptyObject(animOptions)) { if (rootrx.test(scroller[0].nodeName)) { scroller = $("html,body"); } scroller .animate(animOptions, options.duration) .eq(0) // we want function to be called just once (ref. "html,body") .queue(function (next) { $.isFunction(options.complete) && options.complete.call(scroller[0]); next(); }); } else { // when there's nothing to scroll, just call the "complete" function $.isFunction(options.complete) && options.complete.call(scroller[0]); } } // return set back return this; } }); var scrollValue = { auto: true, scroll: true, visible: false, hidden: false }; $.extend($.expr[":"], { scrollable: function (element, index, meta, stack) { var direction = converter[typeof (meta[3]) === "string" && meta[3].toLowerCase()] || converter.both; var styles = (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(element, null) : element.currentStyle); var overflow = { x: scrollValue[styles.overflowX.toLowerCase()] || false, y: scrollValue[styles.overflowY.toLowerCase()] || false, isRoot: rootrx.test(element.nodeName) }; // check if completely unscrollable (exclude HTML element because it's special) if (!overflow.x && !overflow.y && !overflow.isRoot) { return false; } var size = { height: { scroll: element.scrollHeight, client: element.clientHeight }, width: { scroll: element.scrollWidth, client: element.clientWidth }, // check overflow.x/y because iPad (and possibly other tablets) don't dislay scrollbars scrollableX: function () { return (overflow.x || overflow.isRoot) && this.width.scroll > this.width.client; }, scrollableY: function () { return (overflow.y || overflow.isRoot) && this.height.scroll > this.height.client; } }; return direction.y && size.scrollableY() || direction.x && size.scrollableX(); } }); })(jQuery); /***/ } /******/ ]) }); </script> <script> /*! * jQuery Cookie Plugin v1.4.0 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ (function(factory){ if(typeof define==='function'&&define.amd){ define(['jquery'],factory); } else{ factory(jQuery); } } (function($){ var pluses=/\+/g;function encode(s){ return config.raw?s:encodeURIComponent(s); } function decode(s){ return config.raw?s:decodeURIComponent(s); } function stringifyCookieValue(value){ return encode(config.json?JSON.stringify(value):String(value)); } function parseCookieValue(s){ if(s.indexOf('"')===0){ s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\'); } try{ s=decodeURIComponent(s.replace(pluses,' ')); return config.json?JSON.parse(s):s; }catch(e){} } function read(s,converter){ var value=config.raw?s:parseCookieValue(s); return $.isFunction(converter)?converter(value):value; } var config=$.cookie=function(key,value,options){ if(value!==undefined&&!$.isFunction(value)){ options=$.extend({},config.defaults,options); if(typeof options.expires==='number'){ var days=options.expires,t=options.expires=new Date(); t.setTime(+t+days*864e+5); } return(document.cookie=[encode(key),'=',stringifyCookieValue(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join('')); } var result=key?undefined:{}; var cookies=document.cookie?document.cookie.split('; '):[]; for(var i=0,l=cookies.length;i<l;i++){ var parts=cookies[i].split('='); var name=decode(parts.shift()); var cookie=parts.join('=');if(key&&key===name){ result=read(cookie,value);break; } if(!key&&(cookie=read(cookie))!==undefined){ result[name]=cookie; } } return result; }; config.defaults={}; $.removeCookie=function(key,options){ if($.cookie(key)===undefined){ return false; } $.cookie(key,'',$.extend({},options,{expires:-1})); return!$.cookie(key); }; })); </script> <script> /* * Copyright (c) 2014 Mike King (@micjamking) * * jQuery Succinct plugin * Version 1.1.0 (October 2014) * * Licensed under the MIT License */ /*global jQuery*/ (function($) { 'use strict'; $.fn.succinct = function(options) { var settings = $.extend({ size: 240, omission: '...', ignore: true }, options); return this.each(function() { var textDefault, textTruncated, elements = $(this), regex = /[!-\/:-@\[-`{-~]$/, init = function() { elements.each(function() { textDefault = $(this).html(); if (textDefault.length > settings.size) { textTruncated = $.trim(textDefault) .substring(0, settings.size) .split(' ') .slice(0, -1) .join(' '); if (settings.ignore) { textTruncated = textTruncated.replace(regex, ''); } $(this).html(textTruncated + settings.omission); } }); }; init(); }); }; })(jQuery); </script> <script> // Select all links with hashes $('a[href*="#"]') // Remove links that don't actually link to anything .not('[href="#"]') .not('[href="#0"]') .click(function(event) { var offset = -0; // On-page links if ( location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname ) { // Figure out element to scroll to var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); // Does a scroll target exist? if (target.length) { // Only prevent default if animation is actually gonna happen event.preventDefault(); $('html, body').animate({ scrollTop: target.offset().top + offset }, 1000, function() { // Callback after animation // Must change focus! var $target = $(target); $target.focus(); if ($target.is(":focus")) { // Checking if the target was focused return false; } else { $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable $target.focus(); // Set focus again }; }); } } }); </script> <script> /*$("link.user").each(function(){ $(this).attr("disabled", "disabled"); });*/ </script> <script> $(function(){ // Scripts here // Menu $('.toggle-button').click(function(event){ event.preventDefault(); $(this).toggleClass('open'); }); var $menuRevealBtn = $('.toggle-button'); var $sideNav = $('#side-nav'); var $sideNavMask = $('#side-nav-mask'); var $toggleButton = $('.toggle-button'); var $closeMenu = $('.close-menu-nav'); var $tour = $('.tour-link'); var $userTour = $('.usertour-link a'); var $firstVisit = $('.first-visit'); var $alert = $('.alert'); var $alertMessage = $('.alert .message ul li'); var $alertHeadline = $('.alert .headline'); var $closealert = $('.alert .close'); var $closeFirstVisit = $('.first-visit a'); var $clickonme = $('.clickonme'); var $flipcardsPanel = $('.flipcards .panel'); var $dropbtn = $('.drop-btn'); $menuRevealBtn.on('click', function() { $sideNav.addClass('visible'); $sideNavMask.addClass('visible'); $toggleButton.addClass('open'); }); $('#mobile-menu a').on('focus', function() { $(this).closest('#side-nav, #side-nav-mask').addClass('visible'); }) $('#mobile-menu a').on('blur', function() { $(this).closest('#side-nav, #side-nav-mask').removeClass('visible'); }) $sideNavMask.on('click', function() { $sideNav.removeClass('visible'); $sideNavMask.removeClass('visible'); $toggleButton.removeClass('open'); }); $closeMenu.on('click', function() { $sideNav.removeClass('visible'); $sideNavMask.removeClass('visible'); $toggleButton.removeClass('open'); }); $dropbtn.click(function(event){ event.preventDefault(); var obj=$(this).closest('.drop-me'); obj.toggleClass('open'); }); $closeFirstVisit.on('click', function() { $firstVisit.removeClass('show').attr("aria-hidden","false"); }); $clickonme.on('click', function() { $firstVisit.removeClass('show').attr("aria-hidden","false"); }); $clickonme.on('click', function() { $firstVisit.removeClass('show').attr("aria-hidden","false"); }); $flipcardsPanel.hover(function(){ $(this).addClass('flip'); }, function(){ $(this).removeClass('flip'); }); $('.flipcards .more').on('focus', function() { $(this).closest('.hover.panel').addClass('flip'); }) $('.flipcards .more').on('blur', function() { $(this).closest('.hover.panel').removeClass('flip'); }) // Anno Tour var tour = new Anno([ { target:'.resources.flyout', className: 'step1', content: '<h3>Quick Links</h3><p>This is your gateway to critical sites and tools in the Qlik Knowledge ecosystem.</p><p>Browse key Qlik websites to find the information you need, the way you need it. From indepth ondemand courses to hands on developer sandboxes.</p>', buttons: [AnnoButton.BackButton, AnnoButton.NextButton] }, { target: '.login.flyout', className: 'step2', content: '<h3>Login</h3><p>Maximize your access to support knowledge and resources.</p><p>Register to create a Qlik Account and sign in to tap a world of knowledge, manage cases and get hands on expertise.</p>', position: 'bottom', buttons: [AnnoButton.BackButton, AnnoButton.NextButton] }, { target: '.page-banner .searchfield', className: 'step3', content: '<h3>Search</h3><p>Use search to keyword search our assets. Points to remember, use parentheses to encapsulate “keywords”.</p><p>Use a plus sign + to add two keywords together.</p>', position: 'center-bottom', buttons: [AnnoButton.BackButton, AnnoButton.DoneButton] } ]); $tour.on('click', function() { event.preventDefault(); tour.show(); $( "body" ).addClass( "anno-activated" ); }); var userTour = new Anno([ { target:'.resources.flyout', className: 'step1', content: '<h3>Quick Links</h3><p>This is your gateway to critical sites and tools in the Qlik Knowledge ecosystem.</p><p>Browse key resource rich Qlik websites to find the information you need, the way you need it. From indepth on-demand courses to hands on developer sandboxes.</p>', buttons: [AnnoButton.BackButton, AnnoButton.NextButton] }, { target: '.login.flyout', className: 'step2', content: '<h3>My account</h3><p>Maximize your access to support and knowledge resources. Use your account to manage your profile, log cases, organize environments and view case status updates.</p>', position: 'bottom', buttons: [AnnoButton.BackButton, AnnoButton.DoneButton] } ]); $userTour.on('click', function() { event.preventDefault(); userTour.show(); $( "body" ).addClass( "anno-activated" ); }); // Cookies $firstVisit.addClass('show').attr("aria-hidden","true"); $alert.addClass('show').attr("aria-hidden","true"); // First time visit banner if ($.cookie('apex__hide-after-load') == 'yes') { $firstVisit.removeClass('show').attr("aria-hidden","false"); } // Hide alert if closed if ($.cookie('apex__hide-after-click') == 'yes') { $alert.removeClass('show').attr("aria-hidden","false"); } // add cookie to hide the first message after load (on refresh it will be hidden) $.cookie('apex__hide-after-load', 'yes', {expires: 3650 }); $closealert.click(function() { // check that “X” icon was not cliked before (hidden) if (!$('.alert').is('show')) { $alert.removeClass('show'); $('body').removeClass('myalerts'); // add cookie setting that user has clicked $.cookie('apex__hide-after-click', 'yes', {expires: 1 }); } return false; }); //reset the cookies (not shown in tutorial) $('.reset a').click(function() { // check that if it was cliked before or not if (!$(this).hasClass('clicked')) { // add class that the link is clicked and shot the footer with delay $(this).addClass('clicked'); // add cookie setting that user has clicked $.cookie('apex__hide-after-load', 'no', {expires: 3650 }); $.cookie('apex__hide-after-click', 'no', {expires: 1 }); } location.reload(); }); // Alert rotator textRotator = function(element) { var words = $(element), total = words.length - 1, position = 0, current = null, timer = null; $(element).first().addClass('active'); var autoSlide = function() { words.removeClass('active'); if (position === total) { position = 0; } else { position = position + 1; } // console.log(position); words.eq(position).addClass('active'); }; timer = setInterval(autoSlide, 7000); }; textRotator('.alert .message ul li'); // Alert character limit $alertHeadline.succinct({ size: 65 }); // Product menu scroll to $('#product-menu').change( function () { var targetPosition = $($(this).val()).offset().top; $('html,body').animate({ scrollTop: (targetPosition) -0}, '800'); }); // Remove hover on flyout with a anchor link $( '.flyout a' ).click(function() { var obj=$(this).closest('.flyout'); obj.toggleClass('hide'); }); $('.flyout').hover(function() { $(this).removeClass('hide'); }); }); </script> <script> function gotosite() { window.location = document.getElementById("wizard-menu").value; // $: $("#chapter-menu").val(); } </script> <script> (function ($, undefined) { var _instances = 0; var dialog = $.extend({}, $.ui.dialog.prototype), _super = { _create: dialog._create, _destroy: dialog._destroy, open: dialog.open, close: dialog.close }; dialog = $.extend(dialog, { options: $.extend({}, dialog.options, { modal: true, autoOpen: false, resizable: false, fadeOverlay: true, fancyAnimation: true, beforeOpen: function (e, ui) { }, beforeClose: function (e, ui) { }, afterOpen: function (e, ui) { }, afterClose: function (e, ui) { }, hide: "fade" }), _fancyAnimation: null, _create: function () { _super._create.call(this); }, _destroy: function () { var self = this; if (self.overlay && self.options.fadeOverlay) { self.overlay.$el.hide("fade", 200, function () { _super._destroy.call(self); }); } else { return _super._destroy.call(this); } }, open: function (e) { var self = this; // let's trigger beforeOpen self.options.beforeOpen.call(self, e); tempSelf = _super.open.call(self, e); if (tempSelf != null) { self = tempSelf; // if modal and fadeOverlay if (self.options.modal && self.options.fadeOverlay) { // get overlay self.overlay.$el.hide().show("fade", 200, function () { if (self.options.fancyAnimation) { self.uiDialog.stop(true, true) .animate(self._fancyAnimation.animate, self._fancyAnimation.options); } }); } else { if (self.options.fancyAnimation) { self.uiDialog.stop(true, true) .animate(self._fancyAnimation.animate, self._fancyAnimation.options); } } // let's trigger afterOpen self.options.afterOpen.call(self, e); } return self; }, close: function (e) { var self = this; // let's trigger beforeClose self.options.beforeClose.call(self, e); $(window).unbind("resize." + self.widgetBaseClass + "-" + self.id); if (self.overlay && self.options.fadeOverlay) { $ = $; self.overlay.hide("fade", 200, function () { self = _super.close.call(self, e); }); } else { self = _super.close.call(self, e); } return self; } }); $.widget("xui.dialog", dialog); if (!$.xui) { $.xui = {}; } $.xui.locale = { "en-US": { yes: "Yes", no: "No", close: "Close", confirm: "Confirm", alert: "Alert" }, "sv-SE": { yes: "Ja", no: "Nej", close: "Stäng", confirm: "Bekräfta", alert: "Uppmärksamma" } }; $.xui.alert = function (content, title, options) { var defaults = { locale: "en-US" }; options = $.extend({}, defaults, options); var locale = $.xui.locale[options.locale]; return $("<div></div>") .append(content) .dialog($.extend({ title: title || locale.alert, autoOpen: true, close: function () { $(this).dialog("destroy"); }, buttons: { Close: function () { $(this).dialog("close"); } } }, options)); }; $.xui.dialogWizard = function (options) { var defaults = { autoOpen: false, steps: 7, locale: "en-US" }; options = $.extend({}, defaults, options); var callbacks = {}, $this = $(this), currentStep = 1, buttons = {}, indicators = $this.find(".steps li"), steps = $this.find(".step").hide(); function addCallback(name) { return function (cb) { callbacks[name] = cb; return this; }; } var methods = { finish: addCallback('finish'), cancel: addCallback('cancel'), next: function () { currentStep++; if (currentStep >= steps.length) { buttons.next.hide(); buttons.finish.show(); } else { buttons.previous.button("enable"); } indicators .removeClass("current") .eq(currentStep - 2) .addClass("finished") .end() .eq(currentStep - 1) .addClass("current"); steps.hide().eq(currentStep - 1).show(); }, previous: function () { currentStep--; if (currentStep === 1) { buttons.previous.button("disable"); } else { buttons.next.show(); buttons.finish.hide(); } indicators .removeClass("current") .eq(currentStep) .removeClass("finished") .end() .eq(currentStep - 1) .addClass("current"); steps.hide().eq(currentStep - 1).show(); } }; for (var i = 1; i <= steps.length; i++) { methods['step' + i] = addCallback('step' + i); } var dialog = $this .addClass("ui-dialog-wizard") .dialog($.extend({ open: function () { var $this = $(this); currentStep = 1; steps.hide().eq(0).show(); indicators .removeClass("finished current") .eq(0).addClass("current"); buttons.previous.button("disable"); buttons.next.show(); buttons.finish.hide(); }, buttons: [ { text: "Cancel", "class": "wizard-cancel", click: function () { var cb = callbacks.cancel || false; if (!cb || cb.apply($this[0])) { $(this).dialog("close"); } } }, { text: "Previous", "class": "wizard-previous", click: function () { var cb = callbacks['step' + (currentStep - 1)] || false; if (!cb || cb.apply($this[0], [true])) { methods.previous(); } } }, { text: "Next", "class": "wizard-next", click: function () { var cb = callbacks['step' + (currentStep)] || false; if (!cb || cb.apply($this[0])) { methods.next(); } } }, { text: "Finish", "class": "wizard-finish", click: function () { var cb = callbacks.finish || false; if (!cb || cb.apply($this[0])) { $(this).dialog("close"); } } } ] }, options)); $this.parent().find(".ui-button").each(function () { var $this = $(this); if ($this.hasClass("wizard-cancel")) { buttons.cancel = $this; } else if ($this.hasClass("wizard-previous")) { buttons.previous = $this; } else if ($this.hasClass("wizard-next")) { buttons.next = $this; } else if ($this.hasClass("wizard-finish")) { buttons.finish = $this; } }); return $.extend(dialog, methods); }; // Attach to $ fn $.fn.dialogWizard = $.xui.dialogWizard; })($); </script> <script src="https://c.la7cs.salesforceliveagent.com/content/g/js/34.0/deployment.js"></script> <script> if (!window._laq) { window._laq = []; } window._laq.push(function () { }); </script> <script> $('sideTabs').hide(); $('sideTabsRight').hide(); </script> <script> function toggleDiv(div) { if (document.getElementById(div)) { if (document.getElementById(div).style.display == 'none') document.getElementById(div).style.display = 'block'; else document.getElementById(div).style.display = 'none'; } } function CasesClicked() { toggleDiv('awaitingCasesNotificationPanel'); var bugNotif = document.getElementById('bugNotification'); if (!typeof bugNotif === 'undefined') bugNotif.style.display = 'none'; var surveyNotif = document.getElementById('surveyNotificationPanel') if (!typeof surveyNotif === 'undefined') surveyNotif.style.display = 'none'; } function CasesMouseOver() { toggleDiv('awaitingCasesNotificationPanel'); var bugNotif = document.getElementById('bugNotification'); if (!typeof bugNotif === 'undefined') bugNotif.style.display = 'none'; var surveyNotif = document.getElementById('surveyNotificationPanel') if (!typeof surveyNotif === 'undefined') surveyNotif.style.display = 'none'; } </script> <script> var dataLayer = [{'site': 'support'}];</script> <script> liveagent.init('https://d.la1-c1-lo3.salesforceliveagent.com/chat', '572D00000008OmH', '00D20000000IGPX'); </script> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P7VJSX');</script> <meta content="mM1twBsma7NGYl-D8njcmxTqxwj3_R-8tyF3NrEczuo" name="google-site-verification" /> <link href="https://support.qlik.com" rel="canonical" /> <script> window.isGuestUser = true; </script> <title>Qlik Support | Qlik® | Support Portal</title> </head> <body class="default" id="home"> <a class="skiptocontent" href="#content" tabindex="0">Skip to content</a> <div id="side-nav"> <a class="close-menu-nav" href="#"><span></span></a> <nav id="mobile-menu"> <ul> <li> <a href="/QS_Home_Page">Home</a> </li> <li class="drop-me"> <a class="drop-btn" href="#">Knowledge</a> <ul class="drop-menu"> <li><a href="/QS_PopularTopics">All Articles</a></li> <li><a href="/QS_PopularTopics#qlikid">Qlik Account ID</a></li> <li><a href="/QS_PopularTopics#license">License Information</a></li> <li><a href="/QS_PopularTopics#install">Install & Upgrade</a></li> <li><a href="/QS_PopularTopics#performance">Performance & Stability</a></li> <li><a href="/QS_PopularTopics#design">Designing Apps</a></li> <li><a href="/QS_PopularTopics#monitoring">Monitoring & Auditing</a></li> <li><a href="/QS_PopularTopics#logfiles">Collect Log Files & System Information</a></li> </ul> </li> <li class="drop-me"> <a class="drop-btn" href="/QS_Products">Products</a> <ul class="drop-menu"> <li><a href="/QS_Products">All Products</a></li> <li><a href="/QS_QlikSense">Qlik Sense</a></li> <li><a href="/QS_QlikView.php">Qlik QlikView</a></li> <li><a href="/QS_Products#analytics">Qlik Analytics Platform</a></li> <li><a href="/QS_Products#datacatalyst">Qlik Catalog™</a></li> <li><a href="/QS_Products#core">Qlik Core</a></li> <li><a href="/QS_Products#geoanalytics">Qlik GeoAnalytics</a></li> <li><a href="/QS_Products#connectors">Qlik Connectors</a></li> <li><a href="/QS_Products#nprinting">Qlik NPrinting</a></li> </ul> </li> <li class="drop-me"> <a class="drop-btn" href="#">QuickLinks</a> <ul class="drop-menu"> <li><a href="https://www.qlik.com/us/?_ga=2.125585346.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik.com</a></li> <li><a href="https://qcc.qlik.com/?_ga=2.125585346.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Continuous Classroom</a></li> <li><a href="https://help.qlik.com/?_ga=2.125585346.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Help</a></li> <li><a href="https://community.qlik.com/?_ga=2.125585346.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Community</a></li> <li><a href="https://www.youtube.com/user/qlikview?_ga=2.184233966.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Videos</a></li> <li><a href="https://myqlik.qlik.com/portal?_ga=2.185476321.998593942.1572870065-1094772386.1561121626" target="_blank">My Qlik</a></li> <li><a href="https://www.qlik.com/us/services/qlik-consulting?_ga=2.185476321.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Consulting</a></li> <li><a href="https://community.qlik.com/t5/Blogs/ct-p/qlik-community-blogs?_ga=2.213205980.998593942.1572870065-1094772386.1561121626" target="_blank">Qlik Blog</a></li> <li><a href="https://developer.qlik.com/?_ga=2.213205980.998593942.1572870065-1094772386.1561121626" target="_blank">Developers</a></li> <li><a href="https://partners.qlik.com/?_ga=2.213205980.998593942.1572870065-1094772386.1561121626" target="_blank">Partner Portal</a></li> <li><a href="https://www.qlik.com/us/services/support?_ga=2.119759680.998593942.1572870065-1094772386.1561121626" target="_blank">Maintenance & Policies</a></li> </ul> </li> <li> <a href="https://community.qlik.com/t5/Downloads/tkb-p/Downloads" target="_blank">Downloads</a> </li> <li> <a href="/QS_ContactUs">Contact</a> </li> <li> <a href="https://login.qlik.com/samlp/1vhovkrTWMjRdxutU8kgUmdlVZhkB1Bl" target="_blank">Login</a> </li> </ul> </nav> </div> <div id="side-nav-mask"></div> <div id="panel"> <header> <section class="navigation"> <div class="flyout resources"> <a aria-label="Quick Links"><div><span class="icon-th"></span></div></a> <div class="menu-flyout menu-resources"> <div class="wrapper"> <div class="menu-header"> <h2 class="menu-title"><span class="icon-th"></span> Quick Links</h2> </div> <div class="menu-sections"> <ul> <li><a href="https://www.qlik.com/us/" target="_blank"><span class="icon-c_globe"></span><span class="info">Qlik.com</span></a></li> <li><a href="https://qcc.qlik.com/" target="_blank"><span class="icon-c_book"></span><span class="info">Qlik Continuous Classroom</span></a></li> <li><a href="https://help.qlik.com/" target="_blank"><span class="icon-c_hand"></span><span class="info">Qlik Help</span></a></li> <li><a href="https://community.qlik.com/" target="_blank"><span class="icon-c_network"></span><span class="info">Qlik Community</span></a></li> <li><a href="https://www.youtube.com/user/qlikview" target="_blank"><span class="icon-youtube"></span><span class="info">Qlik Videos</span></a></li> <li><a href="https://myqlik.qlik.com/portal" target="_blank"><span class="icon-person"></span><span class="info">MyQlik</span></a></li> <li><a href="https://www.qlik.com/us/services/qlik-consulting" target="_blank"><span class="icon-c_bullseye"></span><span class="info">Consulting</span></a></li> <li><a href="https://community.qlik.com/t5/Blogs/ct-p/qlik-community-blogs" target="_blank"><span class="icon-c_chatbubble"></span><span class="info">Blog</span></a></li> <li><a href="https://developer.qlik.com/" target="_blank"><span class="icon-c_code"></span><span class="info">Developers</span></a></li> <li><a href="https://partners.qlik.com/" target="_blank"><span class="icon-c_connectingrings"></span><span class="info">Partner Portal</span></a></li> <li><a href="https://www.qlik.com/us/services/support" target="_blank"><span class="icon-c_paperscroll"></span><span class="info">Maintenance & Policies</span></a></li> <li style="background-color: #585858;"></li> </ul> </div> </div> </div> </div> <div class="logo"> <a href="https://community.qlik.com/t5/Support/ct-p/qlikSupport"> <img alt="Qlik Support" src="https://support-files.qlik.com/img/logo_qliksupport-h.svg" title="Qlik Support" /> <span>Support</span> </a> </div> <nav> <ul class="menu"> <li> <a aria-label="Home" href="/QS_Home_Page"> <span class="icon-home"> </span> </a> </li> <li class="flyout"> <a href="https://login.qlik.com/samlp/1vhovkrTWMjRdxutU8kgUmdlVZhkB1Bl?relaystate=https://support.qlik.com/QS_LicenseListPage">License Information</a> </li> <li class="flyout"> <a href="https://login.qlik.com/samlp/1vhovkrTWMjRdxutU8kgUmdlVZhkB1Bl?relaystate=https://support.qlik.com/QS_CaseListPage">Legacy Cases</a> </li> <li class="flyout downloads"> <a href="https://community.qlik.com/t5/Downloads/tkb-p/Downloads" target="_blank">Downloads</a> </li> </ul> </nav> <div class="flyout login"> <a href="https://login.qlik.com/samlp/1vhovkrTWMjRdxutU8kgUmdlVZhkB1Bl"><div><span class="icon-c_user"></span><span>Login</span></div></a> </div> <div class="flyout myaccount"> <a aria-label="My Account"><div><div class="user"><img id="j_id0:j_id1:j_id45:j_id46:profileImage1" src="/resource/1557557228000/QS_Qliklogo" alt=" " /></div><span>My Account</span></div></a> <script> //var fileUploader = ""; </script> <script> var popUpJq; var closePopup = false; $(document).ready(function ($) { //popUpJq = $('#qs-profile'); $('#opener_profile').click(function () { shopPersonaPopUp(); }); $('#opener_profile2').click(function () { shopPersonaPopUp(); }); $('#opener_profile3').click(function () { shopPersonaPopUp(); }); $('#opener_profilename').click(function () { shopPersonaPopUp(); }); $('#opener_profilename').click(function (e) { if ($('ul.expanded').is(':hidden')) { e.preventDefault(); $('ul').addClass('expanded'); $('ul.expanded').fadeIn(300); } }); }); function shopPersonaPopUp() { popUpJq = $('#qs-profile'); //if(window.innerWidth) popUpJq.dialog({ autoOpen: false, resizable: true, //minWidth: 420, maxWidth: 500, draggable: false, title: "My Profile", modal: true, open: function () { $('iframe').unbind("load"); $('.ui-widget-overlay').addClass('qs-modal'); $('.ui-widget-overlay').bind('click', function () { $('#qs-profile').dialog('close'); }); }, close: function () { $('.ui-widget-overlay').removeClass('qs-modal'); } }); popUpJq.dialog('open'); //alert($('iframe')); $('iframe').on('load', function () { if (closePopup) $('#qs-profile').dialog('close'); else closePopup = true; }); } function adjustPositionPersonaPopUp() { if( $('#qs-profile').is(':visible') ) { shopPersonaPopUp(); } } window.addEventListener('resize', adjustPositionPersonaPopUp); </script> <div id="qs-profile"> <iframe height="100" src="https://support.qlik.com/apex/QS_Persona?id=005D0000004wTRsIAM" style="border:0;"></iframe> </div> <div class="menu-flyout menu-login"> <div class="wrapper"> <div class="menu-header"> <div><a class="btn" href="/secur/logout.jsp">Logout</a></div> </div> </div> </div> </div> </section> <div class="authenticated-user"> <div class="wrapper"> <div class="user"><img id="j_id0:j_id1:j_id45:j_id46:j_id71:j_id72:profileImage1" src="/resource/1557557228000/QS_Qliklogo" alt=" " /><span>Welcome Guest</span></div> <div> <ul> <li><a href="https://community.qlik.com/t5/Support/ct-p/qlikSupport"><span class="icon-c_docs"></span><span>Submit a case</span></a></li> <li class="logout-link"> </li> </ul> </div> </div> </div> </header> <div class="main" id="content"> <div class="page-banner"> <div class="wrapper"> <span class="title">We're here to help</span><span id="j_id0:j_id1:j_id91"> <link href="https://ql072012p.searchunify.com/resources/search_clients_custom/c76f1b6a-2b2a-11eb-bd4e-0242ac120002/external_styles.css" rel="stylesheet" /> <link href="https://ql072012p.searchunify.com/resources/search_clients_custom/c76f1b6a-2b2a-11eb-bd4e-0242ac120002/searchbox.css" rel="stylesheet" /> <script src="https://ql072012p.searchunify.com/resources/Allow/an.js?uid=c76f1b6a-2b2a-11eb-bd4e-0242ac120002" type="text/javascript"></script> <script src="https://ql072012p.searchunify.com/resources/search_clients_custom/c76f1b6a-2b2a-11eb-bd4e-0242ac120002/external_scripts.js" type="text/javascript"></script> <script src="https://ql072012p.searchunify.com/resources/search_clients_custom/c76f1b6a-2b2a-11eb-bd4e-0242ac120002/searchbox.js" type="text/javascript"></script> <script type="text/javascript"> window.user = 'qoncierge@qlik.com'; window.searchPage = 'QS_QlikSearch'; var jwtBearer = 'ewogICJhbGciIDogIkhTMjU2IiwKICAidHlwIiA6ICJKV1QiCn0.zMb9HP5mlO-0vWDEVPqT12lIgK3Oh3Zsfqy3UDWWzFr4Bs8Gk-T0Kr-6xlfOPKIfs3t1xMD1Uyh4904ywNrmqHlWiqRMxne0KKhUx3TtrgXqQWZuNv_KtKv23SK6Fj6CshQrpfYUiLffPsq2FHD3mECaPv3IaJvHCKk2_kDzvVsaQxhCfItC3SdAwtnkmUfV7xrKx46_3C8oEPvTCJKgc37NzQKBw28n8ZRTrjaVrMPndIUTyWlhUutA7CXfW3ewXHaJdH93JvgxYWcX4RAR44J8GKvNJKDb2IQMVRPCLgJDsmGnsRVK3qAdDa6amZJx.TRCCFEue78v6cA-Ku6eRDIBzerUPyu992OiORRyybmg'; </script> <div id="auto"> <div ng-controller="SearchautoController"> <div bind-html-compile="autocompleteHtml"></div> </div> </div> <script type="text/javascript"> var resultspage = '10'; var aggr = []; var sourceType = ''; var valueType = ''; valueType = valueType.toLowerCase(); if((sourceType !== undefined && valueType !== undefined) && (sourceType !== '' && valueType !== '')){ var sourceFilter = sourceType.split(';'); var valueFilter = valueType.split(';'); var finalJson = '['; var totalAggr = ''; for(var i=0; i<sourceFilter.length; i++){ if(valueFilter[i] != '' && valueFilter[i] != undefined && valueFilter[i] != 'undefined'){ var secondFilterChild = valueFilter[i].split(','); if(secondFilterChild.length > 0){ var childValue = ''; totalAggr += '{"type":"'+sourceFilter[i]+'","filter":['; for(var j=0; j<secondFilterChild.length; j++){ childValue += '"'+secondFilterChild[j]+'",'; } childValue = childValue.slice(0,childValue.length-1); totalAggr += childValue+']},'; }else totalAggr += '{"type":"'+sourceFilter[i]+'","filter":["'+valueFilter[i]+'"]},'; } } totalAggr = totalAggr.slice(0,totalAggr.length-1); finalJson += totalAggr + ']'; aggr = finalJson; } function showResultPage(searchQuery){ window.location = 'QS_QlikSearch#/!search?searchString='+encodeURIComponent(searchQuery)+'&aggregations='+encodeURIComponent(aggr)+'&pageSize='+resultspage; } function getHashValue(key) { var matches = location.hash.match(new RegExp(key+'=([^&]*)')); return matches ? matches[1] : ''; } </script></span> <div class="CoveoSearchbox field textfield searchfield" data-auto-focus="false" data-design="new" data-enable-omnibox="true" data-placeholder="Search for answers" data-title="Search for answers" data-trigger-query-on-clear="false"></div> </div> </div> <section class="which-product"> <div class="wrapper"> <h1 class="sr-only">Support Portal</h1> <h2>Support Case creation has moved to Community!</h2> <div class="section-button"><a class="btn" href="https://community.qlik.com/t5/Support/ct-p/qlikSupport">Click Here</a></div> </div> </section> <div class="top-blogs"> <div class="wrapper"> <div class="callout"> <article class="post"> <div class="inner"> <div class="post-img"> </div> <div class="post-content"> <h2>Top Blogs</h2> <span class="subtitle">Blog</span> <h3>Qlik Support Updates Blog</h3> <p>Important and useful support information about end-of-product support, new service releases, and general support topics.</p> <div><a class="more" href="https://community.qlik.com/t5/Qlik-Support-Updates-Blog/bg-p/qlik-support-updates-blog" target="_blank">Read More</a></div> </div> </div> </article> </div> <div class="flipcards"> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_gradcap.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Academic Program</h4> </div> </div> <div class="back"> <div class="inner"> <p>This forum was created for professors and students using Qlik within academia.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Academic-Program-Blog/bg-p/qlik-academic-program-blog" target="_blank">Read More</a> </div> </div> </div> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_desktopdesign.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Qlik Design Blog</h4> </div> </div> <div class="back"> <div class="inner"> <p>All about product and Qlik solutions: scripting, data modeling, visual design, extensions, best practices, etc.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Design-Blog/bg-p/qlik-design-blog" target="_blank">Read More</a> </div> </div> </div> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_megaphone.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Support Updates</h4> </div> </div> <div class="back"> <div class="inner"> <p>Support blogs focus on popular troubleshooting topics, product release information and common questions.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Support-Updates-Blog/bg-p/qlik-support-updates-blog" target="_blank">Read More</a> </div> </div> </div> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_certificate.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Education</h4> </div> </div> <div class="back"> <div class="inner"> <p>On this forum you can access and follow the latest updates of our courses and programs with the Qlik Education team.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Education-Blog/bg-p/qlik-education-services-blog" target="_blank">Read More</a> </div> </div> </div> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_lightbulb.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Product Innovation</h4> </div> </div> <div class="back"> <div class="inner"> <p>Learn about what's new across all of the products in our growing Qlik product portfolio.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Product-Innovation-Blog/bg-p/qlik-product-innovation-blog" target="_blank">Read More</a> </div> </div> </div> <div class="hover panel"> <div class="front"> <div class="inner"> <img alt=" " height="48" src="https://support-files.qlik.com/img/icon_sprockets.svg" width="48" /> <span class="subtitle">Blog</span> <h4>Technical Bulletin</h4> </div> </div> <div class="back"> <div class="inner"> <p>Information on all new product releases, connectors, beta programs, and technical product information.</p> <a class="more" href="https://community.qlik.com/t5/Qlik-Technical-Bulletin-Blog/bg-p/qlik-technical-bulletin-blog" target="_blank">Read More</a> </div> </div> </div> </div> <div class="section-button"><a class="btn" href="https://community.qlik.com/t5/Blogs/ct-p/qlik-community-blogs" target="_blank">More Blogs</a></div> <br /> <br /> </div> </div> </div> </div> <footer> <div class="wrapper"> <div class="footer-top"> <div class="footer-logo"> <img height="53" src="https://support-files.qlik.com/img/logo_qliksupport-h-alt.png" width="313" /> </div> <div class="footer-links"> <ul> <li><a href="https://www.linkedin.com/company/qlik/?ga-link=SupportPortal" target="_blank"><span class="icon-linkedin"></span></a></li> <li><a href="https://www.facebook.com/qlik?ga-link=SupportPortal" target="_blank"><span class="icon-facebook-circled"></span></a></li> <li><a href="https://twitter.com/qlik?ga-link=SupportPortal" target="_blank"><span class="icon-twitter"></span></a></li> <li><a href="https://plus.google.com/+QlikOfficial" target="_blank"><span class="icon-gplus"></span></a></li> <li><a href="https://www.youtube.com/user/qlikview?ga-link=SupportPortal" target="_blank"><span class="icon-youtube"></span></a></li> </ul> </div> </div> <div class="footer-sections"> <ul> <li class="footer-subtitles">Quick Links</li> <li><a href="https://www.qlik.com/us/" target="_blank">Qlik.com</a></li> <li><a href="https://qcc.qlik.com/" target="_blank">Qlik Continuous Classroom</a></li> <li><a href="https://help.qlik.com/" target="_blank">Qlik Help</a></li> <li><a href="https://community.qlik.com/" target="_blank">Qlik Community</a></li> <li><a href="https://demos.qlik.com/" target="_blank">Qlik Demos</a></li> <li><a href="https://www.youtube.com/user/qlikview" target="_blank">Qlik Videos</a></li> <li><a href="https://www.qlik.com/us/company/academic-program" target="_blank">Qlik Academic Program</a></li> <li><a href="https://www.qlik.com/us/services/qlik-consulting" target="_blank">Qlik Consulting</a></li> <li><a href="https://community.qlik.com/t5/Blogs/ct-p/qlik-community-blogs" target="_blank">Qlik Blogs</a></li> <li><a href="https://developer.qlik.com/" target="_blank">Qlik Developers</a></li> <li><a href="https://partners.qlik.com/" target="_blank">Qlik Partner Portal</a></li> <li><a href="https://www.qlik.com/us/services/support" target="_blank">Qlik Support</a></li> <li><a href="https://myqlik.qlik.com/portal" target="_blank">MyQlik</a></li> </ul> <ul> <li class="footer-subtitles"><a href="/QS_PopularTopics">Knowledge</a></li> <li><a href="/QS_PopularTopics#qlikid">Qlik Account</a></li> <li><a href="/QS_PopularTopics#license">Licenses</a></li> <li><a href="/QS_PopularTopics#install">Install & Upgrade</a></li> <li><a href="/QS_PopularTopics#performance">Performance and Stability</a></li> <li><a href="/QS_PopularTopics#design">Designing Apps</a></li> <li><a href="/QS_PopularTopics#monitoring">Monitoring and Auditing</a></li> <li><a href="/QS_PopularTopics#logfiles">Collecting Log Files and System Information</a></li> </ul> <ul> <li class="footer-subtitles"><a href="/QS_Products">Products</a></li> <li><a href="/QS_QlikSense">Qlik Sense®</a></li> <li><a href="/QS_QlikView">QlikView®</a></li> <li><a href="/QS_Products#analytics">Qlik Analytics Platform®</a></li> <li><a href="/QS_Products#datacatalyst">Qlik Catalog™</a></li> <li><a href="/QS_Products#alerting">Qlik Alerting™</a></li> <li><a href="/QS_Products#connectors">Qlik Connectors®</a></li> <li><a href="/QS_Products#geoanalytics">Qlik GeoAnalytics®</a></li> <li><a href="/QS_Products#nprinting">Qlik NPrinting®</a></li> </ul> <ul> <li class="footer-subtitles"><a href="https://community.qlik.com/t5/Downloads/tkb-p/Downloads" target="_blank">Downloads</a></li> </ul> <ul> <li class="footer-subtitles"><a href="https://www.youtube.com/user/qlikview" target="_blank">Videos</a></li> <li><a href="/QS_SupportTechspertThursdays" target="_blank">Sign up for the Techspert Thursday Webinars</a></li> <li><a href="https://community.qlik.com/t5/Qlik-Support-Techspert-Thursdays/bd-p/qlik-support-techspert-thursdays" target="_blank">Qlik Techspert Thursday Webinar Library</a></li> <li><a href="https://www.youtube.com/playlist?list=PLkRFvjyuHFvIX7Q6y8RTfc3GD_TYa95Sv" target="_blank">New to Qlik</a></li> <li><a href="https://www.youtube.com/playlist?list=PLkRFvjyuHFvJzisE2CizLezYenmn6DpBz" target="_blank">Qlik Tuesday Tips & Tricks</a></li> <li><a href="https://www.youtube.com/playlist?list=PLdnQXZq2xRoBblWlKxGws3WVaJ1GU8S41" target="_blank">Qlik Fix</a></li> </ul> <ul> <li class="footer-subtitles"><a href="https://community.qlik.com/t5/Support/ct-p/qlikSupport">Contact Us</a></li> <li><a href="https://community.qlik.com/" target="_blank">Ask the Community</a></li> <li><a href="https://community.qlik.com/t5/Support/ct-p/qlikSupport">Submit a Case</a></li> </ul> </div> <div class="footer-bottom"> <ul> <li>© 1993-2019 QlikTech International AB, All Rights Reserved.<br /> All materials are provided for informational purposes. Customers should refer to official Qlik Product Documentation at <a href="https://help.qlik.com" target="_blank">help.qlik.com</a>. </li> <li><a href="https://www.qlik.com/us/legal/legal-policies" target="_blank">Legal Policies</a></li> <li><a href="https://www.qlik.com/us/legal/trademarks" target="_blank">Trademarks</a></li> <li><a href="https://www.qlik.com/us/legal/terms-of-use" target="_blank">Terms of Use</a></li> <li><a href="https://www.qlik.com/us/legal/license-terms" target="_blank">License Terms</a></li> <li><a href="https://www.qlik.com/us/legal/product-terms" target="_blank">Product Terms</a></li> </ul> </div> </div> </footer> <script> /*window.orbConfig = { connectionOptions: { gridUrl: "https://grid.meya.ai", appId: "app-5d25cf848e834f8699cd7a80aaada26c", integrationId: "integration.orb", connect: false, pageContext: { environment: "PROD" } }, theme: { brandColor: "#005cb9", botAvatarUrl: "https://www.qlik.com/us/-/media/images/global-us/Resource-Library/Custom/driftbot_graphic_circle.jpg" }, launcher: { type: "message", text: "Help" }, windowApi: true, }; document.head.appendChild(document.createElement("style")).innerHTML = "h1.Title-sc-l0esa5{margin-top:revert;}"; (function(){ var script = document.createElement("script"); script.type = "text/javascript"; script.async = true; script.src = "https://cdn.meya.ai/v2/orb.js"; document.body.appendChild(script); var fontStyleSheet = document.createElement("link"); fontStyleSheet.rel = "stylesheet"; fontStyleSheet.href = "https://cdn.meya.ai/font/inter.css"; document.body.appendChild(fontStyleSheet); })(); */ window.adaSettings = { handle: "qlik-production", cluster: "eu" }; </script> <script src="https://static.ada.support/embed2.js"> </script> </body> </html>