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 ...
随机推荐
- Redis中set集合(无序)操作命令
set集合(无序) set是一个无序的不重复元素的集合 增 sadd 往集合内部添加元素 127.0.0.1:6379> sadd set1 a b c d (integer) 4 127.0. ...
- Java Web学习(九)网络协议详解
一.基本概念 概念:协议是网络中计算机或设备之间进行通信的一系列规则的集合. 协议栈/族:在网络中为了完成通信而使用到的多层上的各种协议按照层次顺序的组合. 作用:建立对等层之间的虚拟通信.实现层次之 ...
- Oracle复习(复习精简版v1.0)
自己没记不住的,超基础Oracle知识,新手可以看一下. 大多数例子是用scott用户中的emp表完成 排序:order by 列名 desc是降序,默认是升序: update 表名 set 列 ...
- java 判断jsonObject 对象为null的天坑问题
jsonObject = {"mmbRetrieveBookingResponse":{"bookingData":null,"isAfterTran ...
- java学习网站汇总
1.https://blog.csdn.net/qq_35571554/article/details/82759668 B+树原理漫画讲解2.https://blog.csdn.net/moakun ...
- Centos-搜索文件或目录-find
find 在指定的目录下查找指定的文件 相关选项 -type 指定文件类型 -name 指定文件名字,支持通配符 -gid 指定用户组ID -uid 指定用户ID -empty 查找长度为 ...
- Leetcode-栈&队列
20. 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/ 给定一个只包括 '(',')','{','}','[',']' 的字符串,判 ...
- windows10开机后恢复关机前打开的chrome网页
开始-设置-账户-登录选项-隐私,下面一个"更新或重启后--"即第二个开关打开. 这时,无论是重启.更新重启或关机后开机,均可恢复原关机时的网页(和应用). 注:题主安装的wind ...
- P2590 树的统计
一道树剖的模板题 首先,由于本人比较懒,就把单点修改写成了区间修改,其实也没有有多大区别(关键是我不会写单点修改QAQ) 不得不说,树剖的码量比较大,调了一上午才勉强调完. 这道题要求我们支持 单点修 ...
- 插头 dp
插头dp 洛谷 黑题板子? P5056 给出n×m的方格,有些格子不能铺线,其它格子必须铺,形成一个闭合回路.问有多少种铺法? 1.轮廓线 简单地说,轮廓线就是已决策格子和未决策格子的分界线: 2,插 ...