date: 2018-12-21 12:33:29

updated: 2018-12-21 12:33:29

Qlik Sense学习笔记之Mashup开发(一)

1.基于Qlik Sense API的Mashup开发

  1. Capability API

    一定程度上对应了鼠标所能做到的所有操作或功能

  2. 开发工具

    • Qlik Sense dev-hub Mashup Editor
    • Text Editor
      • Notepad++
      • Sublime
    • IDE
      • Visual Studio Code
      • Web Storm
      • Eclipse

2.Mashup基础代码分析

  1. Project

    • XXX.html

    • XXX.js

    • XXX.css

    • XXX.qext

    qlik文件,用来概括mashup的一些基本信息,比如名称,版本,有什么依赖等。

    • wbfolder.wbl

    当前mashup有什么文件,有哪些文件是可以在Mashup Editor中罗列出来再次被编辑的。通过Sense go插件可以自动生成。

  2. Require JS

    1. 新建一个mashup,在head中自动引入了require.js文件
    2. <script src="../../resources/assets/external/requirejs/require.js"></script>
    3. 针对qlik sense的异步调用,优化后的一个require版本
    4. 可以通过依赖的形式将需要的js文件注入进来,是lazy load的一种方式,只有用到的时候以后才会引入
  3. Qlik-style.css

    1. 新建一个mashup,在head中自动引入了Qlik-style.css文件
    2. <link href="../../resources/autogenerated/qlik-styles.css" rel="stylesheet">
    3. 保证object拖动之后渲染效果与图表原先效果保持一致
    4. 可以覆写这个文件来尝试修改图表样式

3.Mashup开发技巧

  1. Qlik Sense Desktop

    在Document--Qlik--Sense--Extensions下可以找到Qlik Sense Desktop中的工程目录,以及相关的文件,可以自由增删文件,并可以立即调用

  2. Qlik 文档

    点击下面的Developer,在最左面有一个 API reference

  3. Sense-go

    辅助开发插件,只需要设置一下项目名称、版本号、目标输出目录,其他的会自动监听文件变化,并自动编译到目标输出目录中

  4. Qlik Sense Developer Mode

    1. 开发中调用图表,是通过 id 去获取调用。
    2. 第一种方式:可以从dev-hub中的Single Configuration中查看
    3. 第二种方式:针对这个页面,可以从页面中查看
    4. http://域名/sense/app/515fc2f7-7779-4d78-b355-250814d16b17/sheet/6d79d8f2-9314-4718-8d48-ff63b72acc21/state/analysis
    5. 把/state/analysis修改成/options/developer,然后右键点击图表可以看到 Developer 选项,可以查看object的id还有其中的数据、结构如何。
  5. 引入第三方类库

    1. 如果是css文件的话可以直接在head中引入
    2. 但是如果是js文件的话,因为一次性加入的js文件可能过多导致第一次进入太卡,所以放在 app.js 文件 require 函数中统一载入。
    3. 即 第一次进入时先出现loading页面,这个时候载入相关文件和数据
  6. ID 变与不变

    1. 如果复制了一个chart,那两个chart的id
    2. 但是如果是删除一个chart,然后再重新写一个一样的chart,id会自动改变
    3. 比如现在有一个piechart,现在想用barchart,但是以后可能还会用piechart,最好是复制一个,然后将其中一个piechart点击右键通过convert转换成barchart
    4. 可以在js文件夹下创建一个map.js文件,专门存放 objname -- objid,或者写一个json文件,这样可以保证修改时不会重新编译整个项目

4.Mashup安装与管理

  1. QMC – Qlik Management Console

  2. Export / Import

  3. 多版本处理

    修改qext文件中的name,重新导入时候就会区分开

  4. Qlik Branch

5.Mashup 最常用的 Qlik API – Capability API

因为qlik传递的信息是单节点信息,没有办法绑定js的event事件,所以无法判断传递的数据类型以及根据数据传递事件做出相应的事情。所以需要通过API来获取数据。

  • Root API

    1. 返回高于APP层级的信息,通过getAppList可以返回当前用户有多少app,app有什么信息。
    2. openApp:打开一个app,之后才能继续使用APP API
    3. resize:Qlik Sense虽然可以自适应,但是如果想把一个chart放到一个div中 ,同时用户可以对div进行拖动放大放小,这时没有触发浏览器的resize,所以就需要resize这个api来辅助实现自适应。
    4. sessionApp:如果说想做一个app,让用户可以点进来看,但是用户所有的操作做出的改动不想保留下来,可以使用sessionApp
    5. setDeviceType:可以强行设置'auto'、'touch'、'desktop',若未设置则自动检测
    6. table:能够直接将app中的数据变换成table输出
  • App API

    1. clearAll:清空选项
    2. getObjectProperties:通过传参(appid)获取到chart数据,并进行二次开发
    3. getObject:直接将app渲染到div中
  • Bookmark API

    可以存储当前的选择信息,类似于宏操作,可以保留历史

  • Field API

    1. QField -> select:因为Qlik Sense中做筛选是在字段上做的,所以所用到的select是在QField下的select方法中,添加字段名称,以及想要选择的下标索引,以及是否需要重新覆写上一次的选择。
    2. QField -> selectAlternative:互斥选择。选择当前选择的所有其他选项。
    3. 选择的时候有四种颜色:绿色表示当前选择的,白色表示与当前选择相关的选项,深灰色表示不可选,灰色表示可选。白色的可以通过selectPossible方法来选择。
    4. QField -> selectValues:不知道选项下标,直接传入value,帮助选择
  • Global API

    用于返回Qlik Sense基本信息,如版本号,server信息,运行状态等

  • Table API

  • Navigation API

  • Selection API

    1. 专注于当前app中选择的选项,选择的状态等,是基于QField中的select方法的。
    2. 通过对app.selectionState().onData.bind(listener)进行绑定监听,获取当前选中 的选项信息,可以进行下一步的跳转或者其他事件。
  • Variable API

  • Visualization API

    1. 在app的dataModel基础上,通过create方法可以生成新的图表,或者通过get方法拿到一个图表,在其渲染之前进行一些数据判断或再次筛选。类似于预读功能,先读入配置,等需要渲染的时候再渲染。
    2. Options:可以获取某一些图表的properties,并可进行适当的替换,所作出的操作不会影响原始数据和图表。

