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 ...
随机推荐
- centos7 yum安装redis及常用命令
redis是什么 Redis是一种基于内存的数据结构存储,可持久化的日志型.Key-Value数据库.使用关系型数据库的站点达到一定并发量的时候,往往在磁盘IO上会有瓶颈,这时候配合redis就有一定 ...
- kafka学习(二)kafka工作流程分析
一.发送数据 follower的同步流程 PS:Producer在写入数据的时候永远的找leader,不会直接将数据写入follower PS:消息写入leader后,follower是主动的去lea ...
- 刷题[WUSTCTF2020]朴实无华
解题思路 打开是一个这样的页面,查看源码发现什么人间极乐bot,试试是不是robots.txt,查看发现类似flag文件,查看发现是假的flag,但是burp抓包后发现,返回的头部有信息 源码出来了, ...
- keras中的mask操作
使用背景 最常见的一种情况, 在NLP问题的句子补全方法中, 按照一定的长度, 对句子进行填补和截取操作. 一般使用keras.preprocessing.sequence包中的pad_sequenc ...
- 在vue中使用天气插件
在vue中使用天气插件 插件网址: 中国天气 选择自己需要的插件.生成代码复制即可 在 vue 中的使用: template 中 <div id="weather-v2-plugin ...
- Harbor介绍与企业级私有Docker镜像仓库搭建
Harbor介绍与安装部署,并实现通过http和https协议[自签发SSL证书]访问,客户端如何通过Harbor镜像仓库实现镜像的上传[推送]与下载[拉取]. Harbor介绍 Harbor,是一个 ...
- CentOS7的下载及虚拟机的创建
一.CentOS的安装 1,首先打开开源镜像网站:www.mirrors.163.com(网易开源镜像网站),www.mirrors.aliyun.com(阿里云开源镜像网站) 以网易为例 2.点击进 ...
- 【漏洞复现】Office远程代码执行漏洞(CVE-2017-11882)
昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...
- matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波
来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...
- S3C6410触摸屏驱动分析
一. device的注册1.0 两个注册//在smdk6410_machine_init中既注册了touchscreen的私有信息也注册了ts资源 1 在arch/arm/mach-s3c64xx/m ...