villain PARK Posted May 19, 2020 Share Posted May 19, 2020 Hi, I am using TIBCO Spotfire Server v7.11.1and Ironpython 2.7.7 and following one of wiki toretrieve data marking selection, and I got error. (https://community.spotfire.com/wiki/how-retrieve-data-marking-selection-usi...) can anybody give some tip about this error [script] from System.Collections.Generic import List from Spotfire.Dxp.Data import * # Create a cursor for the table column to get the values from. # Add a reference to the data table in the script. dataTable = Document.Data.Tables["AVG"] cursor = DataValueCursor.CreateFormatted(dataTable.Columns["lot_wf"]) # Retrieve the marking selection markings = Document.ActiveMarkingSelectionReference.GetSelection(dataTable) # Create a List object to store the retrieved data marking selection markedata = List [str](); # Iterate through the data table rows to retrieve the marked rows for row in dataTable.GetRows(markings.AsIndexSet(),cursor): #rowIndex = row.Index ##un-comment if you want to fetch the row index into some defined condition value = cursor.CurrentValue if value str.Empty: markedata.Add(value) # Get only unique values valData = List [str](set(markedata)) # Store in a document property yourVariableName = ', '.join(valData) Document.Properties["yourDocumentPropertyControl"] = yourVariableName #####################ERROR######################## Traceback (most recent call last): File "", line 10, in AttributeError: 'NoneType' object has no attribute 'GetSelection' System.MissingMemberException: 'NoneType' object has no attribute 'GetSelection' at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at Microsoft.Scripting.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1) at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx) at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope) at Spotfire.Dxp.Application.IronPython27.IronPythonScriptEngine.ExecuteForDebugging(String scriptCode, Dictionary`2 scope, Stream outputStream) Link to comment Share on other sites More sharing options...
Shashank Gurnalkar Posted May 19, 2020 Share Posted May 19, 2020 Its working fine for me. Would you be able to share your DXP file. Link to comment Share on other sites More sharing options...
villain PARK Posted May 20, 2020 Author Share Posted May 20, 2020 Im sorry. I did it again, it works. but I have new question.I changed this code..markings = Document.ActiveMarkingSelectionReference.GetSelection(dataTable)to..markings = Document.Data.Markings["YourMarkingName"] ////// (my case : markings = Document.Data.Markings["Marking (2)"] )(because of this comment of wiki : Note that you can create a cursor for each of the columns for which you intend to retrieve values. Note that it is possible to reference the marking used in the visualization by name, instead of using Document.ActiveMarkingSelectionReference. For example, you can use:)But then, this code doesnt work again like below error messege. can you check it ###################ERROR MESSEGE########################Traceback (most recent call last): File "<string>", line 16, in <module> AttributeError: 'DataMarkingSelection' object has no attribute 'AsIndexSet' System.MissingMemberException: 'DataMarkingSelection' object has no attribute 'AsIndexSet' at IronPython.Runtime.Binding.PythonGetMemberBinder.FastErrorGet`1.GetError(CallSite site, TSelfType target, CodeContext context) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at Microsoft.Scripting.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame) at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1) at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx) at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope) at Spotfire.Dxp.Application.IronPython27.IronPythonScriptEngine.ExecuteForDebugging(String scriptCode, Dictionary`2 scope, Stream outputStream) Link to comment Share on other sites More sharing options...
Shashank Gurnalkar Posted May 20, 2020 Share Posted May 20, 2020 You need to add the GetSelection method as well to that line. markings = Document.Data.Markings["Marking (2)"].GetSelection(dataTable) Link to comment Share on other sites More sharing options...
villain PARK Posted May 20, 2020 Author Share Posted May 20, 2020 really THANKS!! It really works!! have a great day :D Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now