云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

腾讯云_剪刀手爱德华百度云_高性能

小七 141 0

腾讯云_剪刀手爱德华百度云_高性能

我最近开发了一个自定义数据源扩展,可以从世界银行API访问指标数据。这是我第一次破解designstudiosdk,我想我应该上传一个教程博客来帮助那些第一次想要创建自己的数据扩展的人。我知道社区里已经有一些类似的博客了,所以我假设我的读者没有任何经验。我将尽可能地使其详细和简单(同时使本文尽可能简短)。

我为本博客开发的扩展是在7月7日的SAP Analytics Infoday 2015活动上展示的信息图表中使用的更多功能扩展的踏脚石。您可以在这里找到最终信息图的视频。

在我们开始之前,实时数据采集系统,您应该有SDK指南,并且应该已经将SAP提供的SDK扩展添加到您的Eclipse工作区。

注意:您可以在这里找到1.5版的SDK指南,在这里找到SDK扩展。

在我进入扩展之前,让我告诉您一些关于世界银行数据,以及如何从其API访问数据。

世界银行API

世界银行指标API允许您以编程方式访问8000多个指标,并以多种方式查询数据,使用参数指定您的请求。许多数据系列可以追溯到50年前,可以用来创建有趣的应用程序。Indicators API有三种响应格式:XML、JSON和JSONP。我使用了JSONP格式来规避同源策略问题。

注意:进一步阅读同源策略,以及解决方法可以在这里、这里和这里找到。

开发人员需要四个基本参数来形成他们的数据请求:

注意:在这里找到调用结构的更详细描述。

图下面给出一个示例请求及其相应的响应。

数据源SDK

深入到扩展的开发中,从技术角度来看,SDK扩展是一个Eclipse插件,包含以下文件。

在这七个文件中,开发扩展只需要贡献XML文件。它提供了SDK扩展及其扩展组件的定义。其中一个组件是组件JavaScript文件。这个文件包含扩展名的实际代码,没有这些代码,让我们面对现实,扩展名将不会真正起作用。因此,在本文的其余部分,这是我将重点关注的仅有的两个文件。

在剩下的五个文件中,脚本贡献文件和其他属性表HTML和JavaScript文件可以帮助为我们的扩展提供额外的功能,但为了简单起见,我将不在本文中描述它们的用法;我将在稍后的博客文章中介绍它们。

贡献XML文件

贡献XML文件指定SDK扩展及其所有扩展组件。SAP提供了一个文档化的XML模式定义文件(sdk.xsd版本)它定义了贡献XML文件的格式。在这里,我们向designstudio提供有关扩展名、版本、供应商的信息。我们还指定扩展名中包含哪些文件以及它们的位置储存在这里是贡献.xml对于本帖所述的扩展?xml version="1.0"encoding="UTF-8"?>

res/js/组件.js

sdkExtension元素

扩展由sdkExtension元素定义。它的重要属性是:

组件元素

组件元素是sdkExtension元素的子元素。扩展组件由该元素指定。它的重要属性是:

jsInclude元素

它是component元素的子元素。它引用运行时要包含在其父扩展组件中的JavaScript文件。

属性元素

此元素用于指定扩展元素的属性。属性可以看作是可以在设计时设置的变量。正如你从照片上看到的贡献.xml文件中,我定义的属性与组成数据请求的参数相同。这些属性允许我在设计时修改数据请求。

属性元素的重要属性是:

组件JavaScript文件

为每个扩展组件实现一个组件JavaScript类。由于jQuery包含在SDK框架中,因此您可以同时使用JavaScript和jQuery(编写本文时为1.10.2版)来实现组件JavaScript类。

实现自定义数据源的组件JavaScript部分有两种方法:

我们将探讨第二种方法,扩展DataBuffer类。

扩展组件生命周期

在我们深入了解扩展DataBuffer JavaScript类的复杂性之前,了解组件的结构非常重要。

对于任何扩展组件,SDK框架都会执行以下JavaScript函数调用:

这些函数的顺序是否执行取决于是否已渲染组件。区别如下图所示。

注意:并非必须实现所有这些功能。例如,如果开发人员忽略了beforeUpdate()函数,SDK框架将向前移动并开始更新属性值。

扩展DataBuffer类

从DataBuffer JavaScript类扩展而来的自定义数据源与其他SDK扩展组件共享相同的组件JavaScript API,这些组件实现或调用像init、beforeUpdate、afterUpdate这样的JavaScript函数。但是,还有一些特定于自定义数据源的附加JavaScript函数,这些函数是从databufferjavascript类扩展而来的。这些附加函数是:

函数定义尺寸

此函数用于设置自定义数据源的尺寸。这个函数的结果只不过是交叉表的结构。我们为每个维度指定其成员是在交叉表的行还是列中。

definedDimensions函数的语法是:

definedDimensions(aoDimensions,oExternalMeasuresDimension)