6.Mashup 客户端 API

  1. Capability API

  2. Extension API / Backend API

  3. URL Integration (Single Object /App)

    每一个object在single configuration中可以直接复制url地址粘贴在浏览器直接打开,单独占一个websocket,同时可以设置opt=nointeraction(无法选择进行交互)或者删除这一句话来使用户可以选择其中的某一项。

7.Qlik 服务端 API

  1. Engine API

    • Enigma.js
    • .NET SDK
  2. QRS API (Qlik Repository Service API)

    1. 删除app 修改app 上传文件 etc
    2. 需要保证header中的X-Qlik-Xrfkey 16位字符串与参数是一样
    3. 可以查看QRS API endpoints (subset)
  3. QPS API (Qlik Proxy API)

    1. 可以拿到ticket,通过ticket获取一个session,再与Qlik进行交互
  4. UDC API (User Directory Connector API)

8.Qlik 扩展 API

  1. Customer Connector (QVX)

  2. ODAG API (on demand app generation)

  3. SSE (Server side extension)

  4. Leonardo UI

  5. Picasso Chart Lib

Qlik Sense学习笔记之Mashup开发(一)的更多相关文章

  1. 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 ...

  2. Qlik Sense学习笔记之插件开发

    date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...

  3. Android(java)学习笔记219:开发一个多界面的应用程序之两种意图

    1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...

  4. APPCAN学习笔记003---原生开发与HTML5技术

    APPCAN学习笔记003---原生开发与HTML5技术 技术qq交流群:JavaDream:251572072 1.HTML5的优势:   HTML5强悍牢固的骨架   CSS3精致到每一个毛孔的皮 ...

  5. APPCAN学习笔记001---app高速开发AppCan.cn平台概述

    1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移 ...

  6. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  7. Android(java)学习笔记162:开发一个多界面的应用程序之两种意图

    1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...

  8. jsp学习笔记:mvc开发模式

    jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...

  9. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

随机推荐

  1. Win10环境下Hadoop(单节点伪分布式)的安装与配置--bug(yarn的8088端口打不开+)

    一.本文思路 [1].配置java环境–JDK12(Hadoop的底层实现语言是java,hadoop运行需要JDK环境) [2].安装Hadoop 1.解压hadop 2.配置hadoop环境变量 ...

  2. 方法区(Method Area)基础知识

    堆.栈.方法区堆关系 概述 方法区与堆区一样,是各个线程共享的内存区域 方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的 方法区的大小,跟堆空间一样,可以 ...

  3. Docker镜像发布到阿里云

    登录阿里云Docker Registry $ sudo docker login --username=xxx@xxx.com registry.cn-hangzhou.aliyuncs.com 从R ...

  4. Spring学习(三)Spring AOP 简介

    一.简介 定义 aop就是面向切面编程,在数据库事务中切面编程被广泛使用. 在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 核心业务:比如登陆,增加数据,删除数据都叫核心业务 周边功能 ...

  5. 海量数据处理之布隆过滤器BloomFilter算法

    Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合.使用场景:数据量为100亿 ...

  6. 使用DynamicExpresso实现表达式求值

    之前写了一篇Z.Expressions表达式计算的博客,直到最近才发现Z.Expressions不是免费的.Z.Expressions从2.0开始支持了NetCore,使用一段时期后会提示许可证到期, ...

  7. php 图片转base4的格式

    <?php $url = '1.jpg'; $base64_img = base64_encode(file_get_contents($url));//将图片转base64编码 $imgArr ...

  8. React代码开发规范

    前言 一般在团队开发中每个人的代码习惯都不太一样,这样就会导致代码风格不一致,以致于维护和修改bug的时候看别人的代码成为一种痛苦...这种情况尤其在前端开发中尤为明显.因为关于前端的开发规范貌似也没 ...

  9. 常见加密算法的 JS 实现

    前言 为破解前端加密做准备,先了解一些常见的加密算法 分类 对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. DES DES ...

  10. Mybatis 插件原理解析

    SqlSessionFactory 是 MyBatis 核心类之一,其重要功能是创建 MyBatis 的核心接口 SqlSession.MyBatis 通过 SqlSessionFactoryBuil ...