<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>API Qlik Engine - Qlik Sense - Обучение, учебник, онлайн курс</title>
	<atom:link href="https://qliksense.ivan-shamaev.ru/tag/api-qlik-engine/feed/" rel="self" type="application/rss+xml" />
	<link>https://qliksense.ivan-shamaev.ru/tag/api-qlik-engine/</link>
	<description>Qlik Sense на русском языке. Пошаговые уроки для изучения Клик Сенс</description>
	<lastBuildDate>Mon, 14 Feb 2022 07:46:22 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>

<image>
	<url>https://qliksense.ivan-shamaev.ru/wp-content/uploads/2018/07/QlikSense_ICON2-150x150.png</url>
	<title>API Qlik Engine - Qlik Sense - Обучение, учебник, онлайн курс</title>
	<link>https://qliksense.ivan-shamaev.ru/tag/api-qlik-engine/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Разработка web приложений AngularJS &#038; Qlik Sense API. Frontend &#038; Backend</title>
		<link>https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/</link>
					<comments>https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/#respond</comments>
		
		<dc:creator><![CDATA[qliksense-expert]]></dc:creator>
		<pubDate>Wed, 09 Oct 2019 03:23:51 +0000</pubDate>
				<category><![CDATA[Уровень 2]]></category>
		<category><![CDATA[angular.js qlik engine api]]></category>
		<category><![CDATA[angular.js qlik sense engine api]]></category>
		<category><![CDATA[angularjs]]></category>
		<category><![CDATA[API Qlik Engine]]></category>
		<category><![CDATA[javascript qlik sense]]></category>
		<category><![CDATA[qlik sense engine api]]></category>
		<category><![CDATA[Qlik Sense Mashup]]></category>
		<guid isPermaLink="false">https://qliksense.ivan-shamaev.ru/?p=1752</guid>

					<description><![CDATA[<p>Краткий 5 минутное AngularJS Guide для Qlik Sense Developer Angular.js сравнительно новый проект в мире JavaScript фреймворков. Впервые он был представлен в 2012 году сотрудником Google, и с тех пор стал проектом, поддерживаемым Google. Его цель &#8211; упростить одностраничные приложения, предоставив разработчикам MVC-подобную структуру для JavaScript. Он в основном работает,<a class="moretag" href="https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/"> Читать дальше&#8230;</a></p>
<p>Сообщение <a href="https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/">Разработка web приложений AngularJS &#038; Qlik Sense API. Frontend &#038; Backend</a> появились сначала на <a href="https://qliksense.ivan-shamaev.ru">Qlik Sense - Обучение, учебник, онлайн курс</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Краткий 5 минутное AngularJS Guide для Qlik Sense Developer</h2>



<p><strong>Angular.js</strong> сравнительно новый проект в мире JavaScript фреймворков. Впервые он был представлен в 2012 году сотрудником Google, и с тех пор стал проектом, поддерживаемым Google. Его цель &#8211; упростить одностраничные приложения, предоставив разработчикам MVC-подобную структуру для JavaScript. Он в основном работает, предоставляя пользовательские теги HTML, которые помогают связывать элементы DOM с моделью, через переменные JavaScript или данные JSON. Вы можете лучше использовать свой JavaScript, разбив его на контроллеры, а также модули.</p>
<p>С Angular вы получаете более чистый код JavaScript и автоматическое двухстороннее связывание данных, что идеально подходит для тяжелых сайтов AJAX.</p>
<h3><span>Скачать Angular</span></h3>
<p>Начнем с добавления Angular.js в наши проекты, поэтому зайдите на сайт <a href="http://angularjs.org" target="_blank" rel="noopener noreferrer">http://angularjs.org</a> и загрузите копию файла js в свой проект (директория с файлами html). Добавьте в разделе Head обращение к файлу js.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">&lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"&gt;&lt;/script&gt;</pre>
<h2>Создайте файл Javascript с именем app.js</h2>
<p>&#8230;</p>
<p>https://www.thatsoftwaredude.com/content/6100/a-quick-5-minute-guide-to-angular-js</p>



<h2 class="wp-block-heading">Использование Angular.JS для работы с Qlik Sense Engine API</h2>



<p><span class="strong"><strong><span>AngularJS</span></strong></span><span> является структурной основой</span><span> для </span><span>построения динамических веб-приложений на JavaScript. Он расширяет классический синтаксис HTML, внедряя динамические angular выражения (angular expressions), которые обновляют или модифицируют DOM на основе кода. Он очень удобен для динамического связывания данных на веб-странице HTML (отправка данных на страницу и отправка данных к api). <strong>Qlik Sense&#8217;s native Straight Table</strong> (стандартная прямая таблица) была разработана на основе Angular.</span></p>
<p><span>Как и любая полезная библиотека, AngularJS упрощает разработку приложений, предоставляя разработчику более высокий уровень абстракции написания кода.</span></p>
<p>Сообщение <a href="https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/">Разработка web приложений AngularJS &#038; Qlik Sense API. Frontend &#038; Backend</a> появились сначала на <a href="https://qliksense.ivan-shamaev.ru">Qlik Sense - Обучение, учебник, онлайн курс</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qliksense.ivan-shamaev.ru/web-application-development-angularjs-qlik-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Руководство разработчика API &#8211; Справочник по Qlik Sense API</title>
		<link>https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/</link>
					<comments>https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/#respond</comments>
		
		<dc:creator><![CDATA[qliksense-expert]]></dc:creator>
		<pubDate>Fri, 09 Aug 2019 12:40:45 +0000</pubDate>
				<category><![CDATA[Уровень 2]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[API Qlik Engine]]></category>
		<category><![CDATA[PowerShell & Qlik Sense Engine API]]></category>
		<category><![CDATA[Python Connection Qlik API]]></category>
		<category><![CDATA[Qlik]]></category>
		<category><![CDATA[qlik sense]]></category>
		<category><![CDATA[qlik sense api]]></category>
		<category><![CDATA[Qlik Sense API & Python]]></category>
		<category><![CDATA[qlik sense method api]]></category>
		<category><![CDATA[методы api]]></category>
		<category><![CDATA[подключение к qlik sense api]]></category>
		<category><![CDATA[подключение к qlik sense desktop api]]></category>
		<guid isPermaLink="false">https://qliksense.ivan-shamaev.ru/?p=1397</guid>

					<description><![CDATA[<p>Введение в Qlik Sense API. Руководство для разработчика Engine JSON API Qlik Engine JSON API представляет собой протокол WebSocket, который использует JSON для передачи информации между Qlik Sense Engine и клиентами. Qlik Engine JSON API состоит из набора объектов , представляющих приложения, списки и так далее. Эти объекты организованы в<a class="moretag" href="https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/"> Читать дальше&#8230;</a></p>
<p>Сообщение <a href="https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/">Руководство разработчика API &#8211; Справочник по Qlik Sense API</a> появились сначала на <a href="https://qliksense.ivan-shamaev.ru">Qlik Sense - Обучение, учебник, онлайн курс</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2>Введение в Qlik Sense API. Руководство для разработчика</h2>
<h2>Engine JSON API</h2>
<p><strong>Qlik Engine JSON API</strong> представляет собой протокол WebSocket, который использует JSON для передачи информации между Qlik Sense Engine и клиентами. Qlik Engine JSON API состоит из набора объектов , представляющих приложения, списки и так далее. Эти объекты организованы в иерархическую структуру. Когда вы отправляете запросы в API, вы выполняете действия над этими объектами.</p>
<p><strong>Qlik Engine JSON API может быть использован для:</strong></p>
<ul>
<li>создания приложений и загрузки данных</li>
<li>создания историй (data stories)</li>
<li>получение системной информации</li>
</ul>
<p><strong>Типичные ситуации, в которых вы бы использовали JSON API Qlik Engine:</strong></p>
<ul>
<li>создание специализированного клиента в качестве</li>
<li>автономного или веб-приложения</li>
<li>автоматизация повторяющихся или сложных</li>
<li>обновлений или изменений в приложениях</li>
</ul>
<h2>Extension API</h2>
<p>API расширения (Extension API) состоит из методов и свойств, используемых для создания пользовательских расширений визуализации (custom visualization extensions).</p>
<h2>Backend API</h2>
<p>Backend API состоит из нескольких методов и используется для связи с ассоциативным механизмом Qlik. Он предоставляет вспомогательные функции для вызовов ассоциативного механизма Qlik и доступ к данным ассоциативного механизма Qlik. Вкратце, Backend API &#8211; это оболочка для выбранных методов Qlik Engine JSON API, но с той разницей, что Backend API знает о контексте, то есть текущем соединении WebSocket и приложении Qlik Sense.</p>
<h2>Capability APIs</h2>
<p><strong>API-интерфейсы Capability</strong> представляют собой набор API-интерфейсов JavaScript, которые позволяют легко встраивать контент Qlik Sense в веб-страницу. С помощью всего лишь нескольких строк кода можно создать визуализацию, использующую библиотеку визуализации Qlik Sense.</p>
<p>API-интерфейсы Capability зависят от AngularJS и RequireJS, поэтому вам необходимо принять это во внимание при интеграции API-возможностей Capability в существующий проект, в котором также используются эти библиотеки.</p>
<p><strong>Термин «API-интерфейс Capability»</strong> был введен в Qlik Sense 2.1. Некоторые из API-интерфейсов Capability были доступны до этой версии, опубликованной под названием Mashup API.</p>
<table width="286" style="width: 100%; height: 324px;">
<tbody>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><span style="color: #003300;"><strong>Capability API</strong></span></td>
<td width="171" style="height: 27px;"><span style="color: #003300;"><strong>Namespace</strong></span></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Root API</strong></td>
<td width="171" style="height: 27px;"><em>qlik</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>App API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Bookmark API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app.bookmark</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Field API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app.field</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Selection API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app.selectionState</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Variable API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app.variable</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Visualization API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.app.visualization</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Global API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.global</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Navigation API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.navigation</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Table API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.table</em></td>
</tr>
<tr style="height: 27px;">
<td width="115" style="height: 27px;"><strong>Theme API</strong></td>
<td width="171" style="height: 27px;"><em>qlik.theme</em></td>
</tr>
</tbody>
</table>
<h3>Root API</h3>
<p>Root API является внешним интерфейсом Qlik Sense и доступен в виде пространства имен qlik. Он предоставляет методы открытия приложений, получения ссылки на текущее приложение, установки определенного языка и регистрации обратных вызовов для обработки ошибок. Корневой API также содержит методы для перечисления доступных приложений и расширений, а также для регистрации расширений (extensions), которые вы создаете на лету (используя API визуализации &#8211; Visualization API).</p>
<h3>App API</h3>
<p>Метод qlik.openApp является точкой входа в API приложения и возвращает объекты JavaScript приложения с методами для работы с приложением Qlik Sense, к которому вы подключены.</p>
<h3>Bookmark API</h3>
<p>Bookmark API содержит методы для работы с закладками в приложении Qlik Sense, к которому вы подключены.</p>
<h3>Field API</h3>
<p>Метод qlik.app.field является точкой входа в Field API. Он возвращает объект QField с методами и свойствами, которые можно использовать для управления полем.</p>
<h3>Global API</h3>
<p>Метод qlik.global является точкой входа в Global API. Возвращает объект JavaScript с глобальными методами.</p>
<h3>Navigation API</h3>
<p>Navigation API (API навигации) позволяет вам перемещаться в приложении Qlik Sense и предназначен для использования в виджетах и ​​расширениях визуализации, и не будет работать в сценариях Mashup.</p>
<h3>Selection API</h3>
<p>Selection API является внешним интерфейсом для изменения выборки по модели данных Qlik Sense (фильтрация данных) и позволяет разработчикам работать с ассоциативной моделью.</p>
<h3>Table API</h3>
<p>Table API (API таблиц) позволяет разработчикам работать с табличными данными, возвращаемыми из ассоциативного механизма Qlik, не имея глубоких знаний о внутренних конструкциях, таких как, например, Гиперкуб (Hypercube).</p>
<h3>Theme API</h3>
<p>Theme API &#8211; это внешний интерфейс для тем Qlik Sense. Он позволяет настраивать визуализации, включая расширения и виджеты, вне Qlik Sense.</p>
<h3>Variable API</h3>
<p><span>Variable API &#8211; это внешний интерфейс для управления переменными </span><span class="CommonComponentsQlik Sense"><span>Qlik Sense</span></span><span>.</span></p>
<h3>Visualization API</h3>
<p>Visualization API (API визуализации) &#8211; это внешний интерфейс для визуализаций Qlik Sense. Вы можете создавать новые визуализации на лету на основе объекта сессии. Эти визуализации не сохраняются в приложении. Вы также можете получить уже существующие визуализации из приложения, используя Visualization API.</p>
<h2>Custom Component API</h2>
<p>API для создания пользовательских компонентов (собственных компонентов).</p>
<p><span>Пользовательские компоненты содержат следующие элементы:</span></p>
<ul>
<li><span>Файл определения (QEXT).</span></li>
<li><span>Основной файл JavaScript.</span></li>
<li><span>Дополнительные ресурсы, такие как библиотеки JavaScript, изображения и шрифты.</span></li>
</ul>
<p><span>Пользовательские компоненты &#8211; это в основном директивы AngularJS. </span><span>Цель файла JavaScript &#8211; вернуть подпись директивы AngularJS.</span></p>
<h2>App Integration API<span style="color: #ff6600;"><em><strong></strong></em></span></h2>
<p>Используется для embedded аналитика, позволяет генерировать ссылки url для встраивания в iframe.</p>
<h2>Single Integration API</h2>
<p><span>Single Integration API позволяет создавать URL-адреса, который возвращает полную HTML-страницу, содержащую, например, встроенную визуализацию </span><span class="CommonComponentsQlik Sense"><span>Qlik Sense</span></span><span> . Этот URL-адрес можно встроить в веб-страницу, например, включив его в iframe.</span></p>
<h2>qlik-visual web component</h2>
<p>Qlik-Visual Web Component &#8211; это определение пользовательского элемента &lt;qlik-visual&gt;, которое использует API визуализации и представляет его как веб-компонент. Он позволяет создавать и изменять визуализации на лету, не используя клиент Qlik Sense.</p>
<p><strong>Qlik Visual поддерживает:</strong></p>
<ul>
<li>Отображение существующей визуализации (путем определения видимости элемента) на веб-странице.</li>
<li>Создание визуализаций на лету с использованием существующего приложения путем внедрения их в веб-страницу.</li>
<li>Динамически изменяющие свойства и атрибуты визуализаций.</li>
</ul>
<h2>enigma.js</h2>
<p><strong>Библиотека enigma.js</strong> помогает вам общаться с ассоциативным механизмом Qlik в Qlik Sense и Qlik Sense Desktop. Вы можете использовать его для создания своего собственного клиента или для создания собственного сервиса Node.js. <strong>Примерами использования могут быть создание ваших собственных аналитических инструментов на основе браузера, серверных служб или сценариев командной строки.</strong></p>
<p>Библиотека <strong>enigma.js</strong> может использоваться в качестве SDK или для выполнения операций CRUD (то есть создания, чтения, обновления и удаления) в приложениях и в сущностях приложений.</p>
<p><span><strong>enigma.js</strong> &#8211; это библиотека, предназначенная исключительно для <strong>Engine API (websocket)</strong>. </span><span>Экспорт изображений / PDF-файлов &#8211; это API-интерфейсы REST в Qlik Sense для других служб (отчеты), которые предоставляются через интерфейс capability API:</span></p>
<ul>
<li><a href="https://help.qlik.com/en-US/sense-developer/September2019/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportImg-method.htm" target="_blank" rel="noopener noreferrer">https://help.qlik.com/en-US/sense-developer/September2019/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportImg-method.htm</a></li>
<li><a href="https://help.qlik.com/en-US/sense-developer/September2019/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportPdf-method.htm" target="_blank" rel="noopener noreferrer">https://help.qlik.com/en-US/sense-developer/September2019/Subsystems/APIs/Content/Sense_ClientAPIs/CapabilityAPIs/VisualizationAPI/exportPdf-method.htm</a></li>
</ul>
<p><strong>Официальная документация Enigma.JS:</strong> <a href="https://github.com/qlik-oss/enigma.js" target="_blank" rel="noopener noreferrer">https://github.com/qlik-oss/enigma.js</a></p>
<h2>enigma-go</h2>
<p>Библиотека enigma-go помогает вам общаться с ассоциативным механизмом Qlik в Qlik Sense и Qlik Sense Desktop. Примерами использования могут быть создание ваших собственных аналитических инструментов, серверных служб или других инструментов, взаимодействующих с ассоциативным механизмом Qlik. Библиотека enigma-go может использоваться в качестве SDK или для выполнения операций CRUD (то есть создания, чтения, обновления и удаления) в приложениях и в сущностях приложений.</p>
<h2>leonardo-ui</h2>
<p>leonardo-ui &#8211; это библиотека с открытым исходным кодом, которая используется в Qlik Sense и предоставляет множество графических компонентов пользовательского интерфейса. Разметка этих компонентов может использоваться в расширениях, гибридных приложениях и виджетах. Библиотека поддерживается и поддерживается Qlik. leonardo-ui можно использовать как с Qlik Sense, так и с Qlik Sense Desktop.</p>
<h2>picasso.js</h2>
<p>Библиотека диаграмм picasso.js оптимизирована для создания пользовательских, интерактивных и мощных визуализаций для платформы Qlik Sense Analytics.</p>
<h2><madcap:concept term="Building visualization extensions" xmlns:madcap="http://www.madcapsoftware.com/Schemas/MadCap.xsd"><span class="OpenSourceNebula">nebula.js</span></madcap:concept></h2>
<p><strong><span class="OpenSourceNebula">nebula.js</span></strong><span> &#8211; это библиотека с открытым исходным кодом, разработанная на GitHub. </span><span class="OpenSourceNebula"><span>nebula.js</span></span><span> &#8211; это набор библиотек и API-интерфейсов JavaScript, не <span class="OpenSourceNebula">зависящих</span> от продукта и инфраструктуры, который помогает разработчикам интегрировать визуализации и гибридные приложения поверх </span><span class="CommonComponentsEngineName"><span>ассоциативного механизма </span></span><span></span><span class="CommonComponentsSenseDesktopName"><span>Qlik</span></span><span> в <span class="CommonComponentsSenseDesktopName">Qlik Sense Desktop</span> , </span><span class="CommonComponentsQlik Sense Enterprise for Windows, with Multi-Cloud"><span>Qlik Sense Enterprise для Windows</span></span><span> и </span><span class="CommonComponentsQlikSenseCloudEnvironments"><span>SaaS-версиях Qlik Sense</span></span><span> . Он предлагает разработчикам альтернативу capability APIs, которые исторически использовались для создания гибридных приложений.</span></p>
<p><span>Чтобы использовать </span><span class="OpenSourceNebula"><span>nebula.js</span></span><span> , вы должны быть знакомы с JavaScript, promises, websockets и библиотеками с открытым исходным кодом. Вам понадобится Node.js и доступ к </span><span class="CommonComponentsEngineName"><span>ассоциативному движку Qlik</span></span><span> . Также будет полезно знание таких концепций Qlik, как generic objects и гиперкубы.</span></p>
<h1>Qlik Explorer для разработчиков</h1>
<p><strong>Qlik Explorer для разработчиков</strong> &#8211; это инструмент, созданный для упрощения процесса интеграции функциональности Qlik Sense в другие среды.</p>
<p><strong>Qlik Explorer</strong> для разработчиков обеспечивает быстрый доступ к соответствующей информации из вашей среды Qlik Sense, что, например, позволяет легко интегрировать визуализации Qlik Sense в существующий веб-сайт.</p>
<p><strong>Автоматическое обновление</strong><br />Qlik Explorer для разработчиков автоматически обновляется при появлении новой версии.</p>
<h2>Как подключить Qlik Explorer к Qlik Sense Desktop Hub</h2>
<p>В настройках вбиваете http://localhost:4848/</p>
<p><img fetchpriority="high" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_1.jpg" alt="" width="942" height="658" class="aligncenter wp-image-1429 size-full" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_1.jpg 942w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_1-300x210.jpg 300w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_1-768x536.jpg 768w" sizes="(max-width: 942px) 100vw, 942px" /></p>
<p>После подключения отобразится список приложений со свойствами и методами. <strong>Profit <img src="https://s.w.org/images/core/emoji/15.1.0/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></p>
<p><img decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_2.jpg" alt="" width="1365" height="615" class="aligncenter size-full wp-image-1428" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_2.jpg 1365w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_2-300x135.jpg 300w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_2-768x346.jpg 768w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_qliksense_api_explorer_developer_2-1024x461.jpg 1024w" sizes="(max-width: 1365px) 100vw, 1365px" /></p>
<h1><span>Engine API Explorer в браузере</span></h1>
<p><span>http://localhost:4848/dev-hub/engine-api-explorer</span></p>
<iframe src="//docs.google.com/viewer?url=https%3A%2F%2Fqliksense.ivan-shamaev.ru%2Fwp-content%2Fuploads%2F2019%2F08%2FQlik_Engine_API_05242016.docx&hl=ru&embedded=true" class="gde-frame" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>
<p class="gde-text"><a href="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/Qlik_Engine_API_05242016.docx" class="gde-link">Скачать (DOCX, 661KB)</a></p>
<h1>Подключение к API Qlik Engine</h1>
<p><span style="color: #ff6600;"><em><strong>todo</strong></em></span></p>
<h2 _ngcontent-c2="">Подключение к Qlik Sense API с помощью PowerShell</h2>
<p>https://community.qlik.com/t5/Qlik-Sense-Integration/How-to-export-an-app-to-a-folder-using-API-and-Powershell/td-p/1608192</p>
<h2 _ngcontent-c2="" class="gp-title gp-indi-project">Qlik Sense python API client for QPS and QRS interfaces</h2>
<p>https://developer.qlik.com/garden/570e73c36c8c33c066a0f11c</p>
<h2>Пример подключения Python 3 к Qlik Sense Engine API</h2>
<p>Для подключения и работы необходимо установить библиотеки:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">pip3 install asyncio
pip3 install websocket-client
pip3 install requests_ntlm
pip3 install requests
pip3 install json</pre>



<p>Дальше приведен скрипт подключения Python 3 к Qlik Sense Desktop:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">from websocket import create_connection

import json

ws = create_connection("ws://localhost:4848/app/")

data=json.dumps({
    'jsonrpc': '2.0',
    'id': 2,
    'method': 'GetActiveDoc',
    'handle': 1,
    'params': ['C:\\Users\\User\\Documents\\Qlik\\Sense\\Apps\\Анализ продаж - простое приложение.qvf']
})

print("Sending req...")
ws.send(data)

print("Receiving...")
result = ws.recv()

print("Received '%s'" % result)

qclosed = ws.close()
print("Closed '%s'" % qclosed)
</pre>
<p>Результат работы скрипта:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">&gt;&gt;&gt; 
 RESTART: D:/QlikProject/Подключаемся к Qlik Sense из Python.py 
Sending req...
Receiving...
Received '{"jsonrpc":"2.0","method":"OnConnected","params":{"qSessionState":"SESSION_CREATED"}}'
Closed 'None'</pre>
<h2>Пример скрипта Python 3 для получения списка документов с hub Qlik Sense Desktop</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="null">from websocket import create_connection

import json

ws = create_connection("ws://localhost:4848/app/")

ws.send(json.dumps({
  "handle": -1,
  "method": "GetDocList",
  "params": [],
  "outKey": -1,
  "id": 1
}))

result = ws.recv()

while result:
    result=ws.recv()
    y = json.loads(result)
    print(y)

ws.close()</pre>
<p><strong>Список классов, свойств и методов</strong> <a href="https://betahelp.qlik.com/en-US/sense-developer/June2019/apis/EngineAPI/index.html" target="_blank" rel="noopener noreferrer">https://betahelp.qlik.com/en-US/sense-developer/June2019/apis/EngineAPI/index.html</a></p>
<p><img decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/Qlik_Sense_Request_Response.png" alt="" width="505" height="246" class="aligncenter size-full wp-image-1436" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/Qlik_Sense_Request_Response.png 505w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/Qlik_Sense_Request_Response-300x146.png 300w" sizes="(max-width: 505px) 100vw, 505px" /></p>
<h2>Подключаемся к Qlik Sense Engine API с помощью Node.JS</h2>
<p>Рассматривается пример подключения к Qlik Sense Desktop</p>
<pre class="EnlighterJSRAW" data-enlighter-language="js">const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:4848/app/engineData');

var request = {
    "handle": -1,
    "method": "GetDocList",
    "params": {},
    "outKey": -1,
    "id": 2
}

ws.onopen = function(event){
    ws.send(JSON.stringify(request));
    
    ws.onmessage = function (event) {
        var response = JSON.parse(event.data);

        if(response.method != ' OnConnected'){
            
            var obj = response.result;
            str = JSON.stringify(obj, null, 4);
            console.log(str);

        }
   }
}</pre>
<h2>Получаем перечень приложений Qlik Sense Desktop с помощью Enigma JS</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="js">const enigma = require('enigma.js');
const WebSocket = require('ws');
const schema = require('enigma.js/schemas/12.20.0.json');

// create a new session:
const session = enigma.create({
  schema,
  url: 'ws://localhost:4848/app/engineData',
  createSocket: url =&gt; new WebSocket(url),
});

// bind traffic events to log what is sent and received on the socket:
session.on('traffic:sent', data =&gt; console.log('sent:', data));
session.on('traffic:received', data =&gt; console.log('received:', data));

// open the socket and eventually receive the QIX global API, and then close
// the session:
session.open()
    .then(function(global) {
        global.getDocList().then(function(docList) {
            for (i = 0; i &lt; docList.length; i++) {
                var AppName = docList[i].qDocName;
                console.log('App list:',JSON.stringify(AppName));
            }

            session.close();
        })
    });</pre>
<h2>Получаем свойства документа Qlik Sense с помощью запроса Enigma.JS через QS API Engine</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="null">const enigma = require('enigma.js');
const WebSocket = require('ws');
const schema = require('enigma.js/schemas/12.20.0.json');

// create a new session:
const session = enigma.create({
  schema,
  url: 'ws://localhost:4848/app/engineData',
  createSocket: url =&gt; new WebSocket(url),
});

// bind traffic events to log what is sent and received on the socket:
session.on('traffic:sent', data =&gt; console.log('sent:', data));
session.on('traffic:received', data =&gt; console.log('received:', data));

// open the socket and eventually receive the QIX global API, and then close
// the session:
session.open()
    .then(function(global) {
        global.getDocList().then(docs=&gt;{
            global.openDoc("Анализ продаж - простое приложение.qvf").then(doc=&gt;{
                doc.getAppProperties().then(appProp =&gt; {
                    console.log(doc)
                    console.log(appProp)
                })
            })
        })
    })</pre>
<h2>Пример получения списка полей в Qlik Sense API Engine, с помощью Enigma.JS</h2>
<p>Пример актуален для Qlik Sense Desktop</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">const enigma = require('enigma.js');
const WebSocket = require('ws');
const schema = require('enigma.js/schemas/12.20.0.json');

// Создаем новую сессию:
const session = enigma.create({
  schema,
  url: 'ws://localhost:4848/app/engineData',
  createSocket: url =&gt; new WebSocket(url),
});

// Привязываем traffic events к log (что отправлено и что получено socket)
session.on('traffic:sent', data =&gt; console.log('sent:', data));
session.on('traffic:received', data =&gt; console.log('received:', data));

var config = { 
    schema: schema,
    docId: "Анализ продаж - простое приложение.qvf"
}

// Открываем сессию
session.open()
    .then(function(global) {

        global.openDoc(config.docId).then(function(doc){
            //Создаем SessionObject для FieldList
            doc.createSessionObject( {
                qFieldListDef: {
                    qShowSystem: false,
                    qShowHidden: false,
                    qShowSrcTables: true,
                    qShowSemantic: true,
                    qShowDerivedFields: true
                }, 
                qInfo: {
                    qId: "FieldList",
                    qType: "FieldList"
                }
            } ).then( function(list) {
                return list.getLayout();
                } ).then( function(listLayout) {
                    return listLayout.qFieldList.qItems;
                    } ).then( function(fieldItems) {
                        console.log(fieldItems)
                        } );
        })
    });</pre>
<h2>Пример javascript скрипта выгрузки / экспорта данных из QS, используя Enigma.JS</h2>
<p>В результате выполнения JS-скрипта Вы получите qURL:</p>
<blockquote>
<p class="EnlighterJSRAW" data-enlighter-language="null"><em>qUrl:&#8221;/Exports/1b2f8662-570b-4f77-b37b-94a4a347fe91\FileName(6bb5e11a-427a-4e77-ac30-e49abf602c87).xlsx&#8221;</em></p>
</blockquote>
<p data-enlighter-language="null"><strong>Код запроса exportData Enigma.JS Qlik Sense Table API:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="js">const enigma = require('enigma.js');
const WebSocket = require('ws');
const schema = require('enigma.js/schemas/12.20.0.json');

// Создаем новую сессию:
const session = enigma.create({
  schema,
  url: 'ws://localhost:4848/app/engineData',
  createSocket: url =&gt; new WebSocket(url),
});

// Привязываем traffic events к log (что отправлено и что получено socket)
session.on('traffic:sent', data =&gt; console.log('sent:', data));
session.on('traffic:received', data =&gt; console.log('received:', data));

var config = { 
    schema: schema,
    docId: "Анализ продаж - простое приложение.qvf"
}

var exportOptions = {
    "qFileType": "OOXML",
    "qPath": "/qHyperCubeDef",
    "qFileName": "FileName",
    "qExportState": 1
}

// Открываем сессию
session.open()
    .then((global) =&gt; {
        console.log('We are connected!')
        global.openDoc(config.docId)
        .then(doc =&gt; {
            doc.getObject('XPbGUe')
            .then((api) =&gt; {
                api.exportData(exportOptions)
                .then((reply) =&gt; {
                    console.log(reply);
                });
            });
        });
    });</pre>
<h2>Пример javascript скрипта выгрузки / экспорта данных из Qlik Sense Enterprise, используя Enigma.JS</h2>
<p>Данные выгружаем из прямой таблицы, в поле <strong>TargetFieldSelect</strong> выбираем значение <strong>NeededValueToSelect</strong>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="js">const enigma = require('enigma.js');
const WebSocket = require('ws');
const path = require('path');
const fs = require('fs');
const fetch = require('node-fetch');

const schema = require('enigma.js/schemas/12.20.0.json');
const { Console } = require('console');

// Your Sense Enterprise installation hostname:
const engineHost = 'qlik.company.com';

// Make sure the port below is accessible from the machine where this example
// is executed. If you changed the QIX Engine port in your installation, change this:
const enginePort = 4747;

// 'engineData' is a special "app id" that indicates you only want to use the global
// QIX interface or session apps, change this to an existing app guid if you intend
// to open that app:
const appId = 'engineData';

// The Sense Enterprise-configured user directory for the user you want to identify
// as:
const userDirectory = 'QLIKDEV';

// The user to use when creating the session:
const userId = 'username';

// Path to a local folder containing the Sense Enterprise exported certificates:
const certificatesPath = './';

// Helper function to read the contents of the certificate files:
const readCert = (filename) =&gt; fs.readFileSync(path.resolve(__dirname, certificatesPath, filename));

const session = enigma.create({
  schema,
  url: `wss://${engineHost}:${enginePort}/app/${appId}`,
  // Notice the non-standard second parameter here, this is how you pass in
  // additional configuration to the 'ws' npm library, if you use a different
  // library you may configure this differently:
  createSocket: (url) =&gt; new WebSocket(url, {
    ca: [readCert('root.pem')],
    key: readCert('client_key.pem'),
    cert: readCert('client.pem'),
    headers: {
      'X-Qlik-User': `UserDirectory=${encodeURIComponent(userDirectory)}; UserId=${encodeURIComponent(userId)}`,
    },
  }),
});


// Открываем сессию
session.open()
    .then((global) =&gt; {
        global.openDoc('03h5ed8-5gdfb-40a5-b733-41fc4beb718e')
        .then(doc =&gt; {
            doc.getField("TargetFieldSelect")
            .then((appField) =&gt; {
              appField.select('NeededValueToSelect',false,0)
              .then((selectResult) =&gt; {
                console.log(selectResult);

                doc.getObject('jwAJbyL')
                .then((objectTable) =&gt; {
                  objectTable.getHyperCubeData("/qHyperCubeDef", [{ qTop: 0, qWidth: 10, qLeft: 0, qHeight: 1000 }])
                  .then(function (data) {
                    let dataSTR = JSON.stringify(data[0].qMatrix);
                    fs.writeFileSync('DataOutput.json', dataSTR);

                    session.close();
                  })
                })   

                
              })
            })
            
        })
              
                


    });</pre>
<p>_____</p>



<h1>Описание архитектуры Qlik Engine API</h1>
<h2>Структура объектов</h2>
<p><strong>Схемка сделана &#8220;на глаз&#8221;, но вероятно так и работает.</strong></p>
<p><img loading="lazy" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_structure_object_api_nodejs_enigmajs.png" alt="" width="417" height="344" class="aligncenter size-full wp-image-1459" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_structure_object_api_nodejs_enigmajs.png 417w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/qlik_sense_structure_object_api_nodejs_enigmajs-300x247.png 300w" sizes="(max-width: 417px) 100vw, 417px" /></p>
<p><strong>API Component Overview</strong></p>
<p><img loading="lazy" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/API_components_overview.png" alt="" width="1932" height="1016" class="aligncenter wp-image-1460 size-full" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/API_components_overview.png 1932w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/API_components_overview-300x158.png 300w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/API_components_overview-768x404.png 768w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/API_components_overview-1024x539.png 1024w" sizes="(max-width: 1932px) 100vw, 1932px" /></p>
<p><strong>MindMap API Integration</strong></p>
<p><a href="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/mindmap_API_Integration_QlikSense_Qlik.png" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/mindmap_API_Integration_QlikSense_Qlik.png" alt="" width="993" height="983" class="aligncenter wp-image-1462 size-full" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/mindmap_API_Integration_QlikSense_Qlik.png 993w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/mindmap_API_Integration_QlikSense_Qlik-300x297.png 300w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/mindmap_API_Integration_QlikSense_Qlik-768x760.png 768w" sizes="(max-width: 993px) 100vw, 993px" /></a></p>
<p>Схема по-умолчанию для процесса authenticate (default flowchart)</p>
<p><img loading="lazy" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/default_flowchart_how_to_authenticate.png" alt="" width="952" height="1122" class="aligncenter size-full wp-image-1492" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/default_flowchart_how_to_authenticate.png 952w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/default_flowchart_how_to_authenticate-255x300.png 255w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/default_flowchart_how_to_authenticate-768x905.png 768w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/default_flowchart_how_to_authenticate-869x1024.png 869w" sizes="(max-width: 952px) 100vw, 952px" /></p>
<p><img loading="lazy" decoding="async" src="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/capabilities_API_DIV_tag_Saas_platform_to_proxy.png" alt="" width="904" height="644" class="aligncenter size-full wp-image-1744" srcset="https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/capabilities_API_DIV_tag_Saas_platform_to_proxy.png 904w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/capabilities_API_DIV_tag_Saas_platform_to_proxy-300x214.png 300w, https://qliksense.ivan-shamaev.ru/wp-content/uploads/2019/08/capabilities_API_DIV_tag_Saas_platform_to_proxy-768x547.png 768w" sizes="(max-width: 904px) 100vw, 904px" /></p>
<p>&nbsp;</p>
<h2>YouTube Enigma.JS Qlik Sense API Development</h2>
<p><iframe title="Qlik Sense Development - Enigma.js to RxQ in ONE LINE OF CODE" width="750" height="563" src="https://www.youtube.com/embed/E4x6bMjyn74?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<h2>Youtube Другие видео по Qlik Sense API</h2>
<p><iframe title="Using the Qlik Sense Field API" width="750" height="422" src="https://www.youtube.com/embed/GJ0ImZR2ig0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><iframe title="Using the Qlik Sense Bookmark API" width="750" height="422" src="https://www.youtube.com/embed/OBGJErIwrto?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><iframe title="Qlik Sense API Based Mashups" width="750" height="422" src="https://www.youtube.com/embed/1rOu0sgvwwM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<h2><strong>Полезные ссылки по Enigma.JS и Qlik Sense API</strong></h2>
<ul>
<li><a href="https://dev.to/qlikbranch/getting-started-with-qlik-core-2781" target="_blank" rel="noopener noreferrer">https://dev.to/qlikbranch/getting-started-with-qlik-core-2781</a> &#8211; Getting Started with Qlik Core</li>
<li><a href="https://branch-blog.qlik.com/system-integration-with-qliks-apis-why-and-how-1663025cf54d" target="_blank" rel="noopener noreferrer">https://branch-blog.qlik.com/system-integration-with-qliks-apis-why-and-how-1663025cf54d</a> &#8211; System Integration with Qlik’s APIs — Why and How</li>
<li><a href="https://alcmst.net/2019/03/01/quiz-sense-who-wants-to-be-a-qlikionnaire/" target="_blank" rel="noopener noreferrer">https://alcmst.net/2019/03/01/quiz-sense-who-wants-to-be-a-qlikionnaire/</a> &#8211; Quiz Sense – Who wants to be a Qlikionnaire?</li>
</ul>
<p>_____</p>
<p>Сообщение <a href="https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/">Руководство разработчика API &#8211; Справочник по Qlik Sense API</a> появились сначала на <a href="https://qliksense.ivan-shamaev.ru">Qlik Sense - Обучение, учебник, онлайн курс</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qliksense.ivan-shamaev.ru/api-reference-qlik-sense-qliksense/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
