skysoft999
skysoft999

Reputation: 579

finding target worksheet for action in twb (xml) file

My intention is to find target worksheet for actions in tableau workbook. where should I search for that target worksheet correspond to some particular action in twb(xml) file?

For example:

<actions>
    <action caption='Filter 1 (generated)' name='[Action1]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Figure 8-60 thought 8-65' type='sheet' worksheet='Heat Map' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Figure 8-60 thought 8-65' />
      </command>
    </action>
    <action caption='Filter 2 (generated)' name='[Action2]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Figure 8-59' type='sheet' worksheet='Poor Filter Design' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Figure 8-59' />
      </command>
    </action>
    <action caption='Filter 3 (generated)' name='[Action3]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Figure 8-59' type='sheet' worksheet='Good Filter Design' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Figure 8-59' />
      </command>
    </action>
  </actions>

Upvotes: 4

Views: 289

Answers (2)

  • Changing the names of the actions

  • Going into the .twb XML and changing the order of the <> blocks.

  • Going into the .twb XML and changing the internal Action1, Action2, etc. names. Doing this I'm able to change which of Dashboard 2 and Dashboard 3 is opened.

  • adding a Web Page object to Dashboard 1 and then a URL action using about:blank as the target, on the idea that maybe URL actions take precedence over filter actions.

Upvotes: 0

Siva
Siva

Reputation: 9101

Tried to play a bit with .twb file and got this for dashboard actions:

        <actions>
    <action caption='Filter 1 (generated)' name='[Action1]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Dashboard 1' type='sheet' worksheet='Sheet 3' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Dashboard 1' />
      </command>
    </action>
    <action caption='Filter 2 (generated)' name='[Action2]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Dashboard 2' type='sheet' worksheet='Sheet 2' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Dashboard 2' />
      </command>
    </action>
    <action caption='Filter 3 (generated)' name='[Action3]'>
      <activation auto-clear='true' type='on-select' />
      <source dashboard='Dashboard 2' type='sheet' worksheet='Sheet 3' />
      <command command='tsc:tsl-filter'>
        <param name='special-fields' value='all' />
        <param name='target' value='Dashboard 2' />
      </command>
    </action>
  </actions>

Honestly I couldn't find any direct link to the target sheet while source sheet is always available in actions, This can be observed in Actions window.

enter image description here

But I was able to see the actions that were mapped to target sheets if we go to the individual sheet actions instead of dashboard actions where we can see target as dashboard.

See below data where I have created a dummy dashboard to check actions.

These are the actions that created in report:

<group caption='Action (Product Category)' hidden='true' name='[Action (Product Category)]' name-style='unqualified' user:auto-column='sheet_link'>
        <groupfilter function='crossjoin'>
          <groupfilter function='level-members' level='[Product Category]' />
        </groupfilter>
      </group>
      <group caption='Action (Product Sub-Category)' hidden='true' name='[Action (Product Sub-Category)]' name-style='unqualified' user:auto-column='sheet_link'>
        <groupfilter function='crossjoin'>
          <groupfilter function='level-members' level='[Product Sub-Category]' />
        </groupfilter>
      </group>

Along with this if we go to individual sheets then we can see the actions mapped first one is for Sheet 2 and other is for Sheet 3:

<filter class='categorical' column='[federated.0idnrl40bk56fg130xiy30dnljux].[Action (Product Category)]'>
            <groupfilter function='level-members' level='[Product Category]' user:ui-enumeration='all' user:ui-marker='enumerate' />
          </filter>
          <slices>
            <column>[federated.0idnrl40bk56fg130xiy30dnljux].[Action (Product Category)]</column>
          </slices>

           <filter class='categorical' column='[federated.0idnrl40bk56fg130xiy30dnljux].[Action (Product Sub-Category)]'>
            <groupfilter function='level-members' level='[Product Sub-Category]' user:ui-enumeration='all' user:ui-marker='enumerate' />
          </filter>
          <slices>
            <column>[federated.0idnrl40bk56fg130xiy30dnljux].[Action (Product Sub-Category)]</column>
          </slices>

If we keep track of actions that were created in dashboards then we can easily tell what all sheets are joined in a dashboard using the name of the actions.

Would like to know your thoughts and observations aswell.

Upvotes: 2

Related Questions