Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29
updated: 2018-12-21 12:33:29
Qlik Sense学习笔记之Mashup开发(一)
1.基于Qlik Sense API的Mashup开发
Capability API
一定程度上对应了鼠标所能做到的所有操作或功能
开发工具
- Qlik Sense dev-hub Mashup Editor
- Text Editor
- Notepad++
- Sublime
- IDE
- Visual Studio Code
- Web Storm
- Eclipse
2.Mashup基础代码分析
Project
XXX.html
XXX.js
XXX.css
XXX.qext
qlik文件,用来概括mashup的一些基本信息,比如名称,版本,有什么依赖等。
- wbfolder.wbl
当前mashup有什么文件,有哪些文件是可以在Mashup Editor中罗列出来再次被编辑的。通过Sense go插件可以自动生成。
Require JS
- 新建一个mashup,在head中自动引入了require.js文件
<script src="../../resources/assets/external/requirejs/require.js"></script>- 针对qlik sense的异步调用,优化后的一个require版本
- 可以通过依赖的形式将需要的js文件注入进来,是lazy load的一种方式,只有用到的时候以后才会引入
Qlik-style.css
- 新建一个mashup,在head中自动引入了Qlik-style.css文件
<link href="../../resources/autogenerated/qlik-styles.css" rel="stylesheet">- 保证object拖动之后渲染效果与图表原先效果保持一致
- 可以覆写这个文件来尝试修改图表样式
3.Mashup开发技巧
Qlik Sense Desktop
在Document--Qlik--Sense--Extensions下可以找到Qlik Sense Desktop中的工程目录,以及相关的文件,可以自由增删文件,并可以立即调用
Qlik 文档
点击下面的Developer,在最左面有一个 API reference
Sense-go
辅助开发插件,只需要设置一下项目名称、版本号、目标输出目录,其他的会自动监听文件变化,并自动编译到目标输出目录中
Qlik Sense Developer Mode
- 开发中调用图表,是通过 id 去获取调用。
- 第一种方式:可以从dev-hub中的Single Configuration中查看
- 第二种方式:针对这个页面,可以从页面中查看
http://域名/sense/app/515fc2f7-7779-4d78-b355-250814d16b17/sheet/6d79d8f2-9314-4718-8d48-ff63b72acc21/state/analysis- 把/state/analysis修改成/options/developer,然后右键点击图表可以看到 Developer 选项,可以查看object的id还有其中的数据、结构如何。
引入第三方类库
- 如果是css文件的话可以直接在head中引入
- 但是如果是js文件的话,因为一次性加入的js文件可能过多导致第一次进入太卡,所以放在 app.js 文件 require 函数中统一载入。
- 即 第一次进入时先出现loading页面,这个时候载入相关文件和数据
ID 变与不变
- 如果复制了一个chart,那两个chart的id
- 但是如果是删除一个chart,然后再重新写一个一样的chart,id会自动改变
- 比如现在有一个piechart,现在想用barchart,但是以后可能还会用piechart,最好是复制一个,然后将其中一个piechart点击右键通过convert转换成barchart
- 可以在js文件夹下创建一个map.js文件,专门存放 objname -- objid,或者写一个json文件,这样可以保证修改时不会重新编译整个项目
4.Mashup安装与管理
QMC – Qlik Management Console
Export / Import
多版本处理
修改qext文件中的name,重新导入时候就会区分开
Qlik Branch
5.Mashup 最常用的 Qlik API – Capability API
因为qlik传递的信息是单节点信息,没有办法绑定js的event事件,所以无法判断传递的数据类型以及根据数据传递事件做出相应的事情。所以需要通过API来获取数据。
Root API
- 返回高于APP层级的信息,通过getAppList可以返回当前用户有多少app,app有什么信息。
- openApp:打开一个app,之后才能继续使用APP API
- resize:Qlik Sense虽然可以自适应,但是如果想把一个chart放到一个div中 ,同时用户可以对div进行拖动放大放小,这时没有触发浏览器的resize,所以就需要resize这个api来辅助实现自适应。
- sessionApp:如果说想做一个app,让用户可以点进来看,但是用户所有的操作做出的改动不想保留下来,可以使用sessionApp
- setDeviceType:可以强行设置'auto'、'touch'、'desktop',若未设置则自动检测
- table:能够直接将app中的数据变换成table输出
App API
- clearAll:清空选项
- getObjectProperties:通过传参(appid)获取到chart数据,并进行二次开发
- getObject:直接将app渲染到div中
Bookmark API
可以存储当前的选择信息,类似于宏操作,可以保留历史
Field API
- QField -> select:因为Qlik Sense中做筛选是在字段上做的,所以所用到的select是在QField下的select方法中,添加字段名称,以及想要选择的下标索引,以及是否需要重新覆写上一次的选择。
- QField -> selectAlternative:互斥选择。选择当前选择的所有其他选项。
- 选择的时候有四种颜色:绿色表示当前选择的,白色表示与当前选择相关的选项,深灰色表示不可选,灰色表示可选。白色的可以通过selectPossible方法来选择。
- QField -> selectValues:不知道选项下标,直接传入value,帮助选择
Global API
用于返回Qlik Sense基本信息,如版本号,server信息,运行状态等
Table API
Navigation API
Selection API
- 专注于当前app中选择的选项,选择的状态等,是基于QField中的select方法的。
- 通过对app.selectionState().onData.bind(listener)进行绑定监听,获取当前选中 的选项信息,可以进行下一步的跳转或者其他事件。
Variable API
Visualization API
- 在app的dataModel基础上,通过create方法可以生成新的图表,或者通过get方法拿到一个图表,在其渲染之前进行一些数据判断或再次筛选。类似于预读功能,先读入配置,等需要渲染的时候再渲染。
- Options:可以获取某一些图表的properties,并可进行适当的替换,所作出的操作不会影响原始数据和图表。
6.Mashup 客户端 API
Capability API
Extension API / Backend API
URL Integration (Single Object /App)
每一个object在single configuration中可以直接复制url地址粘贴在浏览器直接打开,单独占一个websocket,同时可以设置opt=nointeraction(无法选择进行交互)或者删除这一句话来使用户可以选择其中的某一项。
7.Qlik 服务端 API
Engine API
- Enigma.js
- .NET SDK
QRS API (Qlik Repository Service API)
- 删除app 修改app 上传文件 etc
- 需要保证header中的X-Qlik-Xrfkey 16位字符串与参数是一样
- 可以查看QRS API endpoints (subset)
QPS API (Qlik Proxy API)
- 可以拿到ticket,通过ticket获取一个session,再与Qlik进行交互
UDC API (User Directory Connector API)
8.Qlik 扩展 API
Customer Connector (QVX)
ODAG API (on demand app generation)
SSE (Server side extension)
Leonardo UI
Picasso Chart Lib
Qlik Sense学习笔记之Mashup开发(一)的更多相关文章
- Qlik Sense学习笔记之Mashup开发(二)
date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...
- Qlik Sense学习笔记之插件开发
date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...
- Android(java)学习笔记219:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- APPCAN学习笔记003---原生开发与HTML5技术
APPCAN学习笔记003---原生开发与HTML5技术 技术qq交流群:JavaDream:251572072 1.HTML5的优势: HTML5强悍牢固的骨架 CSS3精致到每一个毛孔的皮 ...
- APPCAN学习笔记001---app高速开发AppCan.cn平台概述
1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- Android(java)学习笔记162:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- jsp学习笔记:mvc开发模式
jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...
- JavaSE 学习笔记01丨开发前言与环境搭建、基础语法
本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...
随机推荐
- B树【Balanced-Tree】
一.引言 B树是二叉平衡树的一个变种,在学习之前,我们先了解一下二分法,二叉树的一些相关的基本概念,有助于我们更好的理解B树~ 二.二叉树 定义:二叉树即二叉平衡树 意义:通过二分法来进行元素查找,时 ...
- 白话ansible-runner--1.环境搭建
最近在Windows10上的项目需要使用到ansible API调用,参考 本末大神 推荐ansible API用官网封装的ansible-runner开发比较友好,ansible-runner是an ...
- OSPF及实验
OSPF:Open Shortest Path First,最短路径优先1)基本概念:标准的LS型协议--共享拓扑组播更新:224.0.0.5/6触发更新,存在周期更新 30minOSPF是跨层封装 ...
- 在Linux系统下搭建和配置一个minio文件服务器(二)
上一篇主要讲述了在linux系统中搭建一个minio文件服务器,那么这一篇则用来整合java代码中使用,我之前自己已经搭建好了一个springboot项目,那么这一篇将详细讲述如何把minio整合进s ...
- zeroc ICE 使用案例
此处案例将ICE接口当做单servant使用(ICE自带端口复用的多servant,过于复杂,此处不讨论) 使用ICE较为方便的地方时 可以编写 ice中间代码,然后由官方工具转换为目标平台代码(通过 ...
- 坐标下降(Coordinate descent)
坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行线性搜索(线性搜索是不需要求导数的),通过循环使用不同的坐标方法来达到目标函数的局部极小值.
- GAN的理论 Theory behind GAN
任务:想要找到一个高维空间中的分布 P_data(x),要在目标类别的区域,采样的概率是高的:在那个区域之外,probability是低的.但这个P_data(x)分布的具体形式(pdf)是不知道的, ...
- Windows控件的属性与事件
Treeview控件重要属性和事件 属性 说明 Nodes Treeview控件中所有树节点 SelectdNode 当前Treeview控件中选定的树节点,如果当前没有选定树节点,返回值为null ...
- Layman 对PHP源码进行加密保护
加密软件(php_screw) >下载网站:http://sourceforge.net/projects/php-screw/ >描述:php文件通常以文本格式存贮在服务器端, 很容易被 ...
- Java 异常 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss 服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日 ...