gpt4 book ai didi

ironpython - 通过 Spotfire 中的单个 IronPython 脚本顺序和同时加载数据表

转载 作者:行者123 更新时间:2023-12-03 21:16:53 26 4
gpt4 key购买 nike

我需要帮助来完成线程标题中描述的任务。让我提供一些背景:

我正在 Spotfire 上开发一个非常大的仪表板,它加载了大量用于可视化的数据。由于它们之间的依赖关系,其中一些表需要顺序加载,但其他表可以同时加载。

对于顺序加载的表,我使用以下脚本:

import clr
from System.Collections.Generic import List, Dictionary
from Spotfire.Dxp.Data import DataTable
from Spotfire.Dxp.Framework.ApplicationModel import NotificationService

# Empty list to hold DataTables
Tbls = List[DataTable]()

Tbls.Add(dt1) #dt1 a DataTable string parameter
Tbls.Add(dt2) #dt2 a DataTable string parameter

# Notification service
notify = Application.GetService[NotificationService]();

# Execute something after tables are loaded
def afterLoad(exception, Document=Document, notify=notify):
if not exception:
Document.Properties["lastReload"]
print "OK"
else:
notify.AddErrorNotification("Error refreshing table(s)","Error details",str(exception))

# Refresh table(s)
Document.Data.Tables.RefreshAsync(Tbls, afterLoad)***

对于没有依赖关系的表,我使用了以下简单脚本:
from System.Collections.Generic import List, Dictionary 
from Spotfire.Dxp.Data import DataTable
from System.Collections import ArrayList

dt3.Refresh()
dt4.Refresh()
dt5.Refresh()

我尝试简单地将脚本组合成一个,但结果是所有表都按顺序加载。

使用这些脚本中使用的命名,我希望脚本按如下方式执行:
  • 加载 dt1
  • 等待 dt1 满载
  • 加载 dt2
  • 等待 dt2 满载
  • 同时加载 dt3、dt4 和 dt5。

  • 最好的问候,并提前致谢

    先生

    最佳答案

    我不相信在 Spotfire 中同时加载数据表是可能的。

    通过代码肯定是不可能的:IronPython 运行单线程,虽然理论上可以添加线程,但你会浪费大量的开发时间来这样做,实际上, yield 很少(或者如果可以的话,可能会获得大量 yield )打包解决方案卖给TIBCO工程哈哈)

    我还建议允许 Spotfire 使用现有功能处理加载数据,除非您有一些非常奇怪的场景,在这种情况下,您可能需要检查您的方法,因为您正在做的事情远远超出平台的意图。

    无论如何,说了这么多,听起来您会从“按需”加载数据中受益,因为该功能在 Spotfire 中被调用:

    When an information link or a data table from a data connection is to be added to the analysis as a new data table, you have the option to either load all data at once, or to load data on demand only. Your analysis can benefit from on-demand loading when you have access to massive amounts of data, but you only need to work with some parts of the data at a time. When setting up an on-demand data table you can specify conditions based on one or more other data tables to control what to load. You can also start by letting an on-demand data table be the first (or only) data table in the analysis if its input is defined by a document property.



    使用此功能,您可以在触发器上加载数据表,例如:
  • 标记更改
  • 过滤更改
  • 满足自定义表达式条件
  • 文档属性更改

  • 您可以在 Spotfire documentation 中找到有关按需表的更多信息。 .

    关于ironpython - 通过 Spotfire 中的单个 IronPython 脚本顺序和同时加载数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728817/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com