Dashboards & Visualizations

Unsetting tokens defined by other tokens

cmzhu
Explorer

I have a dashboard where the token CgClassUserId is being populated from a dropdown, and then other tokens (like CgClass) are being evaluated subsequently. I want to set a token s_class to be true if CgClass == 'S' and unset it if not.

I am currently attempting this by having a change and condition match block of code after evaluating tokens like CgClass. However, with the addition of this code, when I change the CgClassUserId token, the subsequent eval tokens like CgClass are no longer changing as well.

   <input type="dropdown" token="CgClassUserId" searchWhenChanged="true">
          <label>Application</label>
          <fieldForLabel>Application</fieldForLabel>
          <fieldForValue>CgClassUserId</fieldForValue>
          <search>
            <query>| inputlookup ActivCgApplicationLookup.csv
    | eval CgClassUserId=CgClass.UserId
    | sort +Application</query>
            <earliest>0</earliest>
            <latest></latest>
          </search>
          <change>
            <!-- Use predefined input token $label$ to set Application token to selected label -->
            <set token="Application">$label$</set>
            <!-- Extract CgClass and UserId values from combined CgClassUserId for selected Application -->
            <eval token="CgClass">substr($CgClassUserId$,1,1)</eval>
            <eval token="CgClassClause">"host=\"*-".lower($CgClass$)."-*\""</eval>
            <eval token="UserId">substr($CgClassUserId$,2)</eval>
          </change>


          <change>
            <condition match="$CgClass$ != &quot;S&quot;">
              <unset token="s_class"></unset>
              <unset token="form.s_class"></unset>
            </condition>
            <condition match="$CgClass$ == &quot;S&quot;">
              <set token="s_class">true</set>
            </condition>
          </change> 
        </input>
0 Karma
1 Solution

rjthibod
Champion

The issue is you can only have one <change> block, so you have to consolidate everything.

<change>
  <condition match="substr($CgClassUserId$,1,1) != &quot;S&quot;">
    <set token="Application">$label$</set>
    <eval token="CgClass">substr($CgClassUserId$,1,1)</eval>
    <eval token="CgClassClause">"host=\"*-".lower($CgClass$)."-*\""</eval>
    <eval token="UserId">substr($CgClassUserId$,2)</eval>
    <unset token="form.s_class"></unset>
  </condition>
  <condition match="substr($CgClassUserId$,1,1) == &quot;S&quot;">
    <set token="Application">$label$</set>
    <eval token="CgClass">substr($CgClassUserId$,1,1)</eval>
    <eval token="CgClassClause">"host=\"*-".lower($CgClass$)."-*\""</eval>
    <eval token="UserId">substr($CgClassUserId$,2)</eval>
    <set token="form.s_class">true</set>
  </condition>
</change>

View solution in original post

rjthibod
Champion

The issue is you can only have one <change> block, so you have to consolidate everything.

<change>
  <condition match="substr($CgClassUserId$,1,1) != &quot;S&quot;">
    <set token="Application">$label$</set>
    <eval token="CgClass">substr($CgClassUserId$,1,1)</eval>
    <eval token="CgClassClause">"host=\"*-".lower($CgClass$)."-*\""</eval>
    <eval token="UserId">substr($CgClassUserId$,2)</eval>
    <unset token="form.s_class"></unset>
  </condition>
  <condition match="substr($CgClassUserId$,1,1) == &quot;S&quot;">
    <set token="Application">$label$</set>
    <eval token="CgClass">substr($CgClassUserId$,1,1)</eval>
    <eval token="CgClassClause">"host=\"*-".lower($CgClass$)."-*\""</eval>
    <eval token="UserId">substr($CgClassUserId$,2)</eval>
    <set token="form.s_class">true</set>
  </condition>
</change>

cmzhu
Explorer

Thanks so much!

0 Karma
Career Survey
First 500 qualified respondents will receive a $20 gift card! Tell us about your professional Splunk journey.

Can’t make it to .conf25? Join us online!

Get Updates on the Splunk Community!

Community Content Calendar, September edition

Welcome to another insightful post from our Community Content Calendar! We're thrilled to continue bringing ...

Splunkbase Unveils New App Listing Management Public Preview

Splunkbase Unveils New App Listing Management Public PreviewWe're thrilled to announce the public preview of ...

Leveraging Automated Threat Analysis Across the Splunk Ecosystem

Are you leveraging automation to its fullest potential in your threat detection strategy?Our upcoming Security ...