Trigger script after data table loads

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

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

# Get second script
scriptDef = clr.Reference[ScriptDefinition]()
Document.ScriptManager.TryGetScript("yourSecondScriptName", scriptDef)
params = Dictionary[str, object]()

# Refresh Callback function
def execCallBack(exception, Document=Document, notify=notify, params=params, scriptDef=scriptDef):
if not exception:
# executes the script
Document.ScriptManager.ExecuteScript(scriptDef.ScriptCode, params)
else:
notify.AddErrorNotification("Error refreshing table(s)","Error details",str(exception))

# Get/Add table(s) to refresh
# Note that more than one table can be added to the List object. Repeat the Add() method if needed for multiple tables to refresh.

Tbls = List[DataTable]()
Tbls.Add(Document.Data.Tables['yourTableName'])

# Refresh table (new 7.0 API)
Document.Data.Tables.RefreshAsync(Tbls, execCallBack)
#############################################
Where 'yourSecondScriptName' and 'yourTableName' are respectively the name of your script and table.

Source: Perkin Elmer

No comments: