Jump to content

David Boot-Olazabal

Spotfire Team
  • Posts

    593
  • Joined

  • Last visited

  • Days Won

    21

Community Answers

  1. David Boot-Olazabal's post in Spotfire Tree Map graph, hierarchy not displaying correct info was marked as the answer   
    Hi Iain,
    You may want to try something like this:
    <[Gate Desc] NEST Sum([Hours]) OVER ([Gate Desc])>
    That would nest your sum([Hours]) withing the hierarchy and calculates it per [Gate Desc].
    Kind regards,
    David
  2. David Boot-Olazabal's post in Spotfire Dropdown list -Fixed Value for multiple values problem was marked as the answer   
    Hi Iain,
    I think I got it.
    I've created a simple data table, with 4 columns. I've added a dropdown list property, as per the below:

    Based upon the selection of the values of the drop down, a Filter column displays if it is true or not. The Filter column is the CASE statement. This is the view for the 1litre selection:

    Now, because I have altered your initial CASE statement, the view from the 1litre&2litre selection 'collects' both the 1litre and 2litre engines:

    And then you can tie the Filter column to your way of filtering out the data.
    The CASE statement I used to combine both 1litre and 2litre engines, is this one:
    case  when DocumentProperty("EngineModel")="All" THEN [Engine Model]=[Engine Model]
    WHEN DocumentProperty("EngineModel")="1 litre" THEN [Engine Model]="1litre"
    WHEN DocumentProperty("EngineModel")="2 litre" THEN [Engine Model]="2litre"
    WHEN DocumentProperty("EngineModel")="Engine" THEN ([Engine Model]="1litre") or ([Engine Model]="2litre")
    ELSE [Engine Model]=DocumentProperty("EngineModel") END
    Kind regards,
    David
  3. David Boot-Olazabal's post in How can customize legend in visualization? was marked as the answer   
    Hi John,
    I'm afraid there isn't a possible way to do this for the time being.
    I have checked the ideas portal, where a lot of similar enhancements requests have been logged. But they're all under consideration. You may want to vote for one the ideas, for example this one:
    https://ideas.spotfire.com/ideas/TS-I-7752
    Kind regards,
    David
  4. David Boot-Olazabal's post in Scheduled Update for On Demand Table was marked as the answer   
    Hi Amit,
    If you want to know if it is possible to schedule an update for an analysis file that has also on demand tables, the answer is yes. When scheduling an analysis file, all 'normal' tables will be refreshed at the time of running.
    On demand data tables will not be refreshed, since they will only 'act' whenever they are called upon, as Olivier pointed out.
    I have done this many times at customer projects and also in my own test environments.
    You can just start scheduling your analysis file via the administration console and let it run in the server. When you then open your analysis file, you will see that the data is loaded from the cache, for all tables except the on-demand ones. The latter will only load data, when they're getting triggered.
    Kind regards,
    David
  5. David Boot-Olazabal's post in SMTP is throwing an exception setting up an automation job to send an email with the below error: What may be the cause of this error I am using google SMTP? was marked as the answer   
    Hi Anusha,
    The settings seem fine (checked with my own configuration), but I wonder about the password that you have used.
    When I had to set up my gmail settings in the automation.config file, I also had some issues at first. As Google requires 2MFA for most applications, it doesn't accept the usual email username/password method for Spotfire.
    To solve this, I had to create a specific app password in Google, to allow for the use of my gmail account in Spotfire. You can find more information on how to do this here: https://support.google.com/mail/answer/185833?hl=en.
    I used this password (a 16-digit code) in the automation.config (you can encrypt this if you like) and since then it works perfectly fine.
    If you have used a normal password for the gmail account, I would advise you to create an app password and use this as the password for your gmail account. That should solve the problem.
    Kind regards,
    David
  6. David Boot-Olazabal's post in Multiple X and Y axes on scatter plot was marked as the answer   
    Hi Chai,
    You can resolve this by adding the sets as Rows, instead of columns.
    The end result will look like this:

    Your data canvas set up looks like this, with the first combination of tables (Set A + Set B) as example.
    Make sure you join on all the columns, so the X and Y values are 'falling' in the same column:

    I've also added the example dxp file, but it's in version 14.4, so not sure if you can open that properly (depending on your version of Spotfire).
    Kind regards,
    David
    ScatterPlot.dxp
  7. David Boot-Olazabal's post in Setting (Empty) in a Date filter column using the configuration block was marked as the answer   
    Hi Lara,
    You may want to have a look at this article: 
     
    More specifically, the Configuration Statements paragraph.
    There are a couple of examples (in the Set Filters part), in which the empty setting is also being discussed.
    One of the code examples is about excluding empty values: 
    // Uncheck all boxes and exclude empty values: SetFilter(columnName = "C", operation = RemoveAll, includeEmpty = false); For your use case, you can try to set the value to true:
     
    // Uncheck all boxes and exclude empty values and see if that works: SetFilter(columnName = "C", operation = RemoveAll, includeEmpty = true); Kind regards,
    David
  8. David Boot-Olazabal's post in Is there a way to log user actions at the dashboard page/tab level vs the dashboard on the whole, in Spotfire was marked as the answer   
    Hi,
    I understand why you are a bit confused.
    Not sure if this got fixed in the latest version (I'm on Spotfire 14.4 HF4), but you can see that I have been able to capture the 'clicks' in my Actionlog table (the set_page LOG_ACTION is accompanied by the ActionLink value in column ARG6):

    My dashboard looks like this (first tab):

    Second tab:

    And repeating the same actions (clicking on the action control buttons), adds an extra set of rows in my Actionlog table (row number 3 and 4).
    I also manually clicked on the tabs, to give you an idea of what the information looks like, compared to the ActionLink value in ARG6 (it then says PageTabs; row number 1 and 2):

    So I would encourage you to test this out on your side, and see if the entries pop up in your Actionlog table as well.
    Kind regards,
    David
  9. David Boot-Olazabal's post in Delta across different subseta was marked as the answer   
    Hi,
    You can try to add another y-axis variable, that calculates the difference. In the example I used, this is the formula I used:
    Sum([Class Sales Year 1]) THEN [Value] - First([Value]) OVER (NavigatePeriod([Axis.Color],0,-1))
    The analysis file looks like this (with an overview of the settings I used for the above formula):

    I have used Marking as the input for my subset (hence the yellow highlighted States in the US) and calculated the difference over the color axis (rather than the default category axis).
    Kind regards,
    David
  10. David Boot-Olazabal's post in How to query the information links contained in each template in the database? was marked as the answer   
    Hi Mark,
    Right, so you want to see which information links are connected to a dxp file.
    You can try this query:
     
    SELECT lib1.ITEM_ID, lib1.TITLE, lib1.DESCRIPTION, lib1.ITEM_TYPE, lib2.TITLE as IL FROM [spotfire_server144].[dbo].[LIB_RESOLVED_DEPEND] libdep join [spotfire_server144].[dbo].[LIB_ITEMS] Lib1 on libdep.DEPENDENT_ID = lib1.ITEM_ID join [spotfire_server144].[dbo].[LIB_ITEMS] Lib2 on lib2.ITEM_ID = libdep.REQUIRED_ID WHERE lib1.ITEM_TYPE = (SELECT TYPE_ID FROM LIB_ITEM_TYPES WHERE LABEL in ('dxp')) and lib1.Title like 'Bikes%' and lib2.ITEM_TYPE = (SELECT TYPE_ID FROM LIB_ITEM_TYPES WHERE LABEL in ('query')) ORDER BY lib1.ITEM_TYPE, lib1.TITLE In my example, I have a dashboard that starts with the name Bikes (you can either try this with one of your dxp title names, or just remove that 'Where clause' part if you want all dxp's to be listed).
    The result of the above query is (there is only 1 information link used in my Bikes demo analysis file):

    Kind regards,
    David
  11. David Boot-Olazabal's post in Year over Year % Change Evolution over Total was marked as the answer   
    Hi Vincent,
    With a big shout out to my colleague Rae Chen, I have an expression for you that should work.
    Try this one: Sum([Sales]) THEN [Value] / Sum([Value]) OVER (All([Axis.Rows])) THEN [Value] - First([Value]) OVER (NavigatePeriod([Axis.Columns],"Year",-1))
    Kind regards,
    David
  12. David Boot-Olazabal's post in IronPython Script needs to automatically run every time filter panel changes was marked as the answer   
    Hi Achen1, Vanessa,
    Interesting solution! I've never seen that one, as I normally use a data function to cover this. It does the same in the end though, as it triggers the script to run on a change in the document property.
    You can find more information about this solution here: https://spotfired.blogspot.com/2015/10/update-doc-property-trigger-ironpython.html
    Kind regards,
    David
  13. David Boot-Olazabal's post in Alerting Frameworks - Emails not sending. was marked as the answer   
    Hi Praveen,
    I've checked your xml file and see two differences with one of mine:

    I assume you delete the password content on purpose, but it may be due to the fact that you don't use any encryption (SSL or TLS).
    When looking at all the other parameters, it seems to be alright, but the encryption part (I use TLS) may the missing link.
    Kind regards,
    David
     
  14. David Boot-Olazabal's post in How do I make a Spotfire report based on SharePoint connector available to all users in my company? was marked as the answer   
    Hi Rikard,
    We're not entirely sure whether it should be possible to save the credentials on the connection or not. As you have mentioned, you couldn't do that, but maybe something went wrong.
    Could you send us some screenshots of that particular issue, along with screenshots of the setup?
    In any case, would you decide to use the profiles option, here is the documentation on how to do this for a SharePoint connector (the other link is the generic way to create a profile): https://docs.tibco.com/pub/sfire-analyst/14.4.0/doc/html/en-US/TIB_sfire-analyst_UsersGuide/index.htm#t=connectors%2Fsharepoint%2Fcreating_a_credentials_profile_for_microsoft_sharepoint_connections.htm
    Kind regards,
    David
  15. David Boot-Olazabal's post in How to limit Property Control - drop down list to show only unique values that are not filtered out from a column of a datatable. was marked as the answer   
    Hi there,
    The solution Steve is talking about, is cascading prompts. You can find the way to set up these cascading prompts in this Dr. Spotfire video:
    Kind regards,
    David
  16. David Boot-Olazabal's post in how to search element tree in spotfire and filter the elements under one folder was marked as the answer   
    Hi Enke,
    I'm aware of that (you'll find a reference to both in my previous answer). Since the Library Administration Tool provides a clearer overview, I added the images from that perspective. But that might have confused you.
    In any case, if you apply the same logic in the Information Designer search box, you will achieve the same:

    In your use case, the search string would be type:column column:erbs parent_id:<id of folder Information Package>.
    The id of the folder can be found by right-clicking on it, and select the option Copy ID:

     
    Kind regards,
    David
  17. David Boot-Olazabal's post in The instance of Automation Services is offline. was marked as the answer   
    Hi Mark,
    It is hard to see what could be wrong here, other than that it seems that port 8080 can't be accessed.
    But is that the port of the automation services? Or is that your Spotfire server port (which I think it is)?
    It would be great if you could tell us more about your set up:
    - Which Spotfire version are you on;
    - What is your deployment (on premise, cloud based);
    - How many Spotfire servers do you have and what are the used ports;
    - Same for the nodes; how many nodes have been installed and what are the used ports;
    - Do you have a service (web player most probably) that is working fine;
    - Is automation services running on a separate node or on the same as the web player service and is this the only failing service?
    Even though this is more of an support issue (and if we can't help you, I would advise to create a support ticket via https://support.tibco.com), it seems like it may have something to do with communication between the Spotfire server and Spotfire node manager. I'm guessing that your Spotfire server is on port 8080 and your automation services uses port 9501 (or 9502). Given the fact that the error message says that port 8080 can't be accessed, did you open up the ports on the node manager server and the Spotfire server?
    If you're on a windows environment, can you check the Windows Firewall settings for inbound and outbound rules for Spotfire?
    You should at least have defined these ports:
    1.       Open ports on the Firewall on Servers & Node Managers (the below ones are the defaults, with exception of 8080 for Spotfire server as the default is 80):
    a.       Server: inbound ports 443, 5701, 8080, 9080, 9443 (443 is for https, 5701 is for a clustered setup, 8080 is the front end port and 9080+9433 is for internal communication);
    b.       NM: inbound 9080, 9443, 9501 (9080 + 9443 is for internal communication, 9501 are for the services like Web player and automation services. For services like R, TERR, Python you should use 9502, 9503, 9504);
    c.       NM outbound: 9080, 9433 (these ports are meant to communicate with the Spotfire server).
    You can also find information of your set up, in the server.xml and nodemanager.properties file(s).
    Kind regards,
    David
  18. David Boot-Olazabal's post in Looking for info on Between was marked as the answer   
    Hi Anthony,
    I see you are trying to use the 'between' operator when creating a  calculated column.
    I know the between operator can can be used in plain SQL, which makes it suitable to use in Spotfire's information link query (see example below), but it's not listed as an operator in Spotfire when creating a calculated column. Hence, the blue between when creating such a case statement.
    Even though AI may know a lot, one needs to be cautious of the outcome (it should be verified/tested). And your work around is probably the best way to achieve the same.
    If a between operator would be beneficial, I would suggest to create an enhancement request via https://ideas.spotfire.com/ideas.
    Kind regards,
    David
  19. David Boot-Olazabal's post in Switch color by property using Iron python was marked as the answer   
    Hi Prashant, 
    My colleague has created a working script for this.
    Since you're on 12.0.3 and we work in Spotfire 14, I'll add the script and explain what we have done.
    The solution comprises of 3 steps:
    - Add a new text area;
    - set up a document property called colorBy (see screenshot below). This is a drop down list property with Fixed values (you should replace the Region row with your own variable name and add others if needed);
    - create a new script in which you add a parameter for the crosstab (in the script, this is the cross_table). This script should be added to the text area in the form of a button (in the screenshot below, this is the 'change' button.


     
    from Spotfire.Dxp.Application.Visuals import * import System.Drawing.Color as Color cross_table = cross_table.As[CrossTablePlot]() colour_property = Document.Properties['colorBy'] categoryKey=CategoryKey(colour_property) cross_table.ColorCategory = categoryKey Now, when you select one of the values from the drop down list and hit the change button, you will see that the coloring changes slightly, since the Color by has changed from (Cell values) to Region (in our example).
    If needed, you can let the script run automatically upon changing the document property colorBy, by adding the script to the property via the Script button (see screenshot).
    Hope this helps you.
    Kind regards,
    David
  20. David Boot-Olazabal's post in Use of Hierarchy levels was marked as the answer   
    Hi Prashant,
    I've found it. This is used to search the filter hierarchy on specific levels: https://docs.tibco.com/pub/sfire-analyst/14.4.0/doc/html/en-US/TIB_sfire_client/client/topics/en-US/search_in_hierarchy_filters.html (see the bottom part of the page).
    When you want to search for let's say Q1, you can do that for the specific Quarter level, but also on the All level (if you have that box checked in the hierarchy properties). It is meant to search through large hierarchies in an easier way.
    But it doesn't do 'anything' related to filters directly.
    Kind regards,
    David
  21. David Boot-Olazabal's post in Is it possible to change the font size in Area chart Mod was marked as the answer   
    Hi Sophia,
    Some of the settings, like font and font size for the axis can be altered via the menu Visualizations -> Canvas Styling -> Edit custom themes:

    The other settings are hard-coded into the mod. Any changes to that, would require changes in the source code. As it is available on our github site: https://github.com/spotfiresoftware/spotfire-mod-area, you can access it, make a fork and perform the changes you need.
    Kind regards,
    David
     
  22. David Boot-Olazabal's post in option to color a tab when its highlighted was marked as the answer   
    Hi,
    Yes, this is possible.
    You can give the active tab a different color then the rest. You do this via Visualizations->Canvas Styling->Edit custom theme...
    Via this window, on the Details tab, you can set the color (background as well as text) for the active page tab in submenu Page Navigation area.
    In the below picture, you can see that I have changed the background color to purple and the text to light green. :

    But beware of the text coloring, as this affects all tabs:

    Kind regards,
    David
  23. David Boot-Olazabal's post in How to pass calculated value from HTML to JS? was marked as the answer   
    Hi Prashant,
    You may be able to achieve the same using iron python script (depending on what you want to hide):
    Kind regards,
    David
  24. David Boot-Olazabal's post in How does Axis Binding work? was marked as the answer   
    Hi Arunabha,
    The Axis Binding property is used to bind an expression to the axis. You can find more information via our API documentation:
    https://docs.tibco.com/pub/doc_remote/sfire-analyst/14.3.0/doc/api/TIB_sfire-analyst_api/html/P_Spotfire_Dxp_Application_Visuals_Axis_Binding.htm
    Kind regards,
    David
  25. David Boot-Olazabal's post in Dashboard Link with Specific Tab was marked as the answer   
    Hi Kem,
    Yes there is. Please have a look at this community article about configuration blocks:
    Look for the part 'URL parameter' where it is explained how you can define the tab to be opened. Also, as I found some differences between browsers when it comes to encoding. Firefox, Edge and Chrome worked perfectly with the %22 encoding for " (in the link: https://spotfire-next.cloud.tibco.com/spotfire/wp/analysis?file=/Samples/Introduction to Spotfire&configurationBlock=SetPage(pageTitle="TabName"));.
    Kind regards,
    David
×
×
  • Create New...