原文: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编码(百分比编码)。不同的浏览器可以以不同方式处理编码。
特别是应编码以下字符:
|
|
|
|
|
|
|
|
例如:{"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
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