TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全

在Spotfire上做关于某个Dashboard或者某个层级的访问安全设置,这是属于再常见不过的企业级应用的设置了。

那么这个怎么实现呢?如下是这相关内容的分享,请各位亲留存:https://community.tibco.com/wiki/how-implement-tab-page-level-security-spotfire

 

先决条件: - 
 - 属性控件/文档属性
 - Python脚本
 - 项目中的统计服务器(TERR)
 - 个性化信息链接

在Spotfire中,我们可以使用个性化信息链接应用数据级安全性,即,您可以设置数据源以仅返回特定用户或组的适用信息。 
示例: - 返回亚洲用户组的亚洲地区销售数据。 

因此,可以对数据进行限制,但仪表板上的选项卡级安全性如何?

是的,可以使用Python脚本实现Tab Level安全性。构建一个Python脚本,该脚本应根据您的要求读取当前用户/当前组,并相应地实现逻辑。让我们举一个简单的例子,仪表板有两个标签; “摘要”选项卡和“详细信息”选项卡,并且希望限制特定用户组“受限制”(Spotfire Group)的“详细信息”选项卡。

假设我们已经创建了Python脚本,现在下一步将是如何在打开仪表板时触发Python脚本? 

以下是实现我们目标的详细步骤:

步骤1:基于个性化信息链接创建数据表,该链接应获取当前用户是否属于受限制组的数据。查询应如下: -

SELECT 
   U1。“USER_NAME”AS“USERNAME”,
   G2。“GROUP_NAME”AS“GROUPNAME” 
FROM 
   “SPOT_USR”。“USERS”U1,
   “SPOT_USR”。“GROUPS”G2,
   “SPOT_USR”。“GROUP_MEMBERS”G3 
WHERE 
   (G3 。“MEMBER_USER_ID”= U1。“USER_ID”)
   AND(G2。“GROUP_ID”= G3。“GROUP_ID”)
   AND(U1。“USER_NAME”位于(%CURRENT_USER%))
   和(G2。“GROUP_NAME”='限制' )
   和<条件>

第2步:删除“详细信息”页面的Python脚本如下所示

对于
    Page.Pages中的Page:如果Page.Title ==“Detail”:
        Document.Pages.Remove(页面) 

 步骤3:现在更新python脚本以从DataTable读取基于Personalized Information的Usergroup或通过R脚本将Usergroup值分配给Document Property

 a)从数据表中读取用户组的Python脚本。

table = Document.Data.Tables [“PersonalizedInformationLinkTable”] 
minCol = table.Columns ['GroupName'] 
minCursor = DataValueCursor.Create(minCol)

for table中的行.GetRows(minCursor):
  Document.Properties [“UserGroup”] = minCursor.CurrentValue;

b)通过R脚本将Usergroup值分配给Document Property。

使用如下脚本注册新的数据函数(TERR),并将输入和输出参数定义为值

    DocProperty < - 输入

TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全_第1张图片

TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全_第2张图片

TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全_第3张图片

单击“运行”按钮并选择输入为表达式,定义为  
Max([PersonalizedInformationLinkTable]。[GROUP_NAME]) 

TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全_第4张图片

同样,选择Output as Document Property并相应地选择属性。

TIBCO Spotfire使用技巧:如何在Spotfire中实现选项卡(Tab)以及Dashbaord页面级的访问安全_第5张图片

第3步:最终的Python脚本看起来像


从Spotfire.Dxp.Data导入 导入Spotfire.Dxp * 

#-------------如果我们通过Python获取usergroup -----------------

table = Document.Data.Tables [“PersonalizedInformationLinkTable”] 
minCol = table.Columns ['GroupName'] 
minCursor = DataValueCursor.Create(minCol)
for table.GetRows(minCursor):  
    Document.Properties [“UserGroup”] = minCursor 。当前值; 

#------------------------------------------------- -------------------------

 Document.Pages:
    如果Document.Properties [“UserGroup”] ==“Restricted”:
        if Page.Title ==“Detail”:         
        Document.Pages.Remove(Page) 

第4步:创建一个名为“DateTimeStamp”的文档属性,并为上面分配我们创建的脚本。

步骤5:创建一个简单的信息链接,其中包含一个应该获取当前DateTimeStamp的元素

SELECT 
   SYSTIMESTAMP AS“SYSTEMTIME” 
FROM 
   “SYS”。“DUAL”D1 
WHERE 
  

步骤6:将此表导入到仪表板,并使用R脚本将SystemTime元素分配给文档属性“DateTimeStamp”(类似于步骤3b)

第7步:保存仪表板 

现在,当您每次打开或刷新仪表板时,时间戳将不同,文档属性将更新,因此将触发Python脚本。

PS:我们也可以使用JScript在Open of Dashboard上触发Python脚本。此外,为防止用户在打开DXP后单击“撤消”并恢复已删除的页面,请在每个要删除的页面上包含相同的javascript触发器。然后,即使用户在打开文件时撤消删除,每次导航到禁止页面时,它都会触发删除页面的脚本。如果他们撤消了,它会将他们带回起始页面,因此他们永远不会看到禁止的页面。

 

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

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

中国北京Main Office Phone

+86 10 8341 3723

 

 

 

 

你可能感兴趣的:(TIBCO,Spotfire使用技巧,Spotfire数据可视化,TIBCO原厂,Spotfire代理,TIBCO,Spotfire技巧篇)