Initializing help system before first use

Using Dynamic Variables

Dynamic variables allow you to define calculations or operations once and reference them in multiple expressions.

This is implemented with the <vdl-var> element which defines a variable's name and its value. Once defined, the variable can be referenced throughout the rest of a VDL view. Variable names should be unique and can be either globally-scoped or scenario-scoped, depending on where you define them.

The following view illustrates how to create and use globally-scoped variables.
<vdl version="4.1">
  <vdl-var name="title" 
           value="Portfolio Optimization risky share types"></vdl-var>
  <vdl-var name="rows" 
           value="=[0,1,2,3,4]"></vdl-var>
  <vdl-page>
    <vdl-section heading="=vars.title">
      <vdl-column vdl-repeat="=row in vars.rows" 
                  heading="=row" 
                  size="4">
        <p vdl-text="=scenario.entities.RISK.length &&
                      scenario.entities.RISK[row].value ?
                      scenario.entities.RISK[row].value :
                      '' "></p>
      </vdl-column>
    </vdl-section>
  </vdl-page>
</vdl>

Note the ternary guard expression assigned to the vdl-text attribute. Also note the position of the <vdl-var> elements - outside a <vdl-page> element - this is what gives them global scope.

This renders as:

Globally Scoped Dynamic Variables Rendered

Rendered Global Dynamic Variables

To use a dynamic variable - say, title - at the scenario scope, it needs to contain an attribute that identifies its parent scenario by index. The following, changed code snippet illustrates the principle:
<vdl version="4.1
    <vdl-section>
      <vdl-column vdl-repeat="=s,i in scenarios">
        <vdl-var name="title" value="='Portfolio Optimization scenario: ' + s.props.name" scenario="=i"></vdl-var>
          <span vdl-text="=s.vars.title"></span>
      </vdl-column>
    </vdl-section>
  </vdl-page>
</vdl>
Above, the scenario index is captured in the <vdl-repeat> element as the loop variable i, which is then used as the scenario index for the <vdl-var> element. See Using Loops with Arrays and Sets for further details of vdl-repeat.

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.