TIBCO Spotfire使用技巧:在TIBCO Spotfire中创建配置块(Block)

原文:https://community.tibco.com/wiki/create-configuration-block-tibco-spotfire

介绍

参数化分析意味着将参数注入打开文件的过程中,并且可选地在分析变为与用户交互之前进一步配置分析。这两个操作都在配置块中定义。

配置块是类似脚本的文本,包含参数分配和配置语句。

参数分配用于设置文档属性,参数化分析,包含数据源的分析,参数化信息链接或带参数的转换。

在加载数据之前,参数进入范围。可以随时通过API检索它们。

配置语句由方法名称后跟参数列表组成。在加载数据之后但在激活命令历史记录之前解释配置语句。解释配置语句后,将丢弃它们。

配置语句始终是可选的。分析中的任何内容都不需要定义配置语句。

在以下示例中,前两行是参数分配,以下行是配置语句:

Region = "West";
Acme.Limits = { 10, 100, 1000 };
SetPage(pageTitle = "Overview");
ApplyBookmark(bookmarkName = "UserRegionOnly");
SetFilter(tableName = "Table 1", columnName = "Column 1", values = { "A", "B" });
SetMarking(tableName = "Table 2", whereClause = "Gender = 'Male' AND GeekFactor = 'High'");

配置块的语法要求在配置语句之前放置参数分配。

在API中,配置块由DocumentOpenSettings 和  DocumentSaveSettings 类中的text属性表示  ,它们分别由  AnalysisApplication.Open  和  AnalysisApplication.Save  方法使用。

其他用途

除了使用配置块打开文件外,还可以使用嵌入式配置块保存分析。典型的情况是为需求略有不同的用户自动生成一组类似的文件,例如负责不同地区的销售经理。打开带有嵌入式配置块的分析时,效果与将块作为参数传递给Open调用的效果相同。

还可以将嵌入块与作为参数传递的外部块组合。嵌入块在外部块之前被解释。通过这种方式,外部块可用于覆盖嵌入块定义的设置。典型情况是使用外部应用程序中的配置块打开分析,其中参数分配的值在该应用程序中自动派生。在这种情况下,Open调用是通过COM使用自动化接口完成的。

在哪里使用配置块

配置块可以在以下位置使用:

  • 在使用TIBCOSpotfire®JavaScriptAPI的网页中。 

  • 在自定义C#扩展中。 

    • 在Spotfire Analyst API中,配置块由文本属性表示 

      • DocumentOpenSettings 类,由  AnalysisApplication.Open  方法使用。

      • DocumentSaveSettings 类,由  AnalysisApplication.Save  方法使用。

  • 在浏览器中打开Spotfire分析时的URL中。例如:

https://spotfire-next.cloud.tibco.com/spotfire/wp/analysis?file=/Samples/Introduction%20to%20Spotfire&configurationBlock=SetPage(pageTitle=%22Filtering%22);SetFilter(tableName=%22World%20Bank%20Data%22,columnName=%22Region%22,values=%7B%22North%20America%22,%22Europe%20%26%20Central%20Asia%22%7D);

注意:在URL中使用时,配置块必须是URL编码(百分比编码)。不同的浏览器可以以不同方式处理编码。

特别是应编码以下字符:

空间
%20
%22
{
%7B
}
%7D



例如:{"North America","Europe & Central Asia"} 应编码为:

%7B%22North%20America%22,%22Europe%20%26%20Central%20Asia%22%7D
  • 了解更多关于URL编码这里。还提供免费的在线转换工具。

  • URL中使用的配置块可以包含任意数量的参数分配和配置语句,每个语句以分号结束。

  • 从Spotfire库浏览器或消费者/业务作者客户端,可以轻松检索可由配置块扩展的参数化URL。在这里了解更多。

  • 例如,在Spotfire Analyst客户端中,作为命令行参数

    • 在库中打开dxp文件时,为文档属性“testParam”赋值“param value”:

Spotfire.Dxp.exe /server:http://myserver/ /uri:analysis:/MyFolder/MyTestFile:configurationBlock:testParam=%22param%20value%22;
  •  

    • 请注意,配置块必须是URL编码,请参阅上面的“在打开Spotfire分析时在URL中”的详细信息

  • 在“自动化服务”任务“从库中打开分析”。

参数分配

打开参数化分析时,必须通过API将分析中的所有必需参数分配给值。任何缺少的强制参数都将导致错误。参数也由ParameterManager类管理,可以使用API​​检索。参数管理器不是文档的一部分,而是驻留在可以作为服务检索的应用程序级别。

配置块语法要求在配置语句之前放置参数分配。

参数名称类似于许多计算机语言中的标识符。案例很重要,但只是在参数名称以它们被定义的方式存储的意义上。参数管理器中的查找方法不区分大小写,并且即使在与大小写无关的意义上,所有参数名称也必须是唯一的,以降低混淆的风险。

参数值是字符串或字符串列表/数组。所有列表都是扁平的,可能不包含其他列表。如果字符串不包含空格或特殊字符,则可以不带引号编写。

单个值参数的示例:

Parameter1=Value;
Parameter2="Value 1";

列表/数组参数的示例:

Parameter3={"Value 1", "Value 2", "Value 3"};

参数和文档属性

如果在分析中定义了具有相同名称和数据类型的文档属性,则会自动将配置块参数分配给文档属性。这是在分析中参数化许多不同项目的便捷方式。一个常见用途是将文档属性值作为IronPython脚本的参数。

参数化信息链接

参数分配通常和方便地与Spotfire Information Designer工具中创建的参数化信息链接一起使用。这些信息链接可能包含许多服务器定义的参数。这样的参数由信息设计器中的名称和类型定义。类型可以是单值或列表类型。信息链接参数使用以下语法引用配置块中的名称:?param_name。

从参数化信息链接加载数据时,将从ParameterManager中检索参数的值。下表列出了可能包含参数的不同信息链接元素中的属性:

元素类型 参数化属性
列计算表达式

聚合列计算表达式

过滤条件表达式
过滤 过滤条件表达式
信息链接 静态过滤器

编辑的SQL(更新前,查询,更新后)
程序 输入参数值
数据源 打开会话命令

关闭会话命令

有关如何创建参数化信息链接的详细信息,请参阅TIBCO®Spotfire - 用户手册中的参数化信息链接主题。

配置语句

配置语句分两步执行。首先,解析构成配置语句的方法名称和随后的参数列表,并用于创建相应配置器类的实例。然后验证并执行配置程序。

以下列表定义了可用配置语句的集合:

  • SetPage:指定分析的初始页面
  • ApplyBookmark:应用书签
  • SetFilter:指定任意类型的过滤器的初始设置
  • SetMarking:初始化标记

SetPage

SetPage配置语句用于指定分析的初始页面。它需要一个参数,可以是从零开始的页面索引,页面guid或页面标题:

SetPage(pageIndex = 2);
SetPage(pageId = "5462f26a-8e02-11dc-8314-0800200c9a66");
SetPage(pageTitle = "The Intro Page");

SetPage配置程序使用文档的PageCollection来查找匹配的页面。它将按列出的顺序搜索匹配,首先使用页面索引(如果提供),然后是页面ID,最后是页面标题。

如果找不到匹配的页面,配置程序将在问题列表中添加注释,但不会中断。

ApplyBookmark

ApplyBookmark配置语句用于指定分析的初始状态。书签由其显示名称或ID标识:

ApplyBookmark(bookmarkId = "5462f26a-8e02-11dc-8314-0800200c9a66");
ApplyBookmark(bookmarkName = "Streamlined");

ApplyBookmark配置程序使用文档的BookmarkCollection查找匹配的书签。它将按列出的顺序搜索匹配,首先是id,然后是name。

如果找不到匹配的书签,配置程序将在问题列表中添加注释,但不会中断。

使用setfilter

SetFilter配置语句用于指定任意类型的过滤器的初始设置。以下参数可用于各种组合:

参数 类型 默认 描述
filteringName 从活动页面 指定过滤方案
表名 从积极的情节 指定表
TABLEID 从积极的情节 指定表
COLUMNNAME - 标识过滤器
是searchPattern - 用于TextFilter和ListBoxFilter
StringList的 - 指定值列表
路径 StringList的 - 层次结构过滤器的父节点
低价值 没变 范围过滤器的低值
高价值 没变 范围过滤器的高值
INCLUDEEMPTY 布尔 没变 包括空(无效)值
手术 枚举 更换 替换,添加,添加,删除,删除所有,重置

复选框过滤器或列表框过滤器

CheckBoxFilter或ListBoxFilter的设置如下所示:

// Check A and B, uncheck all other values:
SetFilter(columnName = "C", values = { "A", "B" });
 
// Uncheck A, leave other check boxes as is:
SetFilter(columnName = "C", values = { "A" }, operation = Remove);
 
// Uncheck all boxes and exclude empty values:
SetFilter(columnName = "C", operation = RemoveAll, includeEmpty = false);
 
// Reset the filter:
SetFilter(columnName = "C", operation = Reset);
 
// The following applies only to the ListBoxFilter.
// Select A and BA, hide all items not ending with 'A':
SetFilter(columnName = "C", values = { "A", "B" }, searchPattern = "*A");

项目过滤器或单选按钮过滤器

ItemFilter或RadioButtonFilter的设置如下所示:

// Select a specified value:
SetFilter(columnName = "C", values = { "A" });
 
// Select all values, leave includeEmpty as is:
SetFilter(columnName = "C", operation = AddAll);
 
// Select no values, leave includeEmpty as is:
SetFilter(columnName = "C", operation = RemoveAll);

范围过滤器

RangeFilter的设置如下所示:

SetFilter(columnName = "C", lowValue = "100", highValue = "1000");
 
// Set the upper limit, leave the lower limit as is:
SetFilter(columnName = "C", highValue = "1000");
 
// Select the full range of values:
SetFilter(columnName = "C", operation = AddAll);

层次结构过滤器

CheckBoxHierarchyFilter的设置如下所示:

// Select the May 1988 subtree only:
SetFilter(columnName = "C", path = { "1988" }, values = { "May" });
 
// Add the May 1988 subtree to the included values:
SetFilter(columnName = "C", path = { "1988" }, values = { "May" }, operation = Add);
 
// Remove two days in May from the selection:
SetFilter(columnName = "C", path = { "1988", "May" }, values = { "1", "2" }, operation = Remove);

文字过滤器

TextFilter的设置如下所示:

// Select all items ending with 'A':
SetFilter(columnName = "C", searchPattern = "*A");
 
// Reset the filter:
SetFilter(columnName = "C", operation = Reset);

SetMarking

SetMarking配置语句用于初始化标记。它需要以下参数:

参数 类型 默认 描述
markingName 从活动页面 指定标记
表名 从积极的情节 指定表
TABLEID 从积极的情节 指定表
whereClause - 用于选择一组行的受限SQL语句。语法与表达式中使用的语法相同; 有关详细信息,请参阅“TIBCO®Spotfire - 用户手册”中的“表达式语言”部分。
手术 枚举 更换 替换,添加,减去,切换,相交

SetMarking配置语句的用法如下:

// Replace the current marking by the one specified:
SetMarking(tableName = "T1", whereClause = "Region = 'West' and Broker = 'John'");
 
// Add a set of rows to the current marking:
SetMarking(tableName = "T1", whereClause = "Region = 'East'", operation = Add);

 

如需要联系TIBCO原厂的Spotfire采购,各位可以访问如下链接

https://www.tibco.com/company/locations

中国北京Main Office Phone

TIBCO联系电话:+86 10 8341 3723

 

你可能感兴趣的:(TIBCO,Spotfire技巧篇